diff --git a/.gitignore b/.gitignore index 57eead1..3a547af 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,5 @@ pnpm-debug.log* # Others .idea -.firebase \ No newline at end of file +.firebase +.vscode \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 22a1505..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "recommendations": ["astro-build.astro-vscode"], - "unwantedRecommendations": [] -} diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index d642209..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "command": "./node_modules/.bin/astro dev", - "name": "Development server", - "request": "launch", - "type": "node-terminal" - } - ] -} diff --git a/astro.config.ts b/astro.config.ts index aa6f8ce..4d3d21c 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -81,6 +81,7 @@ export default defineConfig({ customCss: ['./src/tailwind.css'], sidebar: sidebar, expressiveCode: { + themes: ['dracula'], plugins: [pluginLineNumbers()], defaultProps: { showLineNumbers: false, diff --git a/package.json b/package.json index c56f9b2..a4130c8 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/check": "^0.9.4", - "@astrojs/react": "^4.1.6", + "@astrojs/react": "^4.2.0", "@astrojs/starlight": "^0.30.6", "@astrojs/starlight-tailwind": "^3.0.0", "@astrojs/tailwind": "^5.1.5", @@ -21,10 +21,10 @@ "@iconify-json/mdi": "^1.2.3", "@types/react": "^19.0.8", "@types/react-dom": "^19.0.3", - "astro": "^5.1.9", + "astro": "^5.2.3", "astro-embed": "^0.9.0", "astro-icon": "^1.1.5", - "firebase-tools": "^13.29.2", + "firebase-tools": "^13.29.3", "prettier": "^3.4.2", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4bf524e..b97162a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,17 +12,17 @@ importers: specifier: ^0.9.4 version: 0.9.4(prettier@3.4.2)(typescript@5.7.3) '@astrojs/react': - specifier: ^4.1.6 - version: 4.1.6(@types/node@22.10.10)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(jiti@2.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(yaml@2.7.0) + specifier: ^4.2.0 + version: 4.2.0(@types/node@22.13.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(jiti@2.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(yaml@2.7.0) '@astrojs/starlight': specifier: ^0.30.6 - version: 0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + version: 0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) '@astrojs/starlight-tailwind': specifier: ^3.0.0 - version: 3.0.0(@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)))(@astrojs/tailwind@5.1.5(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17))(tailwindcss@3.4.17) + version: 3.0.0(@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)))(@astrojs/tailwind@5.1.5(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17))(tailwindcss@3.4.17) '@astrojs/tailwind': specifier: ^5.1.5 - version: 5.1.5(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17) + version: 5.1.5(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17) '@expressive-code/plugin-line-numbers': specifier: ^0.38.3 version: 0.38.3 @@ -36,17 +36,17 @@ importers: specifier: ^19.0.3 version: 19.0.3(@types/react@19.0.8) astro: - specifier: ^5.1.9 - version: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + specifier: ^5.2.3 + version: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) astro-embed: specifier: ^0.9.0 - version: 0.9.0(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + version: 0.9.0(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) astro-icon: specifier: ^1.1.5 version: 1.1.5 firebase-tools: - specifier: ^13.29.2 - version: 13.29.2(encoding@0.1.13) + specifier: ^13.29.3 + version: 13.29.3(encoding@0.1.13) prettier: specifier: ^3.4.2 version: 3.4.2 @@ -64,13 +64,13 @@ importers: version: 0.33.5 starlight-cooler-credit: specifier: ^0.2.3 - version: 0.2.3(@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))) + version: 0.2.3(@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))) starlight-links-validator: specifier: ^0.13.4 - version: 0.13.4(@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)))(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + version: 0.13.4(@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)))(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) starlight-showcases: specifier: ^0.3.0 - version: 0.3.0(@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)))(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + version: 0.3.0(@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)))(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) tailwindcss: specifier: ^3.4.17 version: 3.4.17 @@ -142,8 +142,8 @@ packages: '@astrojs/compiler@2.10.3': resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} - '@astrojs/internal-helpers@0.4.2': - resolution: {integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==} + '@astrojs/internal-helpers@0.5.0': + resolution: {integrity: sha512-CgB5ZaZO1PFG+rbjF3HnA7G6gIBjJ070xb7bUjeu5Gqqufma+t6fpuRWMXnK2iEO3zVyX7e/xplPlqtFKy/lvw==} '@astrojs/language-server@2.15.4': resolution: {integrity: sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==} @@ -157,11 +157,11 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@6.0.2': - resolution: {integrity: sha512-aAoHGVRK3rebCYbaLjyyR+3VeAuTz4q49syUxJP29Oo5yZHdy4cCAXRqLBdr9mJVlxCUUjZiF0Dau6YBf65SGg==} + '@astrojs/markdown-remark@6.1.0': + resolution: {integrity: sha512-emZNNSTPGgPc3V399Cazpp5+snogjaF04ocOSQn9vy3Kw/eIC4vTQjXOrWDEoSEy+AwPDZX9bQ4wd3bxhpmGgQ==} - '@astrojs/mdx@4.0.7': - resolution: {integrity: sha512-d3PopBTbbCoX3QOmSLYXW6YCZ0dkhNaeP9/Liz9BhEekflMc9IvBjbtNFf1WCEatsl4LLGftyDisfMM3F3LGMA==} + '@astrojs/mdx@4.0.8': + resolution: {integrity: sha512-/aiLr2yQ55W9AbpyOgfMtFXk7g2t7XoWdC2Avps/NqxAx4aYONDLneX43D79QwgqdjFhin7o3cIPp/vVppMbaA==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} peerDependencies: astro: ^5.0.0 @@ -170,8 +170,8 @@ packages: resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} - '@astrojs/react@4.1.6': - resolution: {integrity: sha512-lMBO+Va4JbLsXviagT9/ZmliwfQGmsiw4rvI4yusPZijQek3q5yfEnQor5XWNcErrkazjjNxY9BFO5f/eSfqmw==} + '@astrojs/react@4.2.0': + resolution: {integrity: sha512-2OccnYFK+mLuy9GpJqPM3BQGvvemnXNeww+nBVYFuiH04L7YIdfg4Gq0LT7v/BraiuADV5uTl9VhTDL/ZQPAhw==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} peerDependencies: '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 @@ -207,8 +207,8 @@ packages: '@astrojs/yaml2ts@0.2.2': resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} - '@atproto/api@0.13.31': - resolution: {integrity: sha512-i2cUQuwe+3j8rgPJj4YWRjSQeJunGqJ3IzesnvbODjjZh3IS9jB80BZ/pTe/AvNg6JCBbqeWJjWDVKeFHaiZAw==} + '@atproto/api@0.13.32': + resolution: {integrity: sha512-xAKSsZgaugAK/Mog+JbQCd5d2Y+FpE5OwKAKgftvs51dPRuqVZt/MSVRREaFEtgV90nrfSRGIx4EP54Ju4ypBw==} '@atproto/common-web@0.3.2': resolution: {integrity: sha512-Vx0JtL1/CssJbFAb0UOdvTrkbUautsDfHNOXNTcX2vyPIxH9xOameSqLLunM1hZnOQbJwyjmQCt6TV+bhnanDg==} @@ -219,8 +219,8 @@ packages: '@atproto/syntax@0.3.1': resolution: {integrity: sha512-fzW0Mg1QUOVCWUD3RgEsDt6d1OZ6DdFmbKcDdbzUfh0t4rhtRAC05KbZYmxuMPWDAiJ4BbbQ5dkAc/mNypMXkw==} - '@atproto/xrpc@0.6.6': - resolution: {integrity: sha512-umXEYVMo9/pyIBoKmIAIi64RXDW9tSXY+wqztlQ6I2GZtjLfNZqmAWU+wADk3SxUe54mvjxxGyA4TtyGtDMfhA==} + '@atproto/xrpc@0.6.7': + resolution: {integrity: sha512-pbzZIONIskyGKxxG3s2wB7rQ2W1xu3ycfeYhKwk/E/ippeJFVxcof64iSC7f22+7JSKUJcxBeZ1piBB82vLj7g==} '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} @@ -811,118 +811,118 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.32.0': - resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} + '@rollup/rollup-android-arm-eabi@4.34.0': + resolution: {integrity: sha512-Eeao7ewDq79jVEsrtWIj5RNqB8p2knlm9fhR6uJ2gqP7UfbLrTrxevudVrEPDM7Wkpn/HpRC2QfazH7MXLz3vQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.32.0': - resolution: {integrity: sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==} + '@rollup/rollup-android-arm64@4.34.0': + resolution: {integrity: sha512-yVh0Kf1f0Fq4tWNf6mWcbQBCLDpDrDEl88lzPgKhrgTcDrTtlmun92ywEF9dCjmYO3EFiSuJeeo9cYRxl2FswA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.32.0': - resolution: {integrity: sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==} + '@rollup/rollup-darwin-arm64@4.34.0': + resolution: {integrity: sha512-gCs0ErAZ9s0Osejpc3qahTsqIPUDjSKIyxK/0BGKvL+Tn0n3Kwvj8BrCv7Y5sR1Ypz1K2qz9Ny0VvkVyoXBVUQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.32.0': - resolution: {integrity: sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==} + '@rollup/rollup-darwin-x64@4.34.0': + resolution: {integrity: sha512-aIB5Anc8hngk15t3GUkiO4pv42ykXHfmpXGS+CzM9CTyiWyT8HIS5ygRAy7KcFb/wiw4Br+vh1byqcHRTfq2tQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.32.0': - resolution: {integrity: sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==} + '@rollup/rollup-freebsd-arm64@4.34.0': + resolution: {integrity: sha512-kpdsUdMlVJMRMaOf/tIvxk8TQdzHhY47imwmASOuMajg/GXpw8GKNd8LNwIHE5Yd1onehNpcUB9jHY6wgw9nHQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.32.0': - resolution: {integrity: sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==} + '@rollup/rollup-freebsd-x64@4.34.0': + resolution: {integrity: sha512-D0RDyHygOBCQiqookcPevrvgEarN0CttBecG4chOeIYCNtlKHmf5oi5kAVpXV7qs0Xh/WO2RnxeicZPtT50V0g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.32.0': - resolution: {integrity: sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==} + '@rollup/rollup-linux-arm-gnueabihf@4.34.0': + resolution: {integrity: sha512-mCIw8j5LPDXmCOW8mfMZwT6F/Kza03EnSr4wGYEswrEfjTfVsFOxvgYfuRMxTuUF/XmRb9WSMD5GhCWDe2iNrg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.32.0': - resolution: {integrity: sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==} + '@rollup/rollup-linux-arm-musleabihf@4.34.0': + resolution: {integrity: sha512-AwwldAu4aCJPob7zmjuDUMvvuatgs8B/QiVB0KwkUarAcPB3W+ToOT+18TQwY4z09Al7G0BvCcmLRop5zBLTag==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.32.0': - resolution: {integrity: sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==} + '@rollup/rollup-linux-arm64-gnu@4.34.0': + resolution: {integrity: sha512-e7kDUGVP+xw05pV65ZKb0zulRploU3gTu6qH1qL58PrULDGxULIS0OSDQJLH7WiFnpd3ZKUU4VM3u/Z7Zw+e7Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.32.0': - resolution: {integrity: sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==} + '@rollup/rollup-linux-arm64-musl@4.34.0': + resolution: {integrity: sha512-SXYJw3zpwHgaBqTXeAZ31qfW/v50wq4HhNVvKFhRr5MnptRX2Af4KebLWR1wpxGJtLgfS2hEPuALRIY3LPAAcA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.32.0': - resolution: {integrity: sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==} + '@rollup/rollup-linux-loongarch64-gnu@4.34.0': + resolution: {integrity: sha512-e5XiCinINCI4RdyU3sFyBH4zzz7LiQRvHqDtRe9Dt8o/8hTBaYpdPimayF00eY2qy5j4PaaWK0azRgUench6WQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': - resolution: {integrity: sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.34.0': + resolution: {integrity: sha512-3SWN3e0bAsm9ToprLFBSro8nJe6YN+5xmB11N4FfNf92wvLye/+Rh5JGQtKOpwLKt6e61R1RBc9g+luLJsc23A==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.32.0': - resolution: {integrity: sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==} + '@rollup/rollup-linux-riscv64-gnu@4.34.0': + resolution: {integrity: sha512-B1Oqt3GLh7qmhvfnc2WQla4NuHlcxAD5LyueUi5WtMc76ZWY+6qDtQYqnxARx9r+7mDGfamD+8kTJO0pKUJeJA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.32.0': - resolution: {integrity: sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==} + '@rollup/rollup-linux-s390x-gnu@4.34.0': + resolution: {integrity: sha512-UfUCo0h/uj48Jq2lnhX0AOhZPSTAq3Eostas+XZ+GGk22pI+Op1Y6cxQ1JkUuKYu2iU+mXj1QjPrZm9nNWV9rg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.32.0': - resolution: {integrity: sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==} + '@rollup/rollup-linux-x64-gnu@4.34.0': + resolution: {integrity: sha512-chZLTUIPbgcpm+Z7ALmomXW8Zh+wE2icrG+K6nt/HenPLmtwCajhQC5flNSk1Xy5EDMt/QAOz2MhzfOfJOLSiA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.32.0': - resolution: {integrity: sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==} + '@rollup/rollup-linux-x64-musl@4.34.0': + resolution: {integrity: sha512-jo0UolK70O28BifvEsFD/8r25shFezl0aUk2t0VJzREWHkq19e+pcLu4kX5HiVXNz5qqkD+aAq04Ct8rkxgbyQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.32.0': - resolution: {integrity: sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==} + '@rollup/rollup-win32-arm64-msvc@4.34.0': + resolution: {integrity: sha512-Vmg0NhAap2S54JojJchiu5An54qa6t/oKT7LmDaWggpIcaiL8WcWHEN6OQrfTdL6mQ2GFyH7j2T5/3YPEDOOGA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.32.0': - resolution: {integrity: sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==} + '@rollup/rollup-win32-ia32-msvc@4.34.0': + resolution: {integrity: sha512-CV2aqhDDOsABKHKhNcs1SZFryffQf8vK2XrxP6lxC99ELZAdvsDgPklIBfd65R8R+qvOm1SmLaZ/Fdq961+m7A==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.32.0': - resolution: {integrity: sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==} + '@rollup/rollup-win32-x64-msvc@4.34.0': + resolution: {integrity: sha512-g2ASy1QwHP88y5KWvblUolJz9rN+i4ZOsYzkEwcNfaNooxNUXG+ON6F5xFo0NIItpHqxcdAyls05VXpBnludGw==} cpu: [x64] os: [win32] - '@shikijs/core@1.29.1': - resolution: {integrity: sha512-Mo1gGGkuOYjDu5H8YwzmOuly9vNr8KDVkqj9xiKhhhFS8jisAtDSEWB9hzqRHLVQgFdA310e8XRJcW4tYhRB2A==} + '@shikijs/core@1.29.2': + resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} - '@shikijs/engine-javascript@1.29.1': - resolution: {integrity: sha512-Hpi8k9x77rCQ7F/7zxIOUruNkNidMyBnP5qAGbLFqg4kRrg1HZhkB8btib5EXbQWTtLb5gBHOdBwshk20njD7Q==} + '@shikijs/engine-javascript@1.29.2': + resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} - '@shikijs/engine-oniguruma@1.29.1': - resolution: {integrity: sha512-gSt2WhLNgEeLstcweQOSp+C+MhOpTsgdNXRqr3zP6M+BUBZ8Md9OU2BYwUYsALBxHza7hwaIWtFHjQ/aOOychw==} + '@shikijs/engine-oniguruma@1.29.2': + resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} - '@shikijs/langs@1.29.1': - resolution: {integrity: sha512-iERn4HlyuT044/FgrvLOaZgKVKf3PozjKjyV/RZ5GnlyYEAZFcgwHGkYboeBv2IybQG1KVS/e7VGgiAU4JY2Gw==} + '@shikijs/langs@1.29.2': + resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} - '@shikijs/themes@1.29.1': - resolution: {integrity: sha512-lb11zf72Vc9uxkl+aec2oW1HVTHJ2LtgZgumb4Rr6By3y/96VmlU44bkxEb8WBWH3RUtbqAJEN0jljD9cF7H7g==} + '@shikijs/themes@1.29.2': + resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} - '@shikijs/types@1.29.1': - resolution: {integrity: sha512-aBqAuhYRp5vSir3Pc9+QPu9WESBOjUo03ao0IHLC4TyTioSsp/SkbAZSrIH4ghYYC1T1KTEpRSBa83bas4RnPA==} + '@shikijs/types@1.29.2': + resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} '@shikijs/vscode-textmate@10.0.1': resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} @@ -1002,8 +1002,8 @@ packages: '@types/node@18.19.74': resolution: {integrity: sha512-HMwEkkifei3L605gFdV+/UwtpxP6JSzM+xFk2Ia6DNFSwSVBRh9qp5Tgf4lNFOMfPVuU0WnkcWpXZpgn5ufO4A==} - '@types/node@22.10.10': - resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} + '@types/node@22.13.0': + resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==} '@types/picomatch@2.3.3': resolution: {integrity: sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg==} @@ -1226,8 +1226,8 @@ packages: astro-icon@1.1.5: resolution: {integrity: sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw==} - astro@5.1.9: - resolution: {integrity: sha512-QB3MH7Ul3gEvmHXEfvPkGpTZyyB/TBKQbm0kTHpo0BTEB7BvaY+wrcWiGEJBVDpVdEAKY9fM3zrJ0c7hZSXVlw==} + astro@5.2.3: + resolution: {integrity: sha512-04AceE/gVihtO3V28Ss0+tPPgLHGoulXrm1E7fUVPYyQu7y6w8+oXfYyzh1lpy+uEYiebjH7AFlJoz73anBmZA==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -1382,8 +1382,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001695: - resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==} + caniuse-lite@1.0.30001696: + resolution: {integrity: sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1845,8 +1845,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.88: - resolution: {integrity: sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==} + electron-to-chromium@1.5.90: + resolution: {integrity: sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==} emmet@2.4.11: resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} @@ -2052,8 +2052,8 @@ packages: fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - fastq@1.18.0: - resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} + fastq@1.19.0: + resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -2092,8 +2092,8 @@ packages: find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - firebase-tools@13.29.2: - resolution: {integrity: sha512-6P4PR4TcrATPI+ut0qhh7gW3GJ0HYaLC2Fr5lesAXkrdAYw7OvOGDzXaRFuORwkCS5grVQuCcJVSsVbjXKAkew==} + firebase-tools@13.29.3: + resolution: {integrity: sha512-P3d5+RjkhEmYhBP+5CGYD+Zi+eA5lLny/Ph5vGHAPUiJ7VKooiVtWf7fHw7LoXenlkCGPNaGfYVKqFz514+d7A==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -2164,8 +2164,8 @@ packages: resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} engines: {node: '>=14'} - gcp-metadata@6.1.0: - resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} + gcp-metadata@6.1.1: + resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} engines: {node: '>=14'} gensync@1.0.0-beta.2: @@ -2241,6 +2241,10 @@ packages: resolution: {integrity: sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==} engines: {node: '>=14'} + google-logging-utils@0.0.2: + resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} + engines: {node: '>=14'} + googleapis-common@7.2.0: resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} engines: {node: '>=14.0.0'} @@ -2827,11 +2831,11 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - marked-terminal@7.2.1: - resolution: {integrity: sha512-rQ1MoMFXZICWNsKMiiHwP/Z+92PLKskTPXj+e7uwXmuMPkNn7iTqC+IvDekVm1MPeC9wYQeLxeFaOvudRR/XbQ==} + marked-terminal@7.3.0: + resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} engines: {node: '>=16.0.0'} peerDependencies: - marked: '>=1 <15' + marked: '>=1 <16' marked@13.0.3: resolution: {integrity: sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==} @@ -3342,8 +3346,8 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@0.2.8: - resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==} + package-manager-detector@0.2.9: + resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} pagefind@1.3.0: resolution: {integrity: sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==} @@ -3539,8 +3543,8 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - preferred-pm@4.0.0: - resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + preferred-pm@4.1.0: + resolution: {integrity: sha512-cNKMVcSvE3hZBRukdRsvPtlUaM2fYLFbIvBz620XaDA5SjHsCRsAjNE2baI90Hh7QvJIjCHJYnpPtyqJ1/kOjQ==} engines: {node: '>=18.12'} prettier@2.8.7: @@ -3629,9 +3633,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} @@ -3828,8 +3829,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.32.0: - resolution: {integrity: sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==} + rollup@4.34.0: + resolution: {integrity: sha512-+4C/cgJ9w6sudisA0nZz0+O7lTP9a3CzNLsoDwaRumM8QHwghUsu6tqHXiTmNUp/rqNiM14++7dkzHDyCRs0Jg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3874,8 +3875,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.7.0: + resolution: {integrity: sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==} engines: {node: '>=10'} hasBin: true @@ -3902,8 +3903,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.29.1: - resolution: {integrity: sha512-TghWKV9pJTd/N+IgAIVJtr0qZkB7FfFCUrrEJc0aRmZupo3D1OCVRknQWVRVA7AX/M0Ld7QfoAruPzr3CnUJuw==} + shiki@1.29.2: + resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -3947,6 +3948,10 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smol-toml@1.3.1: + resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} + engines: {node: '>= 18'} + socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -4036,8 +4041,8 @@ packages: stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - streamx@2.21.1: - resolution: {integrity: sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==} + streamx@2.22.0: + resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -4743,8 +4748,8 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - yocto-spinner@0.1.2: - resolution: {integrity: sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==} + yocto-spinner@0.2.0: + resolution: {integrity: sha512-Qu6WAqNLGleB687CCGcmgHIo8l+J19MX/32UrSMfbf/4L8gLoxjpOYoiHT1asiWyqvjRZbgvOhLlvne6E5Tbdw==} engines: {node: '>=18.19'} yoctocolors@2.1.1: @@ -4783,7 +4788,7 @@ snapshots: '@antfu/install-pkg@0.4.1': dependencies: - package-manager-detector: 0.2.8 + package-manager-detector: 0.2.9 tinyexec: 0.3.2 '@antfu/utils@0.7.10': {} @@ -4795,49 +4800,49 @@ snapshots: call-me-maybe: 1.0.2 js-yaml: 4.1.0 - '@astro-community/astro-embed-baseline-status@0.1.2(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))': + '@astro-community/astro-embed-baseline-status@0.1.2(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))': dependencies: '@astro-community/astro-embed-utils': 0.1.3 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) - '@astro-community/astro-embed-bluesky@0.1.3(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))': + '@astro-community/astro-embed-bluesky@0.1.3(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))': dependencies: - '@atproto/api': 0.13.31 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + '@atproto/api': 0.13.32 + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) ts-pattern: 5.6.2 - '@astro-community/astro-embed-integration@0.8.0(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))': + '@astro-community/astro-embed-integration@0.8.0(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))': dependencies: '@astro-community/astro-embed-link-preview': 0.2.2 - '@astro-community/astro-embed-twitter': 0.5.8(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astro-community/astro-embed-vimeo': 0.3.10(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astro-community/astro-embed-youtube': 0.5.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-twitter': 0.5.8(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-vimeo': 0.3.10(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-youtube': 0.5.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) '@types/unist': 2.0.11 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) - astro-auto-import: 0.4.4(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) + astro-auto-import: 0.4.4(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) unist-util-select: 4.0.3 '@astro-community/astro-embed-link-preview@0.2.2': dependencies: '@astro-community/astro-embed-utils': 0.1.3 - '@astro-community/astro-embed-twitter@0.5.8(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))': + '@astro-community/astro-embed-twitter@0.5.8(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))': dependencies: '@astro-community/astro-embed-utils': 0.1.3 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) '@astro-community/astro-embed-utils@0.1.3': dependencies: linkedom: 0.14.26 - '@astro-community/astro-embed-vimeo@0.3.10(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))': + '@astro-community/astro-embed-vimeo@0.3.10(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))': dependencies: '@astro-community/astro-embed-utils': 0.1.3 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) - '@astro-community/astro-embed-youtube@0.5.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))': + '@astro-community/astro-embed-youtube@0.5.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))': dependencies: - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) lite-youtube-embed: 0.3.3 '@astrojs/check@0.9.4(prettier@3.4.2)(typescript@5.7.3)': @@ -4853,7 +4858,7 @@ snapshots: '@astrojs/compiler@2.10.3': {} - '@astrojs/internal-helpers@0.4.2': {} + '@astrojs/internal-helpers@0.5.0': {} '@astrojs/language-server@2.15.4(prettier@3.4.2)(typescript@5.7.3)': dependencies: @@ -4880,7 +4885,7 @@ snapshots: transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@6.0.2': + '@astrojs/markdown-remark@6.1.0': dependencies: '@astrojs/prism': 3.2.0 github-slugger: 2.0.0 @@ -4895,7 +4900,8 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.29.1 + shiki: 1.29.2 + smol-toml: 1.3.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -4904,12 +4910,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.0.7(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))': + '@astrojs/mdx@4.0.8(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))': dependencies: - '@astrojs/markdown-remark': 6.0.2 + '@astrojs/markdown-remark': 6.1.0 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) acorn: 8.14.0 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) es-module-lexer: 1.6.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.4 @@ -4927,15 +4933,15 @@ snapshots: dependencies: prismjs: 1.29.0 - '@astrojs/react@4.1.6(@types/node@22.10.10)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(jiti@2.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(yaml@2.7.0)': + '@astrojs/react@4.2.0(@types/node@22.13.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(jiti@2.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(yaml@2.7.0)': dependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@vitejs/plugin-react': 4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0)) + '@vitejs/plugin-react': 4.3.4(vite@6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) ultrahtml: 1.5.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -4956,22 +4962,22 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.24.1 - '@astrojs/starlight-tailwind@3.0.0(@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)))(@astrojs/tailwind@5.1.5(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17))(tailwindcss@3.4.17)': + '@astrojs/starlight-tailwind@3.0.0(@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)))(@astrojs/tailwind@5.1.5(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17))(tailwindcss@3.4.17)': dependencies: - '@astrojs/starlight': 0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astrojs/tailwind': 5.1.5(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17) + '@astrojs/starlight': 0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astrojs/tailwind': 5.1.5(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17) tailwindcss: 3.4.17 - '@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))': + '@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))': dependencies: - '@astrojs/mdx': 4.0.7(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astrojs/mdx': 4.0.8(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) '@astrojs/sitemap': 3.2.1 '@pagefind/default-ui': 1.3.0 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) - astro-expressive-code: 0.38.3(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) + astro-expressive-code: 0.38.3(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.3 @@ -4992,9 +4998,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/tailwind@5.1.5(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17)': + '@astrojs/tailwind@5.1.5(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17)': dependencies: - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) autoprefixer: 10.4.20(postcss@8.5.1) postcss: 8.5.1 postcss-load-config: 4.0.2(postcss@8.5.1) @@ -5018,12 +5024,12 @@ snapshots: dependencies: yaml: 2.7.0 - '@atproto/api@0.13.31': + '@atproto/api@0.13.32': dependencies: '@atproto/common-web': 0.3.2 '@atproto/lexicon': 0.4.5 '@atproto/syntax': 0.3.1 - '@atproto/xrpc': 0.6.6 + '@atproto/xrpc': 0.6.7 await-lock: 2.2.2 multiformats: 9.9.0 tlds: 1.255.0 @@ -5046,7 +5052,7 @@ snapshots: '@atproto/syntax@0.3.1': {} - '@atproto/xrpc@0.6.6': + '@atproto/xrpc@0.6.7': dependencies: '@atproto/lexicon': 0.4.5 zod: 3.24.1 @@ -5306,7 +5312,7 @@ snapshots: '@expressive-code/plugin-shiki@0.38.3': dependencies: '@expressive-code/core': 0.38.3 - shiki: 1.29.1 + shiki: 1.29.2 '@expressive-code/plugin-text-markers@0.38.3': dependencies: @@ -5553,7 +5559,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.18.0 + fastq: 1.19.0 '@npmcli/agent@2.2.2': dependencies: @@ -5568,7 +5574,7 @@ snapshots: '@npmcli/fs@3.1.1': dependencies: - semver: 7.6.3 + semver: 7.7.0 optional: true '@opentelemetry/api@1.9.0': {} @@ -5632,100 +5638,100 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@rollup/pluginutils@5.1.4(rollup@4.32.0)': + '@rollup/pluginutils@5.1.4(rollup@4.34.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.32.0 + rollup: 4.34.0 - '@rollup/rollup-android-arm-eabi@4.32.0': + '@rollup/rollup-android-arm-eabi@4.34.0': optional: true - '@rollup/rollup-android-arm64@4.32.0': + '@rollup/rollup-android-arm64@4.34.0': optional: true - '@rollup/rollup-darwin-arm64@4.32.0': + '@rollup/rollup-darwin-arm64@4.34.0': optional: true - '@rollup/rollup-darwin-x64@4.32.0': + '@rollup/rollup-darwin-x64@4.34.0': optional: true - '@rollup/rollup-freebsd-arm64@4.32.0': + '@rollup/rollup-freebsd-arm64@4.34.0': optional: true - '@rollup/rollup-freebsd-x64@4.32.0': + '@rollup/rollup-freebsd-x64@4.34.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.32.0': + '@rollup/rollup-linux-arm-gnueabihf@4.34.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.32.0': + '@rollup/rollup-linux-arm-musleabihf@4.34.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.32.0': + '@rollup/rollup-linux-arm64-gnu@4.34.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.32.0': + '@rollup/rollup-linux-arm64-musl@4.34.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.32.0': + '@rollup/rollup-linux-loongarch64-gnu@4.34.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.34.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.32.0': + '@rollup/rollup-linux-riscv64-gnu@4.34.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.32.0': + '@rollup/rollup-linux-s390x-gnu@4.34.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.32.0': + '@rollup/rollup-linux-x64-gnu@4.34.0': optional: true - '@rollup/rollup-linux-x64-musl@4.32.0': + '@rollup/rollup-linux-x64-musl@4.34.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.32.0': + '@rollup/rollup-win32-arm64-msvc@4.34.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.32.0': + '@rollup/rollup-win32-ia32-msvc@4.34.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.32.0': + '@rollup/rollup-win32-x64-msvc@4.34.0': optional: true - '@shikijs/core@1.29.1': + '@shikijs/core@1.29.2': dependencies: - '@shikijs/engine-javascript': 1.29.1 - '@shikijs/engine-oniguruma': 1.29.1 - '@shikijs/types': 1.29.1 + '@shikijs/engine-javascript': 1.29.2 + '@shikijs/engine-oniguruma': 1.29.2 + '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.29.1': + '@shikijs/engine-javascript@1.29.2': dependencies: - '@shikijs/types': 1.29.1 + '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.1 oniguruma-to-es: 2.3.0 - '@shikijs/engine-oniguruma@1.29.1': + '@shikijs/engine-oniguruma@1.29.2': dependencies: - '@shikijs/types': 1.29.1 + '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.1 - '@shikijs/langs@1.29.1': + '@shikijs/langs@1.29.2': dependencies: - '@shikijs/types': 1.29.1 + '@shikijs/types': 1.29.2 - '@shikijs/themes@1.29.1': + '@shikijs/themes@1.29.2': dependencies: - '@shikijs/types': 1.29.1 + '@shikijs/types': 1.29.2 - '@shikijs/types@1.29.1': + '@shikijs/types@1.29.2': dependencies: '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 @@ -5807,7 +5813,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.10.10': + '@types/node@22.13.0': dependencies: undici-types: 6.20.0 @@ -5824,7 +5830,7 @@ snapshots: '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 22.10.10 + '@types/node': 22.13.0 '@types/tough-cookie': 4.0.5 form-data: 2.5.2 @@ -5834,7 +5840,7 @@ snapshots: '@types/tar@6.1.13': dependencies: - '@types/node': 22.10.10 + '@types/node': 22.13.0 minipass: 4.2.8 '@types/tough-cookie@4.0.5': {} @@ -5847,19 +5853,19 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.10.10 + '@types/node': 22.13.0 optional: true '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.7 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.7) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -6035,26 +6041,26 @@ snapshots: astring@1.9.0: {} - astro-auto-import@0.4.4(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)): + astro-auto-import@0.4.4(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)): dependencies: '@types/node': 18.19.74 acorn: 8.14.0 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) - astro-embed@0.9.0(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)): + astro-embed@0.9.0(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)): dependencies: - '@astro-community/astro-embed-baseline-status': 0.1.2(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astro-community/astro-embed-bluesky': 0.1.3(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astro-community/astro-embed-integration': 0.8.0(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-baseline-status': 0.1.2(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-bluesky': 0.1.3(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-integration': 0.8.0(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) '@astro-community/astro-embed-link-preview': 0.2.2 - '@astro-community/astro-embed-twitter': 0.5.8(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astro-community/astro-embed-vimeo': 0.3.10(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astro-community/astro-embed-youtube': 0.5.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + '@astro-community/astro-embed-twitter': 0.5.8(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-vimeo': 0.3.10(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-youtube': 0.5.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) - astro-expressive-code@0.38.3(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)): + astro-expressive-code@0.38.3(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)): dependencies: - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) rehype-expressive-code: 0.38.3 astro-icon@1.1.5: @@ -6066,14 +6072,14 @@ snapshots: - debug - supports-color - astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0): + astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0): dependencies: '@astrojs/compiler': 2.10.3 - '@astrojs/internal-helpers': 0.4.2 - '@astrojs/markdown-remark': 6.0.2 + '@astrojs/internal-helpers': 0.5.0 + '@astrojs/markdown-remark': 6.1.0 '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.4(rollup@4.32.0) + '@rollup/pluginutils': 5.1.4(rollup@4.34.0) '@types/cookie': 0.6.0 acorn: 8.14.0 aria-query: 5.3.2 @@ -6107,23 +6113,23 @@ snapshots: neotraverse: 0.6.18 p-limit: 6.2.0 p-queue: 8.1.0 - preferred-pm: 4.0.0 + preferred-pm: 4.1.0 prompts: 2.4.2 rehype: 13.0.2 - semver: 7.6.3 - shiki: 1.29.1 + semver: 7.7.0 + shiki: 1.29.2 tinyexec: 0.3.2 tsconfck: 3.1.4(typescript@5.7.3) ultrahtml: 1.5.3 unist-util-visit: 5.0.0 unstorage: 1.14.4 vfile: 6.0.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0) - vitefu: 1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0)) + vite: 6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0) + vitefu: 1.0.5(vite@6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0)) which-pm: 3.0.0 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - yocto-spinner: 0.1.2 + yocto-spinner: 0.2.0 zod: 3.24.1 zod-to-json-schema: 3.24.1(zod@3.24.1) zod-to-ts: 1.2.0(typescript@5.7.3)(zod@3.24.1) @@ -6176,7 +6182,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.5.1): dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001695 + caniuse-lite: 1.0.30001696 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -6292,8 +6298,8 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001695 - electron-to-chromium: 1.5.88 + caniuse-lite: 1.0.30001696 + electron-to-chromium: 1.5.90 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -6349,7 +6355,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001695: {} + caniuse-lite@1.0.30001696: {} ccount@2.0.1: {} @@ -6786,7 +6792,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.88: {} + electron-to-chromium@1.5.90: {} emmet@2.4.11: dependencies: @@ -6978,7 +6984,7 @@ snapshots: pump: 3.0.2 qs: 6.14.0 raw-body: 2.5.2 - semver: 7.6.3 + semver: 7.7.0 transitivePeerDependencies: - supports-color @@ -7064,7 +7070,7 @@ snapshots: dependencies: punycode: 1.4.1 - fastq@1.18.0: + fastq@1.19.0: dependencies: reusify: 1.0.4 @@ -7120,7 +7126,7 @@ snapshots: micromatch: 4.0.8 pkg-dir: 4.2.0 - firebase-tools@13.29.2(encoding@0.1.13): + firebase-tools@13.29.3(encoding@0.1.13): dependencies: '@electric-sql/pglite': 0.2.16 '@google-cloud/cloud-sql-connector': 1.6.0(encoding@0.1.13) @@ -7161,7 +7167,7 @@ snapshots: lodash: 4.17.21 lsofi: 1.0.0 marked: 13.0.3 - marked-terminal: 7.2.1(marked@13.0.3) + marked-terminal: 7.3.0(marked@13.0.3) mime: 2.6.0 minimatch: 3.1.2 morgan: 1.10.0 @@ -7174,7 +7180,7 @@ snapshots: progress: 2.0.3 proxy-agent: 6.5.0 retry: 0.13.1 - semver: 7.6.3 + semver: 7.7.0 sql-formatter: 15.4.10 stream-chain: 2.2.5 stream-json: 1.9.1 @@ -7260,9 +7266,10 @@ snapshots: - encoding - supports-color - gcp-metadata@6.1.0(encoding@0.1.13): + gcp-metadata@6.1.1(encoding@0.1.13): dependencies: gaxios: 6.7.1(encoding@0.1.13) + google-logging-utils: 0.0.2 json-bigint: 1.0.0 transitivePeerDependencies: - encoding @@ -7346,7 +7353,7 @@ snapshots: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 gaxios: 6.7.1(encoding@0.1.13) - gcp-metadata: 6.1.0(encoding@0.1.13) + gcp-metadata: 6.1.1(encoding@0.1.13) gtoken: 7.1.0(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: @@ -7371,6 +7378,8 @@ snapshots: - encoding - supports-color + google-logging-utils@0.0.2: {} + googleapis-common@7.2.0(encoding@0.1.13): dependencies: extend: 3.0.2 @@ -7935,7 +7944,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.6.3 + semver: 7.7.0 jwa@1.4.1: dependencies: @@ -8108,7 +8117,7 @@ snapshots: markdown-table@3.0.4: {} - marked-terminal@7.2.1(marked@13.0.3): + marked-terminal@7.3.0(marked@13.0.3): dependencies: ansi-escapes: 7.0.0 ansi-regex: 6.1.0 @@ -8770,7 +8779,7 @@ snapshots: make-fetch-happen: 13.0.1 nopt: 7.2.1 proc-log: 4.2.0 - semver: 7.6.3 + semver: 7.7.0 tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: @@ -8910,7 +8919,7 @@ snapshots: package-json-from-dist@1.0.1: {} - package-manager-detector@0.2.8: {} + package-manager-detector@0.2.9: {} pagefind@1.3.0: optionalDependencies: @@ -9101,7 +9110,7 @@ snapshots: dependencies: xtend: 4.0.2 - preferred-pm@4.0.0: + preferred-pm@4.1.0: dependencies: find-up-simple: 1.0.0 find-yarn-workspace-root2: 1.2.16 @@ -9156,7 +9165,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.10.10 + '@types/node': 22.13.0 long: 5.2.4 proxy-addr@2.0.7: @@ -9200,8 +9209,6 @@ snapshots: queue-microtask@1.2.3: {} - queue-tick@1.0.1: {} - radix3@1.1.2: {} railroad-diagrams@1.0.0: {} @@ -9504,29 +9511,29 @@ snapshots: reusify@1.0.4: {} - rollup@4.32.0: + rollup@4.34.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.32.0 - '@rollup/rollup-android-arm64': 4.32.0 - '@rollup/rollup-darwin-arm64': 4.32.0 - '@rollup/rollup-darwin-x64': 4.32.0 - '@rollup/rollup-freebsd-arm64': 4.32.0 - '@rollup/rollup-freebsd-x64': 4.32.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.32.0 - '@rollup/rollup-linux-arm-musleabihf': 4.32.0 - '@rollup/rollup-linux-arm64-gnu': 4.32.0 - '@rollup/rollup-linux-arm64-musl': 4.32.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.32.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.32.0 - '@rollup/rollup-linux-riscv64-gnu': 4.32.0 - '@rollup/rollup-linux-s390x-gnu': 4.32.0 - '@rollup/rollup-linux-x64-gnu': 4.32.0 - '@rollup/rollup-linux-x64-musl': 4.32.0 - '@rollup/rollup-win32-arm64-msvc': 4.32.0 - '@rollup/rollup-win32-ia32-msvc': 4.32.0 - '@rollup/rollup-win32-x64-msvc': 4.32.0 + '@rollup/rollup-android-arm-eabi': 4.34.0 + '@rollup/rollup-android-arm64': 4.34.0 + '@rollup/rollup-darwin-arm64': 4.34.0 + '@rollup/rollup-darwin-x64': 4.34.0 + '@rollup/rollup-freebsd-arm64': 4.34.0 + '@rollup/rollup-freebsd-x64': 4.34.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.0 + '@rollup/rollup-linux-arm-musleabihf': 4.34.0 + '@rollup/rollup-linux-arm64-gnu': 4.34.0 + '@rollup/rollup-linux-arm64-musl': 4.34.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.0 + '@rollup/rollup-linux-riscv64-gnu': 4.34.0 + '@rollup/rollup-linux-s390x-gnu': 4.34.0 + '@rollup/rollup-linux-x64-gnu': 4.34.0 + '@rollup/rollup-linux-x64-musl': 4.34.0 + '@rollup/rollup-win32-arm64-msvc': 4.34.0 + '@rollup/rollup-win32-ia32-msvc': 4.34.0 + '@rollup/rollup-win32-x64-msvc': 4.34.0 fsevents: 2.3.3 router@2.0.0: @@ -9567,7 +9574,7 @@ snapshots: semver@6.3.1: {} - semver@7.6.3: {} + semver@7.7.0: {} send@0.19.0: dependencies: @@ -9602,7 +9609,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.6.3 + semver: 7.7.0 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -9630,14 +9637,14 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.29.1: + shiki@1.29.2: dependencies: - '@shikijs/core': 1.29.1 - '@shikijs/engine-javascript': 1.29.1 - '@shikijs/engine-oniguruma': 1.29.1 - '@shikijs/langs': 1.29.1 - '@shikijs/themes': 1.29.1 - '@shikijs/types': 1.29.1 + '@shikijs/core': 1.29.2 + '@shikijs/engine-javascript': 1.29.2 + '@shikijs/engine-oniguruma': 1.29.2 + '@shikijs/langs': 1.29.2 + '@shikijs/themes': 1.29.2 + '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 @@ -9692,6 +9699,8 @@ snapshots: smart-buffer@4.2.0: {} + smol-toml@1.3.1: {} + socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 @@ -9737,16 +9746,16 @@ snapshots: stack-trace@0.0.10: {} - starlight-cooler-credit@0.2.3(@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0))): + starlight-cooler-credit@0.2.3(@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0))): dependencies: - '@astrojs/starlight': 0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astrojs/starlight': 0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) change-case: 5.4.4 - starlight-links-validator@0.13.4(@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)))(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)): + starlight-links-validator@0.13.4(@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)))(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)): dependencies: - '@astrojs/starlight': 0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astrojs/starlight': 0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) '@types/picomatch': 2.3.3 - astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0) github-slugger: 2.0.0 hast-util-from-html: 2.0.1 hast-util-has-property: 3.0.0 @@ -9756,11 +9765,11 @@ snapshots: picomatch: 4.0.2 unist-util-visit: 5.0.0 - starlight-showcases@0.3.0(@astrojs/starlight@0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)))(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)): + starlight-showcases@0.3.0(@astrojs/starlight@0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)))(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)): dependencies: - '@astro-community/astro-embed-twitter': 0.5.8(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astro-community/astro-embed-youtube': 0.5.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) - '@astrojs/starlight': 0.30.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(rollup@4.32.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-twitter': 0.5.8(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astro-community/astro-embed-youtube': 0.5.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) + '@astrojs/starlight': 0.30.6(astro@5.2.3(@types/node@22.13.0)(jiti@2.4.2)(rollup@4.34.0)(typescript@5.7.3)(yaml@2.7.0)) transitivePeerDependencies: - astro @@ -9782,10 +9791,9 @@ snapshots: stream-shift@1.0.3: {} - streamx@2.21.1: + streamx@2.22.0: dependencies: fast-fifo: 1.3.2 - queue-tick: 1.0.1 text-decoder: 1.2.3 optionalDependencies: bare-events: 2.5.4 @@ -9927,7 +9935,7 @@ snapshots: dependencies: b4a: 1.6.7 fast-fifo: 1.3.2 - streamx: 2.21.1 + streamx: 2.22.0 tar@6.2.1: dependencies: @@ -10036,7 +10044,7 @@ snapshots: typescript-auto-import-cache@0.3.5: dependencies: - semver: 7.6.3 + semver: 7.7.0 typescript@5.7.3: {} @@ -10188,7 +10196,7 @@ snapshots: pupa: 2.1.1 registry-auth-token: 5.0.3 registry-url: 5.1.0 - semver: 7.6.3 + semver: 7.7.0 semver-diff: 3.1.1 xdg-basedir: 4.0.0 transitivePeerDependencies: @@ -10225,20 +10233,20 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0): + vite@6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.5.1 - rollup: 4.32.0 + rollup: 4.34.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.13.0 fsevents: 2.3.3 jiti: 2.4.2 yaml: 2.7.0 - vitefu@1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0)): + vitefu@1.0.5(vite@6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0)): optionalDependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.13.0)(jiti@2.4.2)(yaml@2.7.0) volar-service-css@0.0.62(@volar/language-service@2.4.11): dependencies: @@ -10281,7 +10289,7 @@ snapshots: volar-service-typescript@0.0.62(@volar/language-service@2.4.11): dependencies: path-browserify: 1.0.1 - semver: 7.6.3 + semver: 7.7.0 typescript-auto-import-cache: 0.3.5 vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 @@ -10513,7 +10521,7 @@ snapshots: yocto-queue@1.1.1: {} - yocto-spinner@0.1.2: + yocto-spinner@0.2.0: dependencies: yoctocolors: 2.1.1 diff --git a/sidebar.ts b/sidebar.ts index 08979da..466bdab 100644 --- a/sidebar.ts +++ b/sidebar.ts @@ -52,6 +52,10 @@ export default [ 'guides/cms/custom-condition', 'guides/cms/conditional-route', 'guides/cms/template-routes', + { + slug: 'guides/cms/content-widget', + badge: { text: 'New', variant: 'note' }, + }, { slug: 'guides/cms/previews', badge: { text: 'New', variant: 'note' }, diff --git a/src/content/docs/guides/cms/content-widget/index.mdx b/src/content/docs/guides/cms/content-widget/index.mdx new file mode 100644 index 0000000..2d7e8dd --- /dev/null +++ b/src/content/docs/guides/cms/content-widget/index.mdx @@ -0,0 +1,339 @@ +--- +title: Vyuh Content Widget +description: + A standalone Flutter widget that simplifies rendering content from a CMS +--- + +import { PubBadge } from '@/components/PubBadge' +import { Aside } from '@astrojs/starlight/components' + + + +The `VyuhContentWidget` is a powerful, standalone Flutter widget that simplifies +content management and rendering in your Flutter applications. It provides a +seamless bridge between your CMS (Content Management System) and Flutter UI, +handling all the complexities of data fetching, error handling, and content +rendering. + +It follows a simple binding-based architecture (via the `VyuhContentBinding`) +that is integrated into your app's initialization code. This approach allows you +to easily switch between different content providers and content types without +affecting the rest of your app's structure. + +> In fact, you can be creative with your queries and support multiple +> `ContentProvider` options within the same App. + +![VyuhContentWidget Architecture](./vyuh-content-widget-arch.png) + + + +### Benefits + +- **Simplified CMS Integration**: Connect to your CMS with minimal boilerplate + code +- **Type-safe Content**: Strongly typed content models ensure compile-time + safety +- **Flexible Content Rendering**: Support for both single items and lists of + content +- **Built-in Error Handling**: Comprehensive error handling with retry + capabilities +- **Loading States**: Automatic handling of loading states with customizable + loaders +- **Query Parameters**: Support for parameterized queries for dynamic content + +![Widget States](./vyuh-content-widget-states.png) + +## Getting Started + +### 1. Add Dependencies + +Add the following to your `pubspec.yaml`: + +```yaml +dependencies: + vyuh_content_widget: ^1.0.0 +``` + +### 2. Initialize VyuhContentBinding + +Before using the widget, you need to initialize the content binding with your +desired plugins and configurations. This is typically done in your app's +initialization code. The below code shows the initialization with +`SanityContentProvider`. + +```dart {7,19} +import 'package:sanity_client/sanity_client.dart'; +import 'package:vyuh_content_widget/vyuh_content_widget.dart'; +import 'package:vyuh_core/vyuh_core.dart' hide runApp; +import 'package:vyuh_plugin_content_provider_sanity/vyuh_plugin_content_provider_sanity.dart'; + +// Configure your Sanity provider +final sanityProvider = SanityContentProvider.withConfig( + config: SanityConfig( + projectId: 'your-project-id', + dataset: 'production', + perspective: Perspective.previewDrafts, + useCdn: false, + token: 'your-sanity-token', // Optional: for authenticated requests + ), + cacheDuration: const Duration(seconds: 5), // Optional: configure cache duration +); + +void main() { + VyuhContentBinding.init( + plugins: PluginDescriptor( + content: DefaultContentPlugin(provider: sanityProvider), + // Add other plugins as needed, e.g., telemetry + ), + // Optional: Add custom content descriptors + descriptors: [ + ContentExtensionDescriptor( + contents: [MyContent.descriptor()], + contentBuilders: [MyContent.contentBuilder], + ), + ], + ); + + runApp(MyApp()); +} +``` + +This initialization step is crucial as it: + +- Sets up the Sanity content provider for fetching CMS content +- Sets up content type descriptors for your custom models. By default, it sets + up the `vyuh.document` content type for `Document` models and the system + content types in the + [`vyuh_feature_system`](/framework/packages/vyuh-feature-system) package. + These can later be used for rendering your content. +- Enables additional plugins like telemetry if needed + +### 3. Basic Usage + +The simplest way to use `VyuhContentWidget` is with a `Document`. A Document +(`vyuh.document`) is a built-in content type that provides a standard structure +for content in Vyuh applications. This is part of the +[`@vyuh/sanity-schema-system`](https://www.npmjs.com/package/@vyuh/sanity-schema-system) +NPM package. + +#### Document Schema in Sanity + +```typescript title="document.ts" +{ + name: 'vyuh.document', + type: 'document', + title: 'Document', + fields: [ + { + name: 'title', + title: 'Title', + type: 'string', + validation: Rule => Rule.required() + }, + { + name: 'identifier', + title: 'Identifier', + type: 'slug', + validation: Rule => Rule.required(), + options: { + source: 'title', + maxLength: 96 + } + }, + { + name: 'description', + title: 'Description', + type: 'string' + }, + { + name: 'item', + title: 'Item', + type: 'array', + validation: Rule => Rule.length(1), + of: [] // Populated with allowed content types + } + ] +} +``` + +#### Using the `identifier` + +Using the widget with a `Document` is straightforward by providing an identifier +for the `Document` instance. + +```dart +VyuhContentWidget.fromDocument( + identifier: 'hello-world', // matches document's identifier +); +``` + +#### Using the `builder` for custom rendering + +If you need more control over the rendering, you can pass in a builder that gets +the instance of the `Document`. + +```dart {1-3,15-18} +VyuhContentWidget.fromDocument( + identifier: 'hello-world', // matches document's identifier + builder: (context, document) { + return Column( + children: [ + if (document.title != null) + Text( + document.title!, + style: Theme.of(context).textTheme.titleMedium, + ), + if (document.description != null) + Text(document.description!), + if (document.item != null) + Expanded( + child: VyuhContentBinding.content.buildContent( + context, + document.item!, + ), + ), + ], + ); + }, +); +``` + +The widget provides these features out of the box: + +- Type-safe access to document fields (`title`, `description`, `item`) +- Automatic content building for nested items, when using the + `ContentPlugin.buildContent()` method. +- Default layout handling with `DocumentDefaultLayout` +- Proper theme integration with Flutter's Material Design + +![Basic Usage Example](./vyuh-content-widget-basic.png) + +### 4. Custom Content Types + +For custom content types, use the generic constructor, where you can pass in the +type-argument for the specific `ContentItem`. + +```dart +VyuhContentWidget( + query: '*[_type == "conf.conference"]', + fromJson: Conference.fromJson, + builder: (context, conference) { + return Text(conference.title); + }, +); +``` + +## Advanced Usage + +### Working with Lists + +The widget also supports rendering a list of items. The `listBuilder` is used +instead of the `builder` and receives the list of items instead of a single +item. + +```dart {4} +VyuhContentWidget( + query: Queries.conferences.query, + fromJson: Queries.conferences.fromJson, + listBuilder: (context, conferences) => ListView.builder( + itemCount: conferences.length, + itemBuilder: (context, index) => ListTile( + leading: system.ContentImage( + ref: conferences[index].logo, + width: 48, + height: 48, + ), + title: Text(conferences[index].title), + subtitle: Text(conferences[index].slug), + ), + ), +), +``` + +![List View Example](vyuh-content-widget-list.png) + +### Custom Query Parameters + +```dart +VyuhContentWidget
( + query: '''*[_type == "article" && + publishDate >= \$startDate && + publishDate <= \$endDate + ]''', + queryParams: { + 'startDate': '2024-01-01', + 'endDate': '2024-12-31', + }, + fromJson: Article.fromJson, + listBuilder: (context, articles) { + // Render articles + }, +); +``` + +### Error Handling + +The widget automatically handles errors and provides a built-in error view with +retry functionality: + +```dart +VyuhContentWidget( + query: '*[_type == "blog.post"][0]', + fromJson: BlogPost.fromJson, + builder: (context, post) { + return Column( + children: [ + Text(post.title), + Text(post.content), + ], + ); + }, +); +``` + +## Best Practices + +1. **Type Safety**: Always specify the content type parameter `` for better + type safety +2. **Query Parameters**: Use parameterized queries instead of string + interpolation +3. **Error Handling**: Let the widget handle errors automatically unless you + need custom error UI +4. **Loading States**: The widget provides default loading states, but you can + customize them through `widgetBuilder` parameter of + `VyuhContentBinding.init()` + +## Summary + +The `VyuhContentWidget` is a powerful widget for rendering content from a CMS. +Use it to fetch content from a CMS Provider (like Sanity.io) and render it in +your Flutter app, whether it is a standalone app or as part of a larger +feature-rich app. + +The widget also provides additional benefits such as built-in error handling +with retry functionality and a loading state that can be customized as per the +Design System of your Flutter app. diff --git a/src/content/docs/guides/cms/content-widget/vyuh-content-widget-arch.png b/src/content/docs/guides/cms/content-widget/vyuh-content-widget-arch.png new file mode 100644 index 0000000..06979ae Binary files /dev/null and b/src/content/docs/guides/cms/content-widget/vyuh-content-widget-arch.png differ diff --git a/src/content/docs/guides/cms/content-widget/vyuh-content-widget-basic.png b/src/content/docs/guides/cms/content-widget/vyuh-content-widget-basic.png new file mode 100644 index 0000000..f7a22e3 Binary files /dev/null and b/src/content/docs/guides/cms/content-widget/vyuh-content-widget-basic.png differ diff --git a/src/content/docs/guides/cms/content-widget/vyuh-content-widget-list.png b/src/content/docs/guides/cms/content-widget/vyuh-content-widget-list.png new file mode 100644 index 0000000..f627f99 Binary files /dev/null and b/src/content/docs/guides/cms/content-widget/vyuh-content-widget-list.png differ diff --git a/src/content/docs/guides/cms/content-widget/vyuh-content-widget-states.png b/src/content/docs/guides/cms/content-widget/vyuh-content-widget-states.png new file mode 100644 index 0000000..35ee135 Binary files /dev/null and b/src/content/docs/guides/cms/content-widget/vyuh-content-widget-states.png differ