diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..8b2a15d --- /dev/null +++ b/default.nix @@ -0,0 +1,8 @@ +{ + pkgs ? import { inherit system; }, + system ? builtins.currentSystem, + ... +}: +{ + isabelroses-website = pkgs.callPackage ./nix/package.nix { }; +} diff --git a/flake.lock b/flake.lock index a7915e9..5b17c7b 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 315532800, - "narHash": "sha256-lBeOsDwcj+7pQSymh++kul9ZV7shaHxmA9A2a912XWU=", - "rev": "84c256e42600cb0fdf25763b48d28df2f25a0c8b", + "lastModified": 1765457389, + "narHash": "sha256-Ujl7ZJ+kE6T+1cZV0njRFifW9kQFikYD+17RFTKkl6I=", + "rev": "f997fa0f94fb1ce55bccb97f60d41412ae8fde4c", "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre851662.84c256e42600/nixexprs.tar.xz?rev=84c256e42600cb0fdf25763b48d28df2f25a0c8b" + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre910304.f997fa0f94fb/nixexprs.tar.xz?lastModified=1765457389&rev=f997fa0f94fb1ce55bccb97f60d41412ae8fde4c" }, "original": { "type": "tarball", diff --git a/flake.nix b/flake.nix index a367cea..c0874df 100644 --- a/flake.nix +++ b/flake.nix @@ -31,7 +31,7 @@ { packages = forAllSystems (pkgs: { default = self.packages.${pkgs.stdenv.hostPlatform.system}.isabelroses-website; - isabelroses-website = pkgs.callPackage ./nix/default.nix { }; + isabelroses-website = pkgs.callPackage ./nix/package.nix { }; }); devShells = forAllSystems (pkgs: { diff --git a/nix/default.nix b/nix/package.nix similarity index 93% rename from nix/default.nix rename to nix/package.nix index 4bdbc04..5f638f3 100644 --- a/nix/default.nix +++ b/nix/package.nix @@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) pname version src; fetcherVersion = 2; - hash = "sha256-8isbFWIOlJgzK754FU5VEgkhG/WDRuLpNGuKq55SsLY="; + hash = "sha256-0Cly8AhvYie3ppak0fYYCHMcEScxejwZ6VpK6ekALOE="; }; dontUseJustInstall = true; diff --git a/nix/shell.nix b/nix/shell.nix index 0a31e34..25ac535 100644 --- a/nix/shell.nix +++ b/nix/shell.nix @@ -7,7 +7,7 @@ typescript, }: let - mainPkg = callPackage ./default.nix { }; + mainPkg = callPackage ./package.nix { }; in mkShell { inputsFrom = [ mainPkg ]; diff --git a/package.json b/package.json index f1e3709..20ab64e 100644 --- a/package.json +++ b/package.json @@ -14,35 +14,35 @@ "@astrojs/check": "^0.9.6", "@astrojs/sitemap": "^3.6.0", "@astrojs/ts-plugin": "^1.10.6", - "@iconify-json/fa7-brands": "^1.2.0", - "@iconify-json/fa7-solid": "^1.2.2", + "@iconify-json/fa7-brands": "^1.2.1", + "@iconify-json/fa7-solid": "^1.2.3", "@resvg/resvg-js": "^2.6.2", "@tailwindcss/typography": "^0.5.19", - "@tailwindcss/vite": "^4.1.17", + "@tailwindcss/vite": "^4.1.18", "@yeskunall/astro-umami": "0.0.5", - "astro": "^5.16.2", + "astro": "^5.16.5", "astro-compress": "^2.3.8", - "astro-expressive-code": "^0.41.3", + "astro-expressive-code": "^0.41.4", "astro-icon": "^1.1.5", "astro-mail-obfuscation": "^2.3.4", "autoprefixer": "^10.4.22", "feed": "^4.2.2", "markdown-it": "^14.1.0", "mdast-util-to-string": "^4.0.0", - "react": "^19.2.0", + "react": "^19.2.3", "reading-time": "^1.5.0", "reading-time-estimator": "^1.14.0", "sanitize-html": "^2.17.0", "satori": "^0.16.2", "sharp": "^0.34.5", - "tailwindcss": "^4.1.17", + "tailwindcss": "^4.1.18", "typescript": "^5.9.3" }, "devDependencies": { "@types/markdown-it": "^14.1.2", "@types/react": "^19.2.7", "@types/sanitize-html": "^2.16.0", - "prettier": "^3.7.1", + "prettier": "^3.7.4", "prettier-plugin-astro": "^0.14.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a511bb..f8d2029 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@astrojs/check': specifier: ^0.9.6 - version: 0.9.6(prettier-plugin-astro@0.14.1)(prettier@3.7.1)(typescript@5.9.3) + version: 0.9.6(prettier-plugin-astro@0.14.1)(prettier@3.7.4)(typescript@5.9.3) '@astrojs/sitemap': specifier: ^3.6.0 version: 3.6.0 @@ -18,38 +18,38 @@ importers: specifier: ^1.10.6 version: 1.10.6 '@iconify-json/fa7-brands': - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 '@iconify-json/fa7-solid': - specifier: ^1.2.2 - version: 1.2.2 + specifier: ^1.2.3 + version: 1.2.3 '@resvg/resvg-js': specifier: ^2.6.2 version: 2.6.2 '@tailwindcss/typography': specifier: ^0.5.19 - version: 0.5.19(tailwindcss@4.1.17) + version: 0.5.19(tailwindcss@4.1.18) '@tailwindcss/vite': - specifier: ^4.1.17 - version: 4.1.17(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1)) + specifier: ^4.1.18 + version: 4.1.18(vite@6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2)) '@yeskunall/astro-umami': specifier: 0.0.5 - version: 0.0.5(astro@5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1)) + version: 0.0.5(astro@5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2)) astro: - specifier: ^5.16.2 - version: 5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1) + specifier: ^5.16.5 + version: 5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2) astro-compress: specifier: ^2.3.8 - version: 2.3.8(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(sass@1.86.3)(typescript@5.9.3)(yaml@2.8.1) + version: 2.3.8(@types/node@25.0.1)(jiti@2.6.1)(rollup@4.53.3)(sass@1.86.3)(typescript@5.9.3)(yaml@2.8.2) astro-expressive-code: - specifier: ^0.41.3 - version: 0.41.3(astro@5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1)) + specifier: ^0.41.4 + version: 0.41.4(astro@5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2)) astro-icon: specifier: ^1.1.5 version: 1.1.5 astro-mail-obfuscation: specifier: ^2.3.4 - version: 2.3.4(astro@5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1)) + version: 2.3.4(astro@5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2)) autoprefixer: specifier: ^10.4.22 version: 10.4.22(postcss@8.5.6) @@ -63,8 +63,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 react: - specifier: ^19.2.0 - version: 19.2.0 + specifier: ^19.2.3 + version: 19.2.3 reading-time: specifier: ^1.5.0 version: 1.5.0 @@ -81,8 +81,8 @@ importers: specifier: ^0.34.5 version: 0.34.5 tailwindcss: - specifier: ^4.1.17 - version: 4.1.17 + specifier: ^4.1.18 + version: 4.1.18 typescript: specifier: ^5.9.3 version: 5.9.3 @@ -97,8 +97,8 @@ importers: specifier: ^2.16.0 version: 2.16.0 prettier: - specifier: ^3.7.1 - version: 3.7.1 + specifier: ^3.7.4 + version: 3.7.4 prettier-plugin-astro: specifier: ^0.14.1 version: 0.14.1 @@ -123,8 +123,8 @@ packages: '@astrojs/internal-helpers@0.7.5': resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==} - '@astrojs/language-server@2.16.1': - resolution: {integrity: sha512-OzTpyEPeCPLpp0oyeI/fSCBYemlVos0GewCTYglAW+TAJAMR3nRl5nYlf9ESMFy97SlptZCsRdKlQXDvFHJRNQ==} + '@astrojs/language-server@2.16.2': + resolution: {integrity: sha512-J3hVx/mFi3FwEzKf8ExYXQNERogD6RXswtbU+TyrxoXRBiQoBO5ooo7/lRWJ+rlUKUd7+rziMPI9jYB7TRlh0w==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -135,8 +135,8 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@6.3.9': - resolution: {integrity: sha512-hX2cLC/KW74Io1zIbn92kI482j9J7LleBLGCVU9EP3BeH5MVrnFawOnqD0t/q6D1Z+ZNeQG2gNKMslCcO36wng==} + '@astrojs/markdown-remark@6.3.10': + resolution: {integrity: sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==} '@astrojs/prism@3.3.0': resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} @@ -186,9 +186,8 @@ packages: '@emmetio/css-abbreviation@2.1.8': resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} - '@emmetio/css-parser@https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660': - resolution: {tarball: https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660} - version: 0.4.0 + '@emmetio/css-parser@0.4.1': + resolution: {integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==} '@emmetio/html-matcher@1.3.0': resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} @@ -361,23 +360,23 @@ packages: cpu: [x64] os: [win32] - '@expressive-code/core@0.41.3': - resolution: {integrity: sha512-9qzohqU7O0+JwMEEgQhnBPOw5DtsQRBXhW++5fvEywsuX44vCGGof1SL5OvPElvNgaWZ4pFZAFSlkNOkGyLwSQ==} + '@expressive-code/core@0.41.4': + resolution: {integrity: sha512-4eDiyq3hI3vJ0KnwIqonh9evy9p8aNixsf5wwnvDWcoPfYU3LGB6Nkb6WDdYS4z52tODCvN5gMRy1DtRopcxXg==} - '@expressive-code/plugin-frames@0.41.3': - resolution: {integrity: sha512-rFQtmf/3N2CK3Cq/uERweMTYZnBu+CwxBdHuOftEmfA9iBE7gTVvwpbh82P9ZxkPLvc40UMhYt7uNuAZexycRQ==} + '@expressive-code/plugin-frames@0.41.4': + resolution: {integrity: sha512-W9jZW8LsPS8fW5T5CQyXUyyCrMxb7qfl6oxlLZB1rW74qM572Id4CWEXOM/7fFDcd1pW2fUxMoGzJMh0T2Awhg==} - '@expressive-code/plugin-shiki@0.41.3': - resolution: {integrity: sha512-RlTARoopzhFJIOVHLGvuXJ8DCEme/hjV+ZnRJBIxzxsKVpGPW4Oshqg9xGhWTYdHstTsxO663s0cdBLzZj9TQA==} + '@expressive-code/plugin-shiki@0.41.4': + resolution: {integrity: sha512-zOc0tfWISODHnnpfRJyssTvSWVVe+gj08GcFYiR2a6M8fKF1w5CJkpgf7tTvnoUTuVmL1DHRmiQFUnpGjtRGog==} - '@expressive-code/plugin-text-markers@0.41.3': - resolution: {integrity: sha512-SN8tkIzDpA0HLAscEYD2IVrfLiid6qEdE9QLlGVSxO1KEw7qYvjpbNBQjUjMr5/jvTJ7ys6zysU2vLPHE0sb2g==} + '@expressive-code/plugin-text-markers@0.41.4': + resolution: {integrity: sha512-lGqbjtIuiY+UZ+z61kKIJAZtF7H5xoT8lkxANmeoVaat+H47O5A+rr5WLmD45ezprO/NTogxHsaMfqRCuQ4vlw==} - '@iconify-json/fa7-brands@1.2.0': - resolution: {integrity: sha512-OTdHSwRmycgQQXQr7wJQFyD08zj4OxoRfaWhCuI3a9MhbnHJApU4U2Qbp6hP4zicqOmQB9UII9+MA1IDNNLPlQ==} + '@iconify-json/fa7-brands@1.2.1': + resolution: {integrity: sha512-LbOn96p41X63dIdag/vfuYnXQZcKjo0o9XZTzU58/HJOyV1rWb2TwitSgB1xiAcOMwswmvgXQV/+blZc+101dg==} - '@iconify-json/fa7-solid@1.2.2': - resolution: {integrity: sha512-qTvkcYWGtYxAZVfXzSrCvxYhQFsl1iCztZzXJDlD0oGAkmOqcxcvQxRhN984Ssn+ZApG7xPeUVKUV99OALbJFw==} + '@iconify-json/fa7-solid@1.2.3': + resolution: {integrity: sha512-QMpjaoljKlJ33jnwIlvE/BF449AD+aVUe2o46Wl8oKUHCy+M2E4GRM4LvRaGdCOTUSE3VIQlXkqkYBug8WHEVQ==} '@iconify/tools@4.2.0': resolution: {integrity: sha512-WRxPva/ipxYkqZd1+CkEAQmd86dQmrwH0vwK89gmp2Kh2WyyVw57XbPng0NehP3x4V1LzLsXUneP1uMfTMZmUA==} @@ -948,23 +947,23 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@3.17.0': - resolution: {integrity: sha512-/HjeOnbc62C+n33QFNFrAhUlIADKwfuoS50Ht0pxujxP4QjZAlFp5Q+OkDo531SCTzivx5T18khwyBdKoPdkuw==} + '@shikijs/core@3.20.0': + resolution: {integrity: sha512-f2ED7HYV4JEk827mtMDwe/yQ25pRiXZmtHjWF8uzZKuKiEsJR7Ce1nuQ+HhV9FzDcbIo4ObBCD9GPTzNuy9S1g==} - '@shikijs/engine-javascript@3.17.0': - resolution: {integrity: sha512-WwF99xdP8KfuDrIbT4wxyypfhoIxMeeOCp1AiuvzzZ6JT5B3vIuoclL8xOuuydA6LBeeNXUF/XV5zlwwex1jlA==} + '@shikijs/engine-javascript@3.20.0': + resolution: {integrity: sha512-OFx8fHAZuk7I42Z9YAdZ95To6jDePQ9Rnfbw9uSRTSbBhYBp1kEOKv/3jOimcj3VRUKusDYM6DswLauwfhboLg==} - '@shikijs/engine-oniguruma@3.17.0': - resolution: {integrity: sha512-flSbHZAiOZDNTrEbULY8DLWavu/TyVu/E7RChpLB4WvKX4iHMfj80C6Hi3TjIWaQtHOW0KC6kzMcuB5TO1hZ8Q==} + '@shikijs/engine-oniguruma@3.20.0': + resolution: {integrity: sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==} - '@shikijs/langs@3.17.0': - resolution: {integrity: sha512-icmur2n5Ojb+HAiQu6NEcIIJ8oWDFGGEpiqSCe43539Sabpx7Y829WR3QuUW2zjTM4l6V8Sazgb3rrHO2orEAw==} + '@shikijs/langs@3.20.0': + resolution: {integrity: sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==} - '@shikijs/themes@3.17.0': - resolution: {integrity: sha512-/xEizMHLBmMHwtx4JuOkRf3zwhWD2bmG5BRr0IPjpcWpaq4C3mYEuTk/USAEglN0qPrTwEHwKVpSu/y2jhferA==} + '@shikijs/themes@3.20.0': + resolution: {integrity: sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==} - '@shikijs/types@3.17.0': - resolution: {integrity: sha512-wjLVfutYWVUnxAjsWEob98xgyaGv0dTEnMZDruU5mRjVN7szcGOfgO+997W2yR6odp+1PtSBNeSITRRTfUzK/g==} + '@shikijs/types@3.20.0': + resolution: {integrity: sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -981,65 +980,65 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@tailwindcss/node@4.1.17': - resolution: {integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==} + '@tailwindcss/node@4.1.18': + resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} - '@tailwindcss/oxide-android-arm64@4.1.17': - resolution: {integrity: sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==} + '@tailwindcss/oxide-android-arm64@4.1.18': + resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.17': - resolution: {integrity: sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==} + '@tailwindcss/oxide-darwin-arm64@4.1.18': + resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.17': - resolution: {integrity: sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==} + '@tailwindcss/oxide-darwin-x64@4.1.18': + resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.17': - resolution: {integrity: sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==} + '@tailwindcss/oxide-freebsd-x64@4.1.18': + resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17': - resolution: {integrity: sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.17': - resolution: {integrity: sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.17': - resolution: {integrity: sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.17': - resolution: {integrity: sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.17': - resolution: {integrity: sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==} + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.17': - resolution: {integrity: sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==} + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -1050,20 +1049,20 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.17': - resolution: {integrity: sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.17': - resolution: {integrity: sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.17': - resolution: {integrity: sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==} + '@tailwindcss/oxide@4.1.18': + resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} engines: {node: '>= 10'} '@tailwindcss/typography@0.5.19': @@ -1071,8 +1070,8 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@tailwindcss/vite@4.1.17': - resolution: {integrity: sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA==} + '@tailwindcss/vite@4.1.18': + resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 @@ -1125,8 +1124,8 @@ packages: '@types/node@22.13.14': resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==} - '@types/node@24.10.1': - resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} + '@types/node@25.0.1': + resolution: {integrity: sha512-czWPzKIAXucn9PtsttxmumiQ9N0ok9FrBwgRWrwmVLlp86BrMExzvXRLFYRJ+Ex3g6yqj+KuaxfX1JTgV2lpfg==} '@types/react@19.2.7': resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} @@ -1146,25 +1145,25 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@volar/kit@2.4.26': - resolution: {integrity: sha512-shgNg7PbV8SIxxQLOQh5zMr8KV0JvdG9If0MwJb5L1HMrBU91jBxR0ANi2OJPMMme6/l1vIYm4hCaO6W2JaEcQ==} + '@volar/kit@2.4.27': + resolution: {integrity: sha512-ilZoQDMLzqmSsImJRWx4YiZ4FcvvPrPnFVmL6hSsIWB6Bn3qc7k88J9yP32dagrs5Y8EXIlvvD/mAFaiuEOACQ==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.26': - resolution: {integrity: sha512-hH0SMitMxnB43OZpyF1IFPS9bgb2I3bpCh76m2WEK7BE0A0EzpYsRp0CCH2xNKshr7kacU5TQBLYn4zj7CG60A==} + '@volar/language-core@2.4.27': + resolution: {integrity: sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==} - '@volar/language-server@2.4.26': - resolution: {integrity: sha512-Xsyu+VDgM8TyVkQfBz2aIViSEOgH2un0gIJlp0M8rssDDLCqr4ssQzwHOyPf7sT7UIjrlAMnJvRkC/u0mmgtYw==} + '@volar/language-server@2.4.27': + resolution: {integrity: sha512-SymGNkErcHg8GjiG65iQN8sLkhqu1pwKhFySmxeBuYq5xFYagKBW36eiNITXQTdvT0tutI1GXcXdq/FdE/IyjA==} - '@volar/language-service@2.4.26': - resolution: {integrity: sha512-ZBPRR1ytXttSV5X4VPvEQR/glxs+7/4IOJIBCOW3/EJk4z77R4mF2y4wM3fNgOXXZT5h16j3sC5w+LGNkz2VlA==} + '@volar/language-service@2.4.27': + resolution: {integrity: sha512-SxKZ8yLhpWa7Y5e/RDxtNfm7j7xsXp/uf2urijXEffRNpPSmVdfzQrFFy5d7l8PNpZy+bHg+yakmqBPjQN+MOw==} - '@volar/source-map@2.4.26': - resolution: {integrity: sha512-JJw0Tt/kSFsIRmgTQF4JSt81AUSI1aEye5Zl65EeZ8H35JHnTvFGmpDOBn5iOxd48fyGE+ZvZBp5FcgAy/1Qhw==} + '@volar/source-map@2.4.27': + resolution: {integrity: sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==} - '@volar/typescript@2.4.26': - resolution: {integrity: sha512-N87ecLD48Sp6zV9zID/5yuS1+5foj0DfuYGdQ6KHj/IbKvyKv1zNX6VCmnKYwtmHadEO6mFc2EKISiu3RDPAvA==} + '@volar/typescript@2.4.27': + resolution: {integrity: sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg==} '@vscode/emmet-helper@2.11.0': resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} @@ -1232,8 +1231,8 @@ packages: astro-compress@2.3.8: resolution: {integrity: sha512-XajjEtSTJuVRBOrtZ/Siavd4KcH47SEHo0XoZZeYVRF6BODSBqxVdtlfkqYJKM+F4XRUmLDS5ncVTILnQYvvXw==} - astro-expressive-code@0.41.3: - resolution: {integrity: sha512-u+zHMqo/QNLE2eqYRCrK3+XMlKakv33Bzuz+56V1gs8H0y6TZ0hIi3VNbIxeTn51NLn+mJfUV/A0kMNfE4rANw==} + astro-expressive-code@0.41.4: + resolution: {integrity: sha512-LK6EcK/hIHfOSo9zqapzu4CbTC0YBtMOVdvWjInpB2SgYtxiF22aZDqdpejN8J28mWPqPLQwSqdl2lWuirNXmw==} peerDependencies: astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0 @@ -1246,8 +1245,8 @@ packages: peerDependencies: astro: '>=4.0.0' - astro@5.16.2: - resolution: {integrity: sha512-NFXqhB1UgBvleF5rLZ7a31Qzprf1lSch+k8o2XTvsw1d97gxGrjVVeWa8AnZUFtirz84YPW6+5NbLVNzS2y+uQ==} + astro@5.16.5: + resolution: {integrity: sha512-QeuM4xzTR0QuXFDNlGVW0BW7rcquKFIkylaPeM4ufii0/RRiPTYtwxDYVZ3KfiMRuuc+nbLD0214kMKTvz/yvQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -1275,8 +1274,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.31: - resolution: {integrity: sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==} + baseline-browser-mapping@2.9.7: + resolution: {integrity: sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==} hasBin: true bcp-47-match@2.0.3: @@ -1296,8 +1295,8 @@ packages: brotli@1.3.3: resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} - browserslist@4.28.0: - resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1317,8 +1316,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001757: - resolution: {integrity: sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==} + caniuse-lite@1.0.30001760: + resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1524,8 +1523,8 @@ packages: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} engines: {node: '>=18'} - devalue@5.5.0: - resolution: {integrity: sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w==} + devalue@5.6.1: + resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -1564,8 +1563,8 @@ packages: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} - electron-to-chromium@1.5.262: - resolution: {integrity: sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==} + electron-to-chromium@1.5.267: + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} emmet@2.4.11: resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} @@ -1586,8 +1585,8 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + enhanced-resolve@5.18.4: + resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} engines: {node: '>=10.13.0'} entities@4.5.0: @@ -1630,8 +1629,8 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - expressive-code@0.41.3: - resolution: {integrity: sha512-YLnD62jfgBZYrXIPQcJ0a51Afv9h8VlWqEGK9uU2T5nL/5rb8SnA86+7+mgCZe5D34Tff5RNEA5hjNVJYHzrFg==} + expressive-code@0.41.4: + resolution: {integrity: sha512-A9aFLhgqLkL6VSfqYkPqkJVMtA90/bhCLmUO7L3/a1xWISNMcHoCS6d6i8ePwi8HvHr3xRLswHTNt6NheTjdXA==} exsolve@1.0.8: resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} @@ -1755,8 +1754,8 @@ packages: hast-util-to-html@9.0.5: resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} @@ -2234,8 +2233,8 @@ packages: node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - node-mock-http@1.0.3: - resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} @@ -2366,8 +2365,8 @@ packages: resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==} engines: {node: ^14.15.0 || >=16.0.0} - prettier@3.7.1: - resolution: {integrity: sha512-RWKXE4qB3u5Z6yz7omJkjWwmTfLdcbv44jUVHC5NpfXwFGzvpQM798FGv/6WNK879tc+Cn0AAyherCl1KjbyZQ==} + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} engines: {node: '>=14'} hasBin: true @@ -2379,9 +2378,6 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} @@ -2401,8 +2397,8 @@ packages: radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - react@19.2.0: - resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==} + react@19.2.3: + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} readdirp@4.1.2: @@ -2421,11 +2417,11 @@ packages: regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - regex@6.0.1: - resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - rehype-expressive-code@0.41.3: - resolution: {integrity: sha512-8d9Py4c/V6I/Od2VIXFAdpiO2kc0SV2qTJsRAaqSIcM9aruW4ASLNe2kOEo1inXAAkIhpFzAHTc358HKbvpNUg==} + rehype-expressive-code@0.41.4: + resolution: {integrity: sha512-qEUKfh/Aw9VZSUCXnJef41o7lpfnhXmQdXTkP2ZWGibSk4SoJVJ4ra1xN1t+hL1rp0d0GPKZ1CpM3q6bjV0xbg==} rehype-parse@9.0.1: resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} @@ -2537,8 +2533,8 @@ packages: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - shiki@3.17.0: - resolution: {integrity: sha512-lUZfWsyW7czITYTdo/Tb6ZM4VfyXlzmKYBQBjTz+pBzPPkP08RgIt00Ls1Z50Cl3SfwJsue6WbJeF3UgqLVI9Q==} + shiki@3.20.0: + resolution: {integrity: sha512-kgCOlsnyWb+p0WU+01RjkCH+eBVsjL1jOwUYWv0YDWkM2/A46+LDKVs5yZCUXjJG6bj4ndFoAg5iLIIue6dulg==} simple-swizzle@0.2.4: resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} @@ -2611,8 +2607,8 @@ packages: engines: {node: '>=16'} hasBin: true - tailwindcss@4.1.17: - resolution: {integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==} + tailwindcss@4.1.18: + resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} @@ -2803,8 +2799,8 @@ packages: uploadthing: optional: true - update-browserslist-db@1.1.4: - resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + update-browserslist-db@1.2.2: + resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2869,32 +2865,32 @@ packages: vite: optional: true - volar-service-css@0.0.66: - resolution: {integrity: sha512-XrL1V9LEAHnunglYdDf/7shJbQXqKsHB+P69zPmJTqHx6hqvM9GWNbn2h7M0P/oElW8p/MTVHdfjl6C8cxdsBQ==} + volar-service-css@0.0.67: + resolution: {integrity: sha512-zV7C6enn9T9tuvQ6iSUyYEs34iPXR69Pf9YYWpbFYPWzVs22w96BtE8p04XYXbmjU6unt5oFt+iLL77bMB5fhA==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-emmet@0.0.66: - resolution: {integrity: sha512-BMPSpm6mk0DAEVdI2haxYIOt1Z2oaIZvCGtXuRu95x50a5pOSRPjdeHv2uGp1rQsq1Izigx+VR/bZUf2HcSnVQ==} + volar-service-emmet@0.0.67: + resolution: {integrity: sha512-UDBL5x7KptmuJZNCCXMlCndMhFult/tj+9jXq3FH1ZGS1E4M/1U5hC06pg1c6e4kn+vnR6bqmvX0vIhL4f98+A==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-html@0.0.66: - resolution: {integrity: sha512-MKKD2qM8qVZvBKBIugt00+Bm8j1ehgeX7Cm5XwgeEgdW/3PhUEEe/aeTxQGon1WJIGf2MM/cHPjZxPJOQN4WfQ==} + volar-service-html@0.0.67: + resolution: {integrity: sha512-ljREMF79JbcjNvObiv69HK2HCl5UT7WTD10zi6CRFUHMbPfiF2UZ42HGLsEGSzaHGZz6H4IFjSS/qfENRLUviQ==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-prettier@0.0.66: - resolution: {integrity: sha512-CVaQEyfmFWoq3NhNVExoyDKonPqdacmb/07w7OfTZljxLgZpDRygiHAvzBKIcenb7rKtJNHqfQJv99ULOinJBA==} + volar-service-prettier@0.0.67: + resolution: {integrity: sha512-B4KnPJPNWFTkEDa6Fn08i5PpO6T1CecmLLTFZoXz2eI4Fxwba/3nDaaVSsEP7e/vEe+U5YqV9fBzayJT71G5xg==} peerDependencies: '@volar/language-service': ~2.4.0 prettier: ^2.2 || ^3.0 @@ -2904,35 +2900,35 @@ packages: prettier: optional: true - volar-service-typescript-twoslash-queries@0.0.66: - resolution: {integrity: sha512-PA3CyvEaBrkxJcBq+HFdks1TF1oJ8H+jTOTQUurLDRkVjmUFg8bfdya6U/dWfTsPaDSRM4m/2chwgew5zoQXfg==} + volar-service-typescript-twoslash-queries@0.0.67: + resolution: {integrity: sha512-LD2R7WivDYp1SPgZrxx/0222xVTitDjm36oKo5+bfYG5kEgnw+BOPVHdwmvpJKg/RfssfxDI1ouwD4XkEDEfbA==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-typescript@0.0.66: - resolution: {integrity: sha512-8irsfCEf86R1RqPijrU6p5NCqKDNzyJNWKM6ZXmCcJqhebtl7Hr/a0bnlr59AzqkS3Ym4PbbJZs1K/92CXTDsw==} + volar-service-typescript@0.0.67: + resolution: {integrity: sha512-rfQBy36Rm1PU9vLWHk8BYJ4r2j/CI024vocJcH4Nb6K2RTc2Irmw6UOVY5DdGiPRV5r+e10wLMK5njj/EcL8sA==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-yaml@0.0.66: - resolution: {integrity: sha512-q6oTKD6EMEu1ws1FDjRw+cfCF69Gu51IEGM9jVbtmSZS1qQHKxMqlt2+wBInKl2D+xILtjzkWbfkjQyBYQMw7g==} + volar-service-yaml@0.0.67: + resolution: {integrity: sha512-jkdP/RF6wPIXEE3Ktnd81oJPn7aAvnVSiaqQHThC2Hrvo6xd9pEcqtbBUI+YfqVgvcMtXAkbtNO61K2GPhAiuA==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - vscode-css-languageservice@6.3.8: - resolution: {integrity: sha512-dBk/9ullEjIMbfSYAohGpDOisOVU1x2MQHOeU12ohGJQI7+r0PCimBwaa/pWpxl/vH4f7ibrBfxIZY3anGmHKQ==} + vscode-css-languageservice@6.3.9: + resolution: {integrity: sha512-1tLWfp+TDM5ZuVWht3jmaY5y7O6aZmpeXLoHl5bv1QtRsRKt4xYGRMmdJa5Pqx/FTkgRbsna9R+Gn2xE+evVuA==} - vscode-html-languageservice@5.6.0: - resolution: {integrity: sha512-FIVz83oGw2tBkOr8gQPeiREInnineCKGCz3ZD1Pi6opOuX3nSRkc4y4zLLWsuop+6ttYX//XZCI6SLzGhRzLmA==} + vscode-html-languageservice@5.6.1: + resolution: {integrity: sha512-5Mrqy5CLfFZUgkyhNZLA1Ye5g12Cb/v6VM7SxUzZUaRKWMDz4md+y26PrfRTSU0/eQAl3XpO9m2og+GGtDMuaA==} vscode-json-languageservice@4.1.8: resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} @@ -3015,8 +3011,8 @@ packages: engines: {node: '>= 14'} hasBin: true - yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} engines: {node: '>= 14.6'} hasBin: true @@ -3072,9 +3068,9 @@ snapshots: '@antfu/utils@8.1.1': {} - '@astrojs/check@0.9.6(prettier-plugin-astro@0.14.1)(prettier@3.7.1)(typescript@5.9.3)': + '@astrojs/check@0.9.6(prettier-plugin-astro@0.14.1)(prettier@3.7.4)(typescript@5.9.3)': dependencies: - '@astrojs/language-server': 2.16.1(prettier-plugin-astro@0.14.1)(prettier@3.7.1)(typescript@5.9.3) + '@astrojs/language-server': 2.16.2(prettier-plugin-astro@0.14.1)(prettier@3.7.4)(typescript@5.9.3) chokidar: 4.0.3 kleur: 4.1.5 typescript: 5.9.3 @@ -3087,33 +3083,33 @@ snapshots: '@astrojs/internal-helpers@0.7.5': {} - '@astrojs/language-server@2.16.1(prettier-plugin-astro@0.14.1)(prettier@3.7.1)(typescript@5.9.3)': + '@astrojs/language-server@2.16.2(prettier-plugin-astro@0.14.1)(prettier@3.7.4)(typescript@5.9.3)': dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/yaml2ts': 0.2.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@volar/kit': 2.4.26(typescript@5.9.3) - '@volar/language-core': 2.4.26 - '@volar/language-server': 2.4.26 - '@volar/language-service': 2.4.26 + '@volar/kit': 2.4.27(typescript@5.9.3) + '@volar/language-core': 2.4.27 + '@volar/language-server': 2.4.27 + '@volar/language-service': 2.4.27 fast-glob: 3.3.3 muggle-string: 0.4.1 - volar-service-css: 0.0.66(@volar/language-service@2.4.26) - volar-service-emmet: 0.0.66(@volar/language-service@2.4.26) - volar-service-html: 0.0.66(@volar/language-service@2.4.26) - volar-service-prettier: 0.0.66(@volar/language-service@2.4.26)(prettier@3.7.1) - volar-service-typescript: 0.0.66(@volar/language-service@2.4.26) - volar-service-typescript-twoslash-queries: 0.0.66(@volar/language-service@2.4.26) - volar-service-yaml: 0.0.66(@volar/language-service@2.4.26) - vscode-html-languageservice: 5.6.0 + volar-service-css: 0.0.67(@volar/language-service@2.4.27) + volar-service-emmet: 0.0.67(@volar/language-service@2.4.27) + volar-service-html: 0.0.67(@volar/language-service@2.4.27) + volar-service-prettier: 0.0.67(@volar/language-service@2.4.27)(prettier@3.7.4) + volar-service-typescript: 0.0.67(@volar/language-service@2.4.27) + volar-service-typescript-twoslash-queries: 0.0.67(@volar/language-service@2.4.27) + volar-service-yaml: 0.0.67(@volar/language-service@2.4.27) + vscode-html-languageservice: 5.6.1 vscode-uri: 3.1.0 optionalDependencies: - prettier: 3.7.1 + prettier: 3.7.4 prettier-plugin-astro: 0.14.1 transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@6.3.9': + '@astrojs/markdown-remark@6.3.10': dependencies: '@astrojs/internal-helpers': 0.7.5 '@astrojs/prism': 3.3.0 @@ -3129,7 +3125,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - shiki: 3.17.0 + shiki: 3.20.0 smol-toml: 1.5.2 unified: 11.0.5 unist-util-remove-position: 5.0.0 @@ -3166,14 +3162,14 @@ snapshots: '@astrojs/compiler': 2.13.0 '@astrojs/yaml2ts': 0.2.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@volar/language-core': 2.4.26 - '@volar/typescript': 2.4.26 + '@volar/language-core': 2.4.27 + '@volar/typescript': 2.4.27 semver: 7.7.3 vscode-languageserver-textdocument: 1.0.12 '@astrojs/yaml2ts@0.2.2': dependencies: - yaml: 2.8.1 + yaml: 2.8.2 '@babel/helper-string-parser@7.27.1': {} @@ -3202,7 +3198,7 @@ snapshots: dependencies: '@emmetio/scanner': 1.0.4 - '@emmetio/css-parser@https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660': + '@emmetio/css-parser@0.4.1': dependencies: '@emmetio/stream-reader': 2.2.0 '@emmetio/stream-reader-utils': 0.1.0 @@ -3300,7 +3296,7 @@ snapshots: '@esbuild/win32-x64@0.25.12': optional: true - '@expressive-code/core@0.41.3': + '@expressive-code/core@0.41.4': dependencies: '@ctrl/tinycolor': 4.2.0 hast-util-select: 6.0.4 @@ -3312,24 +3308,24 @@ snapshots: unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.2 - '@expressive-code/plugin-frames@0.41.3': + '@expressive-code/plugin-frames@0.41.4': dependencies: - '@expressive-code/core': 0.41.3 + '@expressive-code/core': 0.41.4 - '@expressive-code/plugin-shiki@0.41.3': + '@expressive-code/plugin-shiki@0.41.4': dependencies: - '@expressive-code/core': 0.41.3 - shiki: 3.17.0 + '@expressive-code/core': 0.41.4 + shiki: 3.20.0 - '@expressive-code/plugin-text-markers@0.41.3': + '@expressive-code/plugin-text-markers@0.41.4': dependencies: - '@expressive-code/core': 0.41.3 + '@expressive-code/core': 0.41.4 - '@iconify-json/fa7-brands@1.2.0': + '@iconify-json/fa7-brands@1.2.1': dependencies: '@iconify/types': 2.0.0 - '@iconify-json/fa7-solid@1.2.2': + '@iconify-json/fa7-solid@1.2.3': dependencies: '@iconify/types': 2.0.0 @@ -3767,33 +3763,33 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.53.3': optional: true - '@shikijs/core@3.17.0': + '@shikijs/core@3.20.0': dependencies: - '@shikijs/types': 3.17.0 + '@shikijs/types': 3.20.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.17.0': + '@shikijs/engine-javascript@3.20.0': dependencies: - '@shikijs/types': 3.17.0 + '@shikijs/types': 3.20.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.4 - '@shikijs/engine-oniguruma@3.17.0': + '@shikijs/engine-oniguruma@3.20.0': dependencies: - '@shikijs/types': 3.17.0 + '@shikijs/types': 3.20.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.17.0': + '@shikijs/langs@3.20.0': dependencies: - '@shikijs/types': 3.17.0 + '@shikijs/types': 3.20.0 - '@shikijs/themes@3.17.0': + '@shikijs/themes@3.20.0': dependencies: - '@shikijs/types': 3.17.0 + '@shikijs/types': 3.20.0 - '@shikijs/types@3.17.0': + '@shikijs/types@3.20.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -3811,78 +3807,78 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.1.17': + '@tailwindcss/node@4.1.18': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.18.3 + enhanced-resolve: 5.18.4 jiti: 2.6.1 lightningcss: 1.30.2 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.1.17 + tailwindcss: 4.1.18 - '@tailwindcss/oxide-android-arm64@4.1.17': + '@tailwindcss/oxide-android-arm64@4.1.18': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.17': + '@tailwindcss/oxide-darwin-arm64@4.1.18': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.17': + '@tailwindcss/oxide-darwin-x64@4.1.18': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.17': + '@tailwindcss/oxide-freebsd-x64@4.1.18': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.17': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.17': + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.17': + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.17': + '@tailwindcss/oxide-linux-x64-musl@4.1.18': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.17': + '@tailwindcss/oxide-wasm32-wasi@4.1.18': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.17': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.17': + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': optional: true - '@tailwindcss/oxide@4.1.17': + '@tailwindcss/oxide@4.1.18': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.17 - '@tailwindcss/oxide-darwin-arm64': 4.1.17 - '@tailwindcss/oxide-darwin-x64': 4.1.17 - '@tailwindcss/oxide-freebsd-x64': 4.1.17 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.17 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.17 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.17 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.17 - '@tailwindcss/oxide-linux-x64-musl': 4.1.17 - '@tailwindcss/oxide-wasm32-wasi': 4.1.17 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.17 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.17 - - '@tailwindcss/typography@0.5.19(tailwindcss@4.1.17)': + '@tailwindcss/oxide-android-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-x64': 4.1.18 + '@tailwindcss/oxide-freebsd-x64': 4.1.18 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.18 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-x64-musl': 4.1.18 + '@tailwindcss/oxide-wasm32-wasi': 4.1.18 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 + + '@tailwindcss/typography@0.5.19(tailwindcss@4.1.18)': dependencies: postcss-selector-parser: 6.0.10 - tailwindcss: 4.1.17 + tailwindcss: 4.1.18 - '@tailwindcss/vite@4.1.17(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1))': + '@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2))': dependencies: - '@tailwindcss/node': 4.1.17 - '@tailwindcss/oxide': 4.1.17 - tailwindcss: 4.1.17 - vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1) + '@tailwindcss/node': 4.1.18 + '@tailwindcss/oxide': 4.1.18 + tailwindcss: 4.1.18 + vite: 6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2) '@trysound/sax@0.2.0': {} @@ -3900,7 +3896,7 @@ snapshots: '@types/fontkit@2.0.8': dependencies: - '@types/node': 24.10.1 + '@types/node': 25.0.1 '@types/hast@3.0.4': dependencies: @@ -3933,7 +3929,7 @@ snapshots: dependencies: undici-types: 6.20.0 - '@types/node@24.10.1': + '@types/node@25.0.1': dependencies: undici-types: 7.16.0 @@ -3953,29 +3949,29 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.10.1 + '@types/node': 25.0.1 optional: true '@ungap/structured-clone@1.3.0': {} - '@volar/kit@2.4.26(typescript@5.9.3)': + '@volar/kit@2.4.27(typescript@5.9.3)': dependencies: - '@volar/language-service': 2.4.26 - '@volar/typescript': 2.4.26 + '@volar/language-service': 2.4.27 + '@volar/typescript': 2.4.27 typesafe-path: 0.2.2 typescript: 5.9.3 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/language-core@2.4.26': + '@volar/language-core@2.4.27': dependencies: - '@volar/source-map': 2.4.26 + '@volar/source-map': 2.4.27 - '@volar/language-server@2.4.26': + '@volar/language-server@2.4.27': dependencies: - '@volar/language-core': 2.4.26 - '@volar/language-service': 2.4.26 - '@volar/typescript': 2.4.26 + '@volar/language-core': 2.4.27 + '@volar/language-service': 2.4.27 + '@volar/typescript': 2.4.27 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -3983,18 +3979,18 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/language-service@2.4.26': + '@volar/language-service@2.4.27': dependencies: - '@volar/language-core': 2.4.26 + '@volar/language-core': 2.4.27 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 - '@volar/source-map@2.4.26': {} + '@volar/source-map@2.4.27': {} - '@volar/typescript@2.4.26': + '@volar/typescript@2.4.27': dependencies: - '@volar/language-core': 2.4.26 + '@volar/language-core': 2.4.27 path-browserify: 1.0.1 vscode-uri: 3.1.0 @@ -4008,9 +4004,9 @@ snapshots: '@vscode/l10n@0.0.18': {} - '@yeskunall/astro-umami@0.0.5(astro@5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1))': + '@yeskunall/astro-umami@0.0.5(astro@5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2))': dependencies: - astro: 5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1) + astro: 5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2) acorn@8.15.0: {} @@ -4052,12 +4048,12 @@ snapshots: array-iterate@2.0.1: {} - astro-compress@2.3.8(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(sass@1.86.3)(typescript@5.9.3)(yaml@2.8.1): + astro-compress@2.3.8(@types/node@25.0.1)(jiti@2.6.1)(rollup@4.53.3)(sass@1.86.3)(typescript@5.9.3)(yaml@2.8.2): dependencies: '@playform/pipe': 0.1.3 '@types/csso': 5.0.4 '@types/html-minifier-terser': 7.0.2 - astro: 5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.29.3)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1) + astro: 5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.29.3)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2) commander: 13.1.0 csso: 5.0.5 deepmerge-ts: 7.1.5 @@ -4101,10 +4097,10 @@ snapshots: - uploadthing - yaml - astro-expressive-code@0.41.3(astro@5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1)): + astro-expressive-code@0.41.4(astro@5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2)): dependencies: - astro: 5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1) - rehype-expressive-code: 0.41.3 + astro: 5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2) + rehype-expressive-code: 0.41.4 astro-icon@1.1.5: dependencies: @@ -4114,18 +4110,18 @@ snapshots: transitivePeerDependencies: - supports-color - astro-mail-obfuscation@2.3.4(astro@5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1)): + astro-mail-obfuscation@2.3.4(astro@5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2)): dependencies: - astro: 5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1) + astro: 5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2) cheerio: 1.1.2 globby: 14.1.0 p-limit: 6.2.0 - astro@5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.29.3)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1): + astro@5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.29.3)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/internal-helpers': 0.7.5 - '@astrojs/markdown-remark': 6.3.9 + '@astrojs/markdown-remark': 6.3.10 '@astrojs/telemetry': 3.3.0 '@capsizecss/unpack': 3.0.1 '@oslojs/encoding': 1.1.0 @@ -4141,7 +4137,7 @@ snapshots: cssesc: 3.0.0 debug: 4.4.3 deterministic-object-hash: 2.0.2 - devalue: 5.5.0 + devalue: 5.6.1 diff: 5.2.0 dlv: 1.1.3 dset: 3.1.4 @@ -4167,7 +4163,7 @@ snapshots: prompts: 2.4.2 rehype: 13.0.2 semver: 7.7.3 - shiki: 3.17.0 + shiki: 3.20.0 smol-toml: 1.5.2 svgo: 4.0.0 tinyexec: 1.0.2 @@ -4178,8 +4174,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.17.3 vfile: 6.0.3 - vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.29.3)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1) - vitefu: 1.1.1(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1)) + vite: 6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.29.3)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2) + vitefu: 1.1.1(vite@6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -4223,11 +4219,11 @@ snapshots: - uploadthing - yaml - astro@5.16.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.1): + astro@5.16.5(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(sass@1.86.3)(terser@5.39.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/internal-helpers': 0.7.5 - '@astrojs/markdown-remark': 6.3.9 + '@astrojs/markdown-remark': 6.3.10 '@astrojs/telemetry': 3.3.0 '@capsizecss/unpack': 3.0.1 '@oslojs/encoding': 1.1.0 @@ -4243,7 +4239,7 @@ snapshots: cssesc: 3.0.0 debug: 4.4.3 deterministic-object-hash: 2.0.2 - devalue: 5.5.0 + devalue: 5.6.1 diff: 5.2.0 dlv: 1.1.3 dset: 3.1.4 @@ -4269,7 +4265,7 @@ snapshots: prompts: 2.4.2 rehype: 13.0.2 semver: 7.7.3 - shiki: 3.17.0 + shiki: 3.20.0 smol-toml: 1.5.2 svgo: 4.0.0 tinyexec: 1.0.2 @@ -4280,8 +4276,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.17.3 vfile: 6.0.3 - vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1) - vitefu: 1.1.1(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1)) + vite: 6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2) + vitefu: 1.1.1(vite@6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -4327,8 +4323,8 @@ snapshots: autoprefixer@10.4.22(postcss@8.5.6): dependencies: - browserslist: 4.28.0 - caniuse-lite: 1.0.30001757 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001760 fraction.js: 5.3.4 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -4345,7 +4341,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.31: {} + baseline-browser-mapping@2.9.7: {} bcp-47-match@2.0.3: {} @@ -4370,13 +4366,13 @@ snapshots: dependencies: base64-js: 1.5.1 - browserslist@4.28.0: + browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.8.31 - caniuse-lite: 1.0.30001757 - electron-to-chromium: 1.5.262 + baseline-browser-mapping: 2.9.7 + caniuse-lite: 1.0.30001760 + electron-to-chromium: 1.5.267 node-releases: 2.0.27 - update-browserslist-db: 1.1.4(browserslist@4.28.0) + update-browserslist-db: 1.2.2(browserslist@4.28.1) buffer-crc32@0.2.13: {} @@ -4391,7 +4387,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001757: {} + caniuse-lite@1.0.30001760: {} ccount@2.0.1: {} @@ -4568,7 +4564,7 @@ snapshots: dependencies: base-64: 1.0.0 - devalue@5.5.0: {} + devalue@5.6.1: {} devlop@1.1.0: dependencies: @@ -4607,7 +4603,7 @@ snapshots: dset@3.1.4: {} - electron-to-chromium@1.5.262: {} + electron-to-chromium@1.5.267: {} emmet@2.4.11: dependencies: @@ -4629,7 +4625,7 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.18.3: + enhanced-resolve@5.18.4: dependencies: graceful-fs: 4.2.11 tapable: 2.3.0 @@ -4685,12 +4681,12 @@ snapshots: eventemitter3@5.0.1: {} - expressive-code@0.41.3: + expressive-code@0.41.4: dependencies: - '@expressive-code/core': 0.41.3 - '@expressive-code/plugin-frames': 0.41.3 - '@expressive-code/plugin-shiki': 0.41.3 - '@expressive-code/plugin-text-markers': 0.41.3 + '@expressive-code/core': 0.41.4 + '@expressive-code/plugin-frames': 0.41.4 + '@expressive-code/plugin-shiki': 0.41.4 + '@expressive-code/plugin-text-markers': 0.41.4 exsolve@1.0.8: {} @@ -4798,7 +4794,7 @@ snapshots: defu: 6.1.4 destr: 2.0.5 iron-webcrypto: 1.2.1 - node-mock-http: 1.0.3 + node-mock-http: 1.0.4 radix3: 1.1.2 ufo: 1.6.1 uncrypto: 0.1.3 @@ -4841,7 +4837,7 @@ snapshots: '@types/unist': 3.0.3 '@ungap/structured-clone': 1.3.0 hast-util-from-parse5: 8.0.3 - hast-util-to-parse5: 8.0.0 + hast-util-to-parse5: 8.0.1 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.1 parse5: 7.3.0 @@ -4883,12 +4879,12 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-parse5@8.0.0: + hast-util-to-parse5@8.0.1: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 6.5.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -5508,7 +5504,7 @@ snapshots: node-fetch-native@1.6.7: {} - node-mock-http@1.0.3: {} + node-mock-http@1.0.4: {} node-releases@2.0.27: {} @@ -5537,7 +5533,7 @@ snapshots: oniguruma-to-es@4.3.4: dependencies: oniguruma-parser: 0.12.1 - regex: 6.0.1 + regex: 6.1.0 regex-recursion: 6.0.2 p-limit@6.2.0: @@ -5648,10 +5644,10 @@ snapshots: prettier-plugin-astro@0.14.1: dependencies: '@astrojs/compiler': 2.13.0 - prettier: 3.7.1 + prettier: 3.7.4 sass-formatter: 0.7.9 - prettier@3.7.1: {} + prettier@3.7.4: {} prismjs@1.30.0: {} @@ -5660,8 +5656,6 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - property-information@6.5.0: {} - property-information@7.1.0: {} pump@3.0.3: @@ -5677,7 +5671,7 @@ snapshots: radix3@1.1.2: {} - react@19.2.0: {} + react@19.2.3: {} readdirp@4.1.2: {} @@ -5693,13 +5687,13 @@ snapshots: regex-utilities@2.3.0: {} - regex@6.0.1: + regex@6.1.0: dependencies: regex-utilities: 2.3.0 - rehype-expressive-code@0.41.3: + rehype-expressive-code@0.41.4: dependencies: - expressive-code: 0.41.3 + expressive-code: 0.41.4 rehype-parse@9.0.1: dependencies: @@ -5939,14 +5933,14 @@ snapshots: '@img/sharp-win32-ia32': 0.34.5 '@img/sharp-win32-x64': 0.34.5 - shiki@3.17.0: + shiki@3.20.0: dependencies: - '@shikijs/core': 3.17.0 - '@shikijs/engine-javascript': 3.17.0 - '@shikijs/engine-oniguruma': 3.17.0 - '@shikijs/langs': 3.17.0 - '@shikijs/themes': 3.17.0 - '@shikijs/types': 3.17.0 + '@shikijs/core': 3.20.0 + '@shikijs/engine-javascript': 3.20.0 + '@shikijs/engine-oniguruma': 3.20.0 + '@shikijs/langs': 3.20.0 + '@shikijs/themes': 3.20.0 + '@shikijs/types': 3.20.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -6031,7 +6025,7 @@ snapshots: picocolors: 1.1.1 sax: 1.4.3 - tailwindcss@4.1.17: {} + tailwindcss@4.1.18: {} tapable@2.3.0: {} @@ -6178,9 +6172,9 @@ snapshots: ofetch: 1.5.1 ufo: 1.6.1 - update-browserslist-db@1.1.4(browserslist@4.28.0): + update-browserslist-db@1.2.2(browserslist@4.28.1): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -6201,7 +6195,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.29.3)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1): + vite@6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.29.3)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) @@ -6210,15 +6204,15 @@ snapshots: rollup: 4.53.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.10.1 + '@types/node': 25.0.1 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.29.3 sass: 1.86.3 terser: 5.39.0 - yaml: 2.8.1 + yaml: 2.8.2 - vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1): + vite@6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) @@ -6227,57 +6221,57 @@ snapshots: rollup: 4.53.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.10.1 + '@types/node': 25.0.1 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 sass: 1.86.3 terser: 5.39.0 - yaml: 2.8.1 + yaml: 2.8.2 - vitefu@1.1.1(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1)): + vitefu@1.1.1(vite@6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2)): optionalDependencies: - vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.1) + vite: 6.4.1(@types/node@25.0.1)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.86.3)(terser@5.39.0)(yaml@2.8.2) - volar-service-css@0.0.66(@volar/language-service@2.4.26): + volar-service-css@0.0.67(@volar/language-service@2.4.27): dependencies: - vscode-css-languageservice: 6.3.8 + vscode-css-languageservice: 6.3.9 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.26 + '@volar/language-service': 2.4.27 - volar-service-emmet@0.0.66(@volar/language-service@2.4.26): + volar-service-emmet@0.0.67(@volar/language-service@2.4.27): dependencies: - '@emmetio/css-parser': https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660 + '@emmetio/css-parser': 0.4.1 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.11.0 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.26 + '@volar/language-service': 2.4.27 - volar-service-html@0.0.66(@volar/language-service@2.4.26): + volar-service-html@0.0.67(@volar/language-service@2.4.27): dependencies: - vscode-html-languageservice: 5.6.0 + vscode-html-languageservice: 5.6.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.26 + '@volar/language-service': 2.4.27 - volar-service-prettier@0.0.66(@volar/language-service@2.4.26)(prettier@3.7.1): + volar-service-prettier@0.0.67(@volar/language-service@2.4.27)(prettier@3.7.4): dependencies: vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.26 - prettier: 3.7.1 + '@volar/language-service': 2.4.27 + prettier: 3.7.4 - volar-service-typescript-twoslash-queries@0.0.66(@volar/language-service@2.4.26): + volar-service-typescript-twoslash-queries@0.0.67(@volar/language-service@2.4.27): dependencies: vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.26 + '@volar/language-service': 2.4.27 - volar-service-typescript@0.0.66(@volar/language-service@2.4.26): + volar-service-typescript@0.0.67(@volar/language-service@2.4.27): dependencies: path-browserify: 1.0.1 semver: 7.7.3 @@ -6286,23 +6280,23 @@ snapshots: vscode-nls: 5.2.0 vscode-uri: 3.1.0 optionalDependencies: - '@volar/language-service': 2.4.26 + '@volar/language-service': 2.4.27 - volar-service-yaml@0.0.66(@volar/language-service@2.4.26): + volar-service-yaml@0.0.67(@volar/language-service@2.4.27): dependencies: vscode-uri: 3.1.0 yaml-language-server: 1.19.2 optionalDependencies: - '@volar/language-service': 2.4.26 + '@volar/language-service': 2.4.27 - vscode-css-languageservice@6.3.8: + vscode-css-languageservice@6.3.9: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-uri: 3.1.0 - vscode-html-languageservice@5.6.0: + vscode-html-languageservice@5.6.1: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 @@ -6380,7 +6374,7 @@ snapshots: ajv: 8.17.1 ajv-draft-04: 1.0.0(ajv@8.17.1) lodash: 4.17.21 - prettier: 3.7.1 + prettier: 3.7.4 request-light: 0.5.8 vscode-json-languageservice: 4.1.8 vscode-languageserver: 9.0.1 @@ -6391,7 +6385,7 @@ snapshots: yaml@2.7.1: {} - yaml@2.8.1: {} + yaml@2.8.2: {} yargs-parser@21.1.1: {} diff --git a/src/components/BackLink.astro b/src/components/BackLink.astro new file mode 100644 index 0000000..a3b643f --- /dev/null +++ b/src/components/BackLink.astro @@ -0,0 +1,15 @@ +--- +interface Props { + href: string; + label?: string; +} + +const { href, label = "back home" } = Astro.props; +--- + + + ← {label} + diff --git a/src/components/MusicPlayer.astro b/src/components/MusicPlayer.astro deleted file mode 100644 index f6d6fd2..0000000 --- a/src/components/MusicPlayer.astro +++ /dev/null @@ -1,125 +0,0 @@ ---- -import { type CollectionEntry } from "astro:content"; -import { Icon } from "astro-icon/components"; -import { Image } from "astro:assets"; -import Song from "@components/Song.astro"; -import me from "@assets/me.webp"; - -interface Props { - isPlaying?: boolean; - posts?: CollectionEntry<"blog">[]; - nowPlaying: string; - playPercent: number; - playPositon: string; - playLength: string; - sectionClass?: string; -} - -const { - isPlaying = false, - posts, - nowPlaying, - playPercent, - playPositon, - playLength, - sectionClass, -} = Astro.props as Props; ---- - -
-
- isabel roses - - { - posts && ( - - ) - } -
- -
-
-

- {nowPlaying} -

-

isabel roses

-
- -
-
-
-
-
-
- {playPositon} - {playLength} -
-
- -
- - -
- - { - isPlaying ? ( - - ) : ( - - ) - } - - -
- - -
-
-
diff --git a/src/components/NavCard.astro b/src/components/NavCard.astro new file mode 100644 index 0000000..1684cad --- /dev/null +++ b/src/components/NavCard.astro @@ -0,0 +1,19 @@ +--- +import { Icon } from "astro-icon/components"; + +interface Props { + href: string; + label: string; + icon: string; +} + +const { href, label, icon } = Astro.props; +--- + + + + {label} + diff --git a/src/components/PageHeader.astro b/src/components/PageHeader.astro new file mode 100644 index 0000000..7cfbe7d --- /dev/null +++ b/src/components/PageHeader.astro @@ -0,0 +1,15 @@ +--- +interface Props { + title: string; + description?: string; +} + +const { title, description } = Astro.props; +--- + +
+ +

{title}

+ {description &&

{description}

} + +
diff --git a/src/components/PostCard.astro b/src/components/PostCard.astro new file mode 100644 index 0000000..166d58b --- /dev/null +++ b/src/components/PostCard.astro @@ -0,0 +1,63 @@ +--- +interface Props { + href: string; + title: string; + date: Date; + description?: string; + readTime?: number | string; + tags?: string[]; + compact?: boolean; +} + +const { href, title, date, description, readTime, tags, compact = false } = Astro.props; + +const formattedDate = date.toLocaleDateString("en-GB", { + day: "numeric", + month: "short", + year: "numeric", +}); +--- + + + { + compact ? ( + <> + {title} + {formattedDate} + + ) : ( + <> +
+ + {title} + + {formattedDate} +
+ + {description &&

{description}

} + +
+ {readTime && {readTime} min read} + + {tags && tags.length > 0 && ( + <> + {readTime && ·} + +
+ {tags.slice(0, 3).map((tag) => ( + #{tag} + ))} +
+ + )} +
+ + ) + } +
diff --git a/src/components/ProjectCard.astro b/src/components/ProjectCard.astro new file mode 100644 index 0000000..72cf2dc --- /dev/null +++ b/src/components/ProjectCard.astro @@ -0,0 +1,81 @@ +--- +import { Icon } from "astro-icon/components"; + +interface Props { + href: string; + name: string; + description?: string; + icon?: string | null; + stars: number; + repo?: string | null; + compact?: boolean; +} + +const { href, name, description, icon, stars, repo, compact = false } = Astro.props; +--- + + +
+ {icon ? ( + {name} + ) : ( +
+ +
+ )} + + + {name} + + +
+ + {compact && ( + + + {stars} + + )} + + {!compact && ( + <> + {description &&

{description}

} +
+ + {stars} + {repo && ( + <> + · + + + )} +
+ + )} +
diff --git a/src/components/SectionHeader.astro b/src/components/SectionHeader.astro new file mode 100644 index 0000000..b756f32 --- /dev/null +++ b/src/components/SectionHeader.astro @@ -0,0 +1,18 @@ +--- +interface Props { + title: string; + href?: string; + linkLabel?: string; +} + +const { title, href, linkLabel = "view all →" } = Astro.props; +--- + +
+

{title}

+ {href && ( + + {linkLabel} + + )} +
diff --git a/src/components/SocialLinks.astro b/src/components/SocialLinks.astro new file mode 100644 index 0000000..6d02225 --- /dev/null +++ b/src/components/SocialLinks.astro @@ -0,0 +1,52 @@ +--- +import { Icon } from "astro-icon/components"; + +interface SocialLink { + href: string; + label: string; + icon?: string; + svg?: string; +} + +interface Props { + links?: SocialLink[]; +} + +const defaultLinks: SocialLink[] = [ + { href: "/feed.xml", label: "rss feed", icon: "fa7-solid:rss" }, + { href: "https://github.com/isabelroses", label: "GitHub", icon: "fa7-brands:github" }, + { href: "https://akko.isabelroses.com/@isabel", label: "mastodon", icon: "fa7-brands:mastodon" }, + { href: "https://bsky.app/profile/did:plc:qxichs7jsycphrsmbujwqbfb", label: "bluesky", icon: "fa7-brands:bluesky" }, + { href: "/api/discord", label: "Discord", icon: "fa7-brands:discord" }, + { href: "mailto:isabel@isabelroses.com", label: "email", icon: "fa7-solid:envelope" }, + { href: "https://www.twitch.tv/isabelrosess", label: "Twitch", icon: "fa7-brands:twitch" }, + { href: "https://ko-fi.com/isabelroses", label: "Ko-fi", svg: "kofi" }, +]; + +const { links = defaultLinks } = Astro.props; +--- + +
+ { + links.map((link) => ( + + {link.icon ? ( + + ) : link.svg === "kofi" ? ( + + + + ) : null} + + )) + } +
diff --git a/src/components/Song.astro b/src/components/Song.astro deleted file mode 100644 index 234b680..0000000 --- a/src/components/Song.astro +++ /dev/null @@ -1,41 +0,0 @@ ---- -interface Props { - title: string; - slug?: string; - index: number; - time?: string; - id?: string; -} - -const { title, slug, index, time, id } = Astro.props as Props; ---- - -
  • - { - slug ? ( - - {index} - - - {title} - - - {time && ( - {time} - )} - - ) : ( -
    - {index} - - - {title} - - - {time && ( - {time} - )} -
    - ) - } -
  • diff --git a/src/components/Tag.astro b/src/components/Tag.astro new file mode 100644 index 0000000..b5edc42 --- /dev/null +++ b/src/components/Tag.astro @@ -0,0 +1,21 @@ +--- +interface Props { + tag: string; + linked?: boolean; +} + +const { tag, linked = true } = Astro.props; +--- + +{ + linked ? ( + + #{tag} + + ) : ( + #{tag} + ) +} diff --git a/src/components/ThemeSwitcher.astro b/src/components/ThemeSwitcher.astro new file mode 100644 index 0000000..b4e28ca --- /dev/null +++ b/src/components/ThemeSwitcher.astro @@ -0,0 +1,76 @@ +--- +import { Icon } from "astro-icon/components"; +--- + +
    +
    + + +
    +
    + + diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro index 89d076d..0fd10d7 100644 --- a/src/layouts/Base.astro +++ b/src/layouts/Base.astro @@ -1,5 +1,6 @@ --- import BaseHead from "@components/BaseHead.astro"; +import ThemeSwitcher from "@components/ThemeSwitcher.astro"; interface Props { title: string; @@ -17,8 +18,9 @@ const props = Astro.props; + diff --git a/src/lib/consts.ts b/src/lib/consts.ts index b5fcd62..fb24aa9 100644 --- a/src/lib/consts.ts +++ b/src/lib/consts.ts @@ -19,30 +19,13 @@ export const SITE_DESCRIPTIONS = { // stars are barely updated export const PROJECTS = [ - { - name: "This Site", - description: "This site that your currently on.", - icon: null, - banner: null, - href: "https://isabelroses.com", - repo: "https://github.com/isabelroses/website", - stars: 24, - }, { name: "Catppuccin Nix", description: "Soothing pastel colors for nix", icon: catppuccinNix.src, href: null, repo: "https://github.com/catppuccin/nix", - stars: 582, - }, - { - name: "freeze.nvim", - description: "A wrapper for charm's freeze cli tool for usage in neovim", - icon: freezeNvim.src, - href: null, - repo: "https://github.com/charm-community/freeze.nvim", - stars: 80, + stars: 640, }, { name: "izrss", @@ -50,7 +33,7 @@ export const PROJECTS = [ icon: null, href: null, repo: "https://github.com/isabelroses/izrss", - stars: 32, + stars: 46, }, { name: "Dotfiles", @@ -58,7 +41,24 @@ export const PROJECTS = [ icon: dotfiles.src, href: null, repo: "https://github.com/isabelroses/dotfiles", - stars: 305, + stars: 333, + }, + { + name: "freeze.nvim", + description: "A wrapper for charm's freeze cli tool for usage in neovim", + icon: freezeNvim.src, + href: null, + repo: "https://github.com/charm-community/freeze.nvim", + stars: 84, + }, +{ + name: "This Site", + description: "This site that your currently on.", + icon: null, + banner: null, + href: "https://isabelroses.com", + repo: "https://github.com/isabelroses/website", + stars: 26, }, { name: "Bellado", diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro index bc170d4..aecb78a 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...slug].astro @@ -1,104 +1,145 @@ --- import { type CollectionEntry, getCollection, render } from "astro:content"; +import { Icon } from "astro-icon/components"; import Base from "@layouts/Base.astro"; -import MusicPlayer from "@components/MusicPlayer.astro"; +import BackLink from "@components/BackLink.astro"; +import Tag from "@components/Tag.astro"; export async function getStaticPaths() { const posts = await getCollection("blog", ({ data }) => { return !data.draft && !data.archived; }); - return posts.map((post) => ({ + return posts.map((post, index) => ({ params: { slug: post.id }, props: { post, - posts, + prevPost: posts[index + 1] || null, + nextPost: posts[index - 1] || null, }, })); } interface Props { post: CollectionEntry<"blog">; - posts: CollectionEntry<"blog">[]; + prevPost: CollectionEntry<"blog"> | null; + nextPost: CollectionEntry<"blog"> | null; } -const { post, posts } = Astro.props; - +const { post, prevPost, nextPost } = Astro.props; const { Content } = await render(post); -const nextSlug = posts[posts.indexOf(post) + 1]?.id || null; --- -
    - - -
    -
    +
    +
    + +

    {post.data.title}

    +
    + + · + {post.data.readTime} min read + {post.data.updated && ( + <> + · + + updated {post.data.updated.toLocaleDateString("en-GB", { + day: "numeric", + month: "short", + year: "numeric", + })} + + + )} +
    +
    + {post.data.tags.map((tag: string) => ( + + ))} +
    +
    + +
    + +
    + +
    +

    share this post

    +
    + + + +
    -
    - - - + + + + + \ No newline at end of file diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro index ebe311a..5b1e635 100644 --- a/src/pages/blog/index.astro +++ b/src/pages/blog/index.astro @@ -2,19 +2,15 @@ import { getCollection } from "astro:content"; import Base from "@layouts/Base.astro"; -import MusicPlayer from "@components/MusicPlayer.astro"; -import Song from "@components/Song.astro"; +import PageHeader from "@components/PageHeader.astro"; +import BackLink from "@components/BackLink.astro"; +import Tag from "@components/Tag.astro"; +import PostCard from "@components/PostCard.astro"; -const postsLarge = await getCollection("blog", ({ data }) => { +const posts = await getCollection("blog", ({ data }) => { return !data.draft && !data.archived; }); -const posts = postsLarge.map((p) => ({ - readTime: p.data.readTime, - title: p.data.title, - slug: p.id, -})); - import { SITE_TITLES, SITE_DESCRIPTIONS } from "@lib/consts"; --- @@ -23,65 +19,40 @@ import { SITE_TITLES, SITE_DESCRIPTIONS } from "@lib/consts"; description={SITE_DESCRIPTIONS.blog} image="/blog.png" > -
    - +
    + + +
    +

    tags

    +
    + { + [...new Set(posts.flatMap((post) => post.data.tags))].map((tag) => ( + + )) + } +
    +
    -
    -

    Up next

    -
      +
      +

      all posts

      +
        { - posts - .entries() - .map(([i, post]) => ( - ( +
      • + - )) +
      • + )) }
      -
    - + +
    diff --git a/src/pages/blog/tag/[...slug].astro b/src/pages/blog/tag/[...slug].astro index aa6c1e6..ac53b77 100644 --- a/src/pages/blog/tag/[...slug].astro +++ b/src/pages/blog/tag/[...slug].astro @@ -1,18 +1,19 @@ --- -import { getCollection, type CollectionEntry } from "astro:content"; +import { getCollection } from "astro:content"; import Base from "@layouts/Base.astro"; -import MusicPlayer from "@components/MusicPlayer.astro"; -import Song from "@components/Song.astro"; +import PageHeader from "@components/PageHeader.astro"; +import BackLink from "@components/BackLink.astro"; +import PostCard from "@components/PostCard.astro"; -import { SITE_TITLES, SITE_DESCRIPTIONS } from "@lib/consts"; +import { SITE_TITLES } from "@lib/consts"; interface Props { - posts: { title: string; readTime: number; slug: string }[]; - nextSlug: string | null; + posts: { title: string; description: string; readTime: number; slug: string; date: Date }[]; + tag: string; } -const { posts } = Astro.props; +const { posts, tag } = Astro.props; export async function getStaticPaths() { const posts = await getCollection("blog", ({ data }) => { @@ -34,81 +35,50 @@ export async function getStaticPaths() { const postsSmall = filteredPosts.map((p) => ({ readTime: p.data.readTime, title: p.data.title, + description: p.data.description, + date: p.data.date, slug: p.id, })); return { params: { slug: tag }, - props: { posts: postsSmall }, + props: { posts: postsSmall, tag }, }; }); } --- -
    - - -
    -

    Up next

    -
      +
      + + + + +
      +
        { - posts - .entries() - .map(([i, post]) => ( - ( +
      • + - )) +
      • + )) }
      -
      - - + +
    diff --git a/src/pages/donate.astro b/src/pages/donate.astro new file mode 100644 index 0000000..8787ee9 --- /dev/null +++ b/src/pages/donate.astro @@ -0,0 +1,83 @@ +--- +import { Icon } from "astro-icon/components"; + +import Base from "@layouts/Base.astro"; +import PageHeader from "@components/PageHeader.astro"; +import BackLink from "@components/BackLink.astro"; + +const DONATION_OPTIONS = [ + { + name: "Ko-fi", + description: "Buy me a coffee! One-time or monthly support.", + href: "https://ko-fi.com/isabelroses", + icon: "kofi", + color: "bg-[#FF5E5B]", + }, + { + name: "GitHub Sponsors", + description: "Sponsor me directly through GitHub.", + href: "https://github.com/sponsors/isabelroses", + icon: "fa7-brands:github", + color: "bg-[#24292e]", + }, +]; +--- + + +
    + + +
    +

    ways to support

    + +
    + + +
    + diff --git a/src/pages/friends.astro b/src/pages/friends.astro index e852906..ee6fd0d 100644 --- a/src/pages/friends.astro +++ b/src/pages/friends.astro @@ -1,9 +1,10 @@ --- import { Image } from "astro:assets"; +import { Icon } from "astro-icon/components"; import Base from "@layouts/Base.astro"; -import MusicPlayer from "@components/MusicPlayer.astro"; -import Song from "@components/Song.astro"; +import PageHeader from "@components/PageHeader.astro"; +import BackLink from "@components/BackLink.astro"; import { SITE_TITLES, SITE_DESCRIPTIONS, WEBRINGS, FRIENDS } from "@lib/consts"; --- @@ -13,84 +14,82 @@ import { SITE_TITLES, SITE_DESCRIPTIONS, WEBRINGS, FRIENDS } from "@lib/consts"; description={SITE_DESCRIPTIONS.friends} image="/friends.png" > -
    - +
    + -
    -
    -

    Up next

    -
      - { - WEBRINGS.entries().map(([i, webring]) => ( - - )) - } -
    +
    +

    my badge

    +
    + isabel roses +

    feel free to add it to your site!

    +
    -
    -

    Embed my badge

    - isabel roses +
    +

    friends

    +
    + { + FRIENDS.map((friend) => ( + + {friend.name} + + )) + }
    +
    -
    -

    Friends

    - -
    + + {webring.name} + + + + + + )) + } +
    -
    - - + +
    diff --git a/src/pages/index.astro b/src/pages/index.astro index c3715bc..ee016e6 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,16 +1,20 @@ --- import { getCollection } from "astro:content"; -import { Icon } from "astro-icon/components"; +import { Image } from "astro:assets"; import Base from "@layouts/Base.astro"; -import MusicPlayer from "@components/MusicPlayer.astro"; -import Song from "@components/Song.astro"; +import PostCard from "@components/PostCard.astro"; +import ProjectCard from "@components/ProjectCard.astro"; +import NavCard from "@components/NavCard.astro"; +import SectionHeader from "@components/SectionHeader.astro"; +import SocialLinks from "@components/SocialLinks.astro"; +import me from "@assets/me.webp"; const posts = await getCollection("blog", ({ data }) => { return !data.draft && !data.archived; }); -import { SITE_TITLES, SITE_DESCRIPTIONS } from "@lib/consts"; +import { SITE_TITLES, SITE_DESCRIPTIONS, PROJECTS } from "@lib/consts"; --- -
    - - -
    -
    -

    Up next

    -
      - { - posts - .slice(0, 3) - .entries() - .map(([i, post]) => ( - - )) - } -
    +
    +
    +
    + Avatar +
    +

    isabel

    +

    {SITE_DESCRIPTIONS.index}

    +
    -
    -

    Playlists

    - -
    +

    + hello. i'm a software developer who loves working with nix, rust, and go. + i often write about my uses of these technologies on my blog, and share + my projects as open source. +

    -
    -

    Share

    - -
    + +
    -
    -

    Settings

    -
    - -
    -
    +
    +

    explore

    + +
    + +
    + +
      + { + PROJECTS.slice(0, 3).map((project) => ( +
    • + +
    • + )) + } +
    +
    + +
    + +
      + { + posts.slice(0, 5).map((post) => ( +
    • + +
    • + )) + } +
    diff --git a/src/pages/projects.astro b/src/pages/projects.astro index 46f7d4f..0974cec 100644 --- a/src/pages/projects.astro +++ b/src/pages/projects.astro @@ -1,9 +1,8 @@ --- import Base from "@layouts/Base.astro"; -import MusicPlayer from "@components/MusicPlayer.astro"; -import Song from "@components/Song.astro"; - -import defaultAvatar from "@assets/me.webp"; +import PageHeader from "@components/PageHeader.astro"; +import BackLink from "@components/BackLink.astro"; +import ProjectCard from "@components/ProjectCard.astro"; import { SITE_TITLES, SITE_DESCRIPTIONS, PROJECTS } from "@lib/consts"; --- @@ -11,82 +10,30 @@ import { SITE_TITLES, SITE_DESCRIPTIONS, PROJECTS } from "@lib/consts"; -
    - +
    + -
    -

    Up next

    -
      +
      +
        { - PROJECTS.entries().map(([i, project]) => ( - + PROJECTS.map((project) => ( +
      • + +
      • )) }
      -
    - - + +
    diff --git a/src/styles/global.css b/src/styles/global.css index cd0fb81..d534572 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -1,14 +1,6 @@ @import "tailwindcss"; @plugin "@tailwindcss/typography"; -.share-icon { - @apply w-6 h-6 text-fg hover:text-special transition-colors duration-200 fill-current; -} - -.left-\[21\%\] { - left: 21%; -} - @layer utilities { .prose { --tw-prose-body: var(--color-fg); @@ -50,7 +42,7 @@ --color-bg: #0e0f15; - --color-card: #1e1f2a; + --color-card: #161b22; --color-special: var(--color-blue); --color-blue: #83c4e6; /* snow */ @@ -67,7 +59,7 @@ --color-bg: #000; - --color-card: #1f1f1f; + --color-card: #161b22; --color-special: var(--color-blue); --color-blue: #74c7ec;