diff --git a/package.json b/package.json index e08f1eec..bddeb639 100644 --- a/package.json +++ b/package.json @@ -40,13 +40,13 @@ "@sentry/vite-plugin": "^2.22.6", "@tailwindcss/typography": "^0.5.13", "@tailwindcss/vite": "^4.1.11", - "@tanstack/pacer": "^0.16.3", - "@tanstack/react-pacer": "^0.16.3", - "@tanstack/react-query": "^5.90.2", - "@tanstack/react-router": "1.139.12", - "@tanstack/react-router-devtools": "1.139.12", - "@tanstack/react-router-ssr-query": "1.139.12", - "@tanstack/react-start": "1.139.12", + "@tanstack/pacer": "^0.16.4", + "@tanstack/react-pacer": "^0.17.4", + "@tanstack/react-query": "^5.90.12", + "@tanstack/react-router": "1.140.0", + "@tanstack/react-router-devtools": "1.140.0", + "@tanstack/react-router-ssr-query": "1.140.0", + "@tanstack/react-start": "1.140.0", "@tanstack/react-table": "^8.21.3", "@types/d3": "^7.4.3", "@visx/hierarchy": "^2.10.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 87f5675a..8b0668c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 0.37.0 '@clerk/tanstack-react-start': specifier: ^0.21.5 - version: 0.21.5(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/react-start@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 0.21.5(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/react-start@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@floating-ui/react': specifier: ^0.27.8 version: 0.27.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -28,7 +28,7 @@ importers: version: 0.1.0 '@netlify/vite-plugin-tanstack-start': specifier: ^1.0.2 - version: 1.0.2(@tanstack/react-start@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)))(babel-plugin-macros@3.1.0)(rollup@4.52.2)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + version: 1.0.2(@tanstack/react-start@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(babel-plugin-macros@3.1.0)(rollup@4.53.3)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@number-flow/react': specifier: ^0.4.1 version: 0.4.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -67,28 +67,28 @@ importers: version: 0.5.13(tailwindcss@4.1.11) '@tailwindcss/vite': specifier: ^4.1.11 - version: 4.1.11(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + version: 4.1.11(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@tanstack/pacer': - specifier: ^0.16.3 - version: 0.16.3 + specifier: ^0.16.4 + version: 0.16.4 '@tanstack/react-pacer': - specifier: ^0.16.3 - version: 0.16.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: ^0.17.4 + version: 0.17.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-query': - specifier: ^5.90.2 - version: 5.90.2(react@19.2.0) + specifier: ^5.90.12 + version: 5.90.12(react@19.2.0) '@tanstack/react-router': - specifier: 1.139.12 - version: 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: 1.140.0 + version: 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-router-devtools': - specifier: 1.139.12 - version: 1.139.12(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.139.12)(@types/node@24.3.0)(csstype@3.1.3)(jiti@2.6.0)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + specifier: 1.140.0 + version: 1.140.0(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.140.0)(csstype@3.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.10) '@tanstack/react-router-ssr-query': - specifier: 1.139.12 - version: 1.139.12(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.2.0))(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.139.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: 1.140.0 + version: 1.140.0(@tanstack/query-core@5.90.12)(@tanstack/react-query@5.90.12(react@19.2.0))(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.140.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-start': - specifier: 1.139.12 - version: 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + specifier: 1.140.0 + version: 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@tanstack/react-table': specifier: ^8.21.3 version: 8.21.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -103,7 +103,7 @@ importers: version: 2.17.0(react@19.2.0) '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.4(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + version: 4.3.4(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) algoliasearch: specifier: ^5.23.4 version: 5.23.4 @@ -112,7 +112,7 @@ importers: version: 1.7.8 better-auth: specifier: ^1.3.27 - version: 1.3.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9) + version: 1.3.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.10) cheerio: specifier: ^1.1.2 version: 1.1.2 @@ -229,7 +229,7 @@ importers: version: 1.2.1 vite-tsconfig-paths: specifier: ^5.0.1 - version: 5.0.1(typescript@5.9.2)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + version: 5.0.1(typescript@5.9.2)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) zod: specifier: ^4.0.17 version: 4.0.17 @@ -305,7 +305,7 @@ importers: version: 8.48.1(eslint@9.39.1(jiti@2.6.0))(typescript@5.9.2) vite: specifier: ^7.0.0 - version: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + version: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages: @@ -408,14 +408,18 @@ packages: resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.4': - resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} engines: {node: '>=6.9.0'} '@babel/generator@7.28.3': resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -438,6 +442,10 @@ packages: resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} @@ -474,6 +482,10 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -491,8 +503,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.28.4': - resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -8053,14 +8065,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)': + '@babel/preset-typescript@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -8089,15 +8101,27 @@ snapshots: '@babel/traverse@7.28.4': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/template': 7.27.2 '@babel/types': 7.28.4 debug: 4.4.3 transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -8108,6 +8132,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@better-auth/core@1.3.27': dependencies: better-call: 1.0.19 @@ -8167,14 +8196,14 @@ snapshots: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@clerk/tanstack-react-start@0.21.5(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/react-start@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@clerk/tanstack-react-start@0.21.5(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/react-start@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@clerk/backend': 2.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@clerk/clerk-react': 5.43.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@clerk/shared': 3.22.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@clerk/types': 4.81.0 - '@tanstack/react-router': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/react-start': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + '@tanstack/react-router': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/react-start': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) tslib: 2.8.1 @@ -8204,11 +8233,11 @@ snapshots: dependencies: '@content-collections/core': 0.8.2(typescript@5.9.2) - '@content-collections/vite@0.2.4(@content-collections/core@0.8.2(typescript@5.9.2))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@content-collections/vite@0.2.4(@content-collections/core@0.8.2(typescript@5.9.2))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@content-collections/core': 0.8.2(typescript@5.9.2) '@content-collections/integrations': 0.2.1(@content-collections/core@0.8.2(typescript@5.9.2)) - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@dabh/diagnostics@2.0.8': dependencies: @@ -8823,6 +8852,12 @@ snapshots: dependencies: '@types/pg': 8.11.6 + '@neondatabase/serverless@1.0.2': + dependencies: + '@types/node': 22.19.1 + '@types/pg': 8.15.6 + optional: true + '@netlify/api@14.0.6': dependencies: '@netlify/open-api': 2.39.0 @@ -8886,13 +8921,13 @@ snapshots: uuid: 11.1.0 write-file-atomic: 5.0.1 - '@netlify/dev@4.5.12(rollup@4.52.2)': + '@netlify/dev@4.5.12(rollup@4.53.3)': dependencies: '@netlify/blobs': 10.0.11 '@netlify/config': 23.2.0 '@netlify/dev-utils': 4.2.0 '@netlify/edge-functions': 2.18.2 - '@netlify/functions': 4.2.7(rollup@4.52.2) + '@netlify/functions': 4.2.7(rollup@4.53.3) '@netlify/headers': 2.0.12 '@netlify/images': 1.2.8(@netlify/blobs@10.0.11) '@netlify/redirects': 3.0.13 @@ -8957,12 +8992,12 @@ snapshots: '@netlify/types': 2.0.3 get-port: 7.1.0 - '@netlify/functions@4.2.7(rollup@4.52.2)': + '@netlify/functions@4.2.7(rollup@4.53.3)': dependencies: '@netlify/blobs': 10.0.11 '@netlify/dev-utils': 4.2.0 '@netlify/types': 2.0.3 - '@netlify/zip-it-and-ship-it': 14.1.8(rollup@4.52.2) + '@netlify/zip-it-and-ship-it': 14.1.8(rollup@4.53.3) cron-parser: 4.9.0 decache: 4.6.2 extract-zip: 2.0.1 @@ -9058,12 +9093,12 @@ snapshots: '@netlify/types@2.2.0': {} - '@netlify/vite-plugin-tanstack-start@1.0.2(@tanstack/react-start@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)))(babel-plugin-macros@3.1.0)(rollup@4.52.2)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@netlify/vite-plugin-tanstack-start@1.0.2(@tanstack/react-start@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(babel-plugin-macros@3.1.0)(rollup@4.53.3)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@netlify/vite-plugin': 2.6.1(babel-plugin-macros@3.1.0)(rollup@4.52.2)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + '@netlify/vite-plugin': 2.6.1(babel-plugin-macros@3.1.0)(rollup@4.53.3)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) optionalDependencies: - '@tanstack/react-start': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + '@tanstack/react-start': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -9089,12 +9124,12 @@ snapshots: - supports-color - uploadthing - '@netlify/vite-plugin@2.6.1(babel-plugin-macros@3.1.0)(rollup@4.52.2)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@netlify/vite-plugin@2.6.1(babel-plugin-macros@3.1.0)(rollup@4.53.3)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@netlify/dev': 4.5.12(rollup@4.52.2) + '@netlify/dev': 4.5.12(rollup@4.53.3) '@netlify/dev-utils': 4.2.0 dedent: 1.7.0(babel-plugin-macros@3.1.0) - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -9120,13 +9155,13 @@ snapshots: - supports-color - uploadthing - '@netlify/zip-it-and-ship-it@14.1.8(rollup@4.52.2)': + '@netlify/zip-it-and-ship-it@14.1.8(rollup@4.53.3)': dependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/types': 7.28.4 '@netlify/binary-info': 1.0.0 '@netlify/serverless-functions-api': 2.6.0 - '@vercel/nft': 0.29.4(rollup@4.52.2) + '@vercel/nft': 0.29.4(rollup@4.53.3) archiver: 7.0.1 common-path-prefix: 3.0.0 copy-file: 11.1.0 @@ -9895,77 +9930,140 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.40': {} - '@rollup/pluginutils@5.3.0(rollup@4.52.2)': + '@rollup/pluginutils@5.3.0(rollup@4.53.3)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.52.2 + rollup: 4.53.3 '@rollup/rollup-android-arm-eabi@4.52.2': optional: true + '@rollup/rollup-android-arm-eabi@4.53.3': + optional: true + '@rollup/rollup-android-arm64@4.52.2': optional: true + '@rollup/rollup-android-arm64@4.53.3': + optional: true + '@rollup/rollup-darwin-arm64@4.52.2': optional: true + '@rollup/rollup-darwin-arm64@4.53.3': + optional: true + '@rollup/rollup-darwin-x64@4.52.2': optional: true + '@rollup/rollup-darwin-x64@4.53.3': + optional: true + '@rollup/rollup-freebsd-arm64@4.52.2': optional: true + '@rollup/rollup-freebsd-arm64@4.53.3': + optional: true + '@rollup/rollup-freebsd-x64@4.52.2': optional: true + '@rollup/rollup-freebsd-x64@4.53.3': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.52.2': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.53.3': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.52.2': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.53.3': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-arm64-gnu@4.53.3': + optional: true + '@rollup/rollup-linux-arm64-musl@4.52.2': optional: true + '@rollup/rollup-linux-arm64-musl@4.53.3': + optional: true + '@rollup/rollup-linux-loong64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-loong64-gnu@4.53.3': + optional: true + '@rollup/rollup-linux-ppc64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.53.3': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.53.3': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.52.2': optional: true + '@rollup/rollup-linux-riscv64-musl@4.53.3': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.52.2': optional: true + '@rollup/rollup-linux-s390x-gnu@4.53.3': + optional: true + '@rollup/rollup-linux-x64-gnu@4.52.2': optional: true + '@rollup/rollup-linux-x64-gnu@4.53.3': + optional: true + '@rollup/rollup-linux-x64-musl@4.52.2': optional: true + '@rollup/rollup-linux-x64-musl@4.53.3': + optional: true + '@rollup/rollup-openharmony-arm64@4.52.2': optional: true + '@rollup/rollup-openharmony-arm64@4.53.3': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.52.2': optional: true + '@rollup/rollup-win32-arm64-msvc@4.53.3': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.52.2': optional: true + '@rollup/rollup-win32-ia32-msvc@4.53.3': + optional: true + '@rollup/rollup-win32-x64-gnu@4.52.2': optional: true + '@rollup/rollup-win32-x64-gnu@4.53.3': + optional: true + '@rollup/rollup-win32-x64-msvc@4.52.2': optional: true @@ -10194,138 +10292,119 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.11 - '@tailwindcss/vite@4.1.11(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@tailwindcss/vite@4.1.11(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@tailwindcss/node': 4.1.11 '@tailwindcss/oxide': 4.1.11 tailwindcss: 4.1.11 - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - - '@tanstack/devtools-event-client@0.2.5': {} + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@tanstack/devtools-event-client@0.3.5': {} - '@tanstack/directive-functions-plugin@1.139.0(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@tanstack/directive-functions-plugin@1.140.0(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/code-frame': 7.27.1 - '@babel/core': 7.28.4 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - '@tanstack/router-utils': 1.139.0 + '@babel/core': 7.28.5 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@tanstack/router-utils': 1.140.0 babel-dead-code-elimination: 1.0.10 pathe: 2.0.3 tiny-invariant: 1.3.3 - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@tanstack/history@1.139.0': {} - - '@tanstack/pacer@0.15.3': - dependencies: - '@tanstack/devtools-event-client': 0.2.5 - '@tanstack/store': 0.7.7 + '@tanstack/history@1.140.0': {} - '@tanstack/pacer@0.16.3': + '@tanstack/pacer@0.16.4': dependencies: '@tanstack/devtools-event-client': 0.3.5 '@tanstack/store': 0.8.0 - '@tanstack/query-core@5.90.2': {} + '@tanstack/query-core@5.90.12': {} - '@tanstack/react-pacer@0.16.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@tanstack/react-pacer@0.17.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@tanstack/pacer': 0.15.3 - '@tanstack/react-store': 0.7.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/pacer': 0.16.4 + '@tanstack/react-store': 0.8.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@tanstack/react-query@5.90.2(react@19.2.0)': + '@tanstack/react-query@5.90.12(react@19.2.0)': dependencies: - '@tanstack/query-core': 5.90.2 + '@tanstack/query-core': 5.90.12 react: 19.2.0 - '@tanstack/react-router-devtools@1.139.12(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.139.12)(@types/node@24.3.0)(csstype@3.1.3)(jiti@2.6.0)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)': + '@tanstack/react-router-devtools@1.140.0(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.140.0)(csstype@3.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.10)': dependencies: - '@tanstack/react-router': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/router-devtools-core': 1.139.12(@tanstack/router-core@1.139.12)(@types/node@24.3.0)(csstype@3.1.3)(jiti@2.6.0)(lightningcss@1.30.1)(solid-js@1.9.9)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + '@tanstack/react-router': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/router-devtools-core': 1.140.0(@tanstack/router-core@1.140.0)(csstype@3.2.3)(solid-js@1.9.10) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) optionalDependencies: - '@tanstack/router-core': 1.139.12 + '@tanstack/router-core': 1.140.0 transitivePeerDependencies: - - '@types/node' - csstype - - jiti - - less - - lightningcss - - sass - - sass-embedded - solid-js - - stylus - - sugarss - - terser - - tsx - - yaml - - '@tanstack/react-router-ssr-query@1.139.12(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.2.0))(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.139.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@tanstack/query-core': 5.90.2 - '@tanstack/react-query': 5.90.2(react@19.2.0) - '@tanstack/react-router': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/router-ssr-query-core': 1.139.12(@tanstack/query-core@5.90.2)(@tanstack/router-core@1.139.12) + + '@tanstack/react-router-ssr-query@1.140.0(@tanstack/query-core@5.90.12)(@tanstack/react-query@5.90.12(react@19.2.0))(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.140.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + dependencies: + '@tanstack/query-core': 5.90.12 + '@tanstack/react-query': 5.90.12(react@19.2.0) + '@tanstack/react-router': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/router-ssr-query-core': 1.140.0(@tanstack/query-core@5.90.12)(@tanstack/router-core@1.140.0) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) transitivePeerDependencies: - '@tanstack/router-core' - '@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@tanstack/history': 1.139.0 + '@tanstack/history': 1.140.0 '@tanstack/react-store': 0.8.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/router-core': 1.139.12 - isbot: 5.1.31 + '@tanstack/router-core': 1.140.0 + isbot: 5.1.32 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-client@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@tanstack/react-start-client@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@tanstack/react-router': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/router-core': 1.139.12 - '@tanstack/start-client-core': 1.139.12 + '@tanstack/react-router': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/router-core': 1.140.0 + '@tanstack/start-client-core': 1.140.0 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-server@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@tanstack/react-start-server@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@tanstack/history': 1.139.0 - '@tanstack/react-router': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/router-core': 1.139.12 - '@tanstack/start-client-core': 1.139.12 - '@tanstack/start-server-core': 1.139.12 + '@tanstack/history': 1.140.0 + '@tanstack/react-router': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/router-core': 1.140.0 + '@tanstack/start-client-core': 1.140.0 + '@tanstack/start-server-core': 1.140.0 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) transitivePeerDependencies: - crossws - '@tanstack/react-start@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@tanstack/react-start@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@tanstack/react-router': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/react-start-client': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/react-start-server': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/router-utils': 1.139.0 - '@tanstack/start-client-core': 1.139.12 - '@tanstack/start-plugin-core': 1.139.12(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - '@tanstack/start-server-core': 1.139.12 + '@tanstack/react-router': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/react-start-client': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/react-start-server': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/router-utils': 1.140.0 + '@tanstack/start-client-core': 1.140.0 + '@tanstack/start-plugin-core': 1.140.0(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@tanstack/start-server-core': 1.140.0 pathe: 2.0.3 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@rsbuild/core' - crossws @@ -10333,13 +10412,6 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/react-store@0.7.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@tanstack/store': 0.7.7 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - use-sync-external-store: 1.5.0(react@19.2.0) - '@tanstack/react-store@0.8.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@tanstack/store': 0.8.0 @@ -10359,9 +10431,9 @@ snapshots: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@tanstack/router-core@1.139.12': + '@tanstack/router-core@1.140.0': dependencies: - '@tanstack/history': 1.139.0 + '@tanstack/history': 1.140.0 '@tanstack/store': 0.8.0 cookie-es: 2.0.0 seroval: 1.4.0 @@ -10369,34 +10441,21 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/router-devtools-core@1.139.12(@tanstack/router-core@1.139.12)(@types/node@24.3.0)(csstype@3.1.3)(jiti@2.6.0)(lightningcss@1.30.1)(solid-js@1.9.9)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)': + '@tanstack/router-devtools-core@1.140.0(@tanstack/router-core@1.140.0)(csstype@3.2.3)(solid-js@1.9.10)': dependencies: - '@tanstack/router-core': 1.139.12 + '@tanstack/router-core': 1.140.0 clsx: 2.1.1 - goober: 2.1.16(csstype@3.1.3) - solid-js: 1.9.9 + goober: 2.1.18(csstype@3.2.3) + solid-js: 1.9.10 tiny-invariant: 1.3.3 - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) optionalDependencies: - csstype: 3.1.3 - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml + csstype: 3.2.3 - '@tanstack/router-generator@1.139.12': + '@tanstack/router-generator@1.140.0': dependencies: - '@tanstack/router-core': 1.139.12 - '@tanstack/router-utils': 1.139.0 - '@tanstack/virtual-file-routes': 1.139.0 + '@tanstack/router-core': 1.140.0 + '@tanstack/router-utils': 1.140.0 + '@tanstack/virtual-file-routes': 1.140.0 prettier: 3.7.4 recast: 0.23.11 source-map: 0.7.6 @@ -10405,93 +10464,93 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.139.12(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@tanstack/router-plugin@1.140.0(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - '@tanstack/router-core': 1.139.12 - '@tanstack/router-generator': 1.139.12 - '@tanstack/router-utils': 1.139.0 - '@tanstack/virtual-file-routes': 1.139.0 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@tanstack/router-core': 1.140.0 + '@tanstack/router-generator': 1.140.0 + '@tanstack/router-utils': 1.140.0 + '@tanstack/virtual-file-routes': 1.140.0 babel-dead-code-elimination: 1.0.10 chokidar: 3.6.0 - unplugin: 2.3.10 + unplugin: 2.3.11 zod: 3.25.76 optionalDependencies: - '@tanstack/react-router': 1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + '@tanstack/react-router': 1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@tanstack/router-ssr-query-core@1.139.12(@tanstack/query-core@5.90.2)(@tanstack/router-core@1.139.12)': + '@tanstack/router-ssr-query-core@1.140.0(@tanstack/query-core@5.90.12)(@tanstack/router-core@1.140.0)': dependencies: - '@tanstack/query-core': 5.90.2 - '@tanstack/router-core': 1.139.12 + '@tanstack/query-core': 5.90.12 + '@tanstack/router-core': 1.140.0 - '@tanstack/router-utils@1.139.0': + '@tanstack/router-utils@1.140.0': dependencies: - '@babel/core': 7.28.4 - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.4 - '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) - ansis: 4.1.0 + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) + ansis: 4.2.0 diff: 8.0.2 pathe: 2.0.3 tinyglobby: 0.2.15 transitivePeerDependencies: - supports-color - '@tanstack/server-functions-plugin@1.139.0(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@tanstack/server-functions-plugin@1.140.0(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/code-frame': 7.27.1 - '@babel/core': 7.28.4 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - '@tanstack/directive-functions-plugin': 1.139.0(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@tanstack/directive-functions-plugin': 1.140.0(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color - vite - '@tanstack/start-client-core@1.139.12': + '@tanstack/start-client-core@1.140.0': dependencies: - '@tanstack/router-core': 1.139.12 - '@tanstack/start-storage-context': 1.139.12 + '@tanstack/router-core': 1.140.0 + '@tanstack/start-storage-context': 1.140.0 seroval: 1.4.0 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/start-plugin-core@1.139.12(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@tanstack/start-plugin-core@1.140.0(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/code-frame': 7.26.2 - '@babel/core': 7.28.4 - '@babel/types': 7.28.4 + '@babel/core': 7.28.5 + '@babel/types': 7.28.5 '@rolldown/pluginutils': 1.0.0-beta.40 - '@tanstack/router-core': 1.139.12 - '@tanstack/router-generator': 1.139.12 - '@tanstack/router-plugin': 1.139.12(@tanstack/react-router@1.139.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - '@tanstack/router-utils': 1.139.0 - '@tanstack/server-functions-plugin': 1.139.0(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - '@tanstack/start-client-core': 1.139.12 - '@tanstack/start-server-core': 1.139.12 + '@tanstack/router-core': 1.140.0 + '@tanstack/router-generator': 1.140.0 + '@tanstack/router-plugin': 1.140.0(@tanstack/react-router@1.140.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@tanstack/router-utils': 1.140.0 + '@tanstack/server-functions-plugin': 1.140.0(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@tanstack/start-client-core': 1.140.0 + '@tanstack/start-server-core': 1.140.0 babel-dead-code-elimination: 1.0.10 cheerio: 1.1.2 - exsolve: 1.0.7 + exsolve: 1.0.8 pathe: 2.0.3 - srvx: 0.8.7 + srvx: 0.8.16 tinyglobby: 0.2.15 ufo: 1.6.1 - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vitefu: 1.1.1(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - xmlbuilder2: 4.0.1 + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitefu: 1.1.1(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + xmlbuilder2: 4.0.3 zod: 3.25.76 transitivePeerDependencies: - '@rsbuild/core' @@ -10501,23 +10560,21 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/start-server-core@1.139.12': + '@tanstack/start-server-core@1.140.0': dependencies: - '@tanstack/history': 1.139.0 - '@tanstack/router-core': 1.139.12 - '@tanstack/start-client-core': 1.139.12 - '@tanstack/start-storage-context': 1.139.12 + '@tanstack/history': 1.140.0 + '@tanstack/router-core': 1.140.0 + '@tanstack/start-client-core': 1.140.0 + '@tanstack/start-storage-context': 1.140.0 h3-v2: h3@2.0.0-beta.5 seroval: 1.4.0 tiny-invariant: 1.3.3 transitivePeerDependencies: - crossws - '@tanstack/start-storage-context@1.139.12': + '@tanstack/start-storage-context@1.140.0': dependencies: - '@tanstack/router-core': 1.139.12 - - '@tanstack/store@0.7.7': {} + '@tanstack/router-core': 1.140.0 '@tanstack/store@0.8.0': {} @@ -10525,7 +10582,7 @@ snapshots: '@tanstack/virtual-core@3.1.3': {} - '@tanstack/virtual-file-routes@1.139.0': {} + '@tanstack/virtual-file-routes@1.140.0': {} '@types/babel__core@7.20.5': dependencies: @@ -10703,6 +10760,11 @@ snapshots: '@types/ms@2.1.0': {} + '@types/node@22.19.1': + dependencies: + undici-types: 6.21.0 + optional: true + '@types/node@24.3.0': dependencies: undici-types: 7.10.0 @@ -10881,10 +10943,10 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vercel/nft@0.29.4(rollup@4.52.2)': + '@vercel/nft@0.29.4(rollup@4.53.3)': dependencies: '@mapbox/node-pre-gyp': 2.0.0 - '@rollup/pluginutils': 5.3.0(rollup@4.52.2) + '@rollup/pluginutils': 5.3.0(rollup@4.53.3) acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) async-sema: 3.1.1 @@ -10926,20 +10988,20 @@ snapshots: prop-types: 15.8.1 react: 19.2.0 - '@vitejs/plugin-react@4.3.4(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@vitejs/plugin-react@4.3.4(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.3 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.28.3) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.28.3) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color '@vue/compiler-core@3.5.22': dependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@vue/shared': 3.5.22 entities: 4.5.0 estree-walker: 2.0.2 @@ -10952,7 +11014,7 @@ snapshots: '@vue/compiler-sfc@3.5.22': dependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@vue/compiler-core': 3.5.22 '@vue/compiler-dom': 3.5.22 '@vue/compiler-ssr': 3.5.22 @@ -11084,6 +11146,8 @@ snapshots: ansis@4.1.0: {} + ansis@4.2.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -11253,10 +11317,10 @@ snapshots: babel-dead-code-elimination@1.0.10: dependencies: - '@babel/core': 7.28.4 - '@babel/parser': 7.28.4 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -11288,7 +11352,7 @@ snapshots: jsonpointer: 5.0.1 leven: 3.1.0 - better-auth@1.3.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.9): + better-auth@1.3.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.10): dependencies: '@better-auth/core': 1.3.27 '@better-auth/utils': 0.3.0 @@ -11306,7 +11370,7 @@ snapshots: optionalDependencies: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - solid-js: 1.9.9 + solid-js: 1.9.10 better-call@1.0.19: dependencies: @@ -11672,6 +11736,8 @@ snapshots: csstype@3.1.3: {} + csstype@3.2.3: {} + cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.1): dependencies: cose-base: 1.0.3 @@ -12069,11 +12135,11 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.44.7(@neondatabase/serverless@0.10.4)(@types/pg@8.15.6)(kysely@0.28.5)(postgres@3.4.7): + drizzle-orm@0.44.7(@neondatabase/serverless@1.0.2)(@types/pg@8.15.6)(kysely@0.28.8)(postgres@3.4.7): optionalDependencies: - '@neondatabase/serverless': 0.10.4 + '@neondatabase/serverless': 1.0.2 '@types/pg': 8.15.6 - kysely: 0.28.5 + kysely: 0.28.8 postgres: 3.4.7 dunder-proto@1.0.1: @@ -12566,6 +12632,8 @@ snapshots: exsolve@1.0.7: {} + exsolve@1.0.8: {} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -12817,9 +12885,9 @@ snapshots: dependencies: minimist: 1.2.8 - goober@2.1.16(csstype@3.1.3): + goober@2.1.18(csstype@3.2.3): dependencies: - csstype: 3.1.3 + csstype: 3.2.3 gopd@1.2.0: {} @@ -13370,7 +13438,7 @@ snapshots: isarray@2.0.5: {} - isbot@5.1.31: {} + isbot@5.1.32: {} isexe@2.0.0: {} @@ -13395,6 +13463,9 @@ snapshots: jiti@2.6.0: {} + jiti@2.6.1: + optional: true + jose@5.10.0: {} jose@6.1.0: {} @@ -13490,6 +13561,9 @@ snapshots: kysely@0.28.5: {} + kysely@0.28.8: + optional: true + lambda-local@2.2.0: dependencies: commander: 10.0.1 @@ -13525,36 +13599,69 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-android-arm64@1.30.2: + optional: true + lightningcss-darwin-arm64@1.30.1: optional: true + lightningcss-darwin-arm64@1.30.2: + optional: true + lightningcss-darwin-x64@1.30.1: optional: true + lightningcss-darwin-x64@1.30.2: + optional: true + lightningcss-freebsd-x64@1.30.1: optional: true + lightningcss-freebsd-x64@1.30.2: + optional: true + lightningcss-linux-arm-gnueabihf@1.30.1: optional: true + lightningcss-linux-arm-gnueabihf@1.30.2: + optional: true + lightningcss-linux-arm64-gnu@1.30.1: optional: true + lightningcss-linux-arm64-gnu@1.30.2: + optional: true + lightningcss-linux-arm64-musl@1.30.1: optional: true + lightningcss-linux-arm64-musl@1.30.2: + optional: true + lightningcss-linux-x64-gnu@1.30.1: optional: true + lightningcss-linux-x64-gnu@1.30.2: + optional: true + lightningcss-linux-x64-musl@1.30.1: optional: true + lightningcss-linux-x64-musl@1.30.2: + optional: true + lightningcss-win32-arm64-msvc@1.30.1: optional: true + lightningcss-win32-arm64-msvc@1.30.2: + optional: true + lightningcss-win32-x64-msvc@1.30.1: optional: true + lightningcss-win32-x64-msvc@1.30.2: + optional: true + lightningcss@1.30.1: dependencies: detect-libc: 2.0.4 @@ -14204,7 +14311,7 @@ snapshots: node-source-walk@7.0.1: dependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 node-stream-zip@1.15.0: {} @@ -15009,6 +15116,35 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.2 fsevents: 2.3.3 + rollup@4.53.3: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.53.3 + '@rollup/rollup-android-arm64': 4.53.3 + '@rollup/rollup-darwin-arm64': 4.53.3 + '@rollup/rollup-darwin-x64': 4.53.3 + '@rollup/rollup-freebsd-arm64': 4.53.3 + '@rollup/rollup-freebsd-x64': 4.53.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.53.3 + '@rollup/rollup-linux-arm-musleabihf': 4.53.3 + '@rollup/rollup-linux-arm64-gnu': 4.53.3 + '@rollup/rollup-linux-arm64-musl': 4.53.3 + '@rollup/rollup-linux-loong64-gnu': 4.53.3 + '@rollup/rollup-linux-ppc64-gnu': 4.53.3 + '@rollup/rollup-linux-riscv64-gnu': 4.53.3 + '@rollup/rollup-linux-riscv64-musl': 4.53.3 + '@rollup/rollup-linux-s390x-gnu': 4.53.3 + '@rollup/rollup-linux-x64-gnu': 4.53.3 + '@rollup/rollup-linux-x64-musl': 4.53.3 + '@rollup/rollup-openharmony-arm64': 4.53.3 + '@rollup/rollup-win32-arm64-msvc': 4.53.3 + '@rollup/rollup-win32-ia32-msvc': 4.53.3 + '@rollup/rollup-win32-x64-gnu': 4.53.3 + '@rollup/rollup-win32-x64-msvc': 4.53.3 + fsevents: 2.3.3 + optional: true + rou3@0.5.1: {} rou3@0.7.10: {} @@ -15211,9 +15347,9 @@ snapshots: slashes@3.0.12: {} - solid-js@1.9.9: + solid-js@1.9.10: dependencies: - csstype: 3.1.3 + csstype: 3.2.3 seroval: 1.3.2 seroval-plugins: 1.3.3(seroval@1.3.2) @@ -15250,10 +15386,6 @@ snapshots: srvx@0.8.16: {} - srvx@0.8.7: - dependencies: - cookie-es: 2.0.0 - sse.js@2.5.0: {} stack-trace@0.0.10: {} @@ -15462,7 +15594,7 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - terser@5.44.0: + terser@5.44.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 @@ -15643,6 +15775,9 @@ snapshots: uncrypto@0.1.3: {} + undici-types@6.21.0: + optional: true + undici-types@7.10.0: {} undici@7.14.0: {} @@ -15728,7 +15863,7 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 - unplugin@2.3.10: + unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 acorn: 8.15.0 @@ -15845,18 +15980,18 @@ snapshots: vite-bundle-analyzer@1.2.1: {} - vite-tsconfig-paths@5.0.1(typescript@5.9.2)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)): + vite-tsconfig-paths@5.0.1(typescript@5.9.2)(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.9.2) optionalDependencies: - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - typescript - vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1): + vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -15867,15 +16002,15 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 fsevents: 2.3.3 - jiti: 2.6.0 - lightningcss: 1.30.1 - terser: 5.44.0 + jiti: 2.6.1 + lightningcss: 1.30.2 + terser: 5.44.1 tsx: 4.21.0 - yaml: 2.8.1 + yaml: 2.8.2 - vitefu@1.1.1(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)): + vitefu@1.1.1(vite@7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): optionalDependencies: - vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vscode-jsonrpc@8.2.0: {} @@ -16027,7 +16162,7 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - xmlbuilder2@4.0.1: + xmlbuilder2@4.0.3: dependencies: '@oozcitak/dom': 2.0.2 '@oozcitak/infra': 2.0.2 @@ -16052,6 +16187,9 @@ snapshots: yaml@2.8.1: {} + yaml@2.8.2: + optional: true + yargs-parser@21.1.1: {} yargs@17.7.2: diff --git a/src/components/CountdownTimer.tsx b/src/components/CountdownTimer.tsx deleted file mode 100644 index 09cd1feb..00000000 --- a/src/components/CountdownTimer.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { Fragment, useEffect, useState } from 'react' - -interface CountdownProps { - targetDate: string // YYYY-MM-DD format -} - -interface TimeLeft { - days: number - hours: number - minutes: number - seconds: number -} - -function calculateTimeLeft(targetDate: string): TimeLeft { - const target = new Date(`${targetDate}T00:00:00-08:00`) - const now = new Date() - const difference = +target - +now - - if (difference <= 0) { - return { - days: 0, - hours: 0, - minutes: 0, - seconds: 0, - } - } - - return { - days: Math.floor(difference / (1000 * 60 * 60 * 24)), - hours: Math.floor((difference / (1000 * 60 * 60)) % 24), - minutes: Math.floor((difference / 1000 / 60) % 60), - seconds: Math.floor((difference / 1000) % 60), - } -} - -const formatNumber = (number: number) => number.toString().padStart(2, '0') - -const Countdown: React.FC = ({ targetDate }) => { - const [timeLeft, setTimeLeft] = useState( - calculateTimeLeft(targetDate), - ) - - useEffect(() => { - const timer = setInterval(() => { - const newTimeLeft = calculateTimeLeft(targetDate) - setTimeLeft(newTimeLeft) - if ( - newTimeLeft.days === 0 && - newTimeLeft.hours === 0 && - newTimeLeft.minutes === 0 && - newTimeLeft.seconds === 0 - ) { - clearInterval(timer) - } - }, 1000) - - return () => clearInterval(timer) - }, [targetDate]) - - if ( - timeLeft.days === 0 && - timeLeft.hours === 0 && - timeLeft.minutes === 0 && - timeLeft.seconds === 0 - ) { - return null - } - - return ( -
- {['days', 'hours', 'minutes', 'seconds'].map((unit, index) => ( - - {index > 0 && ( - : - )} - -
- - {formatNumber(timeLeft[unit as keyof TimeLeft]).charAt(0)} - - - {formatNumber(timeLeft[unit as keyof TimeLeft]).charAt(1)} - -

{unit}

-
-
- ))} -
- ) -} - -export default Countdown diff --git a/src/components/CountdownTimerSmall.tsx b/src/components/CountdownTimerSmall.tsx deleted file mode 100644 index 80e30987..00000000 --- a/src/components/CountdownTimerSmall.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import { Fragment, useEffect, useState } from 'react' - -interface CountdownProps { - targetDate: string // YYYY-MM-DD format -} - -interface TimeLeft { - days: number - hours: number - minutes: number -} - -function calculateTimeLeft(targetDate: string): TimeLeft { - const target = new Date(`${targetDate}T00:00:00-08:00`) - const now = new Date() - const difference = +target - +now - - if (difference <= 0) { - return { - days: 0, - hours: 0, - minutes: 0, - } - } - - return { - days: Math.floor(difference / (1000 * 60 * 60 * 24)), - hours: Math.floor((difference / (1000 * 60 * 60)) % 24), - minutes: Math.floor((difference / 1000 / 60) % 60), - } -} - -const formatNumber = (number: number) => number.toString().padStart(2, '0') - -const Countdown: React.FC = ({ targetDate }) => { - const [timeLeft, setTimeLeft] = useState( - calculateTimeLeft(targetDate), - ) - - useEffect(() => { - const timer = setInterval(() => { - const newTimeLeft = calculateTimeLeft(targetDate) - setTimeLeft(newTimeLeft) - if ( - newTimeLeft.days === 0 && - newTimeLeft.hours === 0 && - newTimeLeft.minutes === 0 - ) { - clearInterval(timer) - } - }, 1000) - - return () => clearInterval(timer) - }, [targetDate]) - - if (timeLeft.days === 0 && timeLeft.hours === 0 && timeLeft.minutes === 0) { - return null - } - - return ( -
- {['days', 'hours', 'minutes'].map((unit, index) => ( - - {index > 0 && ( - : - )} - -
- - {formatNumber(timeLeft[unit as keyof TimeLeft]).charAt(0)} - - - {formatNumber(timeLeft[unit as keyof TimeLeft]).charAt(1)} - -

{unit}

-
-
- ))} -
- ) -} - -export default Countdown diff --git a/src/components/QueryGGBannerSale.tsx b/src/components/QueryGGBannerSale.tsx deleted file mode 100644 index 3ab5d972..00000000 --- a/src/components/QueryGGBannerSale.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import headerCourse from '~/images/query-header-course.svg' -import cornerTopLeft from '~/images/query-corner-top-left.svg' -import cornerTopRight from '~/images/query-corner-top-right.svg' -import cornerFishBottomRight from '~/images/query-corner-fish-bottom-right.svg' -import CountdownTimer from '~/components/CountdownTimer' - -export function QueryGGBannerSale(props: React.HTMLProps) { - return ( - - ) -}