diff --git a/web/package.json b/web/package.json index 5a9c877..f777c12 100644 --- a/web/package.json +++ b/web/package.json @@ -13,6 +13,7 @@ "@astrojs/react": "^4.3.0", "@radix-ui/react-slot": "^1.2.3", "@tailwindcss/vite": "^4.1.3", + "@tanstack/virtual-core": "^3.13.12", "@types/canvas-confetti": "^1.9.0", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", @@ -20,7 +21,9 @@ "canvas-confetti": "^1.9.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "date-fns": "^4.1.0", "lucide-react": "^0.525.0", + "papaparse": "^5.5.3", "react": "^19.1.0", "react-dom": "^19.1.0", "tailwind-merge": "^3.3.1", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index fd51286..52f7478 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -17,6 +17,9 @@ dependencies: '@tailwindcss/vite': specifier: ^4.1.3 version: 4.1.11(vite@7.0.4) + '@tanstack/virtual-core': + specifier: ^3.13.12 + version: 3.13.12 '@types/canvas-confetti': specifier: ^1.9.0 version: 1.9.0 @@ -38,9 +41,15 @@ dependencies: clsx: specifier: ^2.1.1 version: 2.1.1 + date-fns: + specifier: ^4.1.0 + version: 4.1.0 lucide-react: specifier: ^0.525.0 version: 0.525.0(react@19.1.0) + papaparse: + specifier: ^5.5.3 + version: 5.5.3 react: specifier: ^19.1.0 version: 19.1.0 @@ -1242,7 +1251,7 @@ packages: /@tailwindcss/oxide@4.1.11: resolution: {integrity: sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==} - engines: {node: '>= 10'} + engines: {node: '>=14.0.0'} dependencies: detect-libc: 2.0.4 tar: 7.4.3 @@ -1260,6 +1269,13 @@ packages: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.11 '@tailwindcss/oxide-win32-x64-msvc': 4.1.11 dev: false + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib /@tailwindcss/vite@4.1.11(vite@7.0.4): resolution: {integrity: sha512-RHYhrR3hku0MJFRV+fN2gNbDNEh3dwKvY8XJvTxCSXeMOsCRSr+uKvDWQcbizrHgjML6ZmTE5OwMrl5wKcujCw==} @@ -1272,6 +1288,10 @@ packages: vite: 7.0.4 dev: false + /@tanstack/virtual-core@3.13.12: + resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} + dev: false + /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: @@ -1786,6 +1806,10 @@ packages: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dev: false + /date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + dev: false + /debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} @@ -1820,6 +1844,7 @@ packages: /detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} + requiresBuild: true dev: false /deterministic-object-hash@2.0.2: @@ -2464,6 +2489,8 @@ packages: lightningcss-win32-arm64-msvc: 1.30.1 lightningcss-win32-x64-msvc: 1.30.1 dev: false + bundledDependencies: + - napi-wasm /longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -3176,6 +3203,10 @@ packages: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} dev: false + /papaparse@5.5.3: + resolution: {integrity: sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==} + dev: false + /parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} dependencies: