[READ-ONLY] Mirror of https://github.com/bombshell-dev/docs. bomb.sh/docs
0

Configure Feed

Select the types of activity you want to include in your feed.

custom theme (#7)

* feat: new theme

* fix: title

* feat: colors

* feat: improve layout

* chore: upgrade deps

authored by

Nate Moore and committed by
GitHub
(Jun 20, 2025, 12:33 AM -0500) 255c6eac e4b5f8fe

+672 -273
+9 -10
astro.config.mjs
··· 15 15 integrations: [ 16 16 starlight({ 17 17 title: "Bombshell", 18 - customCss: [ 19 - // Relative path to your @font-face CSS file. 20 - "./src/fonts/font-face.css", 21 - ], 22 18 logo: { 23 19 dark: "./src/assets/dark.svg", 24 20 light: "./src/assets/light.svg", 25 21 }, 22 + customCss: [ 23 + './src/styles/tint.css' 24 + ], 26 25 components: { 27 26 Head: "./src/starlightOverrides/Head.astro", 28 27 }, ··· 37 36 tag: "link", 38 37 attrs: { 39 38 rel: "stylesheet", 40 - href: "https://use.typekit.net/bst3mzh.css?v=4", 39 + href: "https://use.typekit.net/bst3mzh.css?v=5", 41 40 }, 42 41 }, 43 42 { ··· 69 68 }, 70 69 }, 71 70 ], 72 - social: { 73 - discord: "https://bomb.sh/chat", 74 - blueSky: "https://bomb.sh/on/bluesky", 75 - github: "https://bomb.sh/on/github", 76 - }, 71 + social: [ 72 + { icon: 'discord', label: 'Discord', href: 'https://bomb.sh/chat' }, 73 + { icon: 'blueSky', label: 'Bluesky', href: 'https://bomb.sh/on/bluesky' }, 74 + { icon: 'github', label: 'GitHub', href: 'https://bomb.sh/on/github' }, 75 + ], 77 76 plugins: [ 78 77 topics([ 79 78 {
+3 -3
package.json
··· 10 10 "astro": "astro" 11 11 }, 12 12 "dependencies": { 13 - "@astrojs/starlight": "^0.32.2", 13 + "@astrojs/starlight": "^0.34.4", 14 + "@bomb.sh/args": "^0.3.1", 14 15 "@clack/core": "^0.4.2", 15 16 "@clack/prompts": "1.0.0-alpha.0", 16 - "@bomb.sh/args": "^0.3.1", 17 17 "@types/node": "^22.13.11", 18 - "astro": "^5.1.5", 18 + "astro": "^5.10.0", 19 19 "expressive-code-twoslash": "^0.4.0", 20 20 "sharp": "^0.33.5", 21 21 "starlight-sidebar-topics": "^0.6.0"
+399 -154
pnpm-lock.yaml
··· 9 9 .: 10 10 dependencies: 11 11 '@astrojs/starlight': 12 - specifier: ^0.32.2 13 - version: 0.32.4(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)) 12 + specifier: ^0.34.4 13 + version: 0.34.4(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)) 14 14 '@bomb.sh/args': 15 15 specifier: ^0.3.1 16 16 version: 0.3.1 ··· 24 24 specifier: ^22.13.11 25 25 version: 22.13.11 26 26 astro: 27 - specifier: ^5.1.5 28 - version: 5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2) 27 + specifier: ^5.10.0 28 + version: 5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2) 29 29 expressive-code-twoslash: 30 30 specifier: ^0.4.0 31 - version: 0.4.0(@expressive-code/core@0.40.2)(expressive-code@0.40.2)(typescript@5.8.2) 31 + version: 0.4.0(@expressive-code/core@0.41.2)(expressive-code@0.41.2)(typescript@5.8.2) 32 32 sharp: 33 33 specifier: ^0.33.5 34 34 version: 0.33.5 35 35 starlight-sidebar-topics: 36 36 specifier: ^0.6.0 37 - version: 0.6.0(@astrojs/starlight@0.32.4(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2))) 37 + version: 0.6.0(@astrojs/starlight@0.34.4(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2))) 38 38 39 39 packages: 40 40 41 - '@astrojs/compiler@2.11.0': 42 - resolution: {integrity: sha512-zZOO7i+JhojO8qmlyR/URui6LyfHJY6m+L9nwyX5GiKD78YoRaZ5tzz6X0fkl+5bD3uwlDHayf6Oe8Fu36RKNg==} 41 + '@astrojs/compiler@2.12.2': 42 + resolution: {integrity: sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==} 43 43 44 44 '@astrojs/internal-helpers@0.6.1': 45 45 resolution: {integrity: sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==} ··· 47 47 '@astrojs/markdown-remark@6.3.1': 48 48 resolution: {integrity: sha512-c5F5gGrkczUaTVgmMW9g1YMJGzOtRvjjhw6IfGuxarM6ct09MpwysP10US729dy07gg8y+ofVifezvP3BNsWZg==} 49 49 50 - '@astrojs/mdx@4.2.1': 51 - resolution: {integrity: sha512-huVIR6YNtdJ233swDwj4RWCjhpUtz8wTLybPPZi5tdBFxwahMRYcGtGVEHjyUE9z+Je2LUVgQTzrPgvJi53oOQ==} 52 - engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 50 + '@astrojs/markdown-remark@6.3.2': 51 + resolution: {integrity: sha512-bO35JbWpVvyKRl7cmSJD822e8YA8ThR/YbUsciWNA7yTcqpIAL2hJDToWP5KcZBWxGT6IOdOkHSXARSNZc4l/Q==} 52 + 53 + '@astrojs/mdx@4.3.0': 54 + resolution: {integrity: sha512-OGX2KvPeBzjSSKhkCqrUoDMyzFcjKt5nTE5SFw3RdoLf0nrhyCXBQcCyclzWy1+P+XpOamn+p+hm1EhpCRyPxw==} 55 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 53 56 peerDependencies: 54 57 astro: ^5.0.0 55 58 ··· 57 60 resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} 58 61 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 59 62 63 + '@astrojs/prism@3.3.0': 64 + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} 65 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 66 + 60 67 '@astrojs/sitemap@3.3.0': 61 68 resolution: {integrity: sha512-nYE4lKQtk+Kbrw/w0G0TTgT724co0jUsU4tPlHY9au5HmTBKbwiCLwO/15b1/y13aZ4Kr9ZbMeMHlXuwn0ty4Q==} 62 69 63 - '@astrojs/starlight@0.32.4': 64 - resolution: {integrity: sha512-l6aHQ4wzFPdw2G2XPqft/SrzhOYWYBYPkIHlLdgFT09Lt3NUpHnHwdcomtDJfHPlvrAqBKt/C+aJqQjLBApu0Q==} 70 + '@astrojs/starlight@0.34.4': 71 + resolution: {integrity: sha512-NfQ6S2OaDG8aaiE+evVxSMpgqMkXPLa/yCpzG340EX2pRzFxPeTSvpei3Uz9KouevXRCctjHSItKjuZP+2syrQ==} 65 72 peerDependencies: 66 - astro: ^5.1.5 73 + astro: ^5.5.0 67 74 68 - '@astrojs/telemetry@3.2.0': 69 - resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} 70 - engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 75 + '@astrojs/telemetry@3.3.0': 76 + resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} 77 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 71 78 72 79 '@babel/helper-string-parser@7.25.9': 73 80 resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} ··· 92 99 93 100 '@bomb.sh/args@0.3.1': 94 101 resolution: {integrity: sha512-CwxKrfgcorUPP6KfYD59aRdBYWBTsfsxT+GmoLVnKo5Tmyoqbpo0UNcjngRMyU+6tiPbd18RuIYxhgAn44wU/Q==} 102 + 103 + '@capsizecss/unpack@2.4.0': 104 + resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==} 95 105 96 106 '@clack/core@0.4.2': 97 107 resolution: {integrity: sha512-NYQfcEy8MWIxrT5Fj8nIVchfRFA26yYKJcvBS7WlUIlw2OmQOY9DhGGXMovyI5J5PpxrCPGkgUi207EBrjpBvg==} ··· 259 269 cpu: [x64] 260 270 os: [win32] 261 271 262 - '@expressive-code/core@0.40.2': 263 - resolution: {integrity: sha512-gXY3v7jbgz6nWKvRpoDxK4AHUPkZRuJsM79vHX/5uhV9/qX6Qnctp/U/dMHog/LCVXcuOps+5nRmf1uxQVPb3w==} 272 + '@expressive-code/core@0.41.2': 273 + resolution: {integrity: sha512-AJW5Tp9czbLqKMzwudL9Rv4js9afXBxkSGLmCNPq1iRgAYcx9NkTPJiSNCesjKRWoVC328AdSu6fqrD22zDgDg==} 264 274 265 - '@expressive-code/plugin-frames@0.40.2': 266 - resolution: {integrity: sha512-aLw5IlDlZWb10Jo/TTDCVsmJhKfZ7FJI83Zo9VDrV0OBlmHAg7klZqw68VDz7FlftIBVAmMby53/MNXPnMjTSQ==} 275 + '@expressive-code/plugin-frames@0.41.2': 276 + resolution: {integrity: sha512-pfy0hkJI4nbaONjmksFDcuHmIuyPTFmi1JpABe4q2ajskiJtfBf+WDAL2pg595R9JNoPrrH5+aT9lbkx2noicw==} 267 277 268 - '@expressive-code/plugin-shiki@0.40.2': 269 - resolution: {integrity: sha512-t2HMR5BO6GdDW1c1ISBTk66xO503e/Z8ecZdNcr6E4NpUfvY+MRje+LtrcvbBqMwWBBO8RpVKcam/Uy+1GxwKQ==} 278 + '@expressive-code/plugin-shiki@0.41.2': 279 + resolution: {integrity: sha512-xD4zwqAkDccXqye+235BH5bN038jYiSMLfUrCOmMlzxPDGWdxJDk5z4uUB/aLfivEF2tXyO2zyaarL3Oqht0fQ==} 270 280 271 - '@expressive-code/plugin-text-markers@0.40.2': 272 - resolution: {integrity: sha512-/XoLjD67K9nfM4TgDlXAExzMJp6ewFKxNpfUw4F7q5Ecy+IU3/9zQQG/O70Zy+RxYTwKGw2MA9kd7yelsxnSmw==} 281 + '@expressive-code/plugin-text-markers@0.41.2': 282 + resolution: {integrity: sha512-JFWBz2qYxxJOJkkWf96LpeolbnOqJY95TvwYc0hXIHf9oSWV0h0SY268w/5N3EtQaD9KktzDE+VIVwb9jdb3nw==} 273 283 274 284 '@img/sharp-darwin-arm64@0.33.5': 275 285 resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} ··· 517 527 cpu: [x64] 518 528 os: [win32] 519 529 520 - '@shikijs/core@1.29.2': 521 - resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} 522 - 523 530 '@shikijs/core@3.2.1': 524 531 resolution: {integrity: sha512-FhsdxMWYu/C11sFisEp7FMGBtX/OSSbnXZDMBhGuUDBNTdsoZlMSgQv5f90rwvzWAdWIW6VobD+G3IrazxA6dQ==} 525 532 526 - '@shikijs/engine-javascript@1.29.2': 527 - resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} 533 + '@shikijs/core@3.6.0': 534 + resolution: {integrity: sha512-9By7Xb3olEX0o6UeJyPLI1PE1scC4d3wcVepvtv2xbuN9/IThYN4Wcwh24rcFeASzPam11MCq8yQpwwzCgSBRw==} 528 535 529 536 '@shikijs/engine-javascript@3.2.1': 530 537 resolution: {integrity: sha512-eMdcUzN3FMQYxOmRf2rmU8frikzoSHbQDFH2hIuXsrMO+IBOCI9BeeRkCiBkcLDHeRKbOCtYMJK3D6U32ooU9Q==} 531 538 532 - '@shikijs/engine-oniguruma@1.29.2': 533 - resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} 539 + '@shikijs/engine-javascript@3.6.0': 540 + resolution: {integrity: sha512-7YnLhZG/TU05IHMG14QaLvTW/9WiK8SEYafceccHUSXs2Qr5vJibUwsDfXDLmRi0zHdzsxrGKpSX6hnqe0k8nA==} 534 541 535 542 '@shikijs/engine-oniguruma@3.2.1': 536 543 resolution: {integrity: sha512-wZZAkayEn6qu2+YjenEoFqj0OyQI64EWsNR6/71d1EkG4sxEOFooowKivsWPpaWNBu3sxAG+zPz5kzBL/SsreQ==} 537 544 538 - '@shikijs/langs@1.29.2': 539 - resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} 545 + '@shikijs/engine-oniguruma@3.6.0': 546 + resolution: {integrity: sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==} 540 547 541 548 '@shikijs/langs@3.2.1': 542 549 resolution: {integrity: sha512-If0iDHYRSGbihiA8+7uRsgb1er1Yj11pwpX1c6HLYnizDsKAw5iaT3JXj5ZpaimXSWky/IhxTm7C6nkiYVym+A==} 543 550 544 - '@shikijs/themes@1.29.2': 545 - resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} 551 + '@shikijs/langs@3.6.0': 552 + resolution: {integrity: sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==} 546 553 547 554 '@shikijs/themes@3.2.1': 548 555 resolution: {integrity: sha512-k5DKJUT8IldBvAm8WcrDT5+7GA7se6lLksR+2E3SvyqGTyFMzU2F9Gb7rmD+t+Pga1MKrYFxDIeyWjMZWM6uBQ==} 549 556 550 - '@shikijs/types@1.29.2': 551 - resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} 557 + '@shikijs/themes@3.6.0': 558 + resolution: {integrity: sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==} 552 559 553 560 '@shikijs/types@3.2.1': 554 561 resolution: {integrity: sha512-/NTWAk4KE2M8uac0RhOsIhYQf4pdU0OywQuYDGIGAJ6Mjunxl2cGiuLkvu4HLCMn+OTTLRWkjZITp+aYJv60yA==} 555 562 563 + '@shikijs/types@3.6.0': 564 + resolution: {integrity: sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==} 565 + 556 566 '@shikijs/vscode-textmate@10.0.2': 557 567 resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 558 568 569 + '@swc/helpers@0.5.17': 570 + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} 571 + 559 572 '@types/acorn@4.0.6': 560 573 resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} 561 574 ··· 567 580 568 581 '@types/estree@1.0.6': 569 582 resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 583 + 584 + '@types/fontkit@2.0.8': 585 + resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} 570 586 571 587 '@types/hast@3.0.4': 572 588 resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} ··· 655 671 resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} 656 672 hasBin: true 657 673 658 - astro-expressive-code@0.40.2: 659 - resolution: {integrity: sha512-yJMQId0yXSAbW9I6yqvJ3FcjKzJ8zRL7elbJbllkv1ZJPlsI0NI83Pxn1YL1IapEM347EvOOkSW2GL+2+NO61w==} 674 + astro-expressive-code@0.41.2: 675 + resolution: {integrity: sha512-HN0jWTnhr7mIV/2e6uu4PPRNNo/k4UEgTLZqbp3MrHU+caCARveG2yZxaZVBmxyiVdYqW5Pd3u3n2zjnshixbw==} 660 676 peerDependencies: 661 677 astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0 662 678 663 - astro@5.5.4: 664 - resolution: {integrity: sha512-rc9Mj6dIKM9ylTSQ0/S1l5f1iSDNs0PEjRMnvVpZ0W+wfBCu99JEuXy+fiWDNT6gf60bC4dKQehZxZGdSJB9kg==} 665 - engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 679 + astro@5.10.0: 680 + resolution: {integrity: sha512-g/t54kVzQnFVijs+GbbbX/NBAFTl/3yNAEA/AQYq4FumLLVv7n4BIF+jKhcPGn9iFGyT1Cjvr7KB/qYyNvHEIg==} 681 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 666 682 hasBin: true 667 683 668 684 axobject-query@4.1.0: ··· 674 690 675 691 base-64@1.0.0: 676 692 resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} 693 + 694 + base64-js@1.5.1: 695 + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 677 696 678 697 bcp-47-match@2.0.3: 679 698 resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} ··· 681 700 bcp-47@2.1.0: 682 701 resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} 683 702 703 + blob-to-buffer@1.2.9: 704 + resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} 705 + 684 706 boolbase@1.0.0: 685 707 resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 686 708 687 709 boxen@8.0.1: 688 710 resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} 689 711 engines: {node: '>=18'} 712 + 713 + brotli@1.3.3: 714 + resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} 690 715 691 716 camelcase@8.0.0: 692 717 resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} ··· 723 748 resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 724 749 engines: {node: '>=10'} 725 750 751 + clone@2.1.2: 752 + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} 753 + engines: {node: '>=0.8'} 754 + 726 755 clsx@2.1.1: 727 756 resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 728 757 engines: {node: '>=6'} ··· 757 786 resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} 758 787 engines: {node: '>=18'} 759 788 789 + cross-fetch@3.2.0: 790 + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} 791 + 760 792 crossws@0.3.4: 761 793 resolution: {integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==} 762 794 763 795 css-selector-parser@3.1.1: 764 796 resolution: {integrity: sha512-Y+DuvJ7JAjpL1f4DeILe5sXCC3kRXMl0DxM4lAWbS8/jEZ29o3V0L5TL6zIifj4Csmj6c+jiF2ENjida2OVOGA==} 797 + 798 + css-tree@3.1.0: 799 + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} 800 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 765 801 766 802 cssesc@3.0.0: 767 803 resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} ··· 804 840 devlop@1.1.0: 805 841 resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 806 842 843 + dfa@1.2.0: 844 + resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} 845 + 807 846 diff@5.2.0: 808 847 resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} 809 848 engines: {node: '>=0.3.1'} ··· 884 923 expressive-code: ^0.40.0 885 924 typescript: ^5.7 886 925 887 - expressive-code@0.40.2: 888 - resolution: {integrity: sha512-1zIda2rB0qiDZACawzw2rbdBQiWHBT56uBctS+ezFe5XMAaFaHLnnSYND/Kd+dVzO9HfCXRDpzH3d+3fvOWRcw==} 926 + expressive-code@0.41.2: 927 + resolution: {integrity: sha512-aLZiZaqorRtNExtGpUjK9zFH9aTpWeoTXMyLo4b4IcuXfPqtLPPxhRm/QlPb8QqIcMMXnSiGRHSFpQfX0m7HJw==} 889 928 890 929 extend@3.0.2: 891 930 resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 931 + 932 + fast-deep-equal@3.1.3: 933 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 892 934 893 935 fdir@6.4.3: 894 936 resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} ··· 898 940 picomatch: 899 941 optional: true 900 942 943 + fdir@6.4.6: 944 + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} 945 + peerDependencies: 946 + picomatch: ^3 || ^4 947 + peerDependenciesMeta: 948 + picomatch: 949 + optional: true 950 + 901 951 flattie@1.1.1: 902 952 resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} 903 953 engines: {node: '>=8'} 954 + 955 + fontace@0.3.0: 956 + resolution: {integrity: sha512-czoqATrcnxgWb/nAkfyIrRp6Q8biYj7nGnL6zfhTcX+JKKpWHFBnb8uNMw/kZr7u++3Y3wYSYoZgHkCcsuBpBg==} 957 + 958 + fontkit@2.0.4: 959 + resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} 904 960 905 961 fsevents@2.3.3: 906 962 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} ··· 1127 1183 mdast-util-to-string@4.0.0: 1128 1184 resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} 1129 1185 1186 + mdn-data@2.12.2: 1187 + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} 1188 + 1130 1189 micromark-core-commonmark@2.0.3: 1131 1190 resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} 1132 1191 ··· 1257 1316 node-fetch-native@1.6.6: 1258 1317 resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} 1259 1318 1319 + node-fetch@2.7.0: 1320 + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 1321 + engines: {node: 4.x || >=6.0.0} 1322 + peerDependencies: 1323 + encoding: ^0.1.0 1324 + peerDependenciesMeta: 1325 + encoding: 1326 + optional: true 1327 + 1260 1328 node-mock-http@1.0.0: 1261 1329 resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} 1262 1330 ··· 1270 1338 ofetch@1.4.1: 1271 1339 resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} 1272 1340 1341 + ohash@2.0.11: 1342 + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 1343 + 1344 + oniguruma-parser@0.12.1: 1345 + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} 1346 + 1273 1347 oniguruma-parser@0.5.4: 1274 1348 resolution: {integrity: sha512-yNxcQ8sKvURiTwP0mV6bLQCYE7NKfKRRWunhbZnXgxSmB1OXa1lHrN3o4DZd+0Si0kU5blidK7BcROO8qv5TZA==} 1275 1349 1276 - oniguruma-to-es@2.3.0: 1277 - resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} 1278 - 1279 1350 oniguruma-to-es@4.1.0: 1280 1351 resolution: {integrity: sha512-SNwG909cSLo4vPyyPbU/VJkEc9WOXqu2ycBlfd1UCXLqk1IijcQktSBb2yRQ2UFPsDhpkaf+C1dtT3PkLK/yWA==} 1352 + 1353 + oniguruma-to-es@4.3.3: 1354 + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} 1281 1355 1282 1356 p-limit@6.2.0: 1283 1357 resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} ··· 1297 1371 pagefind@1.3.0: 1298 1372 resolution: {integrity: sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==} 1299 1373 hasBin: true 1374 + 1375 + pako@0.2.9: 1376 + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} 1300 1377 1301 1378 parse-entities@4.0.2: 1302 1379 resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} ··· 1368 1445 regenerator-runtime@0.14.1: 1369 1446 resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1370 1447 1371 - regex-recursion@5.1.1: 1372 - resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} 1373 - 1374 1448 regex-recursion@6.0.2: 1375 1449 resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} 1376 1450 1377 1451 regex-utilities@2.3.0: 1378 1452 resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 1379 - 1380 - regex@5.1.1: 1381 - resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} 1382 1453 1383 1454 regex@6.0.1: 1384 1455 resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} 1385 1456 1386 - rehype-expressive-code@0.40.2: 1387 - resolution: {integrity: sha512-+kn+AMGCrGzvtH8Q5lC6Y5lnmTV/r33fdmi5QU/IH1KPHKobKr5UnLwJuqHv5jBTSN/0v2wLDS7RTM73FVzqmQ==} 1457 + rehype-expressive-code@0.41.2: 1458 + resolution: {integrity: sha512-vHYfWO9WxAw6kHHctddOt+P4266BtyT1mrOIuxJD+1ELuvuJAa5uBIhYt0OVMyOhlvf57hzWOXJkHnMhpaHyxw==} 1388 1459 1389 1460 rehype-format@5.0.1: 1390 1461 resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} ··· 1419 1490 remark-rehype@11.1.1: 1420 1491 resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} 1421 1492 1493 + remark-rehype@11.1.2: 1494 + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} 1495 + 1422 1496 remark-smartypants@3.0.2: 1423 1497 resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} 1424 1498 engines: {node: '>=16.0.0'} 1425 1499 1426 1500 remark-stringify@11.0.0: 1427 1501 resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} 1502 + 1503 + restructure@3.0.2: 1504 + resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} 1428 1505 1429 1506 retext-latin@4.0.0: 1430 1507 resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} ··· 1455 1532 resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} 1456 1533 engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1457 1534 1458 - shiki@1.29.2: 1459 - resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} 1460 - 1461 1535 shiki@3.2.1: 1462 1536 resolution: {integrity: sha512-VML/2o1/KGYkEf/stJJ+s9Ypn7jUKQPomGLGYso4JJFMFxVDyPNsjsI3MB3KLjlMOeH44gyaPdXC6rik2WXvUQ==} 1537 + 1538 + shiki@3.6.0: 1539 + resolution: {integrity: sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==} 1463 1540 1464 1541 simple-swizzle@0.2.2: 1465 1542 resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} ··· 1521 1598 style-to-object@1.0.8: 1522 1599 resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} 1523 1600 1601 + tiny-inflate@1.0.3: 1602 + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} 1603 + 1524 1604 tinyexec@0.3.2: 1525 1605 resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1526 1606 ··· 1528 1608 resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} 1529 1609 engines: {node: '>=12.0.0'} 1530 1610 1611 + tinyglobby@0.2.14: 1612 + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} 1613 + engines: {node: '>=12.0.0'} 1614 + 1615 + tr46@0.0.3: 1616 + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1617 + 1531 1618 trim-lines@3.0.1: 1532 1619 resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 1533 1620 ··· 1567 1654 ufo@1.5.4: 1568 1655 resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} 1569 1656 1570 - ultrahtml@1.5.3: 1571 - resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} 1657 + ultrahtml@1.6.0: 1658 + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} 1572 1659 1573 1660 uncrypto@0.1.3: 1574 1661 resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} ··· 1576 1663 undici-types@6.20.0: 1577 1664 resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1578 1665 1666 + unicode-properties@1.4.1: 1667 + resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} 1668 + 1669 + unicode-trie@2.0.0: 1670 + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} 1671 + 1579 1672 unified@11.0.5: 1580 1673 resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} 1674 + 1675 + unifont@0.5.0: 1676 + resolution: {integrity: sha512-4DueXMP5Hy4n607sh+vJ+rajoLu778aU3GzqeTCqsD/EaUcvqZT9wPC8kgK6Vjh22ZskrxyRCR71FwNOaYn6jA==} 1581 1677 1582 1678 unist-util-find-after@5.0.0: 1583 1679 resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} ··· 1680 1776 vfile@6.0.3: 1681 1777 resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 1682 1778 1683 - vite@6.2.2: 1684 - resolution: {integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==} 1779 + vite@6.3.5: 1780 + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} 1685 1781 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1686 1782 hasBin: true 1687 1783 peerDependencies: ··· 1731 1827 web-namespaces@2.0.1: 1732 1828 resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 1733 1829 1830 + webidl-conversions@3.0.1: 1831 + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 1832 + 1833 + whatwg-url@5.0.0: 1834 + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 1835 + 1734 1836 which-pm-runs@1.1.0: 1735 1837 resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} 1736 1838 engines: {node: '>=4'} ··· 1781 1883 1782 1884 snapshots: 1783 1885 1784 - '@astrojs/compiler@2.11.0': {} 1886 + '@astrojs/compiler@2.12.2': {} 1785 1887 1786 1888 '@astrojs/internal-helpers@0.6.1': {} 1787 1889 ··· 1811 1913 transitivePeerDependencies: 1812 1914 - supports-color 1813 1915 1814 - '@astrojs/mdx@4.2.1(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2))': 1916 + '@astrojs/markdown-remark@6.3.2': 1917 + dependencies: 1918 + '@astrojs/internal-helpers': 0.6.1 1919 + '@astrojs/prism': 3.3.0 1920 + github-slugger: 2.0.0 1921 + hast-util-from-html: 2.0.3 1922 + hast-util-to-text: 4.0.2 1923 + import-meta-resolve: 4.1.0 1924 + js-yaml: 4.1.0 1925 + mdast-util-definitions: 6.0.0 1926 + rehype-raw: 7.0.0 1927 + rehype-stringify: 10.0.1 1928 + remark-gfm: 4.0.1 1929 + remark-parse: 11.0.0 1930 + remark-rehype: 11.1.2 1931 + remark-smartypants: 3.0.2 1932 + shiki: 3.2.1 1933 + smol-toml: 1.3.1 1934 + unified: 11.0.5 1935 + unist-util-remove-position: 5.0.0 1936 + unist-util-visit: 5.0.0 1937 + unist-util-visit-parents: 6.0.1 1938 + vfile: 6.0.3 1939 + transitivePeerDependencies: 1940 + - supports-color 1941 + 1942 + '@astrojs/mdx@4.3.0(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2))': 1815 1943 dependencies: 1816 - '@astrojs/markdown-remark': 6.3.1 1944 + '@astrojs/markdown-remark': 6.3.2 1817 1945 '@mdx-js/mdx': 3.1.0(acorn@8.14.1) 1818 1946 acorn: 8.14.1 1819 - astro: 5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2) 1947 + astro: 5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2) 1820 1948 es-module-lexer: 1.6.0 1821 1949 estree-util-visit: 2.0.0 1822 1950 hast-util-to-html: 9.0.5 ··· 1834 1962 dependencies: 1835 1963 prismjs: 1.30.0 1836 1964 1965 + '@astrojs/prism@3.3.0': 1966 + dependencies: 1967 + prismjs: 1.30.0 1968 + 1837 1969 '@astrojs/sitemap@3.3.0': 1838 1970 dependencies: 1839 1971 sitemap: 8.0.0 1840 1972 stream-replace-string: 2.0.0 1841 1973 zod: 3.24.2 1842 1974 1843 - '@astrojs/starlight@0.32.4(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2))': 1975 + '@astrojs/starlight@0.34.4(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2))': 1844 1976 dependencies: 1845 - '@astrojs/mdx': 4.2.1(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)) 1977 + '@astrojs/markdown-remark': 6.3.1 1978 + '@astrojs/mdx': 4.3.0(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)) 1846 1979 '@astrojs/sitemap': 3.3.0 1847 1980 '@pagefind/default-ui': 1.3.0 1848 1981 '@types/hast': 3.0.4 1849 1982 '@types/js-yaml': 4.0.9 1850 1983 '@types/mdast': 4.0.4 1851 - astro: 5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2) 1852 - astro-expressive-code: 0.40.2(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)) 1984 + astro: 5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2) 1985 + astro-expressive-code: 0.41.2(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)) 1853 1986 bcp-47: 2.1.0 1854 1987 hast-util-from-html: 2.0.3 1855 1988 hast-util-select: 6.0.4 ··· 1865 1998 rehype: 13.0.2 1866 1999 rehype-format: 5.0.1 1867 2000 remark-directive: 3.0.1 2001 + ultrahtml: 1.6.0 1868 2002 unified: 11.0.5 1869 2003 unist-util-visit: 5.0.0 1870 2004 vfile: 6.0.3 1871 2005 transitivePeerDependencies: 1872 2006 - supports-color 1873 2007 1874 - '@astrojs/telemetry@3.2.0': 2008 + '@astrojs/telemetry@3.3.0': 1875 2009 dependencies: 1876 2010 ci-info: 4.2.0 1877 2011 debug: 4.4.0 ··· 1901 2035 '@babel/helper-validator-identifier': 7.25.9 1902 2036 1903 2037 '@bomb.sh/args@0.3.1': {} 2038 + 2039 + '@capsizecss/unpack@2.4.0': 2040 + dependencies: 2041 + blob-to-buffer: 1.2.9 2042 + cross-fetch: 3.2.0 2043 + fontkit: 2.0.4 2044 + transitivePeerDependencies: 2045 + - encoding 1904 2046 1905 2047 '@clack/core@0.4.2': 1906 2048 dependencies: ··· 2000 2142 '@esbuild/win32-x64@0.25.1': 2001 2143 optional: true 2002 2144 2003 - '@expressive-code/core@0.40.2': 2145 + '@expressive-code/core@0.41.2': 2004 2146 dependencies: 2005 2147 '@ctrl/tinycolor': 4.1.0 2006 2148 hast-util-select: 6.0.4 ··· 2012 2154 unist-util-visit: 5.0.0 2013 2155 unist-util-visit-parents: 6.0.1 2014 2156 2015 - '@expressive-code/plugin-frames@0.40.2': 2157 + '@expressive-code/plugin-frames@0.41.2': 2016 2158 dependencies: 2017 - '@expressive-code/core': 0.40.2 2159 + '@expressive-code/core': 0.41.2 2018 2160 2019 - '@expressive-code/plugin-shiki@0.40.2': 2161 + '@expressive-code/plugin-shiki@0.41.2': 2020 2162 dependencies: 2021 - '@expressive-code/core': 0.40.2 2022 - shiki: 1.29.2 2163 + '@expressive-code/core': 0.41.2 2164 + shiki: 3.6.0 2023 2165 2024 - '@expressive-code/plugin-text-markers@0.40.2': 2166 + '@expressive-code/plugin-text-markers@0.41.2': 2025 2167 dependencies: 2026 - '@expressive-code/core': 0.40.2 2168 + '@expressive-code/core': 0.41.2 2027 2169 2028 2170 '@img/sharp-darwin-arm64@0.33.5': 2029 2171 optionalDependencies: ··· 2216 2358 '@rollup/rollup-win32-x64-msvc@4.36.0': 2217 2359 optional: true 2218 2360 2219 - '@shikijs/core@1.29.2': 2361 + '@shikijs/core@3.2.1': 2220 2362 dependencies: 2221 - '@shikijs/engine-javascript': 1.29.2 2222 - '@shikijs/engine-oniguruma': 1.29.2 2223 - '@shikijs/types': 1.29.2 2363 + '@shikijs/types': 3.2.1 2224 2364 '@shikijs/vscode-textmate': 10.0.2 2225 2365 '@types/hast': 3.0.4 2226 2366 hast-util-to-html: 9.0.5 2227 2367 2228 - '@shikijs/core@3.2.1': 2368 + '@shikijs/core@3.6.0': 2229 2369 dependencies: 2230 - '@shikijs/types': 3.2.1 2370 + '@shikijs/types': 3.6.0 2231 2371 '@shikijs/vscode-textmate': 10.0.2 2232 2372 '@types/hast': 3.0.4 2233 2373 hast-util-to-html: 9.0.5 2234 2374 2235 - '@shikijs/engine-javascript@1.29.2': 2236 - dependencies: 2237 - '@shikijs/types': 1.29.2 2238 - '@shikijs/vscode-textmate': 10.0.2 2239 - oniguruma-to-es: 2.3.0 2240 - 2241 2375 '@shikijs/engine-javascript@3.2.1': 2242 2376 dependencies: 2243 2377 '@shikijs/types': 3.2.1 2244 2378 '@shikijs/vscode-textmate': 10.0.2 2245 2379 oniguruma-to-es: 4.1.0 2246 2380 2247 - '@shikijs/engine-oniguruma@1.29.2': 2381 + '@shikijs/engine-javascript@3.6.0': 2248 2382 dependencies: 2249 - '@shikijs/types': 1.29.2 2383 + '@shikijs/types': 3.6.0 2250 2384 '@shikijs/vscode-textmate': 10.0.2 2385 + oniguruma-to-es: 4.3.3 2251 2386 2252 2387 '@shikijs/engine-oniguruma@3.2.1': 2253 2388 dependencies: 2254 2389 '@shikijs/types': 3.2.1 2255 2390 '@shikijs/vscode-textmate': 10.0.2 2256 2391 2257 - '@shikijs/langs@1.29.2': 2392 + '@shikijs/engine-oniguruma@3.6.0': 2258 2393 dependencies: 2259 - '@shikijs/types': 1.29.2 2394 + '@shikijs/types': 3.6.0 2395 + '@shikijs/vscode-textmate': 10.0.2 2260 2396 2261 2397 '@shikijs/langs@3.2.1': 2262 2398 dependencies: 2263 2399 '@shikijs/types': 3.2.1 2264 2400 2265 - '@shikijs/themes@1.29.2': 2401 + '@shikijs/langs@3.6.0': 2266 2402 dependencies: 2267 - '@shikijs/types': 1.29.2 2403 + '@shikijs/types': 3.6.0 2268 2404 2269 2405 '@shikijs/themes@3.2.1': 2270 2406 dependencies: 2271 2407 '@shikijs/types': 3.2.1 2272 2408 2273 - '@shikijs/types@1.29.2': 2409 + '@shikijs/themes@3.6.0': 2410 + dependencies: 2411 + '@shikijs/types': 3.6.0 2412 + 2413 + '@shikijs/types@3.2.1': 2274 2414 dependencies: 2275 2415 '@shikijs/vscode-textmate': 10.0.2 2276 2416 '@types/hast': 3.0.4 2277 2417 2278 - '@shikijs/types@3.2.1': 2418 + '@shikijs/types@3.6.0': 2279 2419 dependencies: 2280 2420 '@shikijs/vscode-textmate': 10.0.2 2281 2421 '@types/hast': 3.0.4 2282 2422 2283 2423 '@shikijs/vscode-textmate@10.0.2': {} 2424 + 2425 + '@swc/helpers@0.5.17': 2426 + dependencies: 2427 + tslib: 2.8.1 2284 2428 2285 2429 '@types/acorn@4.0.6': 2286 2430 dependencies: ··· 2296 2440 2297 2441 '@types/estree@1.0.6': {} 2298 2442 2443 + '@types/fontkit@2.0.8': 2444 + dependencies: 2445 + '@types/node': 22.13.11 2446 + 2299 2447 '@types/hast@3.0.4': 2300 2448 dependencies: 2301 2449 '@types/unist': 3.0.3 ··· 2368 2516 2369 2517 astring@1.9.0: {} 2370 2518 2371 - astro-expressive-code@0.40.2(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)): 2519 + astro-expressive-code@0.41.2(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)): 2372 2520 dependencies: 2373 - astro: 5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2) 2374 - rehype-expressive-code: 0.40.2 2521 + astro: 5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2) 2522 + rehype-expressive-code: 0.41.2 2375 2523 2376 - astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2): 2524 + astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2): 2377 2525 dependencies: 2378 - '@astrojs/compiler': 2.11.0 2526 + '@astrojs/compiler': 2.12.2 2379 2527 '@astrojs/internal-helpers': 0.6.1 2380 - '@astrojs/markdown-remark': 6.3.1 2381 - '@astrojs/telemetry': 3.2.0 2528 + '@astrojs/markdown-remark': 6.3.2 2529 + '@astrojs/telemetry': 3.3.0 2530 + '@capsizecss/unpack': 2.4.0 2382 2531 '@oslojs/encoding': 1.1.0 2383 2532 '@rollup/pluginutils': 5.1.4(rollup@4.36.0) 2384 2533 acorn: 8.14.1 ··· 2400 2549 esbuild: 0.25.1 2401 2550 estree-walker: 3.0.3 2402 2551 flattie: 1.1.1 2552 + fontace: 0.3.0 2403 2553 github-slugger: 2.0.0 2404 2554 html-escaper: 3.0.3 2405 2555 http-cache-semantics: 4.1.1 2556 + import-meta-resolve: 4.1.0 2406 2557 js-yaml: 4.1.0 2407 2558 kleur: 4.1.5 2408 2559 magic-string: 0.30.17 ··· 2420 2571 tinyexec: 0.3.2 2421 2572 tinyglobby: 0.2.12 2422 2573 tsconfck: 3.1.5(typescript@5.8.2) 2423 - ultrahtml: 1.5.3 2574 + ultrahtml: 1.6.0 2575 + unifont: 0.5.0 2424 2576 unist-util-visit: 5.0.0 2425 2577 unstorage: 1.15.0 2426 2578 vfile: 6.0.3 2427 - vite: 6.2.2(@types/node@22.13.11) 2428 - vitefu: 1.0.6(vite@6.2.2(@types/node@22.13.11)) 2579 + vite: 6.3.5(@types/node@22.13.11) 2580 + vitefu: 1.0.6(vite@6.3.5(@types/node@22.13.11)) 2429 2581 xxhash-wasm: 1.1.0 2430 2582 yargs-parser: 21.1.1 2431 2583 yocto-spinner: 0.2.1 ··· 2451 2603 - '@vercel/kv' 2452 2604 - aws4fetch 2453 2605 - db0 2606 + - encoding 2454 2607 - idb-keyval 2455 2608 - ioredis 2456 2609 - jiti ··· 2474 2627 2475 2628 base-64@1.0.0: {} 2476 2629 2630 + base64-js@1.5.1: {} 2631 + 2477 2632 bcp-47-match@2.0.3: {} 2478 2633 2479 2634 bcp-47@2.1.0: ··· 2481 2636 is-alphabetical: 2.0.1 2482 2637 is-alphanumerical: 2.0.1 2483 2638 is-decimal: 2.0.1 2639 + 2640 + blob-to-buffer@1.2.9: {} 2484 2641 2485 2642 boolbase@1.0.0: {} 2486 2643 ··· 2494 2651 type-fest: 4.37.0 2495 2652 widest-line: 5.0.0 2496 2653 wrap-ansi: 9.0.0 2654 + 2655 + brotli@1.3.3: 2656 + dependencies: 2657 + base64-js: 1.5.1 2497 2658 2498 2659 camelcase@8.0.0: {} 2499 2660 ··· 2517 2678 2518 2679 cli-boxes@3.0.0: {} 2519 2680 2681 + clone@2.1.2: {} 2682 + 2520 2683 clsx@2.1.1: {} 2521 2684 2522 2685 collapse-white-space@2.1.0: {} ··· 2544 2707 cookie-es@1.2.2: {} 2545 2708 2546 2709 cookie@1.0.2: {} 2710 + 2711 + cross-fetch@3.2.0: 2712 + dependencies: 2713 + node-fetch: 2.7.0 2714 + transitivePeerDependencies: 2715 + - encoding 2547 2716 2548 2717 crossws@0.3.4: 2549 2718 dependencies: ··· 2551 2720 2552 2721 css-selector-parser@3.1.1: {} 2553 2722 2723 + css-tree@3.1.0: 2724 + dependencies: 2725 + mdn-data: 2.12.2 2726 + source-map-js: 1.2.1 2727 + 2554 2728 cssesc@3.0.0: {} 2555 2729 2556 2730 debug@4.4.0: ··· 2578 2752 devlop@1.1.0: 2579 2753 dependencies: 2580 2754 dequal: 2.0.3 2755 + 2756 + dfa@1.2.0: {} 2581 2757 2582 2758 diff@5.2.0: {} 2583 2759 ··· 2678 2854 2679 2855 eventemitter3@5.0.1: {} 2680 2856 2681 - expressive-code-twoslash@0.4.0(@expressive-code/core@0.40.2)(expressive-code@0.40.2)(typescript@5.8.2): 2857 + expressive-code-twoslash@0.4.0(@expressive-code/core@0.41.2)(expressive-code@0.41.2)(typescript@5.8.2): 2682 2858 dependencies: 2683 - '@expressive-code/core': 0.40.2 2684 - expressive-code: 0.40.2 2859 + '@expressive-code/core': 0.41.2 2860 + expressive-code: 0.41.2 2685 2861 mdast-util-from-markdown: 2.0.2 2686 2862 mdast-util-gfm: 3.1.0 2687 2863 mdast-util-to-hast: 13.2.0 ··· 2690 2866 transitivePeerDependencies: 2691 2867 - supports-color 2692 2868 2693 - expressive-code@0.40.2: 2869 + expressive-code@0.41.2: 2694 2870 dependencies: 2695 - '@expressive-code/core': 0.40.2 2696 - '@expressive-code/plugin-frames': 0.40.2 2697 - '@expressive-code/plugin-shiki': 0.40.2 2698 - '@expressive-code/plugin-text-markers': 0.40.2 2871 + '@expressive-code/core': 0.41.2 2872 + '@expressive-code/plugin-frames': 0.41.2 2873 + '@expressive-code/plugin-shiki': 0.41.2 2874 + '@expressive-code/plugin-text-markers': 0.41.2 2699 2875 2700 2876 extend@3.0.2: {} 2701 2877 2878 + fast-deep-equal@3.1.3: {} 2879 + 2702 2880 fdir@6.4.3(picomatch@4.0.2): 2703 2881 optionalDependencies: 2704 2882 picomatch: 4.0.2 2705 2883 2884 + fdir@6.4.6(picomatch@4.0.2): 2885 + optionalDependencies: 2886 + picomatch: 4.0.2 2887 + 2706 2888 flattie@1.1.1: {} 2889 + 2890 + fontace@0.3.0: 2891 + dependencies: 2892 + '@types/fontkit': 2.0.8 2893 + fontkit: 2.0.4 2894 + 2895 + fontkit@2.0.4: 2896 + dependencies: 2897 + '@swc/helpers': 0.5.17 2898 + brotli: 1.3.3 2899 + clone: 2.1.2 2900 + dfa: 1.2.0 2901 + fast-deep-equal: 3.1.3 2902 + restructure: 3.0.2 2903 + tiny-inflate: 1.0.3 2904 + unicode-properties: 1.4.1 2905 + unicode-trie: 2.0.0 2707 2906 2708 2907 fsevents@2.3.3: 2709 2908 optional: true ··· 3169 3368 dependencies: 3170 3369 '@types/mdast': 4.0.4 3171 3370 3371 + mdn-data@2.12.2: {} 3372 + 3172 3373 micromark-core-commonmark@2.0.3: 3173 3374 dependencies: 3174 3375 decode-named-character-reference: 1.1.0 ··· 3459 3660 3460 3661 node-fetch-native@1.6.6: {} 3461 3662 3663 + node-fetch@2.7.0: 3664 + dependencies: 3665 + whatwg-url: 5.0.0 3666 + 3462 3667 node-mock-http@1.0.0: {} 3463 3668 3464 3669 normalize-path@3.0.0: {} ··· 3473 3678 node-fetch-native: 1.6.6 3474 3679 ufo: 1.5.4 3475 3680 3681 + ohash@2.0.11: {} 3682 + 3683 + oniguruma-parser@0.12.1: {} 3684 + 3476 3685 oniguruma-parser@0.5.4: {} 3477 3686 3478 - oniguruma-to-es@2.3.0: 3687 + oniguruma-to-es@4.1.0: 3479 3688 dependencies: 3480 3689 emoji-regex-xs: 1.0.0 3481 - regex: 5.1.1 3482 - regex-recursion: 5.1.1 3690 + oniguruma-parser: 0.5.4 3691 + regex: 6.0.1 3692 + regex-recursion: 6.0.2 3483 3693 3484 - oniguruma-to-es@4.1.0: 3694 + oniguruma-to-es@4.3.3: 3485 3695 dependencies: 3486 - emoji-regex-xs: 1.0.0 3487 - oniguruma-parser: 0.5.4 3696 + oniguruma-parser: 0.12.1 3488 3697 regex: 6.0.1 3489 3698 regex-recursion: 6.0.2 3490 3699 ··· 3508 3717 '@pagefind/linux-arm64': 1.3.0 3509 3718 '@pagefind/linux-x64': 1.3.0 3510 3719 '@pagefind/windows-x64': 1.3.0 3720 + 3721 + pako@0.2.9: {} 3511 3722 3512 3723 parse-entities@4.0.2: 3513 3724 dependencies: ··· 3601 3812 3602 3813 regenerator-runtime@0.14.1: {} 3603 3814 3604 - regex-recursion@5.1.1: 3605 - dependencies: 3606 - regex: 5.1.1 3607 - regex-utilities: 2.3.0 3608 - 3609 3815 regex-recursion@6.0.2: 3610 3816 dependencies: 3611 3817 regex-utilities: 2.3.0 3612 3818 3613 3819 regex-utilities@2.3.0: {} 3614 3820 3615 - regex@5.1.1: 3616 - dependencies: 3617 - regex-utilities: 2.3.0 3618 - 3619 3821 regex@6.0.1: 3620 3822 dependencies: 3621 3823 regex-utilities: 2.3.0 3622 3824 3623 - rehype-expressive-code@0.40.2: 3825 + rehype-expressive-code@0.41.2: 3624 3826 dependencies: 3625 - expressive-code: 0.40.2 3827 + expressive-code: 0.41.2 3626 3828 3627 3829 rehype-format@5.0.1: 3628 3830 dependencies: ··· 3706 3908 unified: 11.0.5 3707 3909 vfile: 6.0.3 3708 3910 3911 + remark-rehype@11.1.2: 3912 + dependencies: 3913 + '@types/hast': 3.0.4 3914 + '@types/mdast': 4.0.4 3915 + mdast-util-to-hast: 13.2.0 3916 + unified: 11.0.5 3917 + vfile: 6.0.3 3918 + 3709 3919 remark-smartypants@3.0.2: 3710 3920 dependencies: 3711 3921 retext: 9.0.0 ··· 3718 3928 '@types/mdast': 4.0.4 3719 3929 mdast-util-to-markdown: 2.1.2 3720 3930 unified: 11.0.5 3931 + 3932 + restructure@3.0.2: {} 3721 3933 3722 3934 retext-latin@4.0.0: 3723 3935 dependencies: ··· 3799 4011 '@img/sharp-win32-ia32': 0.33.5 3800 4012 '@img/sharp-win32-x64': 0.33.5 3801 4013 3802 - shiki@1.29.2: 3803 - dependencies: 3804 - '@shikijs/core': 1.29.2 3805 - '@shikijs/engine-javascript': 1.29.2 3806 - '@shikijs/engine-oniguruma': 1.29.2 3807 - '@shikijs/langs': 1.29.2 3808 - '@shikijs/themes': 1.29.2 3809 - '@shikijs/types': 1.29.2 3810 - '@shikijs/vscode-textmate': 10.0.2 3811 - '@types/hast': 3.0.4 3812 - 3813 4014 shiki@3.2.1: 3814 4015 dependencies: 3815 4016 '@shikijs/core': 3.2.1 ··· 3821 4022 '@shikijs/vscode-textmate': 10.0.2 3822 4023 '@types/hast': 3.0.4 3823 4024 4025 + shiki@3.6.0: 4026 + dependencies: 4027 + '@shikijs/core': 3.6.0 4028 + '@shikijs/engine-javascript': 3.6.0 4029 + '@shikijs/engine-oniguruma': 3.6.0 4030 + '@shikijs/langs': 3.6.0 4031 + '@shikijs/themes': 3.6.0 4032 + '@shikijs/types': 3.6.0 4033 + '@shikijs/vscode-textmate': 10.0.2 4034 + '@types/hast': 3.0.4 4035 + 3824 4036 simple-swizzle@0.2.2: 3825 4037 dependencies: 3826 4038 is-arrayish: 0.3.2 ··· 3842 4054 3843 4055 space-separated-tokens@2.0.2: {} 3844 4056 3845 - starlight-sidebar-topics@0.6.0(@astrojs/starlight@0.32.4(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2))): 4057 + starlight-sidebar-topics@0.6.0(@astrojs/starlight@0.34.4(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2))): 3846 4058 dependencies: 3847 - '@astrojs/starlight': 0.32.4(astro@5.5.4(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)) 4059 + '@astrojs/starlight': 0.34.4(astro@5.10.0(@types/node@22.13.11)(rollup@4.36.0)(typescript@5.8.2)) 3848 4060 picomatch: 4.0.2 3849 4061 3850 4062 stream-replace-string@2.0.0: {} ··· 3882 4094 dependencies: 3883 4095 inline-style-parser: 0.2.4 3884 4096 4097 + tiny-inflate@1.0.3: {} 4098 + 3885 4099 tinyexec@0.3.2: {} 3886 4100 3887 4101 tinyglobby@0.2.12: ··· 3889 4103 fdir: 6.4.3(picomatch@4.0.2) 3890 4104 picomatch: 4.0.2 3891 4105 4106 + tinyglobby@0.2.14: 4107 + dependencies: 4108 + fdir: 6.4.6(picomatch@4.0.2) 4109 + picomatch: 4.0.2 4110 + 4111 + tr46@0.0.3: {} 4112 + 3892 4113 trim-lines@3.0.1: {} 3893 4114 3894 4115 trough@2.2.0: {} ··· 3897 4118 optionalDependencies: 3898 4119 typescript: 5.8.2 3899 4120 3900 - tslib@2.8.1: 3901 - optional: true 4121 + tslib@2.8.1: {} 3902 4122 3903 4123 twoslash-protocol@0.2.12: {} 3904 4124 ··· 3916 4136 3917 4137 ufo@1.5.4: {} 3918 4138 3919 - ultrahtml@1.5.3: {} 4139 + ultrahtml@1.6.0: {} 3920 4140 3921 4141 uncrypto@0.1.3: {} 3922 4142 3923 4143 undici-types@6.20.0: {} 3924 4144 4145 + unicode-properties@1.4.1: 4146 + dependencies: 4147 + base64-js: 1.5.1 4148 + unicode-trie: 2.0.0 4149 + 4150 + unicode-trie@2.0.0: 4151 + dependencies: 4152 + pako: 0.2.9 4153 + tiny-inflate: 1.0.3 4154 + 3925 4155 unified@11.0.5: 3926 4156 dependencies: 3927 4157 '@types/unist': 3.0.3 ··· 3931 4161 is-plain-obj: 4.1.0 3932 4162 trough: 2.2.0 3933 4163 vfile: 6.0.3 4164 + 4165 + unifont@0.5.0: 4166 + dependencies: 4167 + css-tree: 3.1.0 4168 + ohash: 2.0.11 3934 4169 3935 4170 unist-util-find-after@5.0.0: 3936 4171 dependencies: ··· 4006 4241 '@types/unist': 3.0.3 4007 4242 vfile-message: 4.0.2 4008 4243 4009 - vite@6.2.2(@types/node@22.13.11): 4244 + vite@6.3.5(@types/node@22.13.11): 4010 4245 dependencies: 4011 4246 esbuild: 0.25.1 4247 + fdir: 6.4.6(picomatch@4.0.2) 4248 + picomatch: 4.0.2 4012 4249 postcss: 8.5.3 4013 4250 rollup: 4.36.0 4251 + tinyglobby: 0.2.14 4014 4252 optionalDependencies: 4015 4253 '@types/node': 22.13.11 4016 4254 fsevents: 2.3.3 4017 4255 4018 - vitefu@1.0.6(vite@6.2.2(@types/node@22.13.11)): 4256 + vitefu@1.0.6(vite@6.3.5(@types/node@22.13.11)): 4019 4257 optionalDependencies: 4020 - vite: 6.2.2(@types/node@22.13.11) 4258 + vite: 6.3.5(@types/node@22.13.11) 4021 4259 4022 4260 web-namespaces@2.0.1: {} 4261 + 4262 + webidl-conversions@3.0.1: {} 4263 + 4264 + whatwg-url@5.0.0: 4265 + dependencies: 4266 + tr46: 0.0.3 4267 + webidl-conversions: 3.0.1 4023 4268 4024 4269 which-pm-runs@1.1.0: {} 4025 4270
-93
src/fonts/LICENSE
··· 1 - Google Inc. 2 - 3 - This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 - This license is copied below, and is also available with a FAQ at: 5 - http://scripts.sil.org/OFL 6 - 7 - 8 - ----------------------------------------------------------- 9 - SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 - ----------------------------------------------------------- 11 - 12 - PREAMBLE 13 - The goals of the Open Font License (OFL) are to stimulate worldwide 14 - development of collaborative font projects, to support the font creation 15 - efforts of academic and linguistic communities, and to provide a free and 16 - open framework in which fonts may be shared and improved in partnership 17 - with others. 18 - 19 - The OFL allows the licensed fonts to be used, studied, modified and 20 - redistributed freely as long as they are not sold by themselves. The 21 - fonts, including any derivative works, can be bundled, embedded, 22 - redistributed and/or sold with any software provided that any reserved 23 - names are not used by derivative works. The fonts and derivatives, 24 - however, cannot be released under any other type of license. The 25 - requirement for fonts to remain under this license does not apply 26 - to any document created using the fonts or their derivatives. 27 - 28 - DEFINITIONS 29 - "Font Software" refers to the set of files released by the Copyright 30 - Holder(s) under this license and clearly marked as such. This may 31 - include source files, build scripts and documentation. 32 - 33 - "Reserved Font Name" refers to any names specified as such after the 34 - copyright statement(s). 35 - 36 - "Original Version" refers to the collection of Font Software components as 37 - distributed by the Copyright Holder(s). 38 - 39 - "Modified Version" refers to any derivative made by adding to, deleting, 40 - or substituting -- in part or in whole -- any of the components of the 41 - Original Version, by changing formats or by porting the Font Software to a 42 - new environment. 43 - 44 - "Author" refers to any designer, engineer, programmer, technical 45 - writer or other person who contributed to the Font Software. 46 - 47 - PERMISSION & CONDITIONS 48 - Permission is hereby granted, free of charge, to any person obtaining 49 - a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 - redistribute, and sell modified and unmodified copies of the Font 51 - Software, subject to the following conditions: 52 - 53 - 1) Neither the Font Software nor any of its individual components, 54 - in Original or Modified Versions, may be sold by itself. 55 - 56 - 2) Original or Modified Versions of the Font Software may be bundled, 57 - redistributed and/or sold with any software, provided that each copy 58 - contains the above copyright notice and this license. These can be 59 - included either as stand-alone text files, human-readable headers or 60 - in the appropriate machine-readable metadata fields within text or 61 - binary files as long as those fields can be easily viewed by the user. 62 - 63 - 3) No Modified Version of the Font Software may use the Reserved Font 64 - Name(s) unless explicit written permission is granted by the corresponding 65 - Copyright Holder. This restriction only applies to the primary font name as 66 - presented to the users. 67 - 68 - 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 - Software shall not be used to promote, endorse or advertise any 70 - Modified Version, except to acknowledge the contribution(s) of the 71 - Copyright Holder(s) and the Author(s) or with their explicit written 72 - permission. 73 - 74 - 5) The Font Software, modified or unmodified, in part or in whole, 75 - must be distributed entirely under this license, and must not be 76 - distributed under any other license. The requirement for fonts to 77 - remain under this license does not apply to any document created 78 - using the Font Software. 79 - 80 - TERMINATION 81 - This license becomes null and void if any of the above conditions are 82 - not met. 83 - 84 - DISCLAIMER 85 - THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 - OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 - COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 - INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 - DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 - FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 - OTHER DEALINGS IN THE FONT SOFTWARE.
-8
src/fonts/font-face.css
··· 1 - @font-face { 2 - font-family: "Urbanist"; 3 - /* Use a relative path to the local font file in `url()`. */ 4 - src: url("./urbanist-latin-ext-600-normal.ttf") format("opentype"); 5 - font-weight: 600; 6 - font-style: normal; 7 - font-display: swap; 8 - }
src/fonts/urbanist-latin-ext-600-normal.ttf

This is a binary file and will not be displayed.

+110 -5
src/styles/starlight.css
··· 1 1 :root { 2 - /* Font settings */ 3 - --sl-font: 'Urbanis', sans-serif; 4 - --sl-font-heading: 'Urbanist', sans-serif; 2 + --sl-font: system-ui, sans-serif; 3 + --sl-font-heading: 'polymath-display', sans-serif; 5 4 6 - /* Ensure these are set for both light and dark themes */ 7 - --sl-color-text-heading: var(--sl-color-text); 5 + --sl-color-text-heading: var(--heading-fill); 6 + --sl-text-h1: var(--sl-text-6xl); 7 + --sl-color-accent-hsl: 311 100% 50%; 8 + --sl-color-accent-low: hsl(311 100% 50% / 0.5); 9 + --sl-color-accent: hsl(311 100% 50% / 0.9); 10 + --sl-color-accent-high: hsl(311 100% 50% / 1); 11 + 12 + --sl-color-bg: var(--container-fill); 13 + --sl-color-bg-nav: var(--container-fill); 14 + --sl-color-bg-sidebar: var(--container-fill); 15 + --sl-color-bg-inline-code: var(--surface-inner-fill); 16 + --sl-color-bg-accent: var(--sl-color-accent-high); 17 + --sl-color-hairline-light: var(--surface-border-fill); 18 + --sl-color-hairline: var(--surface-border-fill); 19 + --sl-color-hairline-shade: var(--surface-border-fill); 20 + 21 + --sl-icon-color: var(--color-white-90); 22 + } 23 + 24 + :is(h1, h2, h3, h4, h5, h6) { 25 + font-feature-settings: 'ss03' on, 'ss12' on; 26 + } 27 + 28 + :is(h1, .starlight-sidebar-topics) { 29 + font-feature-settings: 'ss01' on, 'ss03' on, 'ss09' on, 'ss10' on, 'ss12' on; 30 + font-family: var(--sl-font-heading); 31 + } 32 + :is(.starlight-sidebar-topics li) { 33 + font: inherit; 34 + font-feature-settings: inherit; 35 + text-transform: lowercase; 36 + } 37 + 38 + :is(h1) { 39 + --c-border: var(--color-white-100); 40 + --c-start: var(--color-white-90); 41 + --c-end: var(--color-white-50); 42 + --s-border: 1px; 43 + -webkit-text-stroke-color: var(--c-border); 44 + -webkit-text-stroke-width: var(--s-border); 45 + background-clip: text; 46 + -webkit-background-clip: text; 47 + -webkit-text-fill-color: transparent; 48 + background-image: linear-gradient(to right, var(--c-start), var(--c-end)); 49 + letter-spacing: 1px; 50 + } 51 + 52 + :is(h2, h3, h4, h5, h6) { 53 + --c-start: var(--color-white-100); 54 + --c-end: var(--color-white-50); 55 + background-clip: text; 56 + -webkit-background-clip: text; 57 + -webkit-text-fill-color: transparent; 58 + background-image: linear-gradient(to right, var(--c-start), var(--c-end)); 8 59 } 9 60 10 61 /* Target specific elements */ ··· 15 66 font-family: var(--sl-font-heading); 16 67 } 17 68 69 + a.site-title { 70 + color: white; 71 + } 72 + 73 + starlight-toc nav > ul { 74 + --c-start: var(--color-white-50); 75 + --c-end: var(--color-white-10); 76 + border-left: 1px solid transparent; 77 + position: relative; 78 + &::before { 79 + content: ''; 80 + position: absolute; 81 + top: 0; 82 + bottom: 0; 83 + left: 0; 84 + width: var(--border-050); 85 + background: linear-gradient(to bottom, var(--c-start), var(--c-end)); 86 + } 87 + a { 88 + border-left: 2px solid transparent; 89 + border-radius: 0; 90 + } 91 + [aria-current] { 92 + border-left-color: var(--sl-color-accent); 93 + } 94 + } 95 + 18 96 p, 19 97 li, 20 98 td, ··· 32 110 background-color: #181818; 33 111 color: white; 34 112 } 113 + 114 + .sidebar-pane { 115 + a { 116 + border: 1px solid transparent; 117 + } 118 + [aria-current="page"] { 119 + --c-start: hsl(var(--sl-color-accent-hsl) / 5%); 120 + --c-end: hsl(var(--sl-color-accent-hsl) / 30%); 121 + color: var(--sl-color-accent); 122 + background: linear-gradient(to right, var(--c-start), var(--c-end)); 123 + border-color: var(--sl-color-accent); 124 + 125 + &:hover { 126 + --c-start: hsl(var(--sl-color-accent-hsl) / 100%); 127 + --c-end: hsl(var(--sl-color-accent-hsl) / 50%); 128 + border-color: var(--sl-color-accent); 129 + color: var(--color-gray-100); 130 + background: linear-gradient(to right, var(--c-start), var(--c-end)); 131 + } 132 + } 133 + } 134 + 135 + starlight-menu-button button, 136 + mobile-starlight-toc nav { 137 + top: unset; 138 + bottom: 0; 139 + }
+151
src/styles/tint.css
··· 1 + :root { 2 + --space-0: 0px; 3 + --space-025: 1px; 4 + --space-050: 2px; 5 + --space-100: 4px; 6 + --space-150: 6px; 7 + --space-200: 8px; 8 + --space-300: 12px; 9 + --space-400: 16px; 10 + --space-500: 20px; 11 + --space-600: 24px; 12 + --space-800: 32px; 13 + --space-1000: 40px; 14 + --space-1200: 48px; 15 + --space-1600: 64px; 16 + --space-2000: 80px; 17 + --space-2400: 96px; 18 + --space-2800: 112px; 19 + --space-3200: 128px; 20 + 21 + --radius-full: 9999px; 22 + --radius-750: 30px; 23 + --radius-500: 20px; 24 + --radius-400: 16px; 25 + --radius-300: 12px; 26 + --radius-200: 8px; 27 + --radius-150: 6px; 28 + --radius-100: 4px; 29 + --radius-050: 2px; 30 + --radius-0: 0px; 31 + 32 + --border-0: 0px; 33 + --border-050: 0.5px; 34 + --border-100: 1px; 35 + --border-200: 2px; 36 + --border-400: 4px; 37 + 38 + --color-gray-100: #0a0a0d; 39 + --color-gray-90: #191b23; 40 + --color-gray-80: #2b2e38; 41 + --color-gray-70: #484a54; 42 + --color-gray-60: #6c6e79; 43 + --color-gray-50: #8a8e9b; 44 + --color-gray-40: #a9abb6; 45 + --color-gray-30: #c4c7cf; 46 + --color-gray-20: #f4f5f9; 47 + --color-gray-10: #ffffff; 48 + 49 + --color-white-100: #ffffff; 50 + --color-white-90: rgba(255 255 255 / 0.9); 51 + --color-white-50: rgba(255 255 255 / 0.5); 52 + --color-white-10: rgba(255 255 255 / 0.1); 53 + --color-white-0: rgba(255 255 255 / 0); 54 + 55 + --color-pink-rgb: 255 0 210; 56 + --color-pink-100: rgba(var(--color-pink-rgb) / 1); 57 + --color-pink-90: rgba(var(--color-pink-rgb) / 0.9); 58 + --color-pink-50: rgba(var(--color-pink-rgb) / 0.5); 59 + --color-pink-10: rgba(var(--color-pink-rgb) / 0.1); 60 + --color-pink-0: rgba(var(--color-pink-rgb) / 0); 61 + 62 + --color-green-rgb: 7 245 63; 63 + --color-green-100: rgba(var(--color-green-rgb) / 1); 64 + --color-green-90: rgba(var(--color-green-rgb) / 0.9); 65 + --color-green-50: rgba(var(--color-green-rgb) / 0.5); 66 + --color-green-10: rgba(var(--color-green-rgb) / 0.1); 67 + --color-green-0: rgba(var(--color-green-rgb) / 0); 68 + 69 + --color-yellow-rgb: 232 207 39; 70 + --color-yellow-100: rgba(var(--color-yellow-rgb) / 1); 71 + --color-yellow-90: rgba(var(--color-yellow-rgb) / 0.9); 72 + --color-yellow-50: rgba(var(--color-yellow-rgb) / 0.5); 73 + --color-yellow-10: rgba(var(--color-yellow-rgb) / 0.1); 74 + --color-yellow-0: rgba(var(--color-yellow-rgb) / 0); 75 + 76 + --color-cyan-rgb: 0 229 255; 77 + --color-cyan-100: rgba(var(--color-cyan-rgb) / 1); 78 + --color-cyan-90: rgba(var(--color-cyan-rgb) / 0.9); 79 + --color-cyan-50: rgba(var(--color-cyan-rgb) / 0.5); 80 + --color-cyan-10: rgba(var(--color-cyan-rgb) / 0.1); 81 + --color-cyan-0: rgba(var(--color-cyan-rgb) / 0); 82 + 83 + --color-red-rgb: 255 62 71; 84 + --color-red-100: rgba(var(--color-red-rgb) / 1); 85 + --color-red-90: rgba(var(--color-red-rgb) / 0.9); 86 + --color-red-50: rgba(var(--color-red-rgb) / 0.5); 87 + --color-red-10: rgba(var(--color-red-rgb) / 0.1); 88 + --color-red-0: rgba(var(--color-red-rgb) / 0); 89 + 90 + --color-blue-rgb: 5 75 255; 91 + --color-blue-100: rgba(var(--color-blue-rgb) / 1); 92 + --color-blue-90: rgba(var(--color-blue-rgb) / 0.9); 93 + --color-blue-50: rgba(var(--color-blue-rgb) / 0.5); 94 + --color-blue-10: rgba(var(--color-blue-rgb) / 0.1); 95 + --color-blue-0: rgba(var(--color-blue-rgb) / 0); 96 + 97 + --color-purple-rgb: 125 10 255; 98 + --color-purple-100: rgba(var(--color-purple-rgb) / 1); 99 + --color-purple-90: rgba(var(--color-purple-rgb) / 0.9); 100 + --color-purple-50: rgba(var(--color-purple-rgb) / 0.5); 101 + --color-purple-10: rgba(var(--color-purple-rgb) / 0.1); 102 + --color-purple-0: rgba(var(--color-purple-rgb) / 0); 103 + 104 + --color-orange-rgb: 255 145 40; 105 + --color-orange-100: rgba(var(--color-orange-rgb) / 1); 106 + --color-orange-90: rgba(var(--color-orange-rgb) / 0.9); 107 + --color-orange-50: rgba(var(--color-orange-rgb) / 0.5); 108 + --color-orange-10: rgba(var(--color-orange-rgb) / 0.1); 109 + --color-orange-0: rgba(var(--color-orange-rgb) / 0); 110 + 111 + --surface-fill: var(--color-gray-20); 112 + --surface-highlight: var(--container-fill); 113 + --surface-border-highlight: var(--color-gray-50); 114 + --surface-border-fill: var(--color-gray-30); 115 + --container-fill: var(--color-white-100); 116 + --surface-inner-fill: var(--color-gray-30); 117 + --surface-inner-highlight: var(--color-gray-20); 118 + --heading-fill: var(--color-gray-90); 119 + --heading-muted: var(--color-gray-70); 120 + --heading-highlight: var(--color-gray-100); 121 + --separator-fill: var(--color-gray-90); 122 + --separator-highlight: var(--color-gray-70); 123 + --accent-base: var(--color-pink); 124 + --accent-fill: var(--color-pink-90); 125 + --accent-muted: var(--color-pink-50); 126 + --accent-highlight: var(--color-pink-100); 127 + 128 + 129 + --space-button-group-gap: var(--space-200); 130 + --space-card-gap: var(--space-400); 131 + --space-card-padding: var(--space-400); 132 + --space-cell-padding: var(--space-150); 133 + } 134 + 135 + :root[data-theme=dark] { 136 + --surface-border-highlight: var(--color-gray-70); 137 + --surface-border-fill: var(--color-gray-80); 138 + --surface-fill: var(--color-gray-80); 139 + --surface-highlight: var(--container-fill); 140 + --container-fill: var(--color-gray-100); 141 + --surface-inner-fill: var(--color-gray-90); 142 + --surface-inner-highlight: var(--color-gray-90); 143 + --heading-fill: var(--color-gray-20); 144 + --heading-muted: var(--color-gray-40); 145 + --heading-highlight: var(--color-white-100); 146 + --separator-fill: var(--color-gray-20); 147 + --separator-highlight: var(--color-gray-40); 148 + --accent-fill: var(--color-pink-100); 149 + --accent-muted: var(--color-pink-90); 150 + --accent-highlight: var(--color-pink-100); 151 + }