├── .gitignore ├── .vscode └── settings.json ├── biome.jsonc ├── next.config.ts ├── package.json ├── pnpm-lock.yaml ├── public └── .gitkeep ├── src ├── app │ ├── (root) │ │ └── page.tsx │ ├── layout.tsx │ └── type.ts ├── css │ └── globals.css └── util │ └── cn.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | // Biome 3 | "editor.defaultFormatter": "biomejs.biome", 4 | "[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, 5 | "editor.formatOnSave": true, 6 | "editor.codeActionsOnSave": { 7 | "quickfix.biome": "explicit", 8 | "source.organizeImports.biome": "explicit" 9 | }, 10 | "biome.experimental.rename": true, 11 | "prettier.enable": false, 12 | 13 | // Tailwind CSS 14 | "editor.quickSuggestions": { "strings": true }, 15 | 16 | // TypeScript 17 | "typescript.tsdk": "./node_modules/typescript/lib", 18 | 19 | // cSpell 20 | "cSpell.words": ["biomejs"] 21 | } 22 | -------------------------------------------------------------------------------- /biome.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 | "files": { 4 | "ignore": ["public", ".next", "node_modules"] 5 | }, 6 | "organizeImports": { 7 | "enabled": true 8 | }, 9 | "javascript": { 10 | "globals": ["React"] 11 | }, 12 | "linter": { 13 | "enabled": true, 14 | "rules": { 15 | "all": true, 16 | "nursery": { 17 | "all": true, 18 | "useSortedClasses": { 19 | "level": "error", 20 | "fix": "safe", 21 | "options": {} 22 | } 23 | }, 24 | "suspicious": { 25 | "all": true, 26 | "noReactSpecificProps": "off" 27 | } 28 | } 29 | }, 30 | "css": { 31 | "parser": { 32 | "cssModules": true 33 | }, 34 | "linter": { 35 | "enabled": true 36 | }, 37 | "formatter": { 38 | "enabled": true 39 | } 40 | }, 41 | "overrides": [ 42 | // https://nextjs.org/docs/app/api-reference/file-conventions のファイルでは default export が必須のため 43 | { 44 | "include": [ 45 | "default.tsx", 46 | "error.tsx", 47 | "forbidden.tsx", 48 | "instrumentation.ts", 49 | "layout.tsx", 50 | "loading.tsx", 51 | "mdx-components.tsx", 52 | "middleware.ts", 53 | "not-found.tsx", 54 | "page.tsx", 55 | "route.ts", 56 | "template.tsx", 57 | "unauthorized.tsx", 58 | "next.config.ts" 59 | ], 60 | "linter": { 61 | "rules": { 62 | "style": { 63 | "noDefaultExport": "off" 64 | } 65 | } 66 | } 67 | }, 68 | // 制約を回避するため 69 | { 70 | "include": ["next.config.ts"], 71 | "linter": { 72 | "rules": { 73 | "style": { 74 | "useNamingConvention": "off" 75 | } 76 | } 77 | } 78 | } 79 | ] 80 | } 81 | -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from "next"; 2 | 3 | export default { 4 | experimental: { 5 | ppr: true, 6 | dynamicIO: true, 7 | reactCompiler: true, 8 | authInterrupts: true, 9 | }, 10 | } satisfies NextConfig; 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "minimum-next", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev --turbo", 7 | "build": "next build", 8 | "start": "next start", 9 | "check:lint": "biome lint .", 10 | "check:format": "biome format .", 11 | "check": "biome check .", 12 | "fix": "biome check --write --unsafe ." 13 | }, 14 | "dependencies": { 15 | "clsx": "^2.1.1", 16 | "next": "15.2.0-canary.27", 17 | "react": "canary", 18 | "react-dom": "canary", 19 | "server-only": "^0.0.1", 20 | "tailwind-merge": "^2.6.0" 21 | }, 22 | "devDependencies": { 23 | "@biomejs/biome": "^1.9.4", 24 | "@tailwindcss/postcss": "^4.0.0", 25 | "@types/node": "^22.10.10", 26 | "@types/react": "^19.0.8", 27 | "@types/react-dom": "^19.0.3", 28 | "babel-plugin-react-compiler": "19.0.0-beta-decd7b8-20250118", 29 | "postcss": "^8.5.1", 30 | "tailwindcss": "^4.0.0", 31 | "typescript": "5.7.3" 32 | }, 33 | "postcss": { 34 | "plugins": ["@tailwindcss/postcss"] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | clsx: 12 | specifier: ^2.1.1 13 | version: 2.1.1 14 | next: 15 | specifier: 15.2.0-canary.27 16 | version: 15.2.0-canary.27(babel-plugin-react-compiler@19.0.0-beta-decd7b8-20250118)(react-dom@19.1.0-canary-de1eaa26-20250124(react@19.1.0-canary-de1eaa26-20250124))(react@19.1.0-canary-de1eaa26-20250124) 17 | react: 18 | specifier: canary 19 | version: 19.1.0-canary-de1eaa26-20250124 20 | react-dom: 21 | specifier: canary 22 | version: 19.1.0-canary-de1eaa26-20250124(react@19.1.0-canary-de1eaa26-20250124) 23 | server-only: 24 | specifier: ^0.0.1 25 | version: 0.0.1 26 | tailwind-merge: 27 | specifier: ^2.6.0 28 | version: 2.6.0 29 | devDependencies: 30 | '@biomejs/biome': 31 | specifier: ^1.9.4 32 | version: 1.9.4 33 | '@tailwindcss/postcss': 34 | specifier: ^4.0.0 35 | version: 4.0.0 36 | '@types/node': 37 | specifier: ^22.10.10 38 | version: 22.10.10 39 | '@types/react': 40 | specifier: ^19.0.8 41 | version: 19.0.8 42 | '@types/react-dom': 43 | specifier: ^19.0.3 44 | version: 19.0.3(@types/react@19.0.8) 45 | babel-plugin-react-compiler: 46 | specifier: 19.0.0-beta-decd7b8-20250118 47 | version: 19.0.0-beta-decd7b8-20250118 48 | postcss: 49 | specifier: ^8.5.1 50 | version: 8.5.1 51 | tailwindcss: 52 | specifier: ^4.0.0 53 | version: 4.0.0 54 | typescript: 55 | specifier: 5.7.3 56 | version: 5.7.3 57 | 58 | packages: 59 | 60 | '@alloc/quick-lru@5.2.0': 61 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 62 | engines: {node: '>=10'} 63 | 64 | '@babel/helper-string-parser@7.25.9': 65 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 66 | engines: {node: '>=6.9.0'} 67 | 68 | '@babel/helper-validator-identifier@7.25.9': 69 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 70 | engines: {node: '>=6.9.0'} 71 | 72 | '@babel/types@7.26.7': 73 | resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==} 74 | engines: {node: '>=6.9.0'} 75 | 76 | '@biomejs/biome@1.9.4': 77 | resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} 78 | engines: {node: '>=14.21.3'} 79 | hasBin: true 80 | 81 | '@biomejs/cli-darwin-arm64@1.9.4': 82 | resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} 83 | engines: {node: '>=14.21.3'} 84 | cpu: [arm64] 85 | os: [darwin] 86 | 87 | '@biomejs/cli-darwin-x64@1.9.4': 88 | resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} 89 | engines: {node: '>=14.21.3'} 90 | cpu: [x64] 91 | os: [darwin] 92 | 93 | '@biomejs/cli-linux-arm64-musl@1.9.4': 94 | resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} 95 | engines: {node: '>=14.21.3'} 96 | cpu: [arm64] 97 | os: [linux] 98 | 99 | '@biomejs/cli-linux-arm64@1.9.4': 100 | resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} 101 | engines: {node: '>=14.21.3'} 102 | cpu: [arm64] 103 | os: [linux] 104 | 105 | '@biomejs/cli-linux-x64-musl@1.9.4': 106 | resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} 107 | engines: {node: '>=14.21.3'} 108 | cpu: [x64] 109 | os: [linux] 110 | 111 | '@biomejs/cli-linux-x64@1.9.4': 112 | resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} 113 | engines: {node: '>=14.21.3'} 114 | cpu: [x64] 115 | os: [linux] 116 | 117 | '@biomejs/cli-win32-arm64@1.9.4': 118 | resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} 119 | engines: {node: '>=14.21.3'} 120 | cpu: [arm64] 121 | os: [win32] 122 | 123 | '@biomejs/cli-win32-x64@1.9.4': 124 | resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} 125 | engines: {node: '>=14.21.3'} 126 | cpu: [x64] 127 | os: [win32] 128 | 129 | '@emnapi/runtime@1.3.1': 130 | resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} 131 | 132 | '@img/sharp-darwin-arm64@0.33.5': 133 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} 134 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 135 | cpu: [arm64] 136 | os: [darwin] 137 | 138 | '@img/sharp-darwin-x64@0.33.5': 139 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} 140 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 141 | cpu: [x64] 142 | os: [darwin] 143 | 144 | '@img/sharp-libvips-darwin-arm64@1.0.4': 145 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} 146 | cpu: [arm64] 147 | os: [darwin] 148 | 149 | '@img/sharp-libvips-darwin-x64@1.0.4': 150 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} 151 | cpu: [x64] 152 | os: [darwin] 153 | 154 | '@img/sharp-libvips-linux-arm64@1.0.4': 155 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} 156 | cpu: [arm64] 157 | os: [linux] 158 | 159 | '@img/sharp-libvips-linux-arm@1.0.5': 160 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} 161 | cpu: [arm] 162 | os: [linux] 163 | 164 | '@img/sharp-libvips-linux-s390x@1.0.4': 165 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} 166 | cpu: [s390x] 167 | os: [linux] 168 | 169 | '@img/sharp-libvips-linux-x64@1.0.4': 170 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} 171 | cpu: [x64] 172 | os: [linux] 173 | 174 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 175 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} 176 | cpu: [arm64] 177 | os: [linux] 178 | 179 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 180 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} 181 | cpu: [x64] 182 | os: [linux] 183 | 184 | '@img/sharp-linux-arm64@0.33.5': 185 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} 186 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 187 | cpu: [arm64] 188 | os: [linux] 189 | 190 | '@img/sharp-linux-arm@0.33.5': 191 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} 192 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 193 | cpu: [arm] 194 | os: [linux] 195 | 196 | '@img/sharp-linux-s390x@0.33.5': 197 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} 198 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 199 | cpu: [s390x] 200 | os: [linux] 201 | 202 | '@img/sharp-linux-x64@0.33.5': 203 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} 204 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 205 | cpu: [x64] 206 | os: [linux] 207 | 208 | '@img/sharp-linuxmusl-arm64@0.33.5': 209 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} 210 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 211 | cpu: [arm64] 212 | os: [linux] 213 | 214 | '@img/sharp-linuxmusl-x64@0.33.5': 215 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} 216 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 217 | cpu: [x64] 218 | os: [linux] 219 | 220 | '@img/sharp-wasm32@0.33.5': 221 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} 222 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 223 | cpu: [wasm32] 224 | 225 | '@img/sharp-win32-ia32@0.33.5': 226 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} 227 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 228 | cpu: [ia32] 229 | os: [win32] 230 | 231 | '@img/sharp-win32-x64@0.33.5': 232 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} 233 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 234 | cpu: [x64] 235 | os: [win32] 236 | 237 | '@next/env@15.2.0-canary.27': 238 | resolution: {integrity: sha512-I8bfjoBBlgOG9wkYB4d0AYuDWKib8bUGhYn/BzYWbrHruayvn5bC+G8PorXWMs8idrAWzarYrnLqwL1WoJxm7w==} 239 | 240 | '@next/swc-darwin-arm64@15.2.0-canary.27': 241 | resolution: {integrity: sha512-8ZpHorf5EiBQ47448+lgPODfiefqvyJ0+F0PLRc06nmpcfc2SG1G+lFJzGOfqSG5CJarbK71YHHTG9Y5zyQFnw==} 242 | engines: {node: '>= 10'} 243 | cpu: [arm64] 244 | os: [darwin] 245 | 246 | '@next/swc-darwin-x64@15.2.0-canary.27': 247 | resolution: {integrity: sha512-+Ak/woDUR1u+ua4RDo1znas/ISHXLloW3BsRccDA6XRX4B496Bm/B7hMIeV3QiVzmPZVNsRC+WL7E1ySfY/Qlg==} 248 | engines: {node: '>= 10'} 249 | cpu: [x64] 250 | os: [darwin] 251 | 252 | '@next/swc-linux-arm64-gnu@15.2.0-canary.27': 253 | resolution: {integrity: sha512-pGtbxTYSI5vlxKoP5zWKewzv8yd05HZLIwQ6EFIb+C5sDpHebl2Fa0mbg8xoBOK+c0pRnbFF6nRHU8jv1J1j2A==} 254 | engines: {node: '>= 10'} 255 | cpu: [arm64] 256 | os: [linux] 257 | 258 | '@next/swc-linux-arm64-musl@15.2.0-canary.27': 259 | resolution: {integrity: sha512-DCGmmIiew91GfdIj3kXhKyfFwLbsBK/nmF+0XPrHJUn5JcMPawCG6Z5QsEz3Ja8xG3Uy947sTcHVqDlsAGX7+A==} 260 | engines: {node: '>= 10'} 261 | cpu: [arm64] 262 | os: [linux] 263 | 264 | '@next/swc-linux-x64-gnu@15.2.0-canary.27': 265 | resolution: {integrity: sha512-G3pSHIshDYEgLlgLP7eIEaBm7OBcLLoYz4/a54SRTJx1ufS0tlLg/QYtbkj+BfWcv75dYz41hC1GLDQquJhl0w==} 266 | engines: {node: '>= 10'} 267 | cpu: [x64] 268 | os: [linux] 269 | 270 | '@next/swc-linux-x64-musl@15.2.0-canary.27': 271 | resolution: {integrity: sha512-YCKIIQ7pYmPydaKEU13avKPW3VNu/ufgXIwe6RrQwJSZLGvFhPI5wvWM/3lo5gJSE4orm91hqKMfTzrZfNysew==} 272 | engines: {node: '>= 10'} 273 | cpu: [x64] 274 | os: [linux] 275 | 276 | '@next/swc-win32-arm64-msvc@15.2.0-canary.27': 277 | resolution: {integrity: sha512-sCFFOyDWPhbaRTFE55p3Lek/LIJGf+sw2idUHfxG1TUWZ6gf4nNY3hOqY/4x9ERxh8HpxtbvWX2nocSFuflz/Q==} 278 | engines: {node: '>= 10'} 279 | cpu: [arm64] 280 | os: [win32] 281 | 282 | '@next/swc-win32-x64-msvc@15.2.0-canary.27': 283 | resolution: {integrity: sha512-mjRP8o5XULbDnx5fzUCeL7doMvm//gFsQSGThCKywn+DFIGYfAvytZfiTuwogugioWs6YjYKQpTeeLMA2Tl4lg==} 284 | engines: {node: '>= 10'} 285 | cpu: [x64] 286 | os: [win32] 287 | 288 | '@swc/counter@0.1.3': 289 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 290 | 291 | '@swc/helpers@0.5.15': 292 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 293 | 294 | '@tailwindcss/node@4.0.0': 295 | resolution: {integrity: sha512-tfG2uBvo6j6kDIPmntxwXggCOZAt7SkpAXJ6pTIYirNdk5FBqh/CZZ9BZPpgcl/tNFLs6zc4yghM76sqiELG9g==} 296 | 297 | '@tailwindcss/oxide-android-arm64@4.0.0': 298 | resolution: {integrity: sha512-EAhjU0+FIdyGPR+7MbBWubLLPtmOu+p7c2egTTFBRk/n//zYjNvVK0WhcBK5Y7oUB5mo4EjA2mCbY7dcEMWSRw==} 299 | engines: {node: '>= 10'} 300 | cpu: [arm64] 301 | os: [android] 302 | 303 | '@tailwindcss/oxide-darwin-arm64@4.0.0': 304 | resolution: {integrity: sha512-hdz4xnSWS11cIp+7ye+3dGHqs0X33z+BXXTtgPOguDWVa+TdXUzwxonklSzf5wlJFuot3dv5eWzhlNai0oYYQg==} 305 | engines: {node: '>= 10'} 306 | cpu: [arm64] 307 | os: [darwin] 308 | 309 | '@tailwindcss/oxide-darwin-x64@4.0.0': 310 | resolution: {integrity: sha512-+dOUUaXTkPKKhtUI9QtVaYg+MpmLh2CN0dHohiYXaBirEyPMkjaT0zbRgzQlNnQWjCVVXPQluIEb0OMEjSTH+Q==} 311 | engines: {node: '>= 10'} 312 | cpu: [x64] 313 | os: [darwin] 314 | 315 | '@tailwindcss/oxide-freebsd-x64@4.0.0': 316 | resolution: {integrity: sha512-CJhGDhxnrmu4SwyC62fA+wP24MhA/TZlIhRHqg1kRuIHoGoVR2uSSm1qxTxU37tSSZj8Up0q6jsBJCAP4k7rgQ==} 317 | engines: {node: '>= 10'} 318 | cpu: [x64] 319 | os: [freebsd] 320 | 321 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0': 322 | resolution: {integrity: sha512-Wy7Av0xzXfY2ujZBcYy4+7GQm25/J1iHvlQU2CfwdDCuPWfIjYzR6kggz+uVdSJyKV2s64znchBxRE8kV4uXSA==} 323 | engines: {node: '>= 10'} 324 | cpu: [arm] 325 | os: [linux] 326 | 327 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.0': 328 | resolution: {integrity: sha512-srwBo2l6pvM0swBntc1ucuhGsfFOLkqPRFQ3dWARRTfSkL1U9nAsob2MKc/n47Eva/W9pZZgMOuf7rDw8pK1Ew==} 329 | engines: {node: '>= 10'} 330 | cpu: [arm64] 331 | os: [linux] 332 | 333 | '@tailwindcss/oxide-linux-arm64-musl@4.0.0': 334 | resolution: {integrity: sha512-abhusswkduYWuezkBmgo0K0/erGq3M4Se5xP0fhc/0dKs0X/rJUYYCFWntHb3IGh3aVzdQ0SXJs93P76DbUqtw==} 335 | engines: {node: '>= 10'} 336 | cpu: [arm64] 337 | os: [linux] 338 | 339 | '@tailwindcss/oxide-linux-x64-gnu@4.0.0': 340 | resolution: {integrity: sha512-hGtRYIUEx377/HlU49+jvVKKwU1MDSKYSMMs0JFO2Wp7LGxk5+0j5+RBk9NFnmp/lbp32yPTgIOO5m1BmDq36A==} 341 | engines: {node: '>= 10'} 342 | cpu: [x64] 343 | os: [linux] 344 | 345 | '@tailwindcss/oxide-linux-x64-musl@4.0.0': 346 | resolution: {integrity: sha512-7xgQgSAThs0I14VAgmxpJnK6XFSZBxHMGoDXkLyYkEnu+8WRQMbCP93dkCUn2PIv+Q+JulRgc00PJ09uORSLXQ==} 347 | engines: {node: '>= 10'} 348 | cpu: [x64] 349 | os: [linux] 350 | 351 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.0': 352 | resolution: {integrity: sha512-qEcgTIPcWY5ZE7f6VxQ/JPrSFMcehzVIlZj7sGE3mVd5YWreAT+Fl1vSP8q2pjnWXn0avZG3Iw7a2hJQAm+fTQ==} 353 | engines: {node: '>= 10'} 354 | cpu: [arm64] 355 | os: [win32] 356 | 357 | '@tailwindcss/oxide-win32-x64-msvc@4.0.0': 358 | resolution: {integrity: sha512-bqT0AY8RXb8GMDy28JtngvqaOSB2YixbLPLvUo6I6lkvvUwA6Eqh2Tj60e2Lh7O/k083f8tYiB0WEK4wmTI7Jg==} 359 | engines: {node: '>= 10'} 360 | cpu: [x64] 361 | os: [win32] 362 | 363 | '@tailwindcss/oxide@4.0.0': 364 | resolution: {integrity: sha512-W3FjpJgy4VV1JiL7iBYDf2n/WkeDg1Il+0Q7eWnqPyvkPPCo/Mbwc5BiaT7dfBNV6tQKAhVE34rU5xl8pSl50w==} 365 | engines: {node: '>= 10'} 366 | 367 | '@tailwindcss/postcss@4.0.0': 368 | resolution: {integrity: sha512-lI2bPk4TvwavHdehjr5WiC6HnZ59hacM6ySEo4RM/H7tsjWd8JpqiNW9ThH7rO/yKtrn4mGBoXshpvn8clXjPg==} 369 | 370 | '@types/node@22.10.10': 371 | resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} 372 | 373 | '@types/react-dom@19.0.3': 374 | resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} 375 | peerDependencies: 376 | '@types/react': ^19.0.0 377 | 378 | '@types/react@19.0.8': 379 | resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} 380 | 381 | babel-plugin-react-compiler@19.0.0-beta-decd7b8-20250118: 382 | resolution: {integrity: sha512-kymIdd5TmHnq1r2U2n26WI3ukadllV0o19kyrso4kByFE4KPOOXxE3uHibhwW77RPPptPx6ZqNfsZn3L/tm/Ew==} 383 | 384 | busboy@1.6.0: 385 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 386 | engines: {node: '>=10.16.0'} 387 | 388 | caniuse-lite@1.0.30001695: 389 | resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==} 390 | 391 | client-only@0.0.1: 392 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 393 | 394 | clsx@2.1.1: 395 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 396 | engines: {node: '>=6'} 397 | 398 | color-convert@2.0.1: 399 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 400 | engines: {node: '>=7.0.0'} 401 | 402 | color-name@1.1.4: 403 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 404 | 405 | color-string@1.9.1: 406 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 407 | 408 | color@4.2.3: 409 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 410 | engines: {node: '>=12.5.0'} 411 | 412 | csstype@3.1.3: 413 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 414 | 415 | detect-libc@1.0.3: 416 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} 417 | engines: {node: '>=0.10'} 418 | hasBin: true 419 | 420 | detect-libc@2.0.3: 421 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 422 | engines: {node: '>=8'} 423 | 424 | enhanced-resolve@5.18.0: 425 | resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} 426 | engines: {node: '>=10.13.0'} 427 | 428 | graceful-fs@4.2.11: 429 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 430 | 431 | is-arrayish@0.3.2: 432 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 433 | 434 | jiti@2.4.2: 435 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 436 | hasBin: true 437 | 438 | lightningcss-darwin-arm64@1.29.1: 439 | resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} 440 | engines: {node: '>= 12.0.0'} 441 | cpu: [arm64] 442 | os: [darwin] 443 | 444 | lightningcss-darwin-x64@1.29.1: 445 | resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} 446 | engines: {node: '>= 12.0.0'} 447 | cpu: [x64] 448 | os: [darwin] 449 | 450 | lightningcss-freebsd-x64@1.29.1: 451 | resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} 452 | engines: {node: '>= 12.0.0'} 453 | cpu: [x64] 454 | os: [freebsd] 455 | 456 | lightningcss-linux-arm-gnueabihf@1.29.1: 457 | resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} 458 | engines: {node: '>= 12.0.0'} 459 | cpu: [arm] 460 | os: [linux] 461 | 462 | lightningcss-linux-arm64-gnu@1.29.1: 463 | resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} 464 | engines: {node: '>= 12.0.0'} 465 | cpu: [arm64] 466 | os: [linux] 467 | 468 | lightningcss-linux-arm64-musl@1.29.1: 469 | resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} 470 | engines: {node: '>= 12.0.0'} 471 | cpu: [arm64] 472 | os: [linux] 473 | 474 | lightningcss-linux-x64-gnu@1.29.1: 475 | resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} 476 | engines: {node: '>= 12.0.0'} 477 | cpu: [x64] 478 | os: [linux] 479 | 480 | lightningcss-linux-x64-musl@1.29.1: 481 | resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} 482 | engines: {node: '>= 12.0.0'} 483 | cpu: [x64] 484 | os: [linux] 485 | 486 | lightningcss-win32-arm64-msvc@1.29.1: 487 | resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} 488 | engines: {node: '>= 12.0.0'} 489 | cpu: [arm64] 490 | os: [win32] 491 | 492 | lightningcss-win32-x64-msvc@1.29.1: 493 | resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} 494 | engines: {node: '>= 12.0.0'} 495 | cpu: [x64] 496 | os: [win32] 497 | 498 | lightningcss@1.29.1: 499 | resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} 500 | engines: {node: '>= 12.0.0'} 501 | 502 | nanoid@3.3.8: 503 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 504 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 505 | hasBin: true 506 | 507 | next@15.2.0-canary.27: 508 | resolution: {integrity: sha512-W8sc+VR29oXyeUtTzrQtg4RtEJZeG4SBhJJMDmK16XQ521stG+Ydk4B6gRDWqWzccTdVGBIsx4ozNNF44tDdnw==} 509 | engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} 510 | hasBin: true 511 | peerDependencies: 512 | '@opentelemetry/api': ^1.1.0 513 | '@playwright/test': ^1.41.2 514 | babel-plugin-react-compiler: '*' 515 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 516 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 517 | sass: ^1.3.0 518 | peerDependenciesMeta: 519 | '@opentelemetry/api': 520 | optional: true 521 | '@playwright/test': 522 | optional: true 523 | babel-plugin-react-compiler: 524 | optional: true 525 | sass: 526 | optional: true 527 | 528 | picocolors@1.1.1: 529 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 530 | 531 | postcss@8.4.31: 532 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 533 | engines: {node: ^10 || ^12 || >=14} 534 | 535 | postcss@8.5.1: 536 | resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} 537 | engines: {node: ^10 || ^12 || >=14} 538 | 539 | react-dom@19.1.0-canary-de1eaa26-20250124: 540 | resolution: {integrity: sha512-64i/p179IBwJUWSopxan6cHKP1duZjB6tJfxCg7YK7bio2rNbVs85rU5T6caqoLXPH2WW+nZ0GG9+UTvOT4kAw==} 541 | peerDependencies: 542 | react: 19.1.0-canary-de1eaa26-20250124 543 | 544 | react@19.1.0-canary-de1eaa26-20250124: 545 | resolution: {integrity: sha512-w8OT67nNhi0bBuZfQEZM4bTqfgn+kSGR8+W59y1O0fQAiSaczsRE9Q/Ay3S5eACnY1EIC+u+S1Ma7yaWjIlL+A==} 546 | engines: {node: '>=0.10.0'} 547 | 548 | scheduler@0.26.0-canary-de1eaa26-20250124: 549 | resolution: {integrity: sha512-R8Box8zrvPTPATP80ODRO+yRC2XQf+rGf6DYvmndrtgDSfDCeWYXqqtjKHG08DrS2lGkLCSLPAhI4wda3iNBGQ==} 550 | 551 | semver@7.6.3: 552 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 553 | engines: {node: '>=10'} 554 | hasBin: true 555 | 556 | server-only@0.0.1: 557 | resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} 558 | 559 | sharp@0.33.5: 560 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} 561 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 562 | 563 | simple-swizzle@0.2.2: 564 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 565 | 566 | source-map-js@1.2.1: 567 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 568 | engines: {node: '>=0.10.0'} 569 | 570 | streamsearch@1.1.0: 571 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 572 | engines: {node: '>=10.0.0'} 573 | 574 | styled-jsx@5.1.6: 575 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 576 | engines: {node: '>= 12.0.0'} 577 | peerDependencies: 578 | '@babel/core': '*' 579 | babel-plugin-macros: '*' 580 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 581 | peerDependenciesMeta: 582 | '@babel/core': 583 | optional: true 584 | babel-plugin-macros: 585 | optional: true 586 | 587 | tailwind-merge@2.6.0: 588 | resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} 589 | 590 | tailwindcss@4.0.0: 591 | resolution: {integrity: sha512-ULRPI3A+e39T7pSaf1xoi58AqqJxVCLg8F/uM5A3FadUbnyDTgltVnXJvdkTjwCOGA6NazqHVcwPJC5h2vRYVQ==} 592 | 593 | tapable@2.2.1: 594 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 595 | engines: {node: '>=6'} 596 | 597 | tslib@2.8.1: 598 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 599 | 600 | typescript@5.7.3: 601 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 602 | engines: {node: '>=14.17'} 603 | hasBin: true 604 | 605 | undici-types@6.20.0: 606 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 607 | 608 | snapshots: 609 | 610 | '@alloc/quick-lru@5.2.0': {} 611 | 612 | '@babel/helper-string-parser@7.25.9': {} 613 | 614 | '@babel/helper-validator-identifier@7.25.9': {} 615 | 616 | '@babel/types@7.26.7': 617 | dependencies: 618 | '@babel/helper-string-parser': 7.25.9 619 | '@babel/helper-validator-identifier': 7.25.9 620 | 621 | '@biomejs/biome@1.9.4': 622 | optionalDependencies: 623 | '@biomejs/cli-darwin-arm64': 1.9.4 624 | '@biomejs/cli-darwin-x64': 1.9.4 625 | '@biomejs/cli-linux-arm64': 1.9.4 626 | '@biomejs/cli-linux-arm64-musl': 1.9.4 627 | '@biomejs/cli-linux-x64': 1.9.4 628 | '@biomejs/cli-linux-x64-musl': 1.9.4 629 | '@biomejs/cli-win32-arm64': 1.9.4 630 | '@biomejs/cli-win32-x64': 1.9.4 631 | 632 | '@biomejs/cli-darwin-arm64@1.9.4': 633 | optional: true 634 | 635 | '@biomejs/cli-darwin-x64@1.9.4': 636 | optional: true 637 | 638 | '@biomejs/cli-linux-arm64-musl@1.9.4': 639 | optional: true 640 | 641 | '@biomejs/cli-linux-arm64@1.9.4': 642 | optional: true 643 | 644 | '@biomejs/cli-linux-x64-musl@1.9.4': 645 | optional: true 646 | 647 | '@biomejs/cli-linux-x64@1.9.4': 648 | optional: true 649 | 650 | '@biomejs/cli-win32-arm64@1.9.4': 651 | optional: true 652 | 653 | '@biomejs/cli-win32-x64@1.9.4': 654 | optional: true 655 | 656 | '@emnapi/runtime@1.3.1': 657 | dependencies: 658 | tslib: 2.8.1 659 | optional: true 660 | 661 | '@img/sharp-darwin-arm64@0.33.5': 662 | optionalDependencies: 663 | '@img/sharp-libvips-darwin-arm64': 1.0.4 664 | optional: true 665 | 666 | '@img/sharp-darwin-x64@0.33.5': 667 | optionalDependencies: 668 | '@img/sharp-libvips-darwin-x64': 1.0.4 669 | optional: true 670 | 671 | '@img/sharp-libvips-darwin-arm64@1.0.4': 672 | optional: true 673 | 674 | '@img/sharp-libvips-darwin-x64@1.0.4': 675 | optional: true 676 | 677 | '@img/sharp-libvips-linux-arm64@1.0.4': 678 | optional: true 679 | 680 | '@img/sharp-libvips-linux-arm@1.0.5': 681 | optional: true 682 | 683 | '@img/sharp-libvips-linux-s390x@1.0.4': 684 | optional: true 685 | 686 | '@img/sharp-libvips-linux-x64@1.0.4': 687 | optional: true 688 | 689 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 690 | optional: true 691 | 692 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 693 | optional: true 694 | 695 | '@img/sharp-linux-arm64@0.33.5': 696 | optionalDependencies: 697 | '@img/sharp-libvips-linux-arm64': 1.0.4 698 | optional: true 699 | 700 | '@img/sharp-linux-arm@0.33.5': 701 | optionalDependencies: 702 | '@img/sharp-libvips-linux-arm': 1.0.5 703 | optional: true 704 | 705 | '@img/sharp-linux-s390x@0.33.5': 706 | optionalDependencies: 707 | '@img/sharp-libvips-linux-s390x': 1.0.4 708 | optional: true 709 | 710 | '@img/sharp-linux-x64@0.33.5': 711 | optionalDependencies: 712 | '@img/sharp-libvips-linux-x64': 1.0.4 713 | optional: true 714 | 715 | '@img/sharp-linuxmusl-arm64@0.33.5': 716 | optionalDependencies: 717 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 718 | optional: true 719 | 720 | '@img/sharp-linuxmusl-x64@0.33.5': 721 | optionalDependencies: 722 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 723 | optional: true 724 | 725 | '@img/sharp-wasm32@0.33.5': 726 | dependencies: 727 | '@emnapi/runtime': 1.3.1 728 | optional: true 729 | 730 | '@img/sharp-win32-ia32@0.33.5': 731 | optional: true 732 | 733 | '@img/sharp-win32-x64@0.33.5': 734 | optional: true 735 | 736 | '@next/env@15.2.0-canary.27': {} 737 | 738 | '@next/swc-darwin-arm64@15.2.0-canary.27': 739 | optional: true 740 | 741 | '@next/swc-darwin-x64@15.2.0-canary.27': 742 | optional: true 743 | 744 | '@next/swc-linux-arm64-gnu@15.2.0-canary.27': 745 | optional: true 746 | 747 | '@next/swc-linux-arm64-musl@15.2.0-canary.27': 748 | optional: true 749 | 750 | '@next/swc-linux-x64-gnu@15.2.0-canary.27': 751 | optional: true 752 | 753 | '@next/swc-linux-x64-musl@15.2.0-canary.27': 754 | optional: true 755 | 756 | '@next/swc-win32-arm64-msvc@15.2.0-canary.27': 757 | optional: true 758 | 759 | '@next/swc-win32-x64-msvc@15.2.0-canary.27': 760 | optional: true 761 | 762 | '@swc/counter@0.1.3': {} 763 | 764 | '@swc/helpers@0.5.15': 765 | dependencies: 766 | tslib: 2.8.1 767 | 768 | '@tailwindcss/node@4.0.0': 769 | dependencies: 770 | enhanced-resolve: 5.18.0 771 | jiti: 2.4.2 772 | tailwindcss: 4.0.0 773 | 774 | '@tailwindcss/oxide-android-arm64@4.0.0': 775 | optional: true 776 | 777 | '@tailwindcss/oxide-darwin-arm64@4.0.0': 778 | optional: true 779 | 780 | '@tailwindcss/oxide-darwin-x64@4.0.0': 781 | optional: true 782 | 783 | '@tailwindcss/oxide-freebsd-x64@4.0.0': 784 | optional: true 785 | 786 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0': 787 | optional: true 788 | 789 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.0': 790 | optional: true 791 | 792 | '@tailwindcss/oxide-linux-arm64-musl@4.0.0': 793 | optional: true 794 | 795 | '@tailwindcss/oxide-linux-x64-gnu@4.0.0': 796 | optional: true 797 | 798 | '@tailwindcss/oxide-linux-x64-musl@4.0.0': 799 | optional: true 800 | 801 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.0': 802 | optional: true 803 | 804 | '@tailwindcss/oxide-win32-x64-msvc@4.0.0': 805 | optional: true 806 | 807 | '@tailwindcss/oxide@4.0.0': 808 | optionalDependencies: 809 | '@tailwindcss/oxide-android-arm64': 4.0.0 810 | '@tailwindcss/oxide-darwin-arm64': 4.0.0 811 | '@tailwindcss/oxide-darwin-x64': 4.0.0 812 | '@tailwindcss/oxide-freebsd-x64': 4.0.0 813 | '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.0 814 | '@tailwindcss/oxide-linux-arm64-gnu': 4.0.0 815 | '@tailwindcss/oxide-linux-arm64-musl': 4.0.0 816 | '@tailwindcss/oxide-linux-x64-gnu': 4.0.0 817 | '@tailwindcss/oxide-linux-x64-musl': 4.0.0 818 | '@tailwindcss/oxide-win32-arm64-msvc': 4.0.0 819 | '@tailwindcss/oxide-win32-x64-msvc': 4.0.0 820 | 821 | '@tailwindcss/postcss@4.0.0': 822 | dependencies: 823 | '@alloc/quick-lru': 5.2.0 824 | '@tailwindcss/node': 4.0.0 825 | '@tailwindcss/oxide': 4.0.0 826 | lightningcss: 1.29.1 827 | postcss: 8.5.1 828 | tailwindcss: 4.0.0 829 | 830 | '@types/node@22.10.10': 831 | dependencies: 832 | undici-types: 6.20.0 833 | 834 | '@types/react-dom@19.0.3(@types/react@19.0.8)': 835 | dependencies: 836 | '@types/react': 19.0.8 837 | 838 | '@types/react@19.0.8': 839 | dependencies: 840 | csstype: 3.1.3 841 | 842 | babel-plugin-react-compiler@19.0.0-beta-decd7b8-20250118: 843 | dependencies: 844 | '@babel/types': 7.26.7 845 | 846 | busboy@1.6.0: 847 | dependencies: 848 | streamsearch: 1.1.0 849 | 850 | caniuse-lite@1.0.30001695: {} 851 | 852 | client-only@0.0.1: {} 853 | 854 | clsx@2.1.1: {} 855 | 856 | color-convert@2.0.1: 857 | dependencies: 858 | color-name: 1.1.4 859 | optional: true 860 | 861 | color-name@1.1.4: 862 | optional: true 863 | 864 | color-string@1.9.1: 865 | dependencies: 866 | color-name: 1.1.4 867 | simple-swizzle: 0.2.2 868 | optional: true 869 | 870 | color@4.2.3: 871 | dependencies: 872 | color-convert: 2.0.1 873 | color-string: 1.9.1 874 | optional: true 875 | 876 | csstype@3.1.3: {} 877 | 878 | detect-libc@1.0.3: {} 879 | 880 | detect-libc@2.0.3: 881 | optional: true 882 | 883 | enhanced-resolve@5.18.0: 884 | dependencies: 885 | graceful-fs: 4.2.11 886 | tapable: 2.2.1 887 | 888 | graceful-fs@4.2.11: {} 889 | 890 | is-arrayish@0.3.2: 891 | optional: true 892 | 893 | jiti@2.4.2: {} 894 | 895 | lightningcss-darwin-arm64@1.29.1: 896 | optional: true 897 | 898 | lightningcss-darwin-x64@1.29.1: 899 | optional: true 900 | 901 | lightningcss-freebsd-x64@1.29.1: 902 | optional: true 903 | 904 | lightningcss-linux-arm-gnueabihf@1.29.1: 905 | optional: true 906 | 907 | lightningcss-linux-arm64-gnu@1.29.1: 908 | optional: true 909 | 910 | lightningcss-linux-arm64-musl@1.29.1: 911 | optional: true 912 | 913 | lightningcss-linux-x64-gnu@1.29.1: 914 | optional: true 915 | 916 | lightningcss-linux-x64-musl@1.29.1: 917 | optional: true 918 | 919 | lightningcss-win32-arm64-msvc@1.29.1: 920 | optional: true 921 | 922 | lightningcss-win32-x64-msvc@1.29.1: 923 | optional: true 924 | 925 | lightningcss@1.29.1: 926 | dependencies: 927 | detect-libc: 1.0.3 928 | optionalDependencies: 929 | lightningcss-darwin-arm64: 1.29.1 930 | lightningcss-darwin-x64: 1.29.1 931 | lightningcss-freebsd-x64: 1.29.1 932 | lightningcss-linux-arm-gnueabihf: 1.29.1 933 | lightningcss-linux-arm64-gnu: 1.29.1 934 | lightningcss-linux-arm64-musl: 1.29.1 935 | lightningcss-linux-x64-gnu: 1.29.1 936 | lightningcss-linux-x64-musl: 1.29.1 937 | lightningcss-win32-arm64-msvc: 1.29.1 938 | lightningcss-win32-x64-msvc: 1.29.1 939 | 940 | nanoid@3.3.8: {} 941 | 942 | next@15.2.0-canary.27(babel-plugin-react-compiler@19.0.0-beta-decd7b8-20250118)(react-dom@19.1.0-canary-de1eaa26-20250124(react@19.1.0-canary-de1eaa26-20250124))(react@19.1.0-canary-de1eaa26-20250124): 943 | dependencies: 944 | '@next/env': 15.2.0-canary.27 945 | '@swc/counter': 0.1.3 946 | '@swc/helpers': 0.5.15 947 | busboy: 1.6.0 948 | caniuse-lite: 1.0.30001695 949 | postcss: 8.4.31 950 | react: 19.1.0-canary-de1eaa26-20250124 951 | react-dom: 19.1.0-canary-de1eaa26-20250124(react@19.1.0-canary-de1eaa26-20250124) 952 | styled-jsx: 5.1.6(react@19.1.0-canary-de1eaa26-20250124) 953 | optionalDependencies: 954 | '@next/swc-darwin-arm64': 15.2.0-canary.27 955 | '@next/swc-darwin-x64': 15.2.0-canary.27 956 | '@next/swc-linux-arm64-gnu': 15.2.0-canary.27 957 | '@next/swc-linux-arm64-musl': 15.2.0-canary.27 958 | '@next/swc-linux-x64-gnu': 15.2.0-canary.27 959 | '@next/swc-linux-x64-musl': 15.2.0-canary.27 960 | '@next/swc-win32-arm64-msvc': 15.2.0-canary.27 961 | '@next/swc-win32-x64-msvc': 15.2.0-canary.27 962 | babel-plugin-react-compiler: 19.0.0-beta-decd7b8-20250118 963 | sharp: 0.33.5 964 | transitivePeerDependencies: 965 | - '@babel/core' 966 | - babel-plugin-macros 967 | 968 | picocolors@1.1.1: {} 969 | 970 | postcss@8.4.31: 971 | dependencies: 972 | nanoid: 3.3.8 973 | picocolors: 1.1.1 974 | source-map-js: 1.2.1 975 | 976 | postcss@8.5.1: 977 | dependencies: 978 | nanoid: 3.3.8 979 | picocolors: 1.1.1 980 | source-map-js: 1.2.1 981 | 982 | react-dom@19.1.0-canary-de1eaa26-20250124(react@19.1.0-canary-de1eaa26-20250124): 983 | dependencies: 984 | react: 19.1.0-canary-de1eaa26-20250124 985 | scheduler: 0.26.0-canary-de1eaa26-20250124 986 | 987 | react@19.1.0-canary-de1eaa26-20250124: {} 988 | 989 | scheduler@0.26.0-canary-de1eaa26-20250124: {} 990 | 991 | semver@7.6.3: 992 | optional: true 993 | 994 | server-only@0.0.1: {} 995 | 996 | sharp@0.33.5: 997 | dependencies: 998 | color: 4.2.3 999 | detect-libc: 2.0.3 1000 | semver: 7.6.3 1001 | optionalDependencies: 1002 | '@img/sharp-darwin-arm64': 0.33.5 1003 | '@img/sharp-darwin-x64': 0.33.5 1004 | '@img/sharp-libvips-darwin-arm64': 1.0.4 1005 | '@img/sharp-libvips-darwin-x64': 1.0.4 1006 | '@img/sharp-libvips-linux-arm': 1.0.5 1007 | '@img/sharp-libvips-linux-arm64': 1.0.4 1008 | '@img/sharp-libvips-linux-s390x': 1.0.4 1009 | '@img/sharp-libvips-linux-x64': 1.0.4 1010 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 1011 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 1012 | '@img/sharp-linux-arm': 0.33.5 1013 | '@img/sharp-linux-arm64': 0.33.5 1014 | '@img/sharp-linux-s390x': 0.33.5 1015 | '@img/sharp-linux-x64': 0.33.5 1016 | '@img/sharp-linuxmusl-arm64': 0.33.5 1017 | '@img/sharp-linuxmusl-x64': 0.33.5 1018 | '@img/sharp-wasm32': 0.33.5 1019 | '@img/sharp-win32-ia32': 0.33.5 1020 | '@img/sharp-win32-x64': 0.33.5 1021 | optional: true 1022 | 1023 | simple-swizzle@0.2.2: 1024 | dependencies: 1025 | is-arrayish: 0.3.2 1026 | optional: true 1027 | 1028 | source-map-js@1.2.1: {} 1029 | 1030 | streamsearch@1.1.0: {} 1031 | 1032 | styled-jsx@5.1.6(react@19.1.0-canary-de1eaa26-20250124): 1033 | dependencies: 1034 | client-only: 0.0.1 1035 | react: 19.1.0-canary-de1eaa26-20250124 1036 | 1037 | tailwind-merge@2.6.0: {} 1038 | 1039 | tailwindcss@4.0.0: {} 1040 | 1041 | tapable@2.2.1: {} 1042 | 1043 | tslib@2.8.1: {} 1044 | 1045 | typescript@5.7.3: {} 1046 | 1047 | undici-types@6.20.0: {} 1048 | -------------------------------------------------------------------------------- /public/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightsound/minimum-next/541ba413a0a2323feaa3608d44b38b11dd884ccb/public/.gitkeep -------------------------------------------------------------------------------- /src/app/(root)/page.tsx: -------------------------------------------------------------------------------- 1 | export default function Page(): React.ReactNode { 2 | return ( 3 |
4 |
5 | hello 6 |
7 |
8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { NextLayoutProps } from "~/app/type"; 2 | import "~/css/globals.css"; 3 | 4 | export default function RootLayout({ 5 | children, 6 | }: NextLayoutProps): React.ReactNode { 7 | return ( 8 | 9 | {children} 10 | 11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /src/app/type.ts: -------------------------------------------------------------------------------- 1 | type NonEmptyObject = Record & {}; 2 | 3 | type ExpandKeys = T extends never 4 | ? object 5 | : { [K in T]: React.ReactNode }; 6 | 7 | export type NextLayoutProps< 8 | Params = undefined, 9 | Keys extends string | undefined = undefined, 10 | > = { 11 | children: React.ReactNode; 12 | params: Params extends NonEmptyObject ? Promise : never; 13 | } & (Keys extends string ? ExpandKeys : object); 14 | 15 | export interface NextPageProps< 16 | Params extends NonEmptyObject | undefined, 17 | SearchParams extends NonEmptyObject | undefined = undefined, 18 | > { 19 | params: Params extends NonEmptyObject ? Promise : never; 20 | searchParams: SearchParams extends NonEmptyObject 21 | ? Promise 22 | : never; 23 | } 24 | -------------------------------------------------------------------------------- /src/css/globals.css: -------------------------------------------------------------------------------- 1 | @import "tailwindcss"; 2 | -------------------------------------------------------------------------------- /src/util/cn.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from "clsx"; 2 | import { twMerge } from "tailwind-merge"; 3 | 4 | export const cn = (...inputs: ClassValue[]): string => twMerge(clsx(inputs)); 5 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "incremental": true, 4 | "target": "ES2017", 5 | "jsx": "preserve", 6 | "lib": ["dom", "dom.iterable", "esnext"], 7 | "module": "esnext", 8 | "moduleResolution": "bundler", 9 | "paths": { "~/*": ["./src/*"] }, 10 | "resolveJsonModule": true, 11 | "allowJs": true, 12 | "strict": true, 13 | "noEmit": true, 14 | "esModuleInterop": true, 15 | "isolatedModules": true, 16 | "skipLibCheck": true, 17 | "plugins": [{ "name": "next" }] 18 | }, 19 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 20 | "exclude": ["node_modules"] 21 | } 22 | --------------------------------------------------------------------------------