diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c99ad078..7af7988f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,10 +61,10 @@ importers: version: 0.9.10 vite: specifier: ^6.2.5 - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) vitest: specifier: ^1.3.0 - version: 1.6.1(@types/node@22.14.0)(jsdom@23.2.0)(lightningcss@1.29.3) + version: 1.6.1(@types/node@22.15.19)(jsdom@23.2.0)(lightningcss@1.29.3) zx: specifier: ^8.1.9 version: 8.5.0 @@ -82,7 +82,7 @@ importers: version: 2.0.2 '@fastify/vite': specifier: ^6.0.3 - version: 6.0.7(@types/node@22.14.0)(lightningcss@1.29.3) + version: 6.0.7(@types/node@22.15.19)(lightningcss@1.29.3) '@kitajs/html': specifier: ^3.1.2 version: 3.1.2(@kitajs/ts-html-plugin@4.1.1) @@ -91,13 +91,13 @@ importers: version: 5.0.5(rollup@4.39.0) fastify: specifier: latest - version: 5.3.2 + version: 5.3.3 htmx.org: specifier: ^1.9.10 version: 1.9.12 vite: specifier: ^5.0.2 - version: 5.4.17(@types/node@22.14.0)(lightningcss@1.29.3) + version: 5.4.17(@types/node@22.15.19)(lightningcss@1.29.3) devDependencies: postcss: specifier: ^8.4.31 @@ -125,7 +125,7 @@ importers: version: 2.0.2 '@fastify/vite': specifier: ^6.0.3 - version: 6.0.7(@types/node@22.14.0)(lightningcss@1.29.3) + version: 6.0.7(@types/node@22.15.19)(lightningcss@1.29.3) '@kitajs/html': specifier: ^3.1.2 version: 3.1.2(@kitajs/ts-html-plugin@4.1.1) @@ -134,13 +134,13 @@ importers: version: 5.0.5(rollup@4.39.0) fastify: specifier: latest - version: 5.3.2 + version: 5.3.3 htmx.org: specifier: ^1.9.10 version: 1.9.12 vite: specifier: ^5.0.2 - version: 5.4.17(@types/node@22.14.0)(lightningcss@1.29.3) + version: 5.4.17(@types/node@22.15.19)(lightningcss@1.29.3) devDependencies: postcss: specifier: ^8.4.31 @@ -168,7 +168,7 @@ importers: version: 2.0.2 '@fastify/vite': specifier: ^6.0.3 - version: 6.0.7(@types/node@22.14.0)(lightningcss@1.29.3) + version: 6.0.7(@types/node@22.15.19)(lightningcss@1.29.3) '@kitajs/html': specifier: ^3.1.2 version: 3.1.2(@kitajs/ts-html-plugin@4.1.1) @@ -177,13 +177,13 @@ importers: version: 5.0.5(rollup@4.39.0) fastify: specifier: latest - version: 5.3.2 + version: 5.3.3 htmx.org: specifier: ^1.9.10 version: 1.9.12 vite: specifier: ^5.0.2 - version: 5.4.17(@types/node@22.14.0)(lightningcss@1.29.3) + version: 5.4.17(@types/node@22.15.19)(lightningcss@1.29.3) devDependencies: postcss: specifier: ^8.4.31 @@ -251,10 +251,10 @@ importers: version: 0.14.5(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.3) vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(solid-js@1.9.5)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 2.11.6(solid-js@1.9.5)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) contrib/solid-vanilla: dependencies: @@ -300,10 +300,10 @@ importers: version: 0.14.5(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.3) vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(solid-js@1.9.5)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 2.11.6(solid-js@1.9.5)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) contrib/svelte-hydration: dependencies: @@ -331,7 +331,7 @@ importers: version: 7.27.0(@babel/core@7.26.10)(eslint@9.23.0(jiti@2.4.2)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) eslint: specifier: ^9.23.0 version: 9.23.0(jiti@2.4.2) @@ -355,13 +355,13 @@ importers: version: 3.5.1(eslint@9.23.0(jiti@2.4.2))(svelte@5.25.6) vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) contrib/svelte-vanilla: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) fastify: specifier: 'catalog:' version: 5.3.2 @@ -401,7 +401,7 @@ importers: version: 3.5.1(eslint@9.23.0(jiti@2.4.2))(svelte@5.25.6) vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) docs: dependencies: @@ -441,7 +441,7 @@ importers: devDependencies: '@orama/plugin-vitepress': specifier: 3.1.4 - version: 3.1.4(@orama/highlight@0.1.8)(@oramacloud/client@1.0.0-beta.21(typescript@5.8.3))(@preact/signals-core@1.8.0)(@preact/signals@1.3.2(preact@10.26.4))(@types/node@22.14.0)(lightningcss@1.29.3)(postcss@8.5.3)(preact-custom-element@4.3.0(preact@10.26.4))(preact@10.26.4)(vue@3.5.13(typescript@5.8.3)) + version: 3.1.4(@orama/highlight@0.1.8)(@oramacloud/client@1.0.0-beta.21(typescript@5.8.3))(@preact/signals-core@1.8.0)(@preact/signals@1.3.2(preact@10.26.4))(@types/node@22.15.19)(lightningcss@1.29.3)(postcss@8.5.3)(preact-custom-element@4.3.0(preact@10.26.4))(preact@10.26.4)(vue@3.5.13(typescript@5.8.3)) markdown-it-mathjax3: specifier: ^4.3.2 version: 4.3.2 @@ -450,10 +450,10 @@ importers: version: 10.9.3 vitepress: specifier: 1.0.0-rc.25 - version: 1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.14.0)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3) + version: 1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.15.19)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3) vitepress-plugin-mermaid: specifier: ^2.0.15 - version: 2.0.17(mermaid@10.9.3)(vitepress@1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.14.0)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3)) + version: 2.0.17(mermaid@10.9.3)(vitepress@1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.15.19)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3)) examples/react-hydration: dependencies: @@ -481,13 +481,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.4.1(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 4.4.1(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/react-next-mini: dependencies: @@ -524,13 +524,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.4.1(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 4.4.1(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/react-streaming: dependencies: @@ -558,13 +558,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.4.1(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 4.4.1(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/react-vanilla: dependencies: @@ -583,13 +583,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.4.1(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 4.4.1(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/react-vanilla-spa: dependencies: @@ -608,13 +608,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: 'catalog:' - version: 4.4.1(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 4.4.1(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/react-vanilla-spa-ts: dependencies: @@ -719,13 +719,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.3(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/vue-next-mini: dependencies: @@ -756,13 +756,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.3(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/vue-streaming: dependencies: @@ -790,7 +790,7 @@ importers: version: 7.27.0(@babel/core@7.26.10)(eslint@9.23.0(jiti@2.4.2)) '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.3(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) eslint: specifier: ^9.23.0 version: 9.23.0(jiti@2.4.2) @@ -817,7 +817,7 @@ importers: version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/vue-vanilla: dependencies: @@ -833,13 +833,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.3(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/vue-vanilla-spa: dependencies: @@ -855,13 +855,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.3(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) oxlint: specifier: 'catalog:' version: 0.16.6 vite: specifier: 'catalog:' - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) examples/vue-vanilla-ts: dependencies: @@ -959,7 +959,7 @@ importers: version: 7.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) valtio: specifier: latest - version: 2.1.4(@types/react@19.1.2)(react@19.1.0) + version: 2.1.5(@types/react@19.1.2)(react@19.1.0) youch: specifier: ^3.3.4 version: 3.3.4 @@ -1064,11 +1064,11 @@ importers: optionalDependencies: vite: specifier: ^6.2.4 - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) devDependencies: '@vitejs/plugin-vue': specifier: latest - version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.4(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) oxlint: specifier: ^0.16.8 version: 0.16.8 @@ -1080,10 +1080,10 @@ importers: version: 2.0.2 '@fastify/react': specifier: ^1.1.0 - version: 1.1.0(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 1.1.0(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@fastify/vite': specifier: ^8.1.2 - version: 8.1.2(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 8.1.2(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) '@unhead/react': specifier: ^2.0.8 version: 2.0.8(react@19.1.0) @@ -1114,7 +1114,7 @@ importers: version: 4.1.2 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 4.3.4(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) oxlint: specifier: ^0.16.6 version: 0.16.6 @@ -1129,7 +1129,7 @@ importers: version: 4.1.2 vite: specifier: ^6.2.4 - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) starters/react-kitchensink: dependencies: @@ -1141,10 +1141,10 @@ importers: version: 2.0.2 '@fastify/react': specifier: ^1.1.0 - version: 1.1.0(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 1.1.0(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@fastify/vite': specifier: ^8.1.2 - version: 8.1.2(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 8.1.2(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) '@unhead/react': specifier: ^2.0.8 version: 2.0.8(react@19.1.0) @@ -1175,7 +1175,7 @@ importers: version: 4.1.2 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 4.3.4(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) oxlint: specifier: ^0.16.6 version: 0.16.6 @@ -1190,7 +1190,107 @@ importers: version: 4.1.2 vite: specifier: ^6.2.4 - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + + starters/react-shadcn: + dependencies: + '@fastify/formbody': + specifier: ^8.0.2 + version: 8.0.2 + '@fastify/one-line-logger': + specifier: ^2.0.2 + version: 2.0.2 + '@fastify/react': + specifier: ^1.1.0 + version: 1.1.0(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/vite': + specifier: ^8.1.2 + version: 8.1.2(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@radix-ui/react-select': + specifier: ^2.2.4 + version: 2.2.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': + specifier: ^1.2.2 + version: 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@unhead/react': + specifier: ^2.0.8 + version: 2.0.8(react@19.1.0) + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + fastify: + specifier: ^5.3.2 + version: 5.3.3 + history: + specifier: ^5.3.0 + version: 5.3.0 + lucide-react: + specifier: ^0.511.0 + version: 0.511.0(react@19.1.0) + minipass: + specifier: ^7.1.2 + version: 7.1.2 + react: + specifier: ^19.1.0 + version: 19.1.0 + react-dom: + specifier: ^19.1.0 + version: 19.1.0(react@19.1.0) + react-router: + specifier: ^7.5.0 + version: 7.5.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + tailwind-merge: + specifier: ^3.3.0 + version: 3.3.0 + valtio: + specifier: ^2.1.4 + version: 2.1.5(@types/react@19.1.2)(react@19.1.0) + devDependencies: + '@tailwindcss/postcss': + specifier: ^4.1.1 + version: 4.1.4 + '@tailwindcss/vite': + specifier: ^4.1.2 + version: 4.1.2(vite@6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + '@types/node': + specifier: ^22.15.19 + version: 22.15.19 + '@types/react': + specifier: ^19.1.2 + version: 19.1.2 + '@types/react-dom': + specifier: ^19.1.2 + version: 19.1.2(@types/react@19.1.2) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.4.1(vite@6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + oxlint: + specifier: ^0.16.6 + version: 0.16.8 + postcss: + specifier: ^8.5.3 + version: 8.5.3 + postcss-preset-env: + specifier: ^10.1.5 + version: 10.1.5(postcss@8.5.3) + tailwindcss: + specifier: ^4.1.4 + version: 4.1.4 + tsx: + specifier: ^4.19.4 + version: 4.19.4 + tw-animate-css: + specifier: ^1.3.0 + version: 1.3.0 + typescript: + specifier: ^5.8.3 + version: 5.8.3 + vite: + specifier: ^6.2.4 + version: 6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) starters/react-typescript: dependencies: @@ -1202,10 +1302,10 @@ importers: version: 2.0.2 '@fastify/react': specifier: ^1.1.0 - version: 1.1.0(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 1.1.0(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@fastify/vite': specifier: ^8.1.2 - version: 8.1.2(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + version: 8.1.2(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@unhead/react': specifier: ^2.0.8 version: 2.0.8(react@19.1.0) @@ -1275,10 +1375,10 @@ importers: version: 2.0.2 '@fastify/vite': specifier: ^8.1.2 - version: 8.1.2(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + version: 8.1.2(@types/node@22.15.19)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@fastify/vue': specifier: ^1.1.1 - version: 1.1.1(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + version: 1.1.1(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@unhead/vue': specifier: ^2.0.5 version: 2.0.8(vue@3.5.13(typescript@5.8.3)) @@ -1297,10 +1397,10 @@ importers: version: 4.1.2 '@tailwindcss/vite': specifier: ^4.1.1 - version: 4.1.2(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + version: 4.1.2(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) '@vitejs/plugin-vue': specifier: ^5.2.3 - version: 5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.3(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) postcss: specifier: ^8.5.3 version: 8.5.3 @@ -1312,7 +1412,7 @@ importers: version: 4.1.2 vite: specifier: ^6.2.4 - version: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) starters/vue-kitchensink: dependencies: @@ -1324,10 +1424,10 @@ importers: version: 2.0.2 '@fastify/vite': specifier: ^8.1.2 - version: 8.1.2(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + version: 8.1.2(@types/node@22.15.19)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@fastify/vue': specifier: ^1.1.1 - version: 1.1.1(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + version: 1.1.1(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@unhead/vue': specifier: ^2.0.5 version: 2.0.8(vue@3.5.13(typescript@5.8.3)) @@ -1349,7 +1449,7 @@ importers: version: 4.1.2 '@vitejs/plugin-vue': specifier: ^5.2.3 - version: 5.2.3(vite@6.2.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) + version: 5.2.3(vite@6.2.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3)) postcss: specifier: ^8.5.3 version: 8.5.3 @@ -1361,7 +1461,103 @@ importers: version: 4.1.2 vite: specifier: 6.2.4 - version: 6.2.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + version: 6.2.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + + starters/vue-saas: + dependencies: + '@radix-ui/react-avatar': + specifier: ^1.1.6 + version: 1.1.9(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.11 + version: 2.1.14(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-label': + specifier: ^2.1.4 + version: 2.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-radio-group': + specifier: ^1.3.3 + version: 1.3.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': + specifier: ^1.2.0 + version: 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@tailwindcss/postcss': + specifier: 4.1.4 + version: 4.1.4 + '@types/node': + specifier: ^22.14.1 + version: 22.15.19 + '@types/react': + specifier: 19.1.2 + version: 19.1.2 + '@types/react-dom': + specifier: 19.1.2 + version: 19.1.2(@types/react@19.1.2) + autoprefixer: + specifier: ^10.4.21 + version: 10.4.21(postcss@8.5.3) + bcryptjs: + specifier: ^3.0.2 + version: 3.0.2 + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + dotenv: + specifier: ^16.5.0 + version: 16.5.0 + drizzle-kit: + specifier: ^0.31.0 + version: 0.31.1 + drizzle-orm: + specifier: ^0.42.0 + version: 0.42.0(postgres@3.4.5) + jose: + specifier: ^6.0.10 + version: 6.0.11 + lucide-react: + specifier: ^0.501.0 + version: 0.501.0(react@19.1.0) + next: + specifier: 15.4.0-canary.9 + version: 15.4.0-canary.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + postcss: + specifier: ^8.5.3 + version: 8.5.3 + postgres: + specifier: ^3.4.5 + version: 3.4.5 + react: + specifier: 19.1.0 + version: 19.1.0 + react-dom: + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) + server-only: + specifier: ^0.0.1 + version: 0.0.1 + stripe: + specifier: ^18.0.0 + version: 18.1.1(@types/node@22.15.19) + swr: + specifier: ^2.3.3 + version: 2.3.3(react@19.1.0) + tailwind-merge: + specifier: ^3.2.0 + version: 3.3.0 + tailwindcss: + specifier: 4.1.4 + version: 4.1.4 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@4.1.4) + typescript: + specifier: ^5.8.3 + version: 5.8.3 + zod: + specifier: ^3.24.3 + version: 3.25.7 starters/vue-typescript: dependencies: @@ -1376,7 +1572,7 @@ importers: version: 8.1.2(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@fastify/vue': specifier: ^1.1.1 - version: 1.1.1(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + version: 1.1.1(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@unhead/vue': specifier: ^2.0.5 version: 2.0.8(vue@3.5.13(typescript@5.8.3)) @@ -2045,6 +2241,20 @@ packages: search-insights: optional: true + '@drizzle-team/brocli@0.10.2': + resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} + + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + + '@esbuild-kit/core-utils@3.3.2': + resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} + deprecated: 'Merged into tsx: https://tsx.is' + + '@esbuild-kit/esm-loader@2.6.5': + resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} + deprecated: 'Merged into tsx: https://tsx.is' + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -2582,6 +2792,21 @@ packages: '@fastify/vue@1.1.1': resolution: {integrity: sha512-hcVTkceQPQulbpQJjrrCezJ0O0UhJ4QIrydJSALGrHhP2ejPKJg5OEzqLuN33VOvhW9OrKvbMnBXDMhLwQDb8Q==} + '@floating-ui/core@1.7.0': + resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==} + + '@floating-ui/dom@1.7.0': + resolution: {integrity: sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -2602,6 +2827,116 @@ packages: resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} + '@img/sharp-darwin-arm64@0.34.1': + resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.34.1': + resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.1.0': + resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.1.0': + resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.1.0': + resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.1.0': + resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.1.0': + resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + cpu: [ppc64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.1.0': + resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.1.0': + resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.34.1': + resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.34.1': + resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.34.1': + resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.34.1': + resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.34.1': + resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.34.1': + resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.34.1': + resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.34.1': + resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.34.1': + resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2656,6 +2991,57 @@ packages: resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} engines: {node: '>= 10'} + '@next/env@15.4.0-canary.9': + resolution: {integrity: sha512-IYSpNqKxUiCIeIltVqu16ztuEQ2m3nnzYOt6Kxi/iqMzEfdL4y3g9ZaMK5gVxHUEO0IpriMyk2WP3hPi8s/dTw==} + + '@next/swc-darwin-arm64@15.4.0-canary.9': + resolution: {integrity: sha512-jregs5DO960cgMf2y/W2J7/U4na/07KzJmpnSUgsDmGokTjAvHcgyXRbxeyRpTMXe3DGfIWz0wWhAEao0thSsw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@15.4.0-canary.9': + resolution: {integrity: sha512-emCL/vuRNOdAD5VmOrRzm5LeJco/y16J4LCw4i3s8WC+v9wRAX6aDtMU3oYM4zK3rLF9z0I4QVI3PN5NGVEc8g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@15.4.0-canary.9': + resolution: {integrity: sha512-g65Fg5wWBsBPHc0RjfjZuFlzLSQ8oaGoqW998fHG4vy/GK2GvR5L03eOvuXYrgLzomoAFjWVnnZu8PU6fQ9IdA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.4.0-canary.9': + resolution: {integrity: sha512-xG9cA8UdGfufYSyTGDTWxCBDqOOAV7d123Q5oXIcQmlKC911SzM7hNKhLd37wqbTs1XQ/8nZJMlB5Fp+hMfGiw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.4.0-canary.9': + resolution: {integrity: sha512-kG1kL8V4EqXVLkNHSwLzT+hMl5iw7P8FO7VLwHuyEu/RPoK3fEWBFPjB45PNiq5nbDl1ef/02nVTIQCP3YGdAA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.4.0-canary.9': + resolution: {integrity: sha512-ZAOPUZjnHYMwy/iuGKD5jJaqLSamkfuu1HO/6qL8LpU4I1CjSuf9M1zvGqAM1WsUSZolVyXwe0nOn1wrS21cOA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@15.4.0-canary.9': + resolution: {integrity: sha512-XizesUelbpvotdqGO+dIVfGhGJIcyWl7v8NXSFBpFROCh51q21SozcdSktkS4C88edaO80l+n8za94pzBt8vcg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.4.0-canary.9': + resolution: {integrity: sha512-MSE/8U0gwZWMJ7zAOTH3sCoIfsTGAQWYsz4Sz1/KsSCISBVrt/o9axPQufdqPw3cjx+C60gSg1+5N9TKEBKRRg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} @@ -2853,36 +3239,388 @@ packages: peerDependencies: preact: 10.x - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + + '@radix-ui/primitive@1.1.2': + resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} + + '@radix-ui/react-arrow@1.1.6': + resolution: {integrity: sha512-2JMfHJf/eVnwq+2dewT3C0acmCWD3XiVA1Da+jTDqo342UlU13WvXtqHhG+yJw5JeQmu4ue2eMy6gcEArLBlcw==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-avatar@1.1.9': + resolution: {integrity: sha512-10tQokfvZdFvnvDkcOJPjm2pWiP8A0R4T83MoD7tb15bC/k2GU7B1YBuzJi8lNQ8V1QqhP8ocNqp27ByZaNagQ==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/rollup-android-arm-eabi@4.39.0': - resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==} - cpu: [arm] - os: [android] + '@radix-ui/react-collection@1.1.6': + resolution: {integrity: sha512-PbhRFK4lIEw9ADonj48tiYWzkllz81TM7KVYyyMMw2cwHO7D5h4XKEblL8NlaRisTK3QTe6tBEhDccFUryxHBQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-android-arm64@4.39.0': - resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==} - cpu: [arm64] - os: [android] + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-darwin-arm64@4.39.0': - resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==} + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.9': + resolution: {integrity: sha512-way197PiTvNp+WBP7svMJasHl+vibhWGQDb6Mgf5mhEWJkgb85z7Lfl9TUdkqpWsf8GRNmoopx9ZxCyDzmgRMQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.14': + resolution: {integrity: sha512-lzuyNjoWOoaMFE/VC5FnAAYM16JmQA8ZmucOXtlhm2kKR5TSU95YLAueQ4JYuRmUJmBvSqXaVFGIfuukybwZJQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.2': + resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.6': + resolution: {integrity: sha512-r9zpYNUQY+2jWHWZGyddQLL9YHkM/XvSFHVcWs7bdVuxMAnCwTAuy6Pf47Z4nw7dYcUou1vg/VgjjrrH03VeBw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-label@2.1.6': + resolution: {integrity: sha512-S/hv1mTlgcPX2gCTJrWuTjSXf7ER3Zf7zWGtOprxhIIY93Qin3n5VgNA0Ez9AgrK/lEtlYgzLd4f5x6AVar4Yw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-menu@2.1.14': + resolution: {integrity: sha512-0zSiBAIFq9GSKoSH5PdEaQeRB3RnEGxC+H2P0egtnKoKKLNBH8VBHyVO6/jskhjAezhOIplyRUj7U2lds9A+Yg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.6': + resolution: {integrity: sha512-7iqXaOWIjDBfIG7aq8CUEeCSsQMLFdn7VEE8TaFz704DtEzpPHR7w/uuzRflvKgltqSAImgcmxQ7fFX3X7wasg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.8': + resolution: {integrity: sha512-hQsTUIn7p7fxCPvao/q6wpbxmCwgLrlz+nOrJgC+RwfZqWY/WN+UMqkXzrtKbPrF82P43eCTl3ekeKuyAQbFeg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.4': + resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.2': + resolution: {integrity: sha512-uHa+l/lKfxuDD2zjN/0peM/RhhSmRjr5YWdk/37EnSv1nJ88uvG85DPexSm8HdFQROd2VdERJ6ynXbkCFi+APw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-radio-group@1.3.6': + resolution: {integrity: sha512-1tfTAqnYZNVwSpFhCT273nzK8qGBReeYnNTPspCggqk1fvIrfVxJekIuBFidNivzpdiMqDwVGnQvHqXrRPM4Og==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.9': + resolution: {integrity: sha512-ZzrIFnMYHHCNqSNCsuN6l7wlewBEq0O0BCSBkabJMFXVO51LRUTq71gLP1UxFvmrXElqmPjA5VX7IqC9VpazAQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.2.4': + resolution: {integrity: sha512-/OOm58Gil4Ev5zT8LyVzqfBcij4dTHYdeyuF5lMHZ2bIp0Lk9oETocYiJ5QC0dHekEQnK6L/FNJCceeb4AkZ6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.2': + resolution: {integrity: sha512-y7TBO4xN4Y94FvcWIOIh18fM4R1A8S4q1jhoz4PNzOoHsFcN8pogcFmZrTYAm4F9VRUrWP/Mw7xSKybIeRI+CQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-is-hydrated@0.1.0': + resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.2': + resolution: {integrity: sha512-ORCmRUbNiZIv6uV5mhFrhsIKw4UX/N3syZtyqvry61tbGm4JlgQuSn0hk5TwCARsCjkcnuRkSdCE3xfb+ADHew==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.39.0': + resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.39.0': + resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.39.0': + resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==} cpu: [arm64] os: [darwin] @@ -3009,82 +3747,176 @@ packages: svelte: ^5.0.0 vite: ^6.0.0 + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@tailwindcss/node@4.1.2': resolution: {integrity: sha512-ZwFnxH+1z8Ehh8bNTMX3YFrYdzAv7JLY5X5X7XSFY+G9QGJVce/P9xb2mh+j5hKt8NceuHmdtllJvAHWKtsNrQ==} + '@tailwindcss/node@4.1.4': + resolution: {integrity: sha512-MT5118zaiO6x6hNA04OWInuAiP1YISXql8Z+/Y8iisV5nuhM8VXlyhRuqc2PEviPszcXI66W44bCIk500Oolhw==} + '@tailwindcss/oxide-android-arm64@4.1.2': resolution: {integrity: sha512-IxkXbntHX8lwGmwURUj4xTr6nezHhLYqeiJeqa179eihGv99pRlKV1W69WByPJDQgSf4qfmwx904H6MkQqTA8w==} engines: {node: '>= 10'} cpu: [arm64] os: [android] + '@tailwindcss/oxide-android-arm64@4.1.4': + resolution: {integrity: sha512-xMMAe/SaCN/vHfQYui3fqaBDEXMu22BVwQ33veLc8ep+DNy7CWN52L+TTG9y1K397w9nkzv+Mw+mZWISiqhmlA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + '@tailwindcss/oxide-darwin-arm64@4.1.2': resolution: {integrity: sha512-ZRtiHSnFYHb4jHKIdzxlFm6EDfijTCOT4qwUhJ3GWxfDoW2yT3z/y8xg0nE7e72unsmSj6dtfZ9Y5r75FIrlpA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] + '@tailwindcss/oxide-darwin-arm64@4.1.4': + resolution: {integrity: sha512-JGRj0SYFuDuAGilWFBlshcexev2hOKfNkoX+0QTksKYq2zgF9VY/vVMq9m8IObYnLna0Xlg+ytCi2FN2rOL0Sg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@tailwindcss/oxide-darwin-x64@4.1.2': resolution: {integrity: sha512-BiKUNZf1A0pBNzndBvnPnBxonCY49mgbOsPfILhcCE5RM7pQlRoOgN7QnwNhY284bDbfQSEOWnFR0zbPo6IDTw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@tailwindcss/oxide-darwin-x64@4.1.4': + resolution: {integrity: sha512-sdDeLNvs3cYeWsEJ4H1DvjOzaGios4QbBTNLVLVs0XQ0V95bffT3+scptzYGPMjm7xv4+qMhCDrkHwhnUySEzA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@tailwindcss/oxide-freebsd-x64@4.1.2': resolution: {integrity: sha512-Z30VcpUfRGkiddj4l5NRCpzbSGjhmmklVoqkVQdkEC0MOelpY+fJrVhzSaXHmWrmSvnX8yiaEqAbdDScjVujYQ==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] + '@tailwindcss/oxide-freebsd-x64@4.1.4': + resolution: {integrity: sha512-VHxAqxqdghM83HslPhRsNhHo91McsxRJaEnShJOMu8mHmEj9Ig7ToHJtDukkuLWLzLboh2XSjq/0zO6wgvykNA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.2': resolution: {integrity: sha512-w3wsK1ChOLeQ3gFOiwabtWU5e8fY3P1Ss8jR3IFIn/V0va3ir//hZ8AwURveS4oK1Pu6b8i+yxesT4qWnLVUow==} engines: {node: '>= 10'} cpu: [arm] os: [linux] + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.4': + resolution: {integrity: sha512-OTU/m/eV4gQKxy9r5acuesqaymyeSCnsx1cFto/I1WhPmi5HDxX1nkzb8KYBiwkHIGg7CTfo/AcGzoXAJBxLfg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + '@tailwindcss/oxide-linux-arm64-gnu@4.1.2': resolution: {integrity: sha512-oY/u+xJHpndTj7B5XwtmXGk8mQ1KALMfhjWMMpE8pdVAznjJsF5KkCceJ4Fmn5lS1nHMCwZum5M3/KzdmwDMdw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@tailwindcss/oxide-linux-arm64-gnu@4.1.4': + resolution: {integrity: sha512-hKlLNvbmUC6z5g/J4H+Zx7f7w15whSVImokLPmP6ff1QqTVE+TxUM9PGuNsjHvkvlHUtGTdDnOvGNSEUiXI1Ww==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@tailwindcss/oxide-linux-arm64-musl@4.1.2': resolution: {integrity: sha512-k7G6vcRK/D+JOWqnKzKN/yQq1q4dCkI49fMoLcfs2pVcaUAXEqCP9NmA8Jv+XahBv5DtDjSAY3HJbjosEdKczg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@tailwindcss/oxide-linux-arm64-musl@4.1.4': + resolution: {integrity: sha512-X3As2xhtgPTY/m5edUtddmZ8rCruvBvtxYLMw9OsZdH01L2gS2icsHRwxdU0dMItNfVmrBezueXZCHxVeeb7Aw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@tailwindcss/oxide-linux-x64-gnu@4.1.2': resolution: {integrity: sha512-fLL+c678TkYKgkDLLNxSjPPK/SzTec7q/E5pTwvpTqrth867dftV4ezRyhPM5PaiCqX651Y8Yk0wRQMcWUGnmQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@tailwindcss/oxide-linux-x64-gnu@4.1.4': + resolution: {integrity: sha512-2VG4DqhGaDSmYIu6C4ua2vSLXnJsb/C9liej7TuSO04NK+JJJgJucDUgmX6sn7Gw3Cs5ZJ9ZLrnI0QRDOjLfNQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@tailwindcss/oxide-linux-x64-musl@4.1.2': resolution: {integrity: sha512-0tU1Vjd1WucZ2ooq6y4nI9xyTSaH2g338bhrqk+2yzkMHskBm+pMsOCfY7nEIvALkA1PKPOycR4YVdlV7Czo+A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@tailwindcss/oxide-linux-x64-musl@4.1.4': + resolution: {integrity: sha512-v+mxVgH2kmur/X5Mdrz9m7TsoVjbdYQT0b4Z+dr+I4RvreCNXyCFELZL/DO0M1RsidZTrm6O1eMnV6zlgEzTMQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.4': + resolution: {integrity: sha512-2TLe9ir+9esCf6Wm+lLWTMbgklIjiF0pbmDnwmhR9MksVOq+e8aP3TSsXySnBDDvTTVd/vKu1aNttEGj3P6l8Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + '@tailwindcss/oxide-win32-arm64-msvc@4.1.2': resolution: {integrity: sha512-r8QaMo3QKiHqUcn+vXYCypCEha+R0sfYxmaZSgZshx9NfkY+CHz91aS2xwNV/E4dmUDkTPUag7sSdiCHPzFVTg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@tailwindcss/oxide-win32-arm64-msvc@4.1.4': + resolution: {integrity: sha512-VlnhfilPlO0ltxW9/BgfLI5547PYzqBMPIzRrk4W7uupgCt8z6Trw/tAj6QUtF2om+1MH281Pg+HHUJoLesmng==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@tailwindcss/oxide-win32-x64-msvc@4.1.2': resolution: {integrity: sha512-lYCdkPxh9JRHXoBsPE8Pu/mppUsC2xihYArNAESub41PKhHTnvn6++5RpmFM+GLSt3ewyS8fwCVvht7ulWm6cw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + '@tailwindcss/oxide-win32-x64-msvc@4.1.4': + resolution: {integrity: sha512-+7S63t5zhYjslUGb8NcgLpFXD+Kq1F/zt5Xv5qTv7HaFTG/DHyHD9GA6ieNAxhgyA4IcKa/zy7Xx4Oad2/wuhw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@tailwindcss/oxide@4.1.2': resolution: {integrity: sha512-Zwz//1QKo6+KqnCKMT7lA4bspGfwEgcPAHlSthmahtgrpKDfwRGk8PKQrW8Zg/ofCDIlg6EtjSTKSxxSufC+CQ==} engines: {node: '>= 10'} + '@tailwindcss/oxide@4.1.4': + resolution: {integrity: sha512-p5wOpXyOJx7mKh5MXh5oKk+kqcz8T+bA3z/5VWWeQwFrmuBItGwz8Y2CHk/sJ+dNb9B0nYFfn0rj/cKHZyjahQ==} + engines: {node: '>= 10'} + '@tailwindcss/postcss@4.1.2': resolution: {integrity: sha512-vgkMo6QRhG6uv97im6Y4ExDdq71y9v2IGZc+0wn7lauQFYJM/1KdUVhrOkexbUso8tUsMOWALxyHVkQEbsM7gw==} + '@tailwindcss/postcss@4.1.4': + resolution: {integrity: sha512-bjV6sqycCEa+AQSt2Kr7wpGF1bOZJ5wsqnLEkqSbM/JEHxx/yhMH8wHmdkPyApF9xhHeMSwnnkDUUMMM/hYnXw==} + '@tailwindcss/vite@4.1.2': resolution: {integrity: sha512-3r/ZdMW0gxY8uOx1To0lpYa4coq4CzINcCX4laM1rS340Kcn0ac4A/MMFfHN8qba51aorZMYwMcOxYk4wJ9FYg==} peerDependencies: @@ -3144,6 +3976,9 @@ packages: '@types/node@22.14.0': resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} + '@types/node@22.15.19': + resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==} + '@types/react-dom@19.1.2': resolution: {integrity: sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==} peerDependencies: @@ -3226,6 +4061,13 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + '@vitest/expect@1.6.1': resolution: {integrity: sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==} @@ -3462,6 +4304,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -3542,6 +4388,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bcryptjs@3.0.2: + resolution: {integrity: sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==} + hasBin: true + bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} @@ -3567,6 +4417,13 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -3636,6 +4493,12 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3651,6 +4514,13 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -4042,6 +4912,9 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + devalue@5.1.1: resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} @@ -4086,9 +4959,106 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dotenv@16.5.0: + resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + engines: {node: '>=12'} + dpack@0.6.22: resolution: {integrity: sha512-WGPNlW2OAE7Bj0eODMpAHUcEqxrlg01e9OFZDxQodminIgC194/cRHT7K04Z1j7AUEWTeeplYGrIv/xRdwU9Hg==} + drizzle-kit@0.31.1: + resolution: {integrity: sha512-PUjYKWtzOzPtdtQlTHQG3qfv4Y0XT8+Eas6UbxCmxTj7qgMf+39dDujf1BP1I+qqZtw9uzwTh8jYtkMuCq+B0Q==} + hasBin: true + + drizzle-orm@0.42.0: + resolution: {integrity: sha512-pS8nNJm2kBNZwrOjTHJfdKkaU+KuUQmV/vk5D57NojDq4FG+0uAYGMulXtYT///HfgsMF0hnFFvu1ezI3OwOkg==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=4' + '@electric-sql/pglite': '>=0.2.0' + '@libsql/client': '>=0.10.0' + '@libsql/client-wasm': '>=0.10.0' + '@neondatabase/serverless': '>=0.10.0' + '@op-engineering/op-sqlite': '>=2' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1.13' + '@prisma/client': '*' + '@tidbcloud/serverless': '*' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/sql.js': '*' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + better-sqlite3: '>=7' + bun-types: '*' + expo-sqlite: '>=14.0.0' + gel: '>=2' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + prisma: '*' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@libsql/client-wasm': + optional: true + '@neondatabase/serverless': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@prisma/client': + optional: true + '@tidbcloud/serverless': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/sql.js': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + gel: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + prisma: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -4157,6 +5127,11 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + esbuild-register@3.6.0: + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} + peerDependencies: + esbuild: '>=0.12 <1' + esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} @@ -4427,17 +5402,12 @@ packages: fastify@5.3.2: resolution: {integrity: sha512-AIPqBgtqBAwkOkrnwesEE+dOyU30dQ4kh7udxeGVR05CRGwubZx+p2H8P0C4cRnQT0+EPK4VGea2DTL2RtWttg==} + fastify@5.3.3: + resolution: {integrity: sha512-nCBiBCw9q6jPx+JJNVgO8JVnTXeUyrGcyTKPQikRkA/PanrFcOIo4R+ZnLeOLPZPGgzjomqfVarzE0kYx7qWiQ==} + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fdir@6.4.4: resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} peerDependencies: @@ -4551,6 +5521,10 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -4752,6 +5726,9 @@ packages: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-async-function@2.1.1: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} @@ -4903,6 +5880,9 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + jose@6.0.11: + resolution: {integrity: sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==} + jotai@2.12.2: resolution: {integrity: sha512-oN8715y7MkjXlSrpyjlR887TOuc/NLZMs9gvgtfWH/JP47ChwO0lR2ijSwBvPMYyXRAPT+liIAhuBavluKGgtA==} engines: {node: '>=12.20.0'} @@ -5221,6 +6201,16 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lucide-react@0.501.0: + resolution: {integrity: sha512-E2KoyhW59fCb/yUbR3rbDer83fqn7a8NG91ZhIot2yWaPHjPyGzzsNKh40N//GezYShAuycf3TcQksRQznIsRw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + lucide-react@0.511.0: + resolution: {integrity: sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + magic-string@0.26.7: resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} engines: {node: '>=12'} @@ -5426,12 +6416,34 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + next@15.4.0-canary.9: + resolution: {integrity: sha512-4Xk1hu01wRBMKbE87xpUzek5dILXZRWK/Re2pgyrLsM6SHPji8K36H0t56M4SXmdYeQVmSZX2IaOH92XH9S9Dg==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -6067,10 +7079,18 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.3: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postgres@3.4.5: + resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==} + engines: {node: '>=12'} + preact-custom-element@4.3.0: resolution: {integrity: sha512-5hG7nQhU4e7RNfCEQklaUqYQiiyibLuJ2wbhR+E2v1m8m9NDsJok5MykW/Nx0YLLBcXr8xnkap6DwByGy2TzDA==} peerDependencies: @@ -6118,6 +7138,10 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -6143,6 +7167,26 @@ packages: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.0: + resolution: {integrity: sha512-sGsQtcjMqdQyijAHytfGEELB8FufGbfXIsvUTe+NLx1GDRJCXtCFLBLUI1eyZCKXXvbEU2C6gai0PZKoIE9Vbg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react-router@7.5.0: resolution: {integrity: sha512-estOHrRlDMKdlQa6Mj32gIks4J+AxNsYoE0DbTTxiMy2mPzZuWSDU+N85/r1IlNR7kGfznF3VCUlvc5IUO+B9g==} engines: {node: '>=20.0.0'} @@ -6163,6 +7207,16 @@ packages: react-dom: optional: true + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -6326,6 +7380,9 @@ packages: resolution: {integrity: sha512-yBxFFs3zmkvKNmR0pFSU//rIsYjuX418TnlDmc2weaq5XFDqDIV/NOMPBoLrbxjLH42p4UzRuXHryXh9dYcKcw==} engines: {node: '>=10'} + server-only@0.0.1: + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + set-cookie-parser@2.7.1: resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} @@ -6344,6 +7401,10 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + sharp@0.34.1: + resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -6378,6 +7439,9 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sirv@3.0.1: resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} engines: {node: '>=18'} @@ -6407,6 +7471,9 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -6436,6 +7503,10 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -6483,9 +7554,31 @@ packages: strip-literal@2.1.1: resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} + stripe@18.1.1: + resolution: {integrity: sha512-hlF0ripc2nJrihpsJZQDl3xirS7tpdpS7DlmSNLEDRW8j7Qr215y5DHOI3+aEY/lq6PG8y4GR1RZPtEoIoAs/g==} + engines: {node: '>=12.*'} + peerDependencies: + '@types/node': '>=12.x.x' + peerDependenciesMeta: + '@types/node': + optional: true + style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + stylis@4.3.6: resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} @@ -6526,12 +7619,25 @@ packages: resolution: {integrity: sha512-RGkaeAXDuJdvhA1fdSM5GgD++vYfJYijZL0uN6kM2s/TRJ663jktBhZlF0qjzAJGR/34PtaeT3G8MKJY1EKeqg==} engines: {node: '>=18'} + swr@2.3.3: + resolution: {integrity: sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + tailwind-merge@3.3.0: + resolution: {integrity: sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + tailwindcss@3.4.17: resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} @@ -6540,6 +7646,9 @@ packages: tailwindcss@4.1.2: resolution: {integrity: sha512-VCsK+fitIbQF7JlxXaibFhxrPq4E2hDcG8apzHUdWFMCQWD8uLdlHg4iSkZ53cgLCCcZ+FZK7vG8VjvLcnBgKw==} + tailwindcss@4.1.4: + resolution: {integrity: sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -6647,6 +7756,9 @@ packages: turbo-stream@2.4.0: resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} + tw-animate-css@1.3.0: + resolution: {integrity: sha512-jrJ0XenzS9KVuDThJDvnhalbl4IYiMQ/XvpA0a2FL8KmlK+6CSMviO7ROY/I7z1NnUs5NnDhlM6fXmF40xPxzw==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -6734,6 +7846,31 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.5.0: + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -6765,6 +7902,18 @@ packages: react: optional: true + valtio@2.1.5: + resolution: {integrity: sha512-vsh1Ixu5mT0pJFZm+Jspvhga5GzHUTYv0/+Th203pLfh3/wbHwxhu/Z2OkZDXIgHfjnjBns7SN9HNcbDvPmaGw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + react: '>=18.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + vite-node@1.6.1: resolution: {integrity: sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -7238,6 +8387,9 @@ packages: zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + zod@3.25.7: + resolution: {integrity: sha512-YGdT1cVRmKkOg6Sq7vY7IkxdphySKnXhaUmFI4r4FcuFVNgpCb9tZfNwXbT6BPjD5oz0nubFsoo9pIqKrDcCvg==} + zx@8.5.0: resolution: {integrity: sha512-XS5/oKOQxKNfG2sVO6TQQjZF5RqWGE5QGSUOCZZVTnvYr3RDBTdbX3IFmV9CrnycCAQWcY0hAD3DDUa4RJE4+w==} engines: {node: '>= 12.17.0'} @@ -7904,6 +9056,23 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' + '@drizzle-team/brocli@0.10.2': {} + + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild-kit/core-utils@3.3.2': + dependencies: + esbuild: 0.18.20 + source-map-support: 0.5.21 + + '@esbuild-kit/esm-loader@2.6.5': + dependencies: + '@esbuild-kit/core-utils': 3.3.2 + get-tsconfig: 4.10.0 + '@esbuild/aix-ppc64@0.21.5': optional: true @@ -8232,9 +9401,9 @@ snapshots: '@fastify/forwarded': 3.0.0 ipaddr.js: 2.2.0 - '@fastify/react@1.1.0(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)': + '@fastify/react@1.1.0(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': dependencies: - '@fastify/vite': 8.1.2(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + '@fastify/vite': 8.1.2(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@unhead/react': 2.0.8(react@19.1.0) acorn: 8.14.1 acorn-strip-function: 1.2.0 @@ -8247,7 +9416,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-router: 7.5.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - valtio: 2.1.4(@types/react@19.1.2)(react@19.1.0) + valtio: 2.1.5(@types/react@19.1.2)(react@19.1.0) youch: 3.3.4 transitivePeerDependencies: - '@kitajs/ts-html-plugin' @@ -8267,9 +9436,9 @@ snapshots: - typescript - yaml - '@fastify/react@1.1.0(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': + '@fastify/react@1.1.0(@types/node@22.15.19)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': dependencies: - '@fastify/vite': 8.1.2(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/vite': 8.1.2(@types/node@22.15.19)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@unhead/react': 2.0.8(react@19.1.0) acorn: 8.14.1 acorn-strip-function: 1.2.0 @@ -8282,7 +9451,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-router: 7.5.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - valtio: 2.1.4(@types/react@19.1.2)(react@19.1.0) + valtio: 2.1.5(@types/react@19.1.2)(react@19.1.0) youch: 3.3.4 transitivePeerDependencies: - '@kitajs/ts-html-plugin' @@ -8303,41 +9472,6 @@ snapshots: - yaml optional: true - '@fastify/react@1.1.0(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)': - dependencies: - '@fastify/vite': 8.1.2(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) - '@unhead/react': 2.0.8(react@19.1.0) - acorn: 8.14.1 - acorn-strip-function: 1.2.0 - acorn-walk: 8.3.4 - devalue: 5.1.1 - history: 5.3.0 - html-rewriter-wasm: 0.4.1 - minipass: 7.1.2 - mlly: 1.7.4 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-router: 7.5.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - valtio: 2.1.4(@types/react@19.1.2)(react@19.1.0) - youch: 3.3.4 - transitivePeerDependencies: - - '@kitajs/ts-html-plugin' - - '@types/node' - - '@types/react' - - fastify - - jiti - - less - - lightningcss - - rollup - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml - optional: true - '@fastify/send@2.1.0': dependencies: '@lukeed/ms': 2.0.2 @@ -8372,14 +9506,14 @@ snapshots: fastq: 1.19.1 glob: 11.0.1 - '@fastify/vite@6.0.7(@types/node@22.14.0)(lightningcss@1.29.3)': + '@fastify/vite@6.0.7(@types/node@22.15.19)(lightningcss@1.29.3)': dependencies: '@fastify/middie': 8.3.3 '@fastify/static': 6.12.0 fastify-plugin: 4.5.1 fs-extra: 10.1.0 klaw: 4.1.0 - vite: 5.4.17(@types/node@22.14.0)(lightningcss@1.29.3) + vite: 5.4.17(@types/node@22.15.19)(lightningcss@1.29.3) transitivePeerDependencies: - '@types/node' - less @@ -8390,12 +9524,12 @@ snapshots: - sugarss - terser - '@fastify/vite@8.1.2(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)': + '@fastify/vite@8.1.2(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': dependencies: '@fastify/deepmerge': 3.1.0 '@fastify/middie': 9.0.3 '@fastify/static': 8.1.1 - fastify: 5.2.2 + fastify: 5.3.2 fastify-plugin: 5.0.1 find-cache-dir: 5.0.0 fs-extra: 11.3.0 @@ -8403,8 +9537,8 @@ snapshots: klaw: 4.1.0 optionalDependencies: '@fastify/htmx': 0.4.0(@kitajs/ts-html-plugin@4.1.1)(rollup@4.39.0) - '@fastify/react': 1.1.0(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) - '@fastify/vue': 1.1.1(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + '@fastify/react': 1.1.0(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/vue': 1.1.1(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) vite: 6.3.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) transitivePeerDependencies: - '@kitajs/ts-html-plugin' @@ -8423,12 +9557,12 @@ snapshots: - typescript - yaml - '@fastify/vite@8.1.2(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': + '@fastify/vite@8.1.2(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': dependencies: '@fastify/deepmerge': 3.1.0 '@fastify/middie': 9.0.3 '@fastify/static': 8.1.1 - fastify: 5.2.2 + fastify: 5.3.2 fastify-plugin: 5.0.1 find-cache-dir: 5.0.0 fs-extra: 11.3.0 @@ -8436,8 +9570,8 @@ snapshots: klaw: 4.1.0 optionalDependencies: '@fastify/htmx': 0.4.0(@kitajs/ts-html-plugin@4.1.1)(rollup@4.39.0) - '@fastify/react': 1.1.0(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) - '@fastify/vue': 1.1.1(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/react': 1.1.0(@types/node@22.15.19)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/vue': 1.1.1(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) vite: 6.3.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) transitivePeerDependencies: - '@kitajs/ts-html-plugin' @@ -8456,12 +9590,12 @@ snapshots: - typescript - yaml - '@fastify/vite@8.1.2(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': + '@fastify/vite@8.1.2(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)': dependencies: '@fastify/deepmerge': 3.1.0 '@fastify/middie': 9.0.3 '@fastify/static': 8.1.1 - fastify: 5.3.2 + fastify: 5.2.2 fastify-plugin: 5.0.1 find-cache-dir: 5.0.0 fs-extra: 11.3.0 @@ -8469,9 +9603,9 @@ snapshots: klaw: 4.1.0 optionalDependencies: '@fastify/htmx': 0.4.0(@kitajs/ts-html-plugin@4.1.1)(rollup@4.39.0) - '@fastify/react': 1.1.0(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) - '@fastify/vue': 1.1.1(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) - vite: 6.3.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + '@fastify/react': 1.1.0(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/vue': 1.1.1(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vite: 6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) transitivePeerDependencies: - '@kitajs/ts-html-plugin' - '@types/node' @@ -8489,25 +9623,59 @@ snapshots: - typescript - yaml - '@fastify/vue@1.1.1(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)': + '@fastify/vite@8.1.2(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': dependencies: - '@fastify/vite': 8.1.2(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) - '@unhead/vue': 2.0.8(vue@3.5.13) - acorn: 8.14.1 - acorn-walk: 8.3.4 - devalue: 5.1.1 + '@fastify/deepmerge': 3.1.0 + '@fastify/middie': 9.0.3 + '@fastify/static': 8.1.1 + fastify: 5.3.3 + fastify-plugin: 5.0.1 + find-cache-dir: 5.0.0 + fs-extra: 11.3.0 html-rewriter-wasm: 0.4.1 - mlly: 1.7.4 - vue: 3.5.13 - vue-router: 4.5.0(vue@3.5.13) - youch: 3.3.4 + klaw: 4.1.0 optionalDependencies: - vite: 6.3.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + '@fastify/htmx': 0.4.0(@kitajs/ts-html-plugin@4.1.1)(rollup@4.39.0) + '@fastify/react': 1.1.0(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/vue': 1.1.1(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + vite: 6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + transitivePeerDependencies: + - '@kitajs/ts-html-plugin' + - '@types/node' + - '@types/react' + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - typescript + - yaml + + '@fastify/vite@8.1.2(@types/node@22.15.19)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': + dependencies: + '@fastify/deepmerge': 3.1.0 + '@fastify/middie': 9.0.3 + '@fastify/static': 8.1.1 + fastify: 5.2.2 + fastify-plugin: 5.0.1 + find-cache-dir: 5.0.0 + fs-extra: 11.3.0 + html-rewriter-wasm: 0.4.1 + klaw: 4.1.0 + optionalDependencies: + '@fastify/htmx': 0.4.0(@kitajs/ts-html-plugin@4.1.1)(rollup@4.39.0) + '@fastify/react': 1.1.0(@types/node@22.15.19)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/vue': 1.1.1(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + vite: 6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) transitivePeerDependencies: - '@kitajs/ts-html-plugin' - '@types/node' - '@types/react' - - fastify - jiti - less - lightningcss @@ -8520,11 +9688,10 @@ snapshots: - tsx - typescript - yaml - optional: true - '@fastify/vue@1.1.1(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': + '@fastify/vue@1.1.1(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': dependencies: - '@fastify/vite': 8.1.2(@types/node@22.14.0)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@fastify/vite': 8.1.2(@types/node@22.14.0)(@types/react@19.1.2)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) '@unhead/vue': 2.0.8(vue@3.5.13(typescript@5.8.3)) acorn: 8.14.1 acorn-walk: 8.3.4 @@ -8554,20 +9721,20 @@ snapshots: - typescript - yaml - '@fastify/vue@1.1.1(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': + '@fastify/vue@1.1.1(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)': dependencies: - '@fastify/vite': 8.1.2(@types/node@22.14.0)(fastify@5.3.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) - '@unhead/vue': 2.0.8(vue@3.5.13(typescript@5.8.3)) + '@fastify/vite': 8.1.2(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.2.2)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + '@unhead/vue': 2.0.8(vue@3.5.13) acorn: 8.14.1 acorn-walk: 8.3.4 devalue: 5.1.1 html-rewriter-wasm: 0.4.1 mlly: 1.7.4 - vue: 3.5.13(typescript@5.8.3) - vue-router: 4.5.0(vue@3.5.13(typescript@5.8.3)) + vue: 3.5.13 + vue-router: 4.5.0(vue@3.5.13) youch: 3.3.4 optionalDependencies: - vite: 6.3.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vite: 6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) transitivePeerDependencies: - '@kitajs/ts-html-plugin' - '@types/node' @@ -8585,20 +9752,148 @@ snapshots: - tsx - typescript - yaml + optional: true - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': + '@fastify/vue@1.1.1(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1)': dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} + '@fastify/vite': 8.1.2(@types/node@22.15.19)(@types/react@19.1.2)(fastify@5.3.3)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(typescript@5.8.3)(yaml@2.7.1) + '@unhead/vue': 2.0.8(vue@3.5.13(typescript@5.8.3)) + acorn: 8.14.1 + acorn-walk: 8.3.4 + devalue: 5.1.1 + html-rewriter-wasm: 0.4.1 + mlly: 1.7.4 + vue: 3.5.13(typescript@5.8.3) + vue-router: 4.5.0(vue@3.5.13(typescript@5.8.3)) + youch: 3.3.4 + optionalDependencies: + vite: 6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + transitivePeerDependencies: + - '@kitajs/ts-html-plugin' + - '@types/node' + - '@types/react' + - fastify + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - typescript + - yaml + + '@floating-ui/core@1.7.0': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.7.0': + dependencies: + '@floating-ui/core': 1.7.0 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/dom': 1.7.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@floating-ui/utils@0.2.9': {} + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} '@humanwhocodes/retry@0.4.2': {} + '@img/sharp-darwin-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.1.0 + optional: true + + '@img/sharp-darwin-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.1.0 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-darwin-x64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-arm@1.1.0': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-s390x@1.1.0': + optional: true + + '@img/sharp-libvips-linux-x64@1.1.0': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + optional: true + + '@img/sharp-linux-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.1.0 + optional: true + + '@img/sharp-linux-arm@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.1.0 + optional: true + + '@img/sharp-linux-s390x@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.1.0 + optional: true + + '@img/sharp-linux-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.1.0 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + optional: true + + '@img/sharp-wasm32@0.34.1': + dependencies: + '@emnapi/runtime': 1.4.3 + optional: true + + '@img/sharp-win32-ia32@0.34.1': + optional: true + + '@img/sharp-win32-x64@0.34.1': + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -8661,6 +9956,32 @@ snapshots: '@msgpack/msgpack@2.8.0': {} + '@next/env@15.4.0-canary.9': {} + + '@next/swc-darwin-arm64@15.4.0-canary.9': + optional: true + + '@next/swc-darwin-x64@15.4.0-canary.9': + optional: true + + '@next/swc-linux-arm64-gnu@15.4.0-canary.9': + optional: true + + '@next/swc-linux-arm64-musl@15.4.0-canary.9': + optional: true + + '@next/swc-linux-x64-gnu@15.4.0-canary.9': + optional: true + + '@next/swc-linux-x64-musl@15.4.0-canary.9': + optional: true + + '@next/swc-win32-arm64-msvc@15.4.0-canary.9': + optional: true + + '@next/swc-win32-x64-msvc@15.4.0-canary.9': + optional: true + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 @@ -8697,16 +10018,16 @@ snapshots: '@orama/orama': 3.1.4 dpack: 0.6.22 - '@orama/plugin-vitepress@3.1.4(@orama/highlight@0.1.8)(@oramacloud/client@1.0.0-beta.21(typescript@5.8.3))(@preact/signals-core@1.8.0)(@preact/signals@1.3.2(preact@10.26.4))(@types/node@22.14.0)(lightningcss@1.29.3)(postcss@8.5.3)(preact-custom-element@4.3.0(preact@10.26.4))(preact@10.26.4)(vue@3.5.13(typescript@5.8.3))': + '@orama/plugin-vitepress@3.1.4(@orama/highlight@0.1.8)(@oramacloud/client@1.0.0-beta.21(typescript@5.8.3))(@preact/signals-core@1.8.0)(@preact/signals@1.3.2(preact@10.26.4))(@types/node@22.15.19)(lightningcss@1.29.3)(postcss@8.5.3)(preact-custom-element@4.3.0(preact@10.26.4))(preact@10.26.4)(vue@3.5.13(typescript@5.8.3))': dependencies: '@orama/orama': 3.1.4 '@orama/plugin-data-persistence': 3.1.4 '@orama/searchbox': 1.0.0-beta.13(@orama/highlight@0.1.8)(@orama/orama@3.1.4)(@oramacloud/client@1.0.0-beta.21(typescript@5.8.3))(@preact/signals-core@1.8.0)(@preact/signals@1.3.2(preact@10.26.4))(postcss@8.5.3)(preact-custom-element@4.3.0(preact@10.26.4))(preact@10.26.4) - '@vitejs/plugin-vue': 4.6.2(vite@4.5.12(@types/node@22.14.0)(lightningcss@1.29.3))(vue@3.5.13(typescript@5.8.3)) + '@vitejs/plugin-vue': 4.6.2(vite@4.5.12(@types/node@22.15.19)(lightningcss@1.29.3))(vue@3.5.13(typescript@5.8.3)) jsdom: 23.2.0 markdown-it: 13.0.2 slugify: 1.6.6 - vite: 4.5.12(@types/node@22.14.0)(lightningcss@1.29.3) + vite: 4.5.12(@types/node@22.15.19)(lightningcss@1.29.3) vue: 3.5.13(typescript@5.8.3) transitivePeerDependencies: - '@orama/highlight' @@ -8841,6 +10162,339 @@ snapshots: '@preact/signals-core': 1.8.0 preact: 10.26.4 + '@radix-ui/number@1.1.1': {} + + '@radix-ui/primitive@1.1.2': {} + + '@radix-ui/react-arrow@1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-avatar@1.1.9(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-collection@1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-context@1.1.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-direction@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-dismissable-layer@1.1.9(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-dropdown-menu@2.1.14(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-menu': 2.1.14(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-focus-scope@1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-id@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-label@2.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-menu@2.1.14(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + aria-hidden: 1.2.6 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.7.0(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-popper@1.2.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-arrow': 1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-portal@1.1.8(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-radio-group@1.3.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-roving-focus@1.1.9(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-select@2.2.4(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + aria-hidden: 1.2.6 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.7.0(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/react-slot@1.2.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + use-sync-external-store: 1.5.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.2 + + '@radix-ui/react-visually-hidden@1.2.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) + + '@radix-ui/rect@1.1.1': {} + '@rollup/plugin-inject@5.0.5(rollup@4.39.0)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.39.0) @@ -8933,28 +10587,34 @@ snapshots: dependencies: acorn: 8.14.1 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)))(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)))(svelte@5.25.6)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) debug: 4.4.0 svelte: 5.25.6 - vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)))(svelte@5.25.6)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.6)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)))(svelte@5.25.6)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.25.6 - vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) - vitefu: 1.0.6(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vitefu: 1.0.6(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) transitivePeerDependencies: - supports-color + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + '@tailwindcss/node@4.1.2': dependencies: enhanced-resolve: 5.18.1 @@ -8962,39 +10622,82 @@ snapshots: lightningcss: 1.29.2 tailwindcss: 4.1.2 + '@tailwindcss/node@4.1.4': + dependencies: + enhanced-resolve: 5.18.1 + jiti: 2.4.2 + lightningcss: 1.29.2 + tailwindcss: 4.1.4 + '@tailwindcss/oxide-android-arm64@4.1.2': optional: true + '@tailwindcss/oxide-android-arm64@4.1.4': + optional: true + '@tailwindcss/oxide-darwin-arm64@4.1.2': optional: true + '@tailwindcss/oxide-darwin-arm64@4.1.4': + optional: true + '@tailwindcss/oxide-darwin-x64@4.1.2': optional: true + '@tailwindcss/oxide-darwin-x64@4.1.4': + optional: true + '@tailwindcss/oxide-freebsd-x64@4.1.2': optional: true + '@tailwindcss/oxide-freebsd-x64@4.1.4': + optional: true + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.2': optional: true + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.4': + optional: true + '@tailwindcss/oxide-linux-arm64-gnu@4.1.2': optional: true + '@tailwindcss/oxide-linux-arm64-gnu@4.1.4': + optional: true + '@tailwindcss/oxide-linux-arm64-musl@4.1.2': optional: true + '@tailwindcss/oxide-linux-arm64-musl@4.1.4': + optional: true + '@tailwindcss/oxide-linux-x64-gnu@4.1.2': optional: true + '@tailwindcss/oxide-linux-x64-gnu@4.1.4': + optional: true + '@tailwindcss/oxide-linux-x64-musl@4.1.2': optional: true + '@tailwindcss/oxide-linux-x64-musl@4.1.4': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.4': + optional: true + '@tailwindcss/oxide-win32-arm64-msvc@4.1.2': optional: true + '@tailwindcss/oxide-win32-arm64-msvc@4.1.4': + optional: true + '@tailwindcss/oxide-win32-x64-msvc@4.1.2': optional: true + '@tailwindcss/oxide-win32-x64-msvc@4.1.4': + optional: true + '@tailwindcss/oxide@4.1.2': optionalDependencies: '@tailwindcss/oxide-android-arm64': 4.1.2 @@ -9009,6 +10712,21 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.2 '@tailwindcss/oxide-win32-x64-msvc': 4.1.2 + '@tailwindcss/oxide@4.1.4': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.4 + '@tailwindcss/oxide-darwin-arm64': 4.1.4 + '@tailwindcss/oxide-darwin-x64': 4.1.4 + '@tailwindcss/oxide-freebsd-x64': 4.1.4 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.4 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.4 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.4 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.4 + '@tailwindcss/oxide-linux-x64-musl': 4.1.4 + '@tailwindcss/oxide-wasm32-wasi': 4.1.4 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.4 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.4 + '@tailwindcss/postcss@4.1.2': dependencies: '@alloc/quick-lru': 5.2.0 @@ -9017,12 +10735,27 @@ snapshots: postcss: 8.5.3 tailwindcss: 4.1.2 - '@tailwindcss/vite@4.1.2(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': + '@tailwindcss/postcss@4.1.4': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.1.4 + '@tailwindcss/oxide': 4.1.4 + postcss: 8.5.3 + tailwindcss: 4.1.4 + + '@tailwindcss/vite@4.1.2(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': dependencies: '@tailwindcss/node': 4.1.2 '@tailwindcss/oxide': 4.1.2 tailwindcss: 4.1.2 - vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + + '@tailwindcss/vite@4.1.2(vite@6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': + dependencies: + '@tailwindcss/node': 4.1.2 + '@tailwindcss/oxide': 4.1.2 + tailwindcss: 4.1.2 + vite: 6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) '@types/babel__core@7.20.5': dependencies: @@ -9084,6 +10817,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@22.15.19': + dependencies: + undici-types: 6.21.0 + '@types/react-dom@19.1.2(@types/react@19.1.2)': dependencies: '@types/react': 19.1.2 @@ -9151,14 +10888,14 @@ snapshots: vue: 3.5.13 optional: true - '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': + '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -9184,14 +10921,36 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@4.3.1(vite@4.5.12(@types/node@22.14.0)(lightningcss@1.29.3))(vue@3.5.13(typescript@5.8.3))': + '@vitejs/plugin-react@4.4.1(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-react@4.4.1(vite@6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))': + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@4.3.1(vite@4.5.12(@types/node@22.15.19)(lightningcss@1.29.3))(vue@3.5.13(typescript@5.8.3))': dependencies: - vite: 4.5.12(@types/node@22.14.0)(lightningcss@1.29.3) + vite: 4.5.12(@types/node@22.15.19)(lightningcss@1.29.3) vue: 3.5.13(typescript@5.8.3) - '@vitejs/plugin-vue@4.6.2(vite@4.5.12(@types/node@22.14.0)(lightningcss@1.29.3))(vue@3.5.13(typescript@5.8.3))': + '@vitejs/plugin-vue@4.6.2(vite@4.5.12(@types/node@22.15.19)(lightningcss@1.29.3))(vue@3.5.13(typescript@5.8.3))': dependencies: - vite: 4.5.12(@types/node@22.14.0)(lightningcss@1.29.3) + vite: 4.5.12(@types/node@22.15.19)(lightningcss@1.29.3) vue: 3.5.13(typescript@5.8.3) '@vitejs/plugin-vue@5.2.3(vite@6.2.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3))': @@ -9199,14 +10958,24 @@ snapshots: vite: 6.2.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) vue: 3.5.13(typescript@5.8.3) + '@vitejs/plugin-vue@5.2.3(vite@6.2.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3))': + dependencies: + vite: 6.2.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vue: 3.5.13(typescript@5.8.3) + '@vitejs/plugin-vue@5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.3)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3))': dependencies: vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.3)(yaml@2.7.1) vue: 3.5.13(typescript@5.8.3) - '@vitejs/plugin-vue@5.2.3(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.3(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3))': dependencies: - vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vue: 3.5.13(typescript@5.8.3) + + '@vitejs/plugin-vue@5.2.4(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1))(vue@3.5.13(typescript@5.8.3))': + dependencies: + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) vue: 3.5.13(typescript@5.8.3) '@vitest/expect@1.6.1': @@ -9496,6 +11265,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + aria-query@5.3.2: {} array-buffer-byte-length@1.0.2: @@ -9598,6 +11371,8 @@ snapshots: balanced-match@1.0.2: {} + bcryptjs@3.0.2: {} + bidi-js@1.0.3: dependencies: require-from-string: 2.0.2 @@ -9626,6 +11401,12 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) + buffer-from@1.1.2: {} + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + cac@6.7.14: {} call-bind-apply-helpers@1.0.2: @@ -9738,6 +11519,12 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + + client-only@0.0.1: {} + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -9752,6 +11539,18 @@ snapshots: color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + optional: true + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + colord@2.9.3: {} colorette@2.0.20: {} @@ -10133,6 +11932,8 @@ snapshots: detect-libc@2.0.3: {} + detect-node-es@1.1.0: {} + devalue@5.1.1: {} didyoumean@1.2.2: {} @@ -10176,8 +11977,23 @@ snapshots: no-case: 3.0.4 tslib: 2.8.1 + dotenv@16.5.0: {} + dpack@0.6.22: {} + drizzle-kit@0.31.1: + dependencies: + '@drizzle-team/brocli': 0.10.2 + '@esbuild-kit/esm-loader': 2.6.5 + esbuild: 0.25.2 + esbuild-register: 3.6.0(esbuild@0.25.2) + transitivePeerDependencies: + - supports-color + + drizzle-orm@0.42.0(postgres@3.4.5): + optionalDependencies: + postgres: 3.4.5 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -10290,6 +12106,13 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + esbuild-register@3.6.0(esbuild@0.25.2): + dependencies: + debug: 4.4.0 + esbuild: 0.25.2 + transitivePeerDependencies: + - supports-color + esbuild@0.18.20: optionalDependencies: '@esbuild/android-arm': 0.18.20 @@ -10718,14 +12541,28 @@ snapshots: semver: 7.7.1 toad-cache: 3.7.0 + fastify@5.3.3: + dependencies: + '@fastify/ajv-compiler': 4.0.2 + '@fastify/error': 4.1.0 + '@fastify/fast-json-stringify-compiler': 5.0.2 + '@fastify/proxy-addr': 5.0.0 + abstract-logging: 2.0.1 + avvio: 9.1.0 + fast-json-stringify: 6.0.1 + find-my-way: 9.3.0 + light-my-request: 6.6.0 + pino: 9.6.0 + process-warning: 5.0.0 + rfdc: 1.4.1 + secure-json-parse: 4.0.0 + semver: 7.7.1 + toad-cache: 3.7.0 + fastq@1.19.1: dependencies: reusify: 1.1.0 - fdir@6.4.3(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - fdir@6.4.4(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -10852,6 +12689,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -11059,6 +12898,9 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-arrayish@0.3.2: + optional: true + is-async-function@2.1.1: dependencies: async-function: 1.0.0 @@ -11202,6 +13044,8 @@ snapshots: jiti@2.4.2: {} + jose@6.0.11: {} + jotai@2.12.2(@types/react@19.1.2)(react@19.1.0): optionalDependencies: '@types/react': 19.1.2 @@ -11472,6 +13316,14 @@ snapshots: dependencies: yallist: 3.1.1 + lucide-react@0.501.0(react@19.1.0): + dependencies: + react: 19.1.0 + + lucide-react@0.511.0(react@19.1.0): + dependencies: + react: 19.1.0 + magic-string@0.26.7: dependencies: sourcemap-codec: 1.4.8 @@ -11769,6 +13621,31 @@ snapshots: natural-compare@1.4.0: {} + next@15.4.0-canary.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@next/env': 15.4.0-canary.9 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001709 + postcss: 8.4.31 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.1.6(react@19.1.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.4.0-canary.9 + '@next/swc-darwin-x64': 15.4.0-canary.9 + '@next/swc-linux-arm64-gnu': 15.4.0-canary.9 + '@next/swc-linux-arm64-musl': 15.4.0-canary.9 + '@next/swc-linux-x64-gnu': 15.4.0-canary.9 + '@next/swc-linux-x64-musl': 15.4.0-canary.9 + '@next/swc-win32-arm64-msvc': 15.4.0-canary.9 + '@next/swc-win32-x64-msvc': 15.4.0-canary.9 + sharp: 0.34.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -12505,12 +14382,20 @@ snapshots: postcss-value-parser@4.2.0: {} + postcss@8.4.31: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.3: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 + postgres@3.4.5: {} + preact-custom-element@4.3.0(preact@10.26.4): dependencies: preact: 10.26.4 @@ -12552,6 +14437,10 @@ snapshots: punycode@2.3.1: {} + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -12569,6 +14458,25 @@ snapshots: react-refresh@0.17.0: {} + react-remove-scroll-bar@2.3.8(@types/react@19.1.2)(react@19.1.0): + dependencies: + react: 19.1.0 + react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.2 + + react-remove-scroll@2.7.0(@types/react@19.1.2)(react@19.1.0): + dependencies: + react: 19.1.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.1.2)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.2)(react@19.1.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.1.2)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.2)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.2 + react-router@7.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@types/cookie': 0.6.0 @@ -12588,6 +14496,14 @@ snapshots: optionalDependencies: react-dom: 19.1.0(react@19.1.0) + react-style-singleton@2.2.3(@types/react@19.1.2)(react@19.1.0): + dependencies: + get-nonce: 1.0.1 + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.2 + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -12755,6 +14671,8 @@ snapshots: seroval@1.2.1: {} + server-only@0.0.1: {} + set-cookie-parser@2.7.1: {} set-function-length@1.2.2: @@ -12781,6 +14699,34 @@ snapshots: setprototypeof@1.2.0: {} + sharp@0.34.1: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.1 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.1 + '@img/sharp-darwin-x64': 0.34.1 + '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-linux-arm': 0.34.1 + '@img/sharp-linux-arm64': 0.34.1 + '@img/sharp-linux-s390x': 0.34.1 + '@img/sharp-linux-x64': 0.34.1 + '@img/sharp-linuxmusl-arm64': 0.34.1 + '@img/sharp-linuxmusl-x64': 0.34.1 + '@img/sharp-wasm32': 0.34.1 + '@img/sharp-win32-ia32': 0.34.1 + '@img/sharp-win32-x64': 0.34.1 + optional: true + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -12826,6 +14772,11 @@ snapshots: signal-exit@4.1.0: {} + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + optional: true + sirv@3.0.1: dependencies: '@polka/url': 1.0.0-next.28 @@ -12862,6 +14813,11 @@ snapshots: source-map-js@1.2.1: {} + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + source-map@0.6.1: {} sourcemap-codec@1.4.8: {} @@ -12885,6 +14841,8 @@ snapshots: std-env@3.9.0: {} + streamsearch@1.1.0: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -12940,10 +14898,21 @@ snapshots: dependencies: js-tokens: 9.0.1 + stripe@18.1.1(@types/node@22.15.19): + dependencies: + qs: 6.14.0 + optionalDependencies: + '@types/node': 22.15.19 + style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 + styled-jsx@5.1.6(react@19.1.0): + dependencies: + client-only: 0.0.1 + react: 19.1.0 + stylis@4.3.6: {} sucrase@3.35.0: @@ -13004,10 +14973,22 @@ snapshots: magic-string: 0.30.17 zimmerframe: 1.1.2 + swr@2.3.3(react@19.1.0): + dependencies: + dequal: 2.0.3 + react: 19.1.0 + use-sync-external-store: 1.5.0(react@19.1.0) + symbol-tree@3.2.4: {} tabbable@6.2.0: {} + tailwind-merge@3.3.0: {} + + tailwindcss-animate@1.0.7(tailwindcss@4.1.4): + dependencies: + tailwindcss: 4.1.4 + tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 @@ -13037,6 +15018,8 @@ snapshots: tailwindcss@4.1.2: {} + tailwindcss@4.1.4: {} + tapable@2.2.1: {} thenify-all@1.6.0: @@ -13057,7 +15040,7 @@ snapshots: tinyglobby@0.2.12: dependencies: - fdir: 6.4.3(picomatch@4.0.2) + fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 tinyglobby@0.2.13: @@ -13131,6 +15114,8 @@ snapshots: turbo-stream@2.4.0: {} + tw-animate-css@1.3.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -13226,6 +15211,25 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 + use-callback-ref@1.3.3(@types/react@19.1.2)(react@19.1.0): + dependencies: + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.2 + + use-sidecar@1.1.3(@types/react@19.1.2)(react@19.1.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.1.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.1.2 + + use-sync-external-store@1.5.0(react@19.1.0): + dependencies: + react: 19.1.0 + util-deprecate@1.0.2: {} uuid@9.0.1: {} @@ -13248,13 +15252,20 @@ snapshots: '@types/react': 19.1.2 react: 19.1.0 - vite-node@1.6.1(@types/node@22.14.0)(lightningcss@1.29.3): + valtio@2.1.5(@types/react@19.1.2)(react@19.1.0): + dependencies: + proxy-compare: 3.0.1 + optionalDependencies: + '@types/react': 19.1.2 + react: 19.1.0 + + vite-node@1.6.1(@types/node@22.15.19)(lightningcss@1.29.3): dependencies: cac: 6.7.14 debug: 4.4.0 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.17(@types/node@22.14.0)(lightningcss@1.29.3) + vite: 5.4.17(@types/node@22.15.19)(lightningcss@1.29.3) transitivePeerDependencies: - '@types/node' - less @@ -13287,7 +15298,7 @@ snapshots: - tsx - yaml - vite-plugin-solid@2.11.6(solid-js@1.9.5)(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)): + vite-plugin-solid@2.11.6(solid-js@1.9.5)(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 @@ -13295,28 +15306,28 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) - vitefu: 1.0.6(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vitefu: 1.0.6(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)) transitivePeerDependencies: - supports-color - vite@4.5.12(@types/node@22.14.0)(lightningcss@1.29.3): + vite@4.5.12(@types/node@22.15.19)(lightningcss@1.29.3): dependencies: esbuild: 0.18.20 postcss: 8.5.3 rollup: 3.29.5 optionalDependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.19 fsevents: 2.3.3 lightningcss: 1.29.3 - vite@5.4.17(@types/node@22.14.0)(lightningcss@1.29.3): + vite@5.4.17(@types/node@22.15.19)(lightningcss@1.29.3): dependencies: esbuild: 0.21.5 postcss: 8.5.3 rollup: 4.39.0 optionalDependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.19 fsevents: 2.3.3 lightningcss: 1.29.3 @@ -13333,6 +15344,19 @@ snapshots: tsx: 4.19.4 yaml: 2.7.1 + vite@6.2.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1): + dependencies: + esbuild: 0.25.2 + postcss: 8.5.3 + rollup: 4.39.0 + optionalDependencies: + '@types/node': 22.15.19 + fsevents: 2.3.3 + jiti: 2.4.2 + lightningcss: 1.29.3 + tsx: 4.19.4 + yaml: 2.7.1 + vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.3)(yaml@2.7.1): dependencies: esbuild: 0.25.2 @@ -13359,6 +15383,19 @@ snapshots: tsx: 4.19.4 yaml: 2.7.1 + vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1): + dependencies: + esbuild: 0.25.2 + postcss: 8.5.3 + rollup: 4.39.0 + optionalDependencies: + '@types/node': 22.15.19 + fsevents: 2.3.3 + jiti: 2.4.2 + lightningcss: 1.29.3 + tsx: 4.19.4 + yaml: 2.7.1 + vite@6.3.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1): dependencies: esbuild: 0.25.2 @@ -13375,23 +15412,39 @@ snapshots: tsx: 4.19.4 yaml: 2.7.1 - vitefu@1.0.6(vite@6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)): + vite@6.3.4(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1): + dependencies: + esbuild: 0.25.2 + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.39.0 + tinyglobby: 0.2.13 + optionalDependencies: + '@types/node': 22.15.19 + fsevents: 2.3.3 + jiti: 2.4.2 + lightningcss: 1.29.3 + tsx: 4.19.4 + yaml: 2.7.1 + + vitefu@1.0.6(vite@6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1)): optionalDependencies: - vite: 6.2.5(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) + vite: 6.2.5(@types/node@22.15.19)(jiti@2.4.2)(lightningcss@1.29.3)(tsx@4.19.4)(yaml@2.7.1) - vitepress-plugin-mermaid@2.0.17(mermaid@10.9.3)(vitepress@1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.14.0)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3)): + vitepress-plugin-mermaid@2.0.17(mermaid@10.9.3)(vitepress@1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.15.19)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3)): dependencies: mermaid: 10.9.3 - vitepress: 1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.14.0)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3) + vitepress: 1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.15.19)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3) optionalDependencies: '@mermaid-js/mermaid-mindmap': 9.3.0 - vitepress@1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.14.0)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3): + vitepress@1.0.0-rc.25(@algolia/client-search@5.23.2)(@types/node@22.15.19)(@types/react@19.1.2)(change-case@4.1.2)(lightningcss@1.29.3)(markdown-it-mathjax3@4.3.2)(postcss@8.5.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3)(typescript@5.8.3): dependencies: '@docsearch/css': 3.9.0 '@docsearch/js': 3.9.0(@algolia/client-search@5.23.2)(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(search-insights@2.17.3) '@types/markdown-it': 13.0.9 - '@vitejs/plugin-vue': 4.3.1(vite@4.5.12(@types/node@22.14.0)(lightningcss@1.29.3))(vue@3.5.13(typescript@5.8.3)) + '@vitejs/plugin-vue': 4.3.1(vite@4.5.12(@types/node@22.15.19)(lightningcss@1.29.3))(vue@3.5.13(typescript@5.8.3)) '@vue/devtools-api': 6.6.4 '@vueuse/core': 10.11.1(vue@3.5.13(typescript@5.8.3)) '@vueuse/integrations': 10.11.1(change-case@4.1.2)(focus-trap@7.6.4)(vue@3.5.13(typescript@5.8.3)) @@ -13399,7 +15452,7 @@ snapshots: mark.js: 8.11.1 minisearch: 6.3.0 shiki: 0.14.7 - vite: 4.5.12(@types/node@22.14.0)(lightningcss@1.29.3) + vite: 4.5.12(@types/node@22.15.19)(lightningcss@1.29.3) vue: 3.5.13(typescript@5.8.3) optionalDependencies: markdown-it-mathjax3: 4.3.2 @@ -13431,7 +15484,7 @@ snapshots: - typescript - universal-cookie - vitest@1.6.1(@types/node@22.14.0)(jsdom@23.2.0)(lightningcss@1.29.3): + vitest@1.6.1(@types/node@22.15.19)(jsdom@23.2.0)(lightningcss@1.29.3): dependencies: '@vitest/expect': 1.6.1 '@vitest/runner': 1.6.1 @@ -13450,11 +15503,11 @@ snapshots: strip-literal: 2.1.1 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.17(@types/node@22.14.0)(lightningcss@1.29.3) - vite-node: 1.6.1(@types/node@22.14.0)(lightningcss@1.29.3) + vite: 5.4.17(@types/node@22.15.19)(lightningcss@1.29.3) + vite-node: 1.6.1(@types/node@22.15.19)(lightningcss@1.29.3) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.19 jsdom: 23.2.0 transitivePeerDependencies: - less @@ -13717,4 +15770,6 @@ snapshots: zimmerframe@1.1.2: {} + zod@3.25.7: {} + zx@8.5.0: {} diff --git a/starters/react-shadcn/.gitignore b/starters/react-shadcn/.gitignore new file mode 100644 index 00000000..de4d1f00 --- /dev/null +++ b/starters/react-shadcn/.gitignore @@ -0,0 +1,2 @@ +dist +node_modules diff --git a/starters/react-shadcn/README.md b/starters/react-shadcn/README.md new file mode 100644 index 00000000..c17df33d --- /dev/null +++ b/starters/react-shadcn/README.md @@ -0,0 +1,3 @@ +
+ +The official **[@fastify/react](https://github.com/fastify/fastify-vite/tree/dev/packages/fastify-react)** starter template. diff --git a/starters/react-shadcn/components.json b/starters/react-shadcn/components.json new file mode 100644 index 00000000..2934e3d1 --- /dev/null +++ b/starters/react-shadcn/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/client/index.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/starters/react-shadcn/package.json b/starters/react-shadcn/package.json new file mode 100644 index 00000000..661d9c63 --- /dev/null +++ b/starters/react-shadcn/package.json @@ -0,0 +1,48 @@ +{ + "type": "module", + "scripts": { + "lint": "oxlint", + "dev": "tsx src/server.ts --dev", + "start": "NODE_ENV=production node dist/server.js", + "build": "pnpm build:client && pnpm build:server", + "build:server": "tsc", + "build:client": "NODE_ENV=production vite build", + "clean": "rm -rf dist tsconfig.tsbuildinfo" + }, + "dependencies": { + "@fastify/formbody": "^8.0.2", + "@fastify/one-line-logger": "^2.0.2", + "@fastify/react": "^1.1.0", + "@fastify/vite": "^8.1.2", + "@radix-ui/react-select": "^2.2.4", + "@radix-ui/react-slot": "^1.2.2", + "@unhead/react": "^2.0.8", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "fastify": "^5.3.2", + "history": "^5.3.0", + "lucide-react": "^0.511.0", + "minipass": "^7.1.2", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-router": "^7.5.0", + "tailwind-merge": "^3.3.0", + "valtio": "^2.1.4" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.1", + "@tailwindcss/vite": "^4.1.2", + "@types/node": "^22.15.19", + "@types/react": "^19.1.2", + "@types/react-dom": "^19.1.2", + "@vitejs/plugin-react": "^4.3.4", + "oxlint": "^0.16.6", + "postcss": "^8.5.3", + "postcss-preset-env": "^10.1.5", + "tailwindcss": "^4.1.4", + "tsx": "^4.19.4", + "tw-animate-css": "^1.3.0", + "typescript": "^5.8.3", + "vite": "^6.2.4" + } +} \ No newline at end of file diff --git a/starters/react-shadcn/src/client/assets/logo.svg b/starters/react-shadcn/src/client/assets/logo.svg new file mode 100644 index 00000000..39c9396a --- /dev/null +++ b/starters/react-shadcn/src/client/assets/logo.svg @@ -0,0 +1,31 @@ + + Drawing + + + + + + + + + + + + + + + + + Layer 1 + + image/svg+xml + + + + + + + + + + \ No newline at end of file diff --git a/starters/react-shadcn/src/client/base.css b/starters/react-shadcn/src/client/base.css new file mode 100644 index 00000000..02036934 --- /dev/null +++ b/starters/react-shadcn/src/client/base.css @@ -0,0 +1,182 @@ + +html { + background: #222; +} +#root { + width: 800px; + margin: 0 auto; + padding: 2em; + box-shadow: 5px 5px 30px rgba(0,0,0,0.4); + border-radius: 10px; + background-color: rgba(255, 255, 255, 0.1); + font-family: Avenir, Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + color: var(--color-base); + margin-top: 60px; + & a { + color: var(--color-highlight); + text-decoration: none; + font-weight: bold; + border-bottom: 1px solid var(--color-highlight); + &:hover { + color: #ffde00; + } + &:active { + color: #eecf00 + } + } + & p { + font-size: 1.2em; + } + & ul { + & li { + &:not(:last-child) { + margin-bottom: 0.5em; + } + break-inside: avoid; + font-size: 1em; + } + } + & code { + color: #ffde00; + font-weight: bold; + font-family: 'Consolas', 'Andale Mono', monospace; + font-size: 0.9em; + } + & img { + width: 14em; + } +} + +/*button, input[type=button] { + margin: 0; + border: none; + box-shadow: none; + cursor: pointer; + color: #333; + font-size: 1.2em; + background: #ff80ff; + padding: 0.5em; + &:hover { + background: #ff5eff; + color: #000; + } +}*/ + +label { + margin: 0; + outline: none; + border: none; + box-shadow: none; + color: #fff; + font-size: 1.2em; + margin-right: 0.5em; + padding: 0.5em; +} + +input { + margin: 0; + outline: none; + border: none; + box-shadow: none; + color: #333; + font-size: 1.2em; + background: #ccc; + margin-right: 0.5em; + border: 2px solid #ff80ff; + padding: calc(0.5em - 2px); +} + +/* +---break--- +*/ + +@theme inline { + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +/* +---break--- +*/ + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.205 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.556 0 0); +} + +/* +---break--- +*/ + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/starters/react-shadcn/src/client/components/ui/button.tsx b/starters/react-shadcn/src/client/components/ui/button.tsx new file mode 100644 index 00000000..a2df8dce --- /dev/null +++ b/starters/react-shadcn/src/client/components/ui/button.tsx @@ -0,0 +1,59 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", + destructive: + "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", + outline: + "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", + secondary: + "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", + ghost: + "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2 has-[>svg]:px-3", + sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", + lg: "h-10 rounded-md px-6 has-[>svg]:px-4", + icon: "size-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<"button"> & + VariantProps & { + asChild?: boolean + }) { + const Comp = asChild ? Slot : "button" + + return ( + + ) +} + +export { Button, buttonVariants } diff --git a/starters/react-shadcn/src/client/components/ui/select.tsx b/starters/react-shadcn/src/client/components/ui/select.tsx new file mode 100644 index 00000000..51f466ec --- /dev/null +++ b/starters/react-shadcn/src/client/components/ui/select.tsx @@ -0,0 +1,183 @@ +import * as React from "react" +import * as SelectPrimitive from "@radix-ui/react-select" +import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" + +import { cn } from "@/lib/utils" + +function Select({ + ...props +}: React.ComponentProps) { + return +} + +function SelectGroup({ + ...props +}: React.ComponentProps) { + return +} + +function SelectValue({ + ...props +}: React.ComponentProps) { + return +} + +function SelectTrigger({ + className, + size = "default", + children, + ...props +}: React.ComponentProps & { + size?: "sm" | "default" +}) { + return ( + + {children} + + + + + ) +} + +function SelectContent({ + className, + children, + position = "popper", + ...props +}: React.ComponentProps) { + return ( + + + + + {children} + + + + + ) +} + +function SelectLabel({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectItem({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function SelectSeparator({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectScrollUpButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +function SelectScrollDownButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectScrollDownButton, + SelectScrollUpButton, + SelectSeparator, + SelectTrigger, + SelectValue, +} diff --git a/starters/react-shadcn/src/client/context.ts b/starters/react-shadcn/src/client/context.ts new file mode 100644 index 00000000..3ef02b2f --- /dev/null +++ b/starters/react-shadcn/src/client/context.ts @@ -0,0 +1,43 @@ +// Thin layer on top of fetch() +// to automatically perform JSON requests +import { sendJSON } from '/fetch.ts' + +// The default export function runs exactly once on +// the server and once on the client during the +// first render, that is, it's not executed again +// in subsquent client-side navigation via React Router. +export default (ctx) => { + if (ctx.server) { + ctx.state.todoList = ctx.server.db.todoList + } +} + +// State initializer, must be a function called state +// as this is a special context.js export and has +// special processing, e.g., serialization and hydration +export function state () { + return { + user: { + authenticated: false, + }, + todoList: null, + } +} + +// Grouped actions that operate on the state. This export +// could be named anything, no special processing involved. +export const actions = { + authenticate (state) { + state.user.authenticated = true + }, + todoList: { + async add (state, item) { + await sendJSON('/api/todo/items', { method: 'put', json: item }) + state.todoList.push(item) + }, + async remove (state, index) { + await sendJSON('/api/todo/items', { method: 'delete', json: index }) + state.todoList.splice(index, 1) + }, + } +} diff --git a/starters/react-shadcn/src/client/fetch.ts b/starters/react-shadcn/src/client/fetch.ts new file mode 100644 index 00000000..e1fe09ad --- /dev/null +++ b/starters/react-shadcn/src/client/fetch.ts @@ -0,0 +1,15 @@ +// This method is only used on the client, assuming the +// requests are made to the current location, so no base +// URL configuration is needed in this example. + +export function sendJSON (path, options) { + return fetch(path, { + headers: { + 'Content-Type': 'application/json', + }, + ...options.json && { + body: JSON.stringify(options.json), + }, + ...options + }) +} diff --git a/starters/react-shadcn/src/client/index.css b/starters/react-shadcn/src/client/index.css new file mode 100644 index 00000000..560a99f3 --- /dev/null +++ b/starters/react-shadcn/src/client/index.css @@ -0,0 +1,122 @@ +@import "tailwindcss"; +@import "tw-animate-css"; + +@custom-variant dark (&:is(.dark *)); + +@theme inline { + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +:root { + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.205 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.556 0 0); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} + +@import "./base.css"; diff --git a/starters/react-shadcn/src/client/index.html b/starters/react-shadcn/src/client/index.html new file mode 100644 index 00000000..910829d2 --- /dev/null +++ b/starters/react-shadcn/src/client/index.html @@ -0,0 +1,11 @@ + + + + + + + +
+ + + \ No newline at end of file diff --git a/starters/react-shadcn/src/client/layouts/auth.jsx b/starters/react-shadcn/src/client/layouts/auth.jsx new file mode 100644 index 00000000..a047b707 --- /dev/null +++ b/starters/react-shadcn/src/client/layouts/auth.jsx @@ -0,0 +1,25 @@ +import { Suspense } from 'react' +import { useRouteContext } from '@fastify/react/client' + +export default function Auth ({ children }) { + const { actions, state, snapshot } = useRouteContext() + const authenticate = () => actions.authenticate(state) + return ( + + {snapshot.user.authenticated + ? children + : authenticate()} /> } + + ) +} + +function Login ({ onClick }) { + return ( + <> +

This route needs authentication.

+ + + ) +} \ No newline at end of file diff --git a/starters/react-shadcn/src/client/layouts/default.jsx b/starters/react-shadcn/src/client/layouts/default.jsx new file mode 100644 index 00000000..604b629d --- /dev/null +++ b/starters/react-shadcn/src/client/layouts/default.jsx @@ -0,0 +1,9 @@ +import { Suspense } from 'react' + +export default function Default ({ children }) { + return ( + + {children} + + ) +} diff --git a/starters/react-shadcn/src/client/lib/utils.ts b/starters/react-shadcn/src/client/lib/utils.ts new file mode 100644 index 00000000..bd0c391d --- /dev/null +++ b/starters/react-shadcn/src/client/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/starters/react-shadcn/src/client/pages/actions/data.tsx b/starters/react-shadcn/src/client/pages/actions/data.tsx new file mode 100644 index 00000000..f6e4db6c --- /dev/null +++ b/starters/react-shadcn/src/client/pages/actions/data.tsx @@ -0,0 +1,41 @@ +import { useState } from 'react' +import { Link } from 'react-router' +import { createServerAction, useServerAction } from '$app/core.jsx' + +const accessCounter = createServerAction() + +export function configure (server) { + let counter = 0 + server.get(accessCounter, (_, reply) => { + reply.send({ counter: ++counter }) + }) +} + +export default function Form () { + // useServerAction(endpoint) acts a React suspense resource, + // with the exception that data is retrieved only once per + // route and cleared only when the user navigates to another route. + const data = useServerAction(accessCounter) + const [counter, setCounter] = useState(data.counter) + + // Just use endpoint string to retrieve fresh data on-demand + const incrementCounter = async () => { + const request = await fetch(accessCounter) + const data = await request.json(0) + setCounter(data.counter) + } + + return ( + <> +

Using inline server GET handler

+

useServerAction(endpoint) acts a React Suspense resource, + with the exception that data is retrieved only once per + route and cleared only when the user navigates to another route.

+

Counter: {counter}

+ +

+ Go back to the index +

+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/actions/form.tsx b/starters/react-shadcn/src/client/pages/actions/form.tsx new file mode 100644 index 00000000..cd72394f --- /dev/null +++ b/starters/react-shadcn/src/client/pages/actions/form.tsx @@ -0,0 +1,33 @@ +import { Link } from 'react-router' +import { createServerAction } from '$app/core.jsx' + +const isAdmin = createServerAction() + +export function configure (server) { + server.post(isAdmin, async (req, reply) => { + await new Promise((resolve, reject) => { + setTimeout(resolve, 1000) + }) + const username = req.body.username + if (username === 'admin') { + return reply.redirect('/admin') + } + return new Error('Invalid username') + }) +} + +export default function Form () { + return ( + <> +

Using inline server POST handler

+
+ + + +
+

+ Go back to the index +

+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/client-only.tsx b/starters/react-shadcn/src/client/pages/client-only.tsx new file mode 100644 index 00000000..e8e6424d --- /dev/null +++ b/starters/react-shadcn/src/client/pages/client-only.tsx @@ -0,0 +1,32 @@ +import { Link } from 'react-router' +import { useHead } from '@unhead/react' + +export const clientOnly = true + +export function getMeta () { + return { + title: 'Client Only Page' + } +} + +export default function ClientOnly () { + useHead({ + meta: [ + { + name: 'description', + content: 'More head updates!' + } + ] + }) + return ( + <> +

This route is rendered on the client only!

+

+ Go back to the index +

+

+

When this route is rendered on the server, no SSR takes place.

+

See the output of curl http://localhost:3000/client-only.

+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/form/[id].tsx b/starters/react-shadcn/src/client/pages/form/[id].tsx new file mode 100644 index 00000000..5483e4ae --- /dev/null +++ b/starters/react-shadcn/src/client/pages/form/[id].tsx @@ -0,0 +1,31 @@ + +import { useRouteContext } from '@fastify/react/client' + +export function getData ({ req, reply }) { + if (req.method === 'POST') { + if (req.body.number !== '42') { + return reply.redirect('/') + } + return req.body + } else { + return { + number: '' + } + } +} + +export default function Form () { + const { data } = useRouteContext() + return ( + <> +

Form example with dynamic URL

+
+ +
+ +
+ +
+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/index.tsx b/starters/react-shadcn/src/client/pages/index.tsx new file mode 100644 index 00000000..c77b76e2 --- /dev/null +++ b/starters/react-shadcn/src/client/pages/index.tsx @@ -0,0 +1,35 @@ +import logo from '/assets/logo.svg' +import { Link } from 'react-router' +import { useRouteContext } from '@fastify/react/client' + +export function getMeta () { + return { + title: 'Welcome to @fastify/react!' + } +} + +export default function Index () { + const { snapshot, state } = useRouteContext() + if (import.meta.env.SSR) { + // State is automatically hydrated on the client + state.message = 'Welcome to @fastify/react!' + } + return ( + <> + +

{snapshot.message}

+
    +
  • /using-data — isomorphic data fetching.
  • +
  • /using-store — integrated Valtio store.
  • +
  • /using-auth — custom layout.
  • +
  • /form/123 — POST to dynamic route.
  • +
  • /actions/data — inline GET handler.
  • +
  • /actions/form — inline POST handler.
  • +
  • /client-only — disabling SSR.
  • +
  • /server-only — 0kb JavaScript.
  • +
  • /streaming — streaming SSR.
  • +
  • /wildcard/another/one — wildcard route matching /wildcard/*
  • +
+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/server-only.tsx b/starters/react-shadcn/src/client/pages/server-only.tsx new file mode 100644 index 00000000..6baebf11 --- /dev/null +++ b/starters/react-shadcn/src/client/pages/server-only.tsx @@ -0,0 +1,17 @@ +import { Link } from 'react-router' + +export const serverOnly = true + +export default function ServerOnly () { + return ( + <> +

This route is rendered on the server only!

+

+ Go back to the index +

+

+

When this route is rendered on the server, no JavaScript is sent to the client.

+

See the output of curl http://localhost:3000/server-only.

+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/streaming.tsx b/starters/react-shadcn/src/client/pages/streaming.tsx new file mode 100644 index 00000000..042357cb --- /dev/null +++ b/starters/react-shadcn/src/client/pages/streaming.tsx @@ -0,0 +1,46 @@ +import { Suspense } from 'react' + +export const streaming = true + +export default function Index () { + return ( + Waiting for content

}> + +
+ ) +} + +function Message () { + const message = afterSeconds({ + id: 'index', + message: 'Delayed by Suspense API', + seconds: 5 + }) + return

{message}

+} + +const delays = new Map() + +function afterSeconds ({ id, message, seconds }) { + const delay = delays.get(id) + if (delay) { + if (delay.message) { + delays.delete(id) + return delay.message + } + if (delay.promise) { + throw delay.promise + } + } else { + delays.set(id, { + message: null, + promise: new Promise((resolve) => { + setTimeout(() => { + delays.get(id).message = message + resolve() + }, seconds * 1000) + }) + }) + return afterSeconds({ id, message }) + } +} diff --git a/starters/react-shadcn/src/client/pages/using-auth.tsx b/starters/react-shadcn/src/client/pages/using-auth.tsx new file mode 100644 index 00000000..5930454e --- /dev/null +++ b/starters/react-shadcn/src/client/pages/using-auth.tsx @@ -0,0 +1,39 @@ +import { useState } from 'react' +import { Link } from 'react-router' +import { useRouteContext } from '@fastify/react/client' + +export const layout = 'auth' + +export function getMeta () { + return { title: 'Using Custom Layout' } +} + +export default function Index (props) { + const {snapshot, state, actions} = useRouteContext() + const [input, setInput] = useState(null) + const addItem = async (value) => { + await actions.todoList.add(state, value) + input.value = '' + } + return ( + <> +

Todo List — Using Custom Layout

+
    { + snapshot.todoList.map((item, i) => { + return
  • {item}
  • + }) + }
+
+ + +
+

+ Go back to the index +

+

+

This example is exactly the same as /using-store, + except it's wrapped in a custom layout which blocks it until + user.authenticated is true in the global state.

+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/using-data.tsx b/starters/react-shadcn/src/client/pages/using-data.tsx new file mode 100644 index 00000000..a346d6a2 --- /dev/null +++ b/starters/react-shadcn/src/client/pages/using-data.tsx @@ -0,0 +1,46 @@ +import { useState } from 'react' +import { Link } from 'react-router' +import { useRouteContext } from '@fastify/react/client' + +export function getMeta () { + return { title: 'Todo List — Using Data' } +} + +export function getData ({ server }) { + return { + todoList: server.db.todoList + } +} + +export default function Index (props) { + const {data} = useRouteContext() + const [todoList, updateTodoList] = useState(data.todoList) + const [input, setInput] = useState(null) + const addItem = (value) => { + updateTodoList(list => [...list, value]) + input.value = '' + } + return ( + <> +

Todo List — Using Data

+
    { + todoList.map((item, i) => { + return
  • {item}
  • + }) + }
+
+ + +
+

+ Go back to the index +

+

+

When you navigate away from this route, any additions to the to-do + list will be lost, because they're bound to this route component only.

+

See the /using-store example to learn + how to use the application global state for it. +

+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/using-store.tsx b/starters/react-shadcn/src/client/pages/using-store.tsx new file mode 100644 index 00000000..2d625c03 --- /dev/null +++ b/starters/react-shadcn/src/client/pages/using-store.tsx @@ -0,0 +1,36 @@ +import { useState } from 'react' +import { Link } from 'react-router' +import { useRouteContext } from '@fastify/react/client' + +export function getMeta () { + return { title: 'Todo List — Using Store' } +} + +export default function Index (props) { + const {snapshot, state, actions} = useRouteContext() + const [input, setInput] = useState(null) + const addItem = async (value) => { + await actions.todoList.add(state, value) + input.value = '' + } + return ( + <> +

Todo List — Using Store

+
    { + snapshot.todoList.map((item, i) => { + return
  • {item}
  • + }) + }
+
+ + +
+

+ Go back to the index +

+

+

When you navigate away from this route, any additions to the to-do + list are not lost, because they're bound to the global application state.

+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/wildcard/[slug+].tsx b/starters/react-shadcn/src/client/pages/wildcard/[slug+].tsx new file mode 100644 index 00000000..441f67f0 --- /dev/null +++ b/starters/react-shadcn/src/client/pages/wildcard/[slug+].tsx @@ -0,0 +1,22 @@ +import { useRouteContext } from '@fastify/react/client' + +export function getData ({ req }) { + let pathMatch = req.params['*']; + if (pathMatch.charAt(pathMatch.length - 1) == '/') { + pathMatch = pathMatch.substr(0, pathMatch.length - 1); + } + + return { + pathMatch: pathMatch.split('/'), + } +} + +export default function Wildcard () { + const { data } = useRouteContext() + return ( + <> +

Wildcard example that matches /wildcard/*

+

Path match: { data.pathMatch }

+ + ) +} diff --git a/starters/react-shadcn/src/client/pages/with-shadcn.tsx b/starters/react-shadcn/src/client/pages/with-shadcn.tsx new file mode 100644 index 00000000..6aeabdde --- /dev/null +++ b/starters/react-shadcn/src/client/pages/with-shadcn.tsx @@ -0,0 +1,74 @@ + +import { + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectTrigger, + SelectValue, +} from "@/components/ui/select" + +export default function SelectScrollable() { + return ( + + ) +} diff --git a/starters/react-shadcn/src/client/root.tsx b/starters/react-shadcn/src/client/root.tsx new file mode 100644 index 00000000..81ed5a24 --- /dev/null +++ b/starters/react-shadcn/src/client/root.tsx @@ -0,0 +1,27 @@ +import { Suspense } from 'react' +import { Routes, Route } from 'react-router' +import { Router, AppRoute } from '$app/core.tsx' + +export default function Root ({ url, routes, head, ctxHydration, routeMap }) { + return ( + + + { + routes.map(({ path, component: Component }) => + + + + } />, + ) + } + + + ) +} diff --git a/starters/react-shadcn/src/server.ts b/starters/react-shadcn/src/server.ts new file mode 100644 index 00000000..88e9c049 --- /dev/null +++ b/starters/react-shadcn/src/server.ts @@ -0,0 +1,52 @@ +import { resolve } from 'node:path' +import Fastify from 'fastify' +import FastifyVite from '@fastify/vite' +import FastifyFormBody from '@fastify/formbody' +interface Database { + todoList: string[] +} + +const server = Fastify({ + logger: { + transport: { + target: '@fastify/one-line-logger' + } + } +}) + +await server.register(FastifyFormBody) + +await server.register(FastifyVite, { + // TODO handle via CLI path argument with proper resolve + root: resolve(import.meta.dirname, '..'), + distDir: import.meta.dirname, // This file will also live in the dist folder when built + renderer: '@fastify/react', +}) + +await server.vite.ready() + +server.decorate('db', { + todoList: [ + 'Do laundry', + 'Respond to emails', + 'Write report', + ] +}) + +server.put<{ + Body: string +}>('/api/todo/items', (req, reply) => { + const db = server.getDecorator('db') + db.todoList.push(req.body) + reply.send({ ok: true }) +}) + +server.delete<{ + Body: number +}>('/api/todo/items', (req, reply) => { + const db = server.getDecorator('db') + db.todoList.splice(req.body, 1) + reply.send({ ok: true }) +}) + +await server.listen({ port: 3000 }) diff --git a/starters/react-shadcn/tsconfig.app.json b/starters/react-shadcn/tsconfig.app.json new file mode 100644 index 00000000..4e332dba --- /dev/null +++ b/starters/react-shadcn/tsconfig.app.json @@ -0,0 +1,37 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Shadcn */ + "baseUrl": "./src/client/", + "paths": { + "@/*": [ + "./src/client/*" + ] + }, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + + "include": ["src/client"], + "exclude": ["src/client/**/*", "src/**/*.test.ts"] +} diff --git a/starters/react-shadcn/tsconfig.json b/starters/react-shadcn/tsconfig.json new file mode 100644 index 00000000..7c5fc8c3 --- /dev/null +++ b/starters/react-shadcn/tsconfig.json @@ -0,0 +1,38 @@ +{ + "compilerOptions": { + "allowJs": false, + "allowSyntheticDefaultImports": true, + "checkJs": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "incremental": true, + "isolatedModules": true, + "lib": ["ESNext"], + "module": "NodeNext", + "moduleResolution": "NodeNext", + "outDir": "dist", + "noFallthroughCasesInSwitch": true, + "noUnusedLocals": true, + "removeComments": true, + "resolveJsonModule": true, + "rootDir": "src", + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "target": "ESNext", + "verbatimModuleSyntax": true, + /* Shadcn */ + "baseUrl": ".", + "paths": { + "@/*": ["./src/client/*"] + } + }, + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/starters/react-shadcn/tsconfig.node.json b/starters/react-shadcn/tsconfig.node.json new file mode 100644 index 00000000..14fe7204 --- /dev/null +++ b/starters/react-shadcn/tsconfig.node.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} \ No newline at end of file diff --git a/starters/react-shadcn/vite.config.ts b/starters/react-shadcn/vite.config.ts new file mode 100644 index 00000000..a2f2d8b6 --- /dev/null +++ b/starters/react-shadcn/vite.config.ts @@ -0,0 +1,25 @@ +import { join } from 'path' + +import viteReact from '@vitejs/plugin-react' +import viteFastifyReact from '@fastify/react/plugin' +import tailwindcss from '@tailwindcss/vite' + +export default { + root: join(import.meta.dirname, 'src', 'client'), + build: { + emptyOutDir: true, + outDir: join(import.meta.dirname, 'dist'), + }, + plugins: [ + tailwindcss(), + viteReact(), + viteFastifyReact({ + ts: true + }), + ], + resolve: { + alias: { + '@': join(import.meta.dirname, 'src', 'client'), + }, + }, +}