├── .gitignore ├── README.md ├── eslint.config.js ├── index.html ├── package-lock.json ├── package.json ├── public └── themes.png ├── src ├── App.jsx ├── assets │ └── react.svg ├── index.css └── main.jsx └── vite.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🌗 React Login Page with Theme Toggle 2 | 3 | This is a simple and responsive **login page built with React**, featuring a **dark/light theme toggle** that persists using `localStorage`. switch between light and dark modes with a single click. 4 | 5 | --- 6 | 7 | ## ✨ Features 8 | 9 | - 🌓 **Dark/Light Theme Toggle** 10 | Users can switch themes, and their preference is saved using `use-local-storage`. 11 | 12 | - 💾 **Persistent Theme** 13 | The selected theme remains even after refreshing or reopening the browser. 14 | 15 | 16 | 17 | --- 18 | 19 | ## 🛠️ Tech Stack 20 | 21 | - **React** – Frontend framework 22 | - **use-local-storage** – For persisting theme selection 23 | - **CSS** – Custom styling (`index.css`) 24 | - **Font Awesome** – Social icons and toggle icon 25 | 26 | --- 27 | 28 | ## 🚀 How to Run the Project 29 | 30 | 1. **Clone the repository** 31 | ```bash 32 | git clone https://github.com/yourusername/react-theme-login.git 33 | cd react-theme-login 34 | npm install 35 | npm run dev 36 | 37 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import js from '@eslint/js' 2 | import globals from 'globals' 3 | import reactHooks from 'eslint-plugin-react-hooks' 4 | import reactRefresh from 'eslint-plugin-react-refresh' 5 | 6 | export default [ 7 | { ignores: ['dist'] }, 8 | { 9 | files: ['**/*.{js,jsx}'], 10 | languageOptions: { 11 | ecmaVersion: 2020, 12 | globals: globals.browser, 13 | parserOptions: { 14 | ecmaVersion: 'latest', 15 | ecmaFeatures: { jsx: true }, 16 | sourceType: 'module', 17 | }, 18 | }, 19 | plugins: { 20 | 'react-hooks': reactHooks, 21 | 'react-refresh': reactRefresh, 22 | }, 23 | rules: { 24 | ...js.configs.recommended.rules, 25 | ...reactHooks.configs.recommended.rules, 26 | 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], 27 | 'react-refresh/only-export-components': [ 28 | 'warn', 29 | { allowConstantExport: true }, 30 | ], 31 | }, 32 | }, 33 | ] 34 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | theme-toggle 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "theme-toggle", 3 | "version": "0.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "theme-toggle", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "react": "^19.0.0", 12 | "react-dom": "^19.0.0", 13 | "use-local-storage": "^3.0.0" 14 | }, 15 | "devDependencies": { 16 | "@eslint/js": "^9.21.0", 17 | "@types/react": "^19.0.10", 18 | "@types/react-dom": "^19.0.4", 19 | "@vitejs/plugin-react": "^4.3.4", 20 | "eslint": "^9.21.0", 21 | "eslint-plugin-react-hooks": "^5.1.0", 22 | "eslint-plugin-react-refresh": "^0.4.19", 23 | "globals": "^15.15.0", 24 | "vite": "^6.2.0" 25 | } 26 | }, 27 | "node_modules/@ampproject/remapping": { 28 | "version": "2.3.0", 29 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 30 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 31 | "dev": true, 32 | "license": "Apache-2.0", 33 | "dependencies": { 34 | "@jridgewell/gen-mapping": "^0.3.5", 35 | "@jridgewell/trace-mapping": "^0.3.24" 36 | }, 37 | "engines": { 38 | "node": ">=6.0.0" 39 | } 40 | }, 41 | "node_modules/@babel/code-frame": { 42 | "version": "7.26.2", 43 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", 44 | "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", 45 | "dev": true, 46 | "license": "MIT", 47 | "dependencies": { 48 | "@babel/helper-validator-identifier": "^7.25.9", 49 | "js-tokens": "^4.0.0", 50 | "picocolors": "^1.0.0" 51 | }, 52 | "engines": { 53 | "node": ">=6.9.0" 54 | } 55 | }, 56 | "node_modules/@babel/compat-data": { 57 | "version": "7.26.8", 58 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", 59 | "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", 60 | "dev": true, 61 | "license": "MIT", 62 | "engines": { 63 | "node": ">=6.9.0" 64 | } 65 | }, 66 | "node_modules/@babel/core": { 67 | "version": "7.26.10", 68 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", 69 | "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", 70 | "dev": true, 71 | "license": "MIT", 72 | "dependencies": { 73 | "@ampproject/remapping": "^2.2.0", 74 | "@babel/code-frame": "^7.26.2", 75 | "@babel/generator": "^7.26.10", 76 | "@babel/helper-compilation-targets": "^7.26.5", 77 | "@babel/helper-module-transforms": "^7.26.0", 78 | "@babel/helpers": "^7.26.10", 79 | "@babel/parser": "^7.26.10", 80 | "@babel/template": "^7.26.9", 81 | "@babel/traverse": "^7.26.10", 82 | "@babel/types": "^7.26.10", 83 | "convert-source-map": "^2.0.0", 84 | "debug": "^4.1.0", 85 | "gensync": "^1.0.0-beta.2", 86 | "json5": "^2.2.3", 87 | "semver": "^6.3.1" 88 | }, 89 | "engines": { 90 | "node": ">=6.9.0" 91 | }, 92 | "funding": { 93 | "type": "opencollective", 94 | "url": "https://opencollective.com/babel" 95 | } 96 | }, 97 | "node_modules/@babel/generator": { 98 | "version": "7.27.0", 99 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", 100 | "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", 101 | "dev": true, 102 | "license": "MIT", 103 | "dependencies": { 104 | "@babel/parser": "^7.27.0", 105 | "@babel/types": "^7.27.0", 106 | "@jridgewell/gen-mapping": "^0.3.5", 107 | "@jridgewell/trace-mapping": "^0.3.25", 108 | "jsesc": "^3.0.2" 109 | }, 110 | "engines": { 111 | "node": ">=6.9.0" 112 | } 113 | }, 114 | "node_modules/@babel/helper-compilation-targets": { 115 | "version": "7.27.0", 116 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", 117 | "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", 118 | "dev": true, 119 | "license": "MIT", 120 | "dependencies": { 121 | "@babel/compat-data": "^7.26.8", 122 | "@babel/helper-validator-option": "^7.25.9", 123 | "browserslist": "^4.24.0", 124 | "lru-cache": "^5.1.1", 125 | "semver": "^6.3.1" 126 | }, 127 | "engines": { 128 | "node": ">=6.9.0" 129 | } 130 | }, 131 | "node_modules/@babel/helper-module-imports": { 132 | "version": "7.25.9", 133 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", 134 | "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", 135 | "dev": true, 136 | "license": "MIT", 137 | "dependencies": { 138 | "@babel/traverse": "^7.25.9", 139 | "@babel/types": "^7.25.9" 140 | }, 141 | "engines": { 142 | "node": ">=6.9.0" 143 | } 144 | }, 145 | "node_modules/@babel/helper-module-transforms": { 146 | "version": "7.26.0", 147 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", 148 | "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", 149 | "dev": true, 150 | "license": "MIT", 151 | "dependencies": { 152 | "@babel/helper-module-imports": "^7.25.9", 153 | "@babel/helper-validator-identifier": "^7.25.9", 154 | "@babel/traverse": "^7.25.9" 155 | }, 156 | "engines": { 157 | "node": ">=6.9.0" 158 | }, 159 | "peerDependencies": { 160 | "@babel/core": "^7.0.0" 161 | } 162 | }, 163 | "node_modules/@babel/helper-plugin-utils": { 164 | "version": "7.26.5", 165 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", 166 | "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", 167 | "dev": true, 168 | "license": "MIT", 169 | "engines": { 170 | "node": ">=6.9.0" 171 | } 172 | }, 173 | "node_modules/@babel/helper-string-parser": { 174 | "version": "7.25.9", 175 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", 176 | "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", 177 | "dev": true, 178 | "license": "MIT", 179 | "engines": { 180 | "node": ">=6.9.0" 181 | } 182 | }, 183 | "node_modules/@babel/helper-validator-identifier": { 184 | "version": "7.25.9", 185 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", 186 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", 187 | "dev": true, 188 | "license": "MIT", 189 | "engines": { 190 | "node": ">=6.9.0" 191 | } 192 | }, 193 | "node_modules/@babel/helper-validator-option": { 194 | "version": "7.25.9", 195 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", 196 | "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", 197 | "dev": true, 198 | "license": "MIT", 199 | "engines": { 200 | "node": ">=6.9.0" 201 | } 202 | }, 203 | "node_modules/@babel/helpers": { 204 | "version": "7.27.0", 205 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", 206 | "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", 207 | "dev": true, 208 | "license": "MIT", 209 | "dependencies": { 210 | "@babel/template": "^7.27.0", 211 | "@babel/types": "^7.27.0" 212 | }, 213 | "engines": { 214 | "node": ">=6.9.0" 215 | } 216 | }, 217 | "node_modules/@babel/parser": { 218 | "version": "7.27.0", 219 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", 220 | "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", 221 | "dev": true, 222 | "license": "MIT", 223 | "dependencies": { 224 | "@babel/types": "^7.27.0" 225 | }, 226 | "bin": { 227 | "parser": "bin/babel-parser.js" 228 | }, 229 | "engines": { 230 | "node": ">=6.0.0" 231 | } 232 | }, 233 | "node_modules/@babel/plugin-transform-react-jsx-self": { 234 | "version": "7.25.9", 235 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", 236 | "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", 237 | "dev": true, 238 | "license": "MIT", 239 | "dependencies": { 240 | "@babel/helper-plugin-utils": "^7.25.9" 241 | }, 242 | "engines": { 243 | "node": ">=6.9.0" 244 | }, 245 | "peerDependencies": { 246 | "@babel/core": "^7.0.0-0" 247 | } 248 | }, 249 | "node_modules/@babel/plugin-transform-react-jsx-source": { 250 | "version": "7.25.9", 251 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", 252 | "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", 253 | "dev": true, 254 | "license": "MIT", 255 | "dependencies": { 256 | "@babel/helper-plugin-utils": "^7.25.9" 257 | }, 258 | "engines": { 259 | "node": ">=6.9.0" 260 | }, 261 | "peerDependencies": { 262 | "@babel/core": "^7.0.0-0" 263 | } 264 | }, 265 | "node_modules/@babel/template": { 266 | "version": "7.27.0", 267 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", 268 | "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", 269 | "dev": true, 270 | "license": "MIT", 271 | "dependencies": { 272 | "@babel/code-frame": "^7.26.2", 273 | "@babel/parser": "^7.27.0", 274 | "@babel/types": "^7.27.0" 275 | }, 276 | "engines": { 277 | "node": ">=6.9.0" 278 | } 279 | }, 280 | "node_modules/@babel/traverse": { 281 | "version": "7.27.0", 282 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", 283 | "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", 284 | "dev": true, 285 | "license": "MIT", 286 | "dependencies": { 287 | "@babel/code-frame": "^7.26.2", 288 | "@babel/generator": "^7.27.0", 289 | "@babel/parser": "^7.27.0", 290 | "@babel/template": "^7.27.0", 291 | "@babel/types": "^7.27.0", 292 | "debug": "^4.3.1", 293 | "globals": "^11.1.0" 294 | }, 295 | "engines": { 296 | "node": ">=6.9.0" 297 | } 298 | }, 299 | "node_modules/@babel/traverse/node_modules/globals": { 300 | "version": "11.12.0", 301 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 302 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 303 | "dev": true, 304 | "license": "MIT", 305 | "engines": { 306 | "node": ">=4" 307 | } 308 | }, 309 | "node_modules/@babel/types": { 310 | "version": "7.27.0", 311 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", 312 | "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", 313 | "dev": true, 314 | "license": "MIT", 315 | "dependencies": { 316 | "@babel/helper-string-parser": "^7.25.9", 317 | "@babel/helper-validator-identifier": "^7.25.9" 318 | }, 319 | "engines": { 320 | "node": ">=6.9.0" 321 | } 322 | }, 323 | "node_modules/@esbuild/aix-ppc64": { 324 | "version": "0.25.2", 325 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", 326 | "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", 327 | "cpu": [ 328 | "ppc64" 329 | ], 330 | "dev": true, 331 | "license": "MIT", 332 | "optional": true, 333 | "os": [ 334 | "aix" 335 | ], 336 | "engines": { 337 | "node": ">=18" 338 | } 339 | }, 340 | "node_modules/@esbuild/android-arm": { 341 | "version": "0.25.2", 342 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz", 343 | "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", 344 | "cpu": [ 345 | "arm" 346 | ], 347 | "dev": true, 348 | "license": "MIT", 349 | "optional": true, 350 | "os": [ 351 | "android" 352 | ], 353 | "engines": { 354 | "node": ">=18" 355 | } 356 | }, 357 | "node_modules/@esbuild/android-arm64": { 358 | "version": "0.25.2", 359 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz", 360 | "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", 361 | "cpu": [ 362 | "arm64" 363 | ], 364 | "dev": true, 365 | "license": "MIT", 366 | "optional": true, 367 | "os": [ 368 | "android" 369 | ], 370 | "engines": { 371 | "node": ">=18" 372 | } 373 | }, 374 | "node_modules/@esbuild/android-x64": { 375 | "version": "0.25.2", 376 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz", 377 | "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", 378 | "cpu": [ 379 | "x64" 380 | ], 381 | "dev": true, 382 | "license": "MIT", 383 | "optional": true, 384 | "os": [ 385 | "android" 386 | ], 387 | "engines": { 388 | "node": ">=18" 389 | } 390 | }, 391 | "node_modules/@esbuild/darwin-arm64": { 392 | "version": "0.25.2", 393 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz", 394 | "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", 395 | "cpu": [ 396 | "arm64" 397 | ], 398 | "dev": true, 399 | "license": "MIT", 400 | "optional": true, 401 | "os": [ 402 | "darwin" 403 | ], 404 | "engines": { 405 | "node": ">=18" 406 | } 407 | }, 408 | "node_modules/@esbuild/darwin-x64": { 409 | "version": "0.25.2", 410 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz", 411 | "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", 412 | "cpu": [ 413 | "x64" 414 | ], 415 | "dev": true, 416 | "license": "MIT", 417 | "optional": true, 418 | "os": [ 419 | "darwin" 420 | ], 421 | "engines": { 422 | "node": ">=18" 423 | } 424 | }, 425 | "node_modules/@esbuild/freebsd-arm64": { 426 | "version": "0.25.2", 427 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz", 428 | "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", 429 | "cpu": [ 430 | "arm64" 431 | ], 432 | "dev": true, 433 | "license": "MIT", 434 | "optional": true, 435 | "os": [ 436 | "freebsd" 437 | ], 438 | "engines": { 439 | "node": ">=18" 440 | } 441 | }, 442 | "node_modules/@esbuild/freebsd-x64": { 443 | "version": "0.25.2", 444 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz", 445 | "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", 446 | "cpu": [ 447 | "x64" 448 | ], 449 | "dev": true, 450 | "license": "MIT", 451 | "optional": true, 452 | "os": [ 453 | "freebsd" 454 | ], 455 | "engines": { 456 | "node": ">=18" 457 | } 458 | }, 459 | "node_modules/@esbuild/linux-arm": { 460 | "version": "0.25.2", 461 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz", 462 | "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", 463 | "cpu": [ 464 | "arm" 465 | ], 466 | "dev": true, 467 | "license": "MIT", 468 | "optional": true, 469 | "os": [ 470 | "linux" 471 | ], 472 | "engines": { 473 | "node": ">=18" 474 | } 475 | }, 476 | "node_modules/@esbuild/linux-arm64": { 477 | "version": "0.25.2", 478 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", 479 | "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", 480 | "cpu": [ 481 | "arm64" 482 | ], 483 | "dev": true, 484 | "license": "MIT", 485 | "optional": true, 486 | "os": [ 487 | "linux" 488 | ], 489 | "engines": { 490 | "node": ">=18" 491 | } 492 | }, 493 | "node_modules/@esbuild/linux-ia32": { 494 | "version": "0.25.2", 495 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz", 496 | "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", 497 | "cpu": [ 498 | "ia32" 499 | ], 500 | "dev": true, 501 | "license": "MIT", 502 | "optional": true, 503 | "os": [ 504 | "linux" 505 | ], 506 | "engines": { 507 | "node": ">=18" 508 | } 509 | }, 510 | "node_modules/@esbuild/linux-loong64": { 511 | "version": "0.25.2", 512 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz", 513 | "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", 514 | "cpu": [ 515 | "loong64" 516 | ], 517 | "dev": true, 518 | "license": "MIT", 519 | "optional": true, 520 | "os": [ 521 | "linux" 522 | ], 523 | "engines": { 524 | "node": ">=18" 525 | } 526 | }, 527 | "node_modules/@esbuild/linux-mips64el": { 528 | "version": "0.25.2", 529 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz", 530 | "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", 531 | "cpu": [ 532 | "mips64el" 533 | ], 534 | "dev": true, 535 | "license": "MIT", 536 | "optional": true, 537 | "os": [ 538 | "linux" 539 | ], 540 | "engines": { 541 | "node": ">=18" 542 | } 543 | }, 544 | "node_modules/@esbuild/linux-ppc64": { 545 | "version": "0.25.2", 546 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz", 547 | "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", 548 | "cpu": [ 549 | "ppc64" 550 | ], 551 | "dev": true, 552 | "license": "MIT", 553 | "optional": true, 554 | "os": [ 555 | "linux" 556 | ], 557 | "engines": { 558 | "node": ">=18" 559 | } 560 | }, 561 | "node_modules/@esbuild/linux-riscv64": { 562 | "version": "0.25.2", 563 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz", 564 | "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", 565 | "cpu": [ 566 | "riscv64" 567 | ], 568 | "dev": true, 569 | "license": "MIT", 570 | "optional": true, 571 | "os": [ 572 | "linux" 573 | ], 574 | "engines": { 575 | "node": ">=18" 576 | } 577 | }, 578 | "node_modules/@esbuild/linux-s390x": { 579 | "version": "0.25.2", 580 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz", 581 | "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", 582 | "cpu": [ 583 | "s390x" 584 | ], 585 | "dev": true, 586 | "license": "MIT", 587 | "optional": true, 588 | "os": [ 589 | "linux" 590 | ], 591 | "engines": { 592 | "node": ">=18" 593 | } 594 | }, 595 | "node_modules/@esbuild/linux-x64": { 596 | "version": "0.25.2", 597 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz", 598 | "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", 599 | "cpu": [ 600 | "x64" 601 | ], 602 | "dev": true, 603 | "license": "MIT", 604 | "optional": true, 605 | "os": [ 606 | "linux" 607 | ], 608 | "engines": { 609 | "node": ">=18" 610 | } 611 | }, 612 | "node_modules/@esbuild/netbsd-arm64": { 613 | "version": "0.25.2", 614 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz", 615 | "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", 616 | "cpu": [ 617 | "arm64" 618 | ], 619 | "dev": true, 620 | "license": "MIT", 621 | "optional": true, 622 | "os": [ 623 | "netbsd" 624 | ], 625 | "engines": { 626 | "node": ">=18" 627 | } 628 | }, 629 | "node_modules/@esbuild/netbsd-x64": { 630 | "version": "0.25.2", 631 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz", 632 | "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", 633 | "cpu": [ 634 | "x64" 635 | ], 636 | "dev": true, 637 | "license": "MIT", 638 | "optional": true, 639 | "os": [ 640 | "netbsd" 641 | ], 642 | "engines": { 643 | "node": ">=18" 644 | } 645 | }, 646 | "node_modules/@esbuild/openbsd-arm64": { 647 | "version": "0.25.2", 648 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz", 649 | "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", 650 | "cpu": [ 651 | "arm64" 652 | ], 653 | "dev": true, 654 | "license": "MIT", 655 | "optional": true, 656 | "os": [ 657 | "openbsd" 658 | ], 659 | "engines": { 660 | "node": ">=18" 661 | } 662 | }, 663 | "node_modules/@esbuild/openbsd-x64": { 664 | "version": "0.25.2", 665 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz", 666 | "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", 667 | "cpu": [ 668 | "x64" 669 | ], 670 | "dev": true, 671 | "license": "MIT", 672 | "optional": true, 673 | "os": [ 674 | "openbsd" 675 | ], 676 | "engines": { 677 | "node": ">=18" 678 | } 679 | }, 680 | "node_modules/@esbuild/sunos-x64": { 681 | "version": "0.25.2", 682 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz", 683 | "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", 684 | "cpu": [ 685 | "x64" 686 | ], 687 | "dev": true, 688 | "license": "MIT", 689 | "optional": true, 690 | "os": [ 691 | "sunos" 692 | ], 693 | "engines": { 694 | "node": ">=18" 695 | } 696 | }, 697 | "node_modules/@esbuild/win32-arm64": { 698 | "version": "0.25.2", 699 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz", 700 | "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", 701 | "cpu": [ 702 | "arm64" 703 | ], 704 | "dev": true, 705 | "license": "MIT", 706 | "optional": true, 707 | "os": [ 708 | "win32" 709 | ], 710 | "engines": { 711 | "node": ">=18" 712 | } 713 | }, 714 | "node_modules/@esbuild/win32-ia32": { 715 | "version": "0.25.2", 716 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz", 717 | "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", 718 | "cpu": [ 719 | "ia32" 720 | ], 721 | "dev": true, 722 | "license": "MIT", 723 | "optional": true, 724 | "os": [ 725 | "win32" 726 | ], 727 | "engines": { 728 | "node": ">=18" 729 | } 730 | }, 731 | "node_modules/@esbuild/win32-x64": { 732 | "version": "0.25.2", 733 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz", 734 | "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", 735 | "cpu": [ 736 | "x64" 737 | ], 738 | "dev": true, 739 | "license": "MIT", 740 | "optional": true, 741 | "os": [ 742 | "win32" 743 | ], 744 | "engines": { 745 | "node": ">=18" 746 | } 747 | }, 748 | "node_modules/@eslint-community/eslint-utils": { 749 | "version": "4.5.1", 750 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", 751 | "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", 752 | "dev": true, 753 | "license": "MIT", 754 | "dependencies": { 755 | "eslint-visitor-keys": "^3.4.3" 756 | }, 757 | "engines": { 758 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 759 | }, 760 | "funding": { 761 | "url": "https://opencollective.com/eslint" 762 | }, 763 | "peerDependencies": { 764 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 765 | } 766 | }, 767 | "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 768 | "version": "3.4.3", 769 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 770 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 771 | "dev": true, 772 | "license": "Apache-2.0", 773 | "engines": { 774 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 775 | }, 776 | "funding": { 777 | "url": "https://opencollective.com/eslint" 778 | } 779 | }, 780 | "node_modules/@eslint-community/regexpp": { 781 | "version": "4.12.1", 782 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", 783 | "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", 784 | "dev": true, 785 | "license": "MIT", 786 | "engines": { 787 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 788 | } 789 | }, 790 | "node_modules/@eslint/config-array": { 791 | "version": "0.20.0", 792 | "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", 793 | "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", 794 | "dev": true, 795 | "license": "Apache-2.0", 796 | "dependencies": { 797 | "@eslint/object-schema": "^2.1.6", 798 | "debug": "^4.3.1", 799 | "minimatch": "^3.1.2" 800 | }, 801 | "engines": { 802 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 803 | } 804 | }, 805 | "node_modules/@eslint/config-helpers": { 806 | "version": "0.2.1", 807 | "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", 808 | "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", 809 | "dev": true, 810 | "license": "Apache-2.0", 811 | "engines": { 812 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 813 | } 814 | }, 815 | "node_modules/@eslint/core": { 816 | "version": "0.12.0", 817 | "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", 818 | "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", 819 | "dev": true, 820 | "license": "Apache-2.0", 821 | "dependencies": { 822 | "@types/json-schema": "^7.0.15" 823 | }, 824 | "engines": { 825 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 826 | } 827 | }, 828 | "node_modules/@eslint/eslintrc": { 829 | "version": "3.3.1", 830 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", 831 | "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", 832 | "dev": true, 833 | "license": "MIT", 834 | "dependencies": { 835 | "ajv": "^6.12.4", 836 | "debug": "^4.3.2", 837 | "espree": "^10.0.1", 838 | "globals": "^14.0.0", 839 | "ignore": "^5.2.0", 840 | "import-fresh": "^3.2.1", 841 | "js-yaml": "^4.1.0", 842 | "minimatch": "^3.1.2", 843 | "strip-json-comments": "^3.1.1" 844 | }, 845 | "engines": { 846 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 847 | }, 848 | "funding": { 849 | "url": "https://opencollective.com/eslint" 850 | } 851 | }, 852 | "node_modules/@eslint/eslintrc/node_modules/globals": { 853 | "version": "14.0.0", 854 | "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 855 | "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 856 | "dev": true, 857 | "license": "MIT", 858 | "engines": { 859 | "node": ">=18" 860 | }, 861 | "funding": { 862 | "url": "https://github.com/sponsors/sindresorhus" 863 | } 864 | }, 865 | "node_modules/@eslint/js": { 866 | "version": "9.24.0", 867 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz", 868 | "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==", 869 | "dev": true, 870 | "license": "MIT", 871 | "engines": { 872 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 873 | } 874 | }, 875 | "node_modules/@eslint/object-schema": { 876 | "version": "2.1.6", 877 | "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", 878 | "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", 879 | "dev": true, 880 | "license": "Apache-2.0", 881 | "engines": { 882 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 883 | } 884 | }, 885 | "node_modules/@eslint/plugin-kit": { 886 | "version": "0.2.8", 887 | "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", 888 | "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", 889 | "dev": true, 890 | "license": "Apache-2.0", 891 | "dependencies": { 892 | "@eslint/core": "^0.13.0", 893 | "levn": "^0.4.1" 894 | }, 895 | "engines": { 896 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 897 | } 898 | }, 899 | "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { 900 | "version": "0.13.0", 901 | "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", 902 | "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", 903 | "dev": true, 904 | "license": "Apache-2.0", 905 | "dependencies": { 906 | "@types/json-schema": "^7.0.15" 907 | }, 908 | "engines": { 909 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 910 | } 911 | }, 912 | "node_modules/@humanfs/core": { 913 | "version": "0.19.1", 914 | "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", 915 | "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", 916 | "dev": true, 917 | "license": "Apache-2.0", 918 | "engines": { 919 | "node": ">=18.18.0" 920 | } 921 | }, 922 | "node_modules/@humanfs/node": { 923 | "version": "0.16.6", 924 | "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", 925 | "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", 926 | "dev": true, 927 | "license": "Apache-2.0", 928 | "dependencies": { 929 | "@humanfs/core": "^0.19.1", 930 | "@humanwhocodes/retry": "^0.3.0" 931 | }, 932 | "engines": { 933 | "node": ">=18.18.0" 934 | } 935 | }, 936 | "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { 937 | "version": "0.3.1", 938 | "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", 939 | "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", 940 | "dev": true, 941 | "license": "Apache-2.0", 942 | "engines": { 943 | "node": ">=18.18" 944 | }, 945 | "funding": { 946 | "type": "github", 947 | "url": "https://github.com/sponsors/nzakas" 948 | } 949 | }, 950 | "node_modules/@humanwhocodes/module-importer": { 951 | "version": "1.0.1", 952 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 953 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 954 | "dev": true, 955 | "license": "Apache-2.0", 956 | "engines": { 957 | "node": ">=12.22" 958 | }, 959 | "funding": { 960 | "type": "github", 961 | "url": "https://github.com/sponsors/nzakas" 962 | } 963 | }, 964 | "node_modules/@humanwhocodes/retry": { 965 | "version": "0.4.2", 966 | "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", 967 | "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", 968 | "dev": true, 969 | "license": "Apache-2.0", 970 | "engines": { 971 | "node": ">=18.18" 972 | }, 973 | "funding": { 974 | "type": "github", 975 | "url": "https://github.com/sponsors/nzakas" 976 | } 977 | }, 978 | "node_modules/@jridgewell/gen-mapping": { 979 | "version": "0.3.8", 980 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 981 | "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 982 | "dev": true, 983 | "license": "MIT", 984 | "dependencies": { 985 | "@jridgewell/set-array": "^1.2.1", 986 | "@jridgewell/sourcemap-codec": "^1.4.10", 987 | "@jridgewell/trace-mapping": "^0.3.24" 988 | }, 989 | "engines": { 990 | "node": ">=6.0.0" 991 | } 992 | }, 993 | "node_modules/@jridgewell/resolve-uri": { 994 | "version": "3.1.2", 995 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 996 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 997 | "dev": true, 998 | "license": "MIT", 999 | "engines": { 1000 | "node": ">=6.0.0" 1001 | } 1002 | }, 1003 | "node_modules/@jridgewell/set-array": { 1004 | "version": "1.2.1", 1005 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 1006 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 1007 | "dev": true, 1008 | "license": "MIT", 1009 | "engines": { 1010 | "node": ">=6.0.0" 1011 | } 1012 | }, 1013 | "node_modules/@jridgewell/sourcemap-codec": { 1014 | "version": "1.5.0", 1015 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 1016 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 1017 | "dev": true, 1018 | "license": "MIT" 1019 | }, 1020 | "node_modules/@jridgewell/trace-mapping": { 1021 | "version": "0.3.25", 1022 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 1023 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 1024 | "dev": true, 1025 | "license": "MIT", 1026 | "dependencies": { 1027 | "@jridgewell/resolve-uri": "^3.1.0", 1028 | "@jridgewell/sourcemap-codec": "^1.4.14" 1029 | } 1030 | }, 1031 | "node_modules/@rollup/rollup-android-arm-eabi": { 1032 | "version": "4.39.0", 1033 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.39.0.tgz", 1034 | "integrity": "sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==", 1035 | "cpu": [ 1036 | "arm" 1037 | ], 1038 | "dev": true, 1039 | "license": "MIT", 1040 | "optional": true, 1041 | "os": [ 1042 | "android" 1043 | ] 1044 | }, 1045 | "node_modules/@rollup/rollup-android-arm64": { 1046 | "version": "4.39.0", 1047 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.39.0.tgz", 1048 | "integrity": "sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==", 1049 | "cpu": [ 1050 | "arm64" 1051 | ], 1052 | "dev": true, 1053 | "license": "MIT", 1054 | "optional": true, 1055 | "os": [ 1056 | "android" 1057 | ] 1058 | }, 1059 | "node_modules/@rollup/rollup-darwin-arm64": { 1060 | "version": "4.39.0", 1061 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.39.0.tgz", 1062 | "integrity": "sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==", 1063 | "cpu": [ 1064 | "arm64" 1065 | ], 1066 | "dev": true, 1067 | "license": "MIT", 1068 | "optional": true, 1069 | "os": [ 1070 | "darwin" 1071 | ] 1072 | }, 1073 | "node_modules/@rollup/rollup-darwin-x64": { 1074 | "version": "4.39.0", 1075 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.39.0.tgz", 1076 | "integrity": "sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==", 1077 | "cpu": [ 1078 | "x64" 1079 | ], 1080 | "dev": true, 1081 | "license": "MIT", 1082 | "optional": true, 1083 | "os": [ 1084 | "darwin" 1085 | ] 1086 | }, 1087 | "node_modules/@rollup/rollup-freebsd-arm64": { 1088 | "version": "4.39.0", 1089 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.39.0.tgz", 1090 | "integrity": "sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==", 1091 | "cpu": [ 1092 | "arm64" 1093 | ], 1094 | "dev": true, 1095 | "license": "MIT", 1096 | "optional": true, 1097 | "os": [ 1098 | "freebsd" 1099 | ] 1100 | }, 1101 | "node_modules/@rollup/rollup-freebsd-x64": { 1102 | "version": "4.39.0", 1103 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.39.0.tgz", 1104 | "integrity": "sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==", 1105 | "cpu": [ 1106 | "x64" 1107 | ], 1108 | "dev": true, 1109 | "license": "MIT", 1110 | "optional": true, 1111 | "os": [ 1112 | "freebsd" 1113 | ] 1114 | }, 1115 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1116 | "version": "4.39.0", 1117 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.39.0.tgz", 1118 | "integrity": "sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==", 1119 | "cpu": [ 1120 | "arm" 1121 | ], 1122 | "dev": true, 1123 | "license": "MIT", 1124 | "optional": true, 1125 | "os": [ 1126 | "linux" 1127 | ] 1128 | }, 1129 | "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1130 | "version": "4.39.0", 1131 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.39.0.tgz", 1132 | "integrity": "sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==", 1133 | "cpu": [ 1134 | "arm" 1135 | ], 1136 | "dev": true, 1137 | "license": "MIT", 1138 | "optional": true, 1139 | "os": [ 1140 | "linux" 1141 | ] 1142 | }, 1143 | "node_modules/@rollup/rollup-linux-arm64-gnu": { 1144 | "version": "4.39.0", 1145 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.39.0.tgz", 1146 | "integrity": "sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==", 1147 | "cpu": [ 1148 | "arm64" 1149 | ], 1150 | "dev": true, 1151 | "license": "MIT", 1152 | "optional": true, 1153 | "os": [ 1154 | "linux" 1155 | ] 1156 | }, 1157 | "node_modules/@rollup/rollup-linux-arm64-musl": { 1158 | "version": "4.39.0", 1159 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.39.0.tgz", 1160 | "integrity": "sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==", 1161 | "cpu": [ 1162 | "arm64" 1163 | ], 1164 | "dev": true, 1165 | "license": "MIT", 1166 | "optional": true, 1167 | "os": [ 1168 | "linux" 1169 | ] 1170 | }, 1171 | "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 1172 | "version": "4.39.0", 1173 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.39.0.tgz", 1174 | "integrity": "sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==", 1175 | "cpu": [ 1176 | "loong64" 1177 | ], 1178 | "dev": true, 1179 | "license": "MIT", 1180 | "optional": true, 1181 | "os": [ 1182 | "linux" 1183 | ] 1184 | }, 1185 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 1186 | "version": "4.39.0", 1187 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.39.0.tgz", 1188 | "integrity": "sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==", 1189 | "cpu": [ 1190 | "ppc64" 1191 | ], 1192 | "dev": true, 1193 | "license": "MIT", 1194 | "optional": true, 1195 | "os": [ 1196 | "linux" 1197 | ] 1198 | }, 1199 | "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1200 | "version": "4.39.0", 1201 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.39.0.tgz", 1202 | "integrity": "sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==", 1203 | "cpu": [ 1204 | "riscv64" 1205 | ], 1206 | "dev": true, 1207 | "license": "MIT", 1208 | "optional": true, 1209 | "os": [ 1210 | "linux" 1211 | ] 1212 | }, 1213 | "node_modules/@rollup/rollup-linux-riscv64-musl": { 1214 | "version": "4.39.0", 1215 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.39.0.tgz", 1216 | "integrity": "sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==", 1217 | "cpu": [ 1218 | "riscv64" 1219 | ], 1220 | "dev": true, 1221 | "license": "MIT", 1222 | "optional": true, 1223 | "os": [ 1224 | "linux" 1225 | ] 1226 | }, 1227 | "node_modules/@rollup/rollup-linux-s390x-gnu": { 1228 | "version": "4.39.0", 1229 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.39.0.tgz", 1230 | "integrity": "sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==", 1231 | "cpu": [ 1232 | "s390x" 1233 | ], 1234 | "dev": true, 1235 | "license": "MIT", 1236 | "optional": true, 1237 | "os": [ 1238 | "linux" 1239 | ] 1240 | }, 1241 | "node_modules/@rollup/rollup-linux-x64-gnu": { 1242 | "version": "4.39.0", 1243 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.39.0.tgz", 1244 | "integrity": "sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==", 1245 | "cpu": [ 1246 | "x64" 1247 | ], 1248 | "dev": true, 1249 | "license": "MIT", 1250 | "optional": true, 1251 | "os": [ 1252 | "linux" 1253 | ] 1254 | }, 1255 | "node_modules/@rollup/rollup-linux-x64-musl": { 1256 | "version": "4.39.0", 1257 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.39.0.tgz", 1258 | "integrity": "sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==", 1259 | "cpu": [ 1260 | "x64" 1261 | ], 1262 | "dev": true, 1263 | "license": "MIT", 1264 | "optional": true, 1265 | "os": [ 1266 | "linux" 1267 | ] 1268 | }, 1269 | "node_modules/@rollup/rollup-win32-arm64-msvc": { 1270 | "version": "4.39.0", 1271 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.39.0.tgz", 1272 | "integrity": "sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==", 1273 | "cpu": [ 1274 | "arm64" 1275 | ], 1276 | "dev": true, 1277 | "license": "MIT", 1278 | "optional": true, 1279 | "os": [ 1280 | "win32" 1281 | ] 1282 | }, 1283 | "node_modules/@rollup/rollup-win32-ia32-msvc": { 1284 | "version": "4.39.0", 1285 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.39.0.tgz", 1286 | "integrity": "sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==", 1287 | "cpu": [ 1288 | "ia32" 1289 | ], 1290 | "dev": true, 1291 | "license": "MIT", 1292 | "optional": true, 1293 | "os": [ 1294 | "win32" 1295 | ] 1296 | }, 1297 | "node_modules/@rollup/rollup-win32-x64-msvc": { 1298 | "version": "4.39.0", 1299 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.39.0.tgz", 1300 | "integrity": "sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==", 1301 | "cpu": [ 1302 | "x64" 1303 | ], 1304 | "dev": true, 1305 | "license": "MIT", 1306 | "optional": true, 1307 | "os": [ 1308 | "win32" 1309 | ] 1310 | }, 1311 | "node_modules/@types/babel__core": { 1312 | "version": "7.20.5", 1313 | "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", 1314 | "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", 1315 | "dev": true, 1316 | "license": "MIT", 1317 | "dependencies": { 1318 | "@babel/parser": "^7.20.7", 1319 | "@babel/types": "^7.20.7", 1320 | "@types/babel__generator": "*", 1321 | "@types/babel__template": "*", 1322 | "@types/babel__traverse": "*" 1323 | } 1324 | }, 1325 | "node_modules/@types/babel__generator": { 1326 | "version": "7.27.0", 1327 | "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", 1328 | "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", 1329 | "dev": true, 1330 | "license": "MIT", 1331 | "dependencies": { 1332 | "@babel/types": "^7.0.0" 1333 | } 1334 | }, 1335 | "node_modules/@types/babel__template": { 1336 | "version": "7.4.4", 1337 | "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", 1338 | "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", 1339 | "dev": true, 1340 | "license": "MIT", 1341 | "dependencies": { 1342 | "@babel/parser": "^7.1.0", 1343 | "@babel/types": "^7.0.0" 1344 | } 1345 | }, 1346 | "node_modules/@types/babel__traverse": { 1347 | "version": "7.20.7", 1348 | "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", 1349 | "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", 1350 | "dev": true, 1351 | "license": "MIT", 1352 | "dependencies": { 1353 | "@babel/types": "^7.20.7" 1354 | } 1355 | }, 1356 | "node_modules/@types/estree": { 1357 | "version": "1.0.7", 1358 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", 1359 | "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", 1360 | "dev": true, 1361 | "license": "MIT" 1362 | }, 1363 | "node_modules/@types/json-schema": { 1364 | "version": "7.0.15", 1365 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 1366 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 1367 | "dev": true, 1368 | "license": "MIT" 1369 | }, 1370 | "node_modules/@types/react": { 1371 | "version": "19.1.0", 1372 | "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.0.tgz", 1373 | "integrity": "sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==", 1374 | "dev": true, 1375 | "license": "MIT", 1376 | "dependencies": { 1377 | "csstype": "^3.0.2" 1378 | } 1379 | }, 1380 | "node_modules/@types/react-dom": { 1381 | "version": "19.1.2", 1382 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz", 1383 | "integrity": "sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==", 1384 | "dev": true, 1385 | "license": "MIT", 1386 | "peerDependencies": { 1387 | "@types/react": "^19.0.0" 1388 | } 1389 | }, 1390 | "node_modules/@vitejs/plugin-react": { 1391 | "version": "4.3.4", 1392 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", 1393 | "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", 1394 | "dev": true, 1395 | "license": "MIT", 1396 | "dependencies": { 1397 | "@babel/core": "^7.26.0", 1398 | "@babel/plugin-transform-react-jsx-self": "^7.25.9", 1399 | "@babel/plugin-transform-react-jsx-source": "^7.25.9", 1400 | "@types/babel__core": "^7.20.5", 1401 | "react-refresh": "^0.14.2" 1402 | }, 1403 | "engines": { 1404 | "node": "^14.18.0 || >=16.0.0" 1405 | }, 1406 | "peerDependencies": { 1407 | "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" 1408 | } 1409 | }, 1410 | "node_modules/acorn": { 1411 | "version": "8.14.1", 1412 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", 1413 | "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", 1414 | "dev": true, 1415 | "license": "MIT", 1416 | "bin": { 1417 | "acorn": "bin/acorn" 1418 | }, 1419 | "engines": { 1420 | "node": ">=0.4.0" 1421 | } 1422 | }, 1423 | "node_modules/acorn-jsx": { 1424 | "version": "5.3.2", 1425 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 1426 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 1427 | "dev": true, 1428 | "license": "MIT", 1429 | "peerDependencies": { 1430 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 1431 | } 1432 | }, 1433 | "node_modules/ajv": { 1434 | "version": "6.12.6", 1435 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 1436 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 1437 | "dev": true, 1438 | "license": "MIT", 1439 | "dependencies": { 1440 | "fast-deep-equal": "^3.1.1", 1441 | "fast-json-stable-stringify": "^2.0.0", 1442 | "json-schema-traverse": "^0.4.1", 1443 | "uri-js": "^4.2.2" 1444 | }, 1445 | "funding": { 1446 | "type": "github", 1447 | "url": "https://github.com/sponsors/epoberezkin" 1448 | } 1449 | }, 1450 | "node_modules/ansi-styles": { 1451 | "version": "4.3.0", 1452 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1453 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1454 | "dev": true, 1455 | "license": "MIT", 1456 | "dependencies": { 1457 | "color-convert": "^2.0.1" 1458 | }, 1459 | "engines": { 1460 | "node": ">=8" 1461 | }, 1462 | "funding": { 1463 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1464 | } 1465 | }, 1466 | "node_modules/argparse": { 1467 | "version": "2.0.1", 1468 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1469 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 1470 | "dev": true, 1471 | "license": "Python-2.0" 1472 | }, 1473 | "node_modules/balanced-match": { 1474 | "version": "1.0.2", 1475 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1476 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1477 | "dev": true, 1478 | "license": "MIT" 1479 | }, 1480 | "node_modules/brace-expansion": { 1481 | "version": "1.1.11", 1482 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1483 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1484 | "dev": true, 1485 | "license": "MIT", 1486 | "dependencies": { 1487 | "balanced-match": "^1.0.0", 1488 | "concat-map": "0.0.1" 1489 | } 1490 | }, 1491 | "node_modules/browserslist": { 1492 | "version": "4.24.4", 1493 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", 1494 | "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", 1495 | "dev": true, 1496 | "funding": [ 1497 | { 1498 | "type": "opencollective", 1499 | "url": "https://opencollective.com/browserslist" 1500 | }, 1501 | { 1502 | "type": "tidelift", 1503 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1504 | }, 1505 | { 1506 | "type": "github", 1507 | "url": "https://github.com/sponsors/ai" 1508 | } 1509 | ], 1510 | "license": "MIT", 1511 | "dependencies": { 1512 | "caniuse-lite": "^1.0.30001688", 1513 | "electron-to-chromium": "^1.5.73", 1514 | "node-releases": "^2.0.19", 1515 | "update-browserslist-db": "^1.1.1" 1516 | }, 1517 | "bin": { 1518 | "browserslist": "cli.js" 1519 | }, 1520 | "engines": { 1521 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1522 | } 1523 | }, 1524 | "node_modules/callsites": { 1525 | "version": "3.1.0", 1526 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1527 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1528 | "dev": true, 1529 | "license": "MIT", 1530 | "engines": { 1531 | "node": ">=6" 1532 | } 1533 | }, 1534 | "node_modules/caniuse-lite": { 1535 | "version": "1.0.30001713", 1536 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001713.tgz", 1537 | "integrity": "sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==", 1538 | "dev": true, 1539 | "funding": [ 1540 | { 1541 | "type": "opencollective", 1542 | "url": "https://opencollective.com/browserslist" 1543 | }, 1544 | { 1545 | "type": "tidelift", 1546 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 1547 | }, 1548 | { 1549 | "type": "github", 1550 | "url": "https://github.com/sponsors/ai" 1551 | } 1552 | ], 1553 | "license": "CC-BY-4.0" 1554 | }, 1555 | "node_modules/chalk": { 1556 | "version": "4.1.2", 1557 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1558 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1559 | "dev": true, 1560 | "license": "MIT", 1561 | "dependencies": { 1562 | "ansi-styles": "^4.1.0", 1563 | "supports-color": "^7.1.0" 1564 | }, 1565 | "engines": { 1566 | "node": ">=10" 1567 | }, 1568 | "funding": { 1569 | "url": "https://github.com/chalk/chalk?sponsor=1" 1570 | } 1571 | }, 1572 | "node_modules/color-convert": { 1573 | "version": "2.0.1", 1574 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1575 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1576 | "dev": true, 1577 | "license": "MIT", 1578 | "dependencies": { 1579 | "color-name": "~1.1.4" 1580 | }, 1581 | "engines": { 1582 | "node": ">=7.0.0" 1583 | } 1584 | }, 1585 | "node_modules/color-name": { 1586 | "version": "1.1.4", 1587 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1588 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1589 | "dev": true, 1590 | "license": "MIT" 1591 | }, 1592 | "node_modules/concat-map": { 1593 | "version": "0.0.1", 1594 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1595 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1596 | "dev": true, 1597 | "license": "MIT" 1598 | }, 1599 | "node_modules/convert-source-map": { 1600 | "version": "2.0.0", 1601 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 1602 | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", 1603 | "dev": true, 1604 | "license": "MIT" 1605 | }, 1606 | "node_modules/cross-spawn": { 1607 | "version": "7.0.6", 1608 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 1609 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 1610 | "dev": true, 1611 | "license": "MIT", 1612 | "dependencies": { 1613 | "path-key": "^3.1.0", 1614 | "shebang-command": "^2.0.0", 1615 | "which": "^2.0.1" 1616 | }, 1617 | "engines": { 1618 | "node": ">= 8" 1619 | } 1620 | }, 1621 | "node_modules/csstype": { 1622 | "version": "3.1.3", 1623 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 1624 | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", 1625 | "dev": true, 1626 | "license": "MIT" 1627 | }, 1628 | "node_modules/debug": { 1629 | "version": "4.4.0", 1630 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 1631 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 1632 | "dev": true, 1633 | "license": "MIT", 1634 | "dependencies": { 1635 | "ms": "^2.1.3" 1636 | }, 1637 | "engines": { 1638 | "node": ">=6.0" 1639 | }, 1640 | "peerDependenciesMeta": { 1641 | "supports-color": { 1642 | "optional": true 1643 | } 1644 | } 1645 | }, 1646 | "node_modules/deep-is": { 1647 | "version": "0.1.4", 1648 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 1649 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 1650 | "dev": true, 1651 | "license": "MIT" 1652 | }, 1653 | "node_modules/electron-to-chromium": { 1654 | "version": "1.5.135", 1655 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.135.tgz", 1656 | "integrity": "sha512-8gXUdEmvb+WCaYUhA0Svr08uSeRjM2w3x5uHOc1QbaEVzJXB8rgm5eptieXzyKoVEtinLvW6MtTcurA65PeS1Q==", 1657 | "dev": true, 1658 | "license": "ISC" 1659 | }, 1660 | "node_modules/esbuild": { 1661 | "version": "0.25.2", 1662 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", 1663 | "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", 1664 | "dev": true, 1665 | "hasInstallScript": true, 1666 | "license": "MIT", 1667 | "bin": { 1668 | "esbuild": "bin/esbuild" 1669 | }, 1670 | "engines": { 1671 | "node": ">=18" 1672 | }, 1673 | "optionalDependencies": { 1674 | "@esbuild/aix-ppc64": "0.25.2", 1675 | "@esbuild/android-arm": "0.25.2", 1676 | "@esbuild/android-arm64": "0.25.2", 1677 | "@esbuild/android-x64": "0.25.2", 1678 | "@esbuild/darwin-arm64": "0.25.2", 1679 | "@esbuild/darwin-x64": "0.25.2", 1680 | "@esbuild/freebsd-arm64": "0.25.2", 1681 | "@esbuild/freebsd-x64": "0.25.2", 1682 | "@esbuild/linux-arm": "0.25.2", 1683 | "@esbuild/linux-arm64": "0.25.2", 1684 | "@esbuild/linux-ia32": "0.25.2", 1685 | "@esbuild/linux-loong64": "0.25.2", 1686 | "@esbuild/linux-mips64el": "0.25.2", 1687 | "@esbuild/linux-ppc64": "0.25.2", 1688 | "@esbuild/linux-riscv64": "0.25.2", 1689 | "@esbuild/linux-s390x": "0.25.2", 1690 | "@esbuild/linux-x64": "0.25.2", 1691 | "@esbuild/netbsd-arm64": "0.25.2", 1692 | "@esbuild/netbsd-x64": "0.25.2", 1693 | "@esbuild/openbsd-arm64": "0.25.2", 1694 | "@esbuild/openbsd-x64": "0.25.2", 1695 | "@esbuild/sunos-x64": "0.25.2", 1696 | "@esbuild/win32-arm64": "0.25.2", 1697 | "@esbuild/win32-ia32": "0.25.2", 1698 | "@esbuild/win32-x64": "0.25.2" 1699 | } 1700 | }, 1701 | "node_modules/escalade": { 1702 | "version": "3.2.0", 1703 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 1704 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 1705 | "dev": true, 1706 | "license": "MIT", 1707 | "engines": { 1708 | "node": ">=6" 1709 | } 1710 | }, 1711 | "node_modules/escape-string-regexp": { 1712 | "version": "4.0.0", 1713 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1714 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 1715 | "dev": true, 1716 | "license": "MIT", 1717 | "engines": { 1718 | "node": ">=10" 1719 | }, 1720 | "funding": { 1721 | "url": "https://github.com/sponsors/sindresorhus" 1722 | } 1723 | }, 1724 | "node_modules/eslint": { 1725 | "version": "9.24.0", 1726 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz", 1727 | "integrity": "sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==", 1728 | "dev": true, 1729 | "license": "MIT", 1730 | "dependencies": { 1731 | "@eslint-community/eslint-utils": "^4.2.0", 1732 | "@eslint-community/regexpp": "^4.12.1", 1733 | "@eslint/config-array": "^0.20.0", 1734 | "@eslint/config-helpers": "^0.2.0", 1735 | "@eslint/core": "^0.12.0", 1736 | "@eslint/eslintrc": "^3.3.1", 1737 | "@eslint/js": "9.24.0", 1738 | "@eslint/plugin-kit": "^0.2.7", 1739 | "@humanfs/node": "^0.16.6", 1740 | "@humanwhocodes/module-importer": "^1.0.1", 1741 | "@humanwhocodes/retry": "^0.4.2", 1742 | "@types/estree": "^1.0.6", 1743 | "@types/json-schema": "^7.0.15", 1744 | "ajv": "^6.12.4", 1745 | "chalk": "^4.0.0", 1746 | "cross-spawn": "^7.0.6", 1747 | "debug": "^4.3.2", 1748 | "escape-string-regexp": "^4.0.0", 1749 | "eslint-scope": "^8.3.0", 1750 | "eslint-visitor-keys": "^4.2.0", 1751 | "espree": "^10.3.0", 1752 | "esquery": "^1.5.0", 1753 | "esutils": "^2.0.2", 1754 | "fast-deep-equal": "^3.1.3", 1755 | "file-entry-cache": "^8.0.0", 1756 | "find-up": "^5.0.0", 1757 | "glob-parent": "^6.0.2", 1758 | "ignore": "^5.2.0", 1759 | "imurmurhash": "^0.1.4", 1760 | "is-glob": "^4.0.0", 1761 | "json-stable-stringify-without-jsonify": "^1.0.1", 1762 | "lodash.merge": "^4.6.2", 1763 | "minimatch": "^3.1.2", 1764 | "natural-compare": "^1.4.0", 1765 | "optionator": "^0.9.3" 1766 | }, 1767 | "bin": { 1768 | "eslint": "bin/eslint.js" 1769 | }, 1770 | "engines": { 1771 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1772 | }, 1773 | "funding": { 1774 | "url": "https://eslint.org/donate" 1775 | }, 1776 | "peerDependencies": { 1777 | "jiti": "*" 1778 | }, 1779 | "peerDependenciesMeta": { 1780 | "jiti": { 1781 | "optional": true 1782 | } 1783 | } 1784 | }, 1785 | "node_modules/eslint-plugin-react-hooks": { 1786 | "version": "5.2.0", 1787 | "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", 1788 | "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", 1789 | "dev": true, 1790 | "license": "MIT", 1791 | "engines": { 1792 | "node": ">=10" 1793 | }, 1794 | "peerDependencies": { 1795 | "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" 1796 | } 1797 | }, 1798 | "node_modules/eslint-plugin-react-refresh": { 1799 | "version": "0.4.19", 1800 | "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", 1801 | "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", 1802 | "dev": true, 1803 | "license": "MIT", 1804 | "peerDependencies": { 1805 | "eslint": ">=8.40" 1806 | } 1807 | }, 1808 | "node_modules/eslint-scope": { 1809 | "version": "8.3.0", 1810 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", 1811 | "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", 1812 | "dev": true, 1813 | "license": "BSD-2-Clause", 1814 | "dependencies": { 1815 | "esrecurse": "^4.3.0", 1816 | "estraverse": "^5.2.0" 1817 | }, 1818 | "engines": { 1819 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1820 | }, 1821 | "funding": { 1822 | "url": "https://opencollective.com/eslint" 1823 | } 1824 | }, 1825 | "node_modules/eslint-visitor-keys": { 1826 | "version": "4.2.0", 1827 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", 1828 | "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", 1829 | "dev": true, 1830 | "license": "Apache-2.0", 1831 | "engines": { 1832 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1833 | }, 1834 | "funding": { 1835 | "url": "https://opencollective.com/eslint" 1836 | } 1837 | }, 1838 | "node_modules/espree": { 1839 | "version": "10.3.0", 1840 | "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", 1841 | "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", 1842 | "dev": true, 1843 | "license": "BSD-2-Clause", 1844 | "dependencies": { 1845 | "acorn": "^8.14.0", 1846 | "acorn-jsx": "^5.3.2", 1847 | "eslint-visitor-keys": "^4.2.0" 1848 | }, 1849 | "engines": { 1850 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1851 | }, 1852 | "funding": { 1853 | "url": "https://opencollective.com/eslint" 1854 | } 1855 | }, 1856 | "node_modules/esquery": { 1857 | "version": "1.6.0", 1858 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", 1859 | "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", 1860 | "dev": true, 1861 | "license": "BSD-3-Clause", 1862 | "dependencies": { 1863 | "estraverse": "^5.1.0" 1864 | }, 1865 | "engines": { 1866 | "node": ">=0.10" 1867 | } 1868 | }, 1869 | "node_modules/esrecurse": { 1870 | "version": "4.3.0", 1871 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1872 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1873 | "dev": true, 1874 | "license": "BSD-2-Clause", 1875 | "dependencies": { 1876 | "estraverse": "^5.2.0" 1877 | }, 1878 | "engines": { 1879 | "node": ">=4.0" 1880 | } 1881 | }, 1882 | "node_modules/estraverse": { 1883 | "version": "5.3.0", 1884 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1885 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1886 | "dev": true, 1887 | "license": "BSD-2-Clause", 1888 | "engines": { 1889 | "node": ">=4.0" 1890 | } 1891 | }, 1892 | "node_modules/esutils": { 1893 | "version": "2.0.3", 1894 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1895 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1896 | "dev": true, 1897 | "license": "BSD-2-Clause", 1898 | "engines": { 1899 | "node": ">=0.10.0" 1900 | } 1901 | }, 1902 | "node_modules/fast-deep-equal": { 1903 | "version": "3.1.3", 1904 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1905 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1906 | "dev": true, 1907 | "license": "MIT" 1908 | }, 1909 | "node_modules/fast-json-stable-stringify": { 1910 | "version": "2.1.0", 1911 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1912 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1913 | "dev": true, 1914 | "license": "MIT" 1915 | }, 1916 | "node_modules/fast-levenshtein": { 1917 | "version": "2.0.6", 1918 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1919 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 1920 | "dev": true, 1921 | "license": "MIT" 1922 | }, 1923 | "node_modules/file-entry-cache": { 1924 | "version": "8.0.0", 1925 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 1926 | "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 1927 | "dev": true, 1928 | "license": "MIT", 1929 | "dependencies": { 1930 | "flat-cache": "^4.0.0" 1931 | }, 1932 | "engines": { 1933 | "node": ">=16.0.0" 1934 | } 1935 | }, 1936 | "node_modules/find-up": { 1937 | "version": "5.0.0", 1938 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1939 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1940 | "dev": true, 1941 | "license": "MIT", 1942 | "dependencies": { 1943 | "locate-path": "^6.0.0", 1944 | "path-exists": "^4.0.0" 1945 | }, 1946 | "engines": { 1947 | "node": ">=10" 1948 | }, 1949 | "funding": { 1950 | "url": "https://github.com/sponsors/sindresorhus" 1951 | } 1952 | }, 1953 | "node_modules/flat-cache": { 1954 | "version": "4.0.1", 1955 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 1956 | "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 1957 | "dev": true, 1958 | "license": "MIT", 1959 | "dependencies": { 1960 | "flatted": "^3.2.9", 1961 | "keyv": "^4.5.4" 1962 | }, 1963 | "engines": { 1964 | "node": ">=16" 1965 | } 1966 | }, 1967 | "node_modules/flatted": { 1968 | "version": "3.3.3", 1969 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", 1970 | "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", 1971 | "dev": true, 1972 | "license": "ISC" 1973 | }, 1974 | "node_modules/fsevents": { 1975 | "version": "2.3.3", 1976 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1977 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1978 | "dev": true, 1979 | "hasInstallScript": true, 1980 | "license": "MIT", 1981 | "optional": true, 1982 | "os": [ 1983 | "darwin" 1984 | ], 1985 | "engines": { 1986 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1987 | } 1988 | }, 1989 | "node_modules/gensync": { 1990 | "version": "1.0.0-beta.2", 1991 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1992 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1993 | "dev": true, 1994 | "license": "MIT", 1995 | "engines": { 1996 | "node": ">=6.9.0" 1997 | } 1998 | }, 1999 | "node_modules/glob-parent": { 2000 | "version": "6.0.2", 2001 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2002 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2003 | "dev": true, 2004 | "license": "ISC", 2005 | "dependencies": { 2006 | "is-glob": "^4.0.3" 2007 | }, 2008 | "engines": { 2009 | "node": ">=10.13.0" 2010 | } 2011 | }, 2012 | "node_modules/globals": { 2013 | "version": "15.15.0", 2014 | "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", 2015 | "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", 2016 | "dev": true, 2017 | "license": "MIT", 2018 | "engines": { 2019 | "node": ">=18" 2020 | }, 2021 | "funding": { 2022 | "url": "https://github.com/sponsors/sindresorhus" 2023 | } 2024 | }, 2025 | "node_modules/has-flag": { 2026 | "version": "4.0.0", 2027 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2028 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2029 | "dev": true, 2030 | "license": "MIT", 2031 | "engines": { 2032 | "node": ">=8" 2033 | } 2034 | }, 2035 | "node_modules/ignore": { 2036 | "version": "5.3.2", 2037 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 2038 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 2039 | "dev": true, 2040 | "license": "MIT", 2041 | "engines": { 2042 | "node": ">= 4" 2043 | } 2044 | }, 2045 | "node_modules/import-fresh": { 2046 | "version": "3.3.1", 2047 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", 2048 | "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", 2049 | "dev": true, 2050 | "license": "MIT", 2051 | "dependencies": { 2052 | "parent-module": "^1.0.0", 2053 | "resolve-from": "^4.0.0" 2054 | }, 2055 | "engines": { 2056 | "node": ">=6" 2057 | }, 2058 | "funding": { 2059 | "url": "https://github.com/sponsors/sindresorhus" 2060 | } 2061 | }, 2062 | "node_modules/imurmurhash": { 2063 | "version": "0.1.4", 2064 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2065 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 2066 | "dev": true, 2067 | "license": "MIT", 2068 | "engines": { 2069 | "node": ">=0.8.19" 2070 | } 2071 | }, 2072 | "node_modules/is-extglob": { 2073 | "version": "2.1.1", 2074 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2075 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2076 | "dev": true, 2077 | "license": "MIT", 2078 | "engines": { 2079 | "node": ">=0.10.0" 2080 | } 2081 | }, 2082 | "node_modules/is-glob": { 2083 | "version": "4.0.3", 2084 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2085 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2086 | "dev": true, 2087 | "license": "MIT", 2088 | "dependencies": { 2089 | "is-extglob": "^2.1.1" 2090 | }, 2091 | "engines": { 2092 | "node": ">=0.10.0" 2093 | } 2094 | }, 2095 | "node_modules/isexe": { 2096 | "version": "2.0.0", 2097 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2098 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2099 | "dev": true, 2100 | "license": "ISC" 2101 | }, 2102 | "node_modules/js-tokens": { 2103 | "version": "4.0.0", 2104 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2105 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2106 | "dev": true, 2107 | "license": "MIT" 2108 | }, 2109 | "node_modules/js-yaml": { 2110 | "version": "4.1.0", 2111 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2112 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2113 | "dev": true, 2114 | "license": "MIT", 2115 | "dependencies": { 2116 | "argparse": "^2.0.1" 2117 | }, 2118 | "bin": { 2119 | "js-yaml": "bin/js-yaml.js" 2120 | } 2121 | }, 2122 | "node_modules/jsesc": { 2123 | "version": "3.1.0", 2124 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 2125 | "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 2126 | "dev": true, 2127 | "license": "MIT", 2128 | "bin": { 2129 | "jsesc": "bin/jsesc" 2130 | }, 2131 | "engines": { 2132 | "node": ">=6" 2133 | } 2134 | }, 2135 | "node_modules/json-buffer": { 2136 | "version": "3.0.1", 2137 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 2138 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 2139 | "dev": true, 2140 | "license": "MIT" 2141 | }, 2142 | "node_modules/json-schema-traverse": { 2143 | "version": "0.4.1", 2144 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2145 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2146 | "dev": true, 2147 | "license": "MIT" 2148 | }, 2149 | "node_modules/json-stable-stringify-without-jsonify": { 2150 | "version": "1.0.1", 2151 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2152 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 2153 | "dev": true, 2154 | "license": "MIT" 2155 | }, 2156 | "node_modules/json5": { 2157 | "version": "2.2.3", 2158 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 2159 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 2160 | "dev": true, 2161 | "license": "MIT", 2162 | "bin": { 2163 | "json5": "lib/cli.js" 2164 | }, 2165 | "engines": { 2166 | "node": ">=6" 2167 | } 2168 | }, 2169 | "node_modules/keyv": { 2170 | "version": "4.5.4", 2171 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 2172 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 2173 | "dev": true, 2174 | "license": "MIT", 2175 | "dependencies": { 2176 | "json-buffer": "3.0.1" 2177 | } 2178 | }, 2179 | "node_modules/levn": { 2180 | "version": "0.4.1", 2181 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 2182 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 2183 | "dev": true, 2184 | "license": "MIT", 2185 | "dependencies": { 2186 | "prelude-ls": "^1.2.1", 2187 | "type-check": "~0.4.0" 2188 | }, 2189 | "engines": { 2190 | "node": ">= 0.8.0" 2191 | } 2192 | }, 2193 | "node_modules/locate-path": { 2194 | "version": "6.0.0", 2195 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2196 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2197 | "dev": true, 2198 | "license": "MIT", 2199 | "dependencies": { 2200 | "p-locate": "^5.0.0" 2201 | }, 2202 | "engines": { 2203 | "node": ">=10" 2204 | }, 2205 | "funding": { 2206 | "url": "https://github.com/sponsors/sindresorhus" 2207 | } 2208 | }, 2209 | "node_modules/lodash.merge": { 2210 | "version": "4.6.2", 2211 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 2212 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 2213 | "dev": true, 2214 | "license": "MIT" 2215 | }, 2216 | "node_modules/lru-cache": { 2217 | "version": "5.1.1", 2218 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 2219 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 2220 | "dev": true, 2221 | "license": "ISC", 2222 | "dependencies": { 2223 | "yallist": "^3.0.2" 2224 | } 2225 | }, 2226 | "node_modules/minimatch": { 2227 | "version": "3.1.2", 2228 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2229 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2230 | "dev": true, 2231 | "license": "ISC", 2232 | "dependencies": { 2233 | "brace-expansion": "^1.1.7" 2234 | }, 2235 | "engines": { 2236 | "node": "*" 2237 | } 2238 | }, 2239 | "node_modules/ms": { 2240 | "version": "2.1.3", 2241 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2242 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 2243 | "dev": true, 2244 | "license": "MIT" 2245 | }, 2246 | "node_modules/nanoid": { 2247 | "version": "3.3.11", 2248 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 2249 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 2250 | "dev": true, 2251 | "funding": [ 2252 | { 2253 | "type": "github", 2254 | "url": "https://github.com/sponsors/ai" 2255 | } 2256 | ], 2257 | "license": "MIT", 2258 | "bin": { 2259 | "nanoid": "bin/nanoid.cjs" 2260 | }, 2261 | "engines": { 2262 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2263 | } 2264 | }, 2265 | "node_modules/natural-compare": { 2266 | "version": "1.4.0", 2267 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2268 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 2269 | "dev": true, 2270 | "license": "MIT" 2271 | }, 2272 | "node_modules/node-releases": { 2273 | "version": "2.0.19", 2274 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", 2275 | "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", 2276 | "dev": true, 2277 | "license": "MIT" 2278 | }, 2279 | "node_modules/optionator": { 2280 | "version": "0.9.4", 2281 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 2282 | "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 2283 | "dev": true, 2284 | "license": "MIT", 2285 | "dependencies": { 2286 | "deep-is": "^0.1.3", 2287 | "fast-levenshtein": "^2.0.6", 2288 | "levn": "^0.4.1", 2289 | "prelude-ls": "^1.2.1", 2290 | "type-check": "^0.4.0", 2291 | "word-wrap": "^1.2.5" 2292 | }, 2293 | "engines": { 2294 | "node": ">= 0.8.0" 2295 | } 2296 | }, 2297 | "node_modules/p-limit": { 2298 | "version": "3.1.0", 2299 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 2300 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 2301 | "dev": true, 2302 | "license": "MIT", 2303 | "dependencies": { 2304 | "yocto-queue": "^0.1.0" 2305 | }, 2306 | "engines": { 2307 | "node": ">=10" 2308 | }, 2309 | "funding": { 2310 | "url": "https://github.com/sponsors/sindresorhus" 2311 | } 2312 | }, 2313 | "node_modules/p-locate": { 2314 | "version": "5.0.0", 2315 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 2316 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 2317 | "dev": true, 2318 | "license": "MIT", 2319 | "dependencies": { 2320 | "p-limit": "^3.0.2" 2321 | }, 2322 | "engines": { 2323 | "node": ">=10" 2324 | }, 2325 | "funding": { 2326 | "url": "https://github.com/sponsors/sindresorhus" 2327 | } 2328 | }, 2329 | "node_modules/parent-module": { 2330 | "version": "1.0.1", 2331 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2332 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2333 | "dev": true, 2334 | "license": "MIT", 2335 | "dependencies": { 2336 | "callsites": "^3.0.0" 2337 | }, 2338 | "engines": { 2339 | "node": ">=6" 2340 | } 2341 | }, 2342 | "node_modules/path-exists": { 2343 | "version": "4.0.0", 2344 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2345 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2346 | "dev": true, 2347 | "license": "MIT", 2348 | "engines": { 2349 | "node": ">=8" 2350 | } 2351 | }, 2352 | "node_modules/path-key": { 2353 | "version": "3.1.1", 2354 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2355 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2356 | "dev": true, 2357 | "license": "MIT", 2358 | "engines": { 2359 | "node": ">=8" 2360 | } 2361 | }, 2362 | "node_modules/picocolors": { 2363 | "version": "1.1.1", 2364 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 2365 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 2366 | "dev": true, 2367 | "license": "ISC" 2368 | }, 2369 | "node_modules/postcss": { 2370 | "version": "8.5.3", 2371 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", 2372 | "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", 2373 | "dev": true, 2374 | "funding": [ 2375 | { 2376 | "type": "opencollective", 2377 | "url": "https://opencollective.com/postcss/" 2378 | }, 2379 | { 2380 | "type": "tidelift", 2381 | "url": "https://tidelift.com/funding/github/npm/postcss" 2382 | }, 2383 | { 2384 | "type": "github", 2385 | "url": "https://github.com/sponsors/ai" 2386 | } 2387 | ], 2388 | "license": "MIT", 2389 | "dependencies": { 2390 | "nanoid": "^3.3.8", 2391 | "picocolors": "^1.1.1", 2392 | "source-map-js": "^1.2.1" 2393 | }, 2394 | "engines": { 2395 | "node": "^10 || ^12 || >=14" 2396 | } 2397 | }, 2398 | "node_modules/prelude-ls": { 2399 | "version": "1.2.1", 2400 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 2401 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 2402 | "dev": true, 2403 | "license": "MIT", 2404 | "engines": { 2405 | "node": ">= 0.8.0" 2406 | } 2407 | }, 2408 | "node_modules/punycode": { 2409 | "version": "2.3.1", 2410 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 2411 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 2412 | "dev": true, 2413 | "license": "MIT", 2414 | "engines": { 2415 | "node": ">=6" 2416 | } 2417 | }, 2418 | "node_modules/react": { 2419 | "version": "19.1.0", 2420 | "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", 2421 | "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", 2422 | "license": "MIT", 2423 | "engines": { 2424 | "node": ">=0.10.0" 2425 | } 2426 | }, 2427 | "node_modules/react-dom": { 2428 | "version": "19.1.0", 2429 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", 2430 | "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", 2431 | "license": "MIT", 2432 | "dependencies": { 2433 | "scheduler": "^0.26.0" 2434 | }, 2435 | "peerDependencies": { 2436 | "react": "^19.1.0" 2437 | } 2438 | }, 2439 | "node_modules/react-refresh": { 2440 | "version": "0.14.2", 2441 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", 2442 | "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", 2443 | "dev": true, 2444 | "license": "MIT", 2445 | "engines": { 2446 | "node": ">=0.10.0" 2447 | } 2448 | }, 2449 | "node_modules/resolve-from": { 2450 | "version": "4.0.0", 2451 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2452 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2453 | "dev": true, 2454 | "license": "MIT", 2455 | "engines": { 2456 | "node": ">=4" 2457 | } 2458 | }, 2459 | "node_modules/rollup": { 2460 | "version": "4.39.0", 2461 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.39.0.tgz", 2462 | "integrity": "sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==", 2463 | "dev": true, 2464 | "license": "MIT", 2465 | "dependencies": { 2466 | "@types/estree": "1.0.7" 2467 | }, 2468 | "bin": { 2469 | "rollup": "dist/bin/rollup" 2470 | }, 2471 | "engines": { 2472 | "node": ">=18.0.0", 2473 | "npm": ">=8.0.0" 2474 | }, 2475 | "optionalDependencies": { 2476 | "@rollup/rollup-android-arm-eabi": "4.39.0", 2477 | "@rollup/rollup-android-arm64": "4.39.0", 2478 | "@rollup/rollup-darwin-arm64": "4.39.0", 2479 | "@rollup/rollup-darwin-x64": "4.39.0", 2480 | "@rollup/rollup-freebsd-arm64": "4.39.0", 2481 | "@rollup/rollup-freebsd-x64": "4.39.0", 2482 | "@rollup/rollup-linux-arm-gnueabihf": "4.39.0", 2483 | "@rollup/rollup-linux-arm-musleabihf": "4.39.0", 2484 | "@rollup/rollup-linux-arm64-gnu": "4.39.0", 2485 | "@rollup/rollup-linux-arm64-musl": "4.39.0", 2486 | "@rollup/rollup-linux-loongarch64-gnu": "4.39.0", 2487 | "@rollup/rollup-linux-powerpc64le-gnu": "4.39.0", 2488 | "@rollup/rollup-linux-riscv64-gnu": "4.39.0", 2489 | "@rollup/rollup-linux-riscv64-musl": "4.39.0", 2490 | "@rollup/rollup-linux-s390x-gnu": "4.39.0", 2491 | "@rollup/rollup-linux-x64-gnu": "4.39.0", 2492 | "@rollup/rollup-linux-x64-musl": "4.39.0", 2493 | "@rollup/rollup-win32-arm64-msvc": "4.39.0", 2494 | "@rollup/rollup-win32-ia32-msvc": "4.39.0", 2495 | "@rollup/rollup-win32-x64-msvc": "4.39.0", 2496 | "fsevents": "~2.3.2" 2497 | } 2498 | }, 2499 | "node_modules/scheduler": { 2500 | "version": "0.26.0", 2501 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", 2502 | "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", 2503 | "license": "MIT" 2504 | }, 2505 | "node_modules/semver": { 2506 | "version": "6.3.1", 2507 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 2508 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 2509 | "dev": true, 2510 | "license": "ISC", 2511 | "bin": { 2512 | "semver": "bin/semver.js" 2513 | } 2514 | }, 2515 | "node_modules/shebang-command": { 2516 | "version": "2.0.0", 2517 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2518 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2519 | "dev": true, 2520 | "license": "MIT", 2521 | "dependencies": { 2522 | "shebang-regex": "^3.0.0" 2523 | }, 2524 | "engines": { 2525 | "node": ">=8" 2526 | } 2527 | }, 2528 | "node_modules/shebang-regex": { 2529 | "version": "3.0.0", 2530 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2531 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2532 | "dev": true, 2533 | "license": "MIT", 2534 | "engines": { 2535 | "node": ">=8" 2536 | } 2537 | }, 2538 | "node_modules/source-map-js": { 2539 | "version": "1.2.1", 2540 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 2541 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 2542 | "dev": true, 2543 | "license": "BSD-3-Clause", 2544 | "engines": { 2545 | "node": ">=0.10.0" 2546 | } 2547 | }, 2548 | "node_modules/strip-json-comments": { 2549 | "version": "3.1.1", 2550 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2551 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2552 | "dev": true, 2553 | "license": "MIT", 2554 | "engines": { 2555 | "node": ">=8" 2556 | }, 2557 | "funding": { 2558 | "url": "https://github.com/sponsors/sindresorhus" 2559 | } 2560 | }, 2561 | "node_modules/supports-color": { 2562 | "version": "7.2.0", 2563 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2564 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2565 | "dev": true, 2566 | "license": "MIT", 2567 | "dependencies": { 2568 | "has-flag": "^4.0.0" 2569 | }, 2570 | "engines": { 2571 | "node": ">=8" 2572 | } 2573 | }, 2574 | "node_modules/type-check": { 2575 | "version": "0.4.0", 2576 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 2577 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 2578 | "dev": true, 2579 | "license": "MIT", 2580 | "dependencies": { 2581 | "prelude-ls": "^1.2.1" 2582 | }, 2583 | "engines": { 2584 | "node": ">= 0.8.0" 2585 | } 2586 | }, 2587 | "node_modules/update-browserslist-db": { 2588 | "version": "1.1.3", 2589 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 2590 | "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 2591 | "dev": true, 2592 | "funding": [ 2593 | { 2594 | "type": "opencollective", 2595 | "url": "https://opencollective.com/browserslist" 2596 | }, 2597 | { 2598 | "type": "tidelift", 2599 | "url": "https://tidelift.com/funding/github/npm/browserslist" 2600 | }, 2601 | { 2602 | "type": "github", 2603 | "url": "https://github.com/sponsors/ai" 2604 | } 2605 | ], 2606 | "license": "MIT", 2607 | "dependencies": { 2608 | "escalade": "^3.2.0", 2609 | "picocolors": "^1.1.1" 2610 | }, 2611 | "bin": { 2612 | "update-browserslist-db": "cli.js" 2613 | }, 2614 | "peerDependencies": { 2615 | "browserslist": ">= 4.21.0" 2616 | } 2617 | }, 2618 | "node_modules/uri-js": { 2619 | "version": "4.4.1", 2620 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2621 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2622 | "dev": true, 2623 | "license": "BSD-2-Clause", 2624 | "dependencies": { 2625 | "punycode": "^2.1.0" 2626 | } 2627 | }, 2628 | "node_modules/use-local-storage": { 2629 | "version": "3.0.0", 2630 | "resolved": "https://registry.npmjs.org/use-local-storage/-/use-local-storage-3.0.0.tgz", 2631 | "integrity": "sha512-wlPNnBCG3ULIJMr5A+dvWqLiPWCfsN1Kwijq+sAhT5yV4ex0u6XmZuNwP+RerIOfzBuz1pwSZuzhZMiluGQHfQ==", 2632 | "license": "MIT", 2633 | "peerDependencies": { 2634 | "react": ">=16.8.1" 2635 | } 2636 | }, 2637 | "node_modules/vite": { 2638 | "version": "6.2.6", 2639 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz", 2640 | "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==", 2641 | "dev": true, 2642 | "license": "MIT", 2643 | "dependencies": { 2644 | "esbuild": "^0.25.0", 2645 | "postcss": "^8.5.3", 2646 | "rollup": "^4.30.1" 2647 | }, 2648 | "bin": { 2649 | "vite": "bin/vite.js" 2650 | }, 2651 | "engines": { 2652 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 2653 | }, 2654 | "funding": { 2655 | "url": "https://github.com/vitejs/vite?sponsor=1" 2656 | }, 2657 | "optionalDependencies": { 2658 | "fsevents": "~2.3.3" 2659 | }, 2660 | "peerDependencies": { 2661 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 2662 | "jiti": ">=1.21.0", 2663 | "less": "*", 2664 | "lightningcss": "^1.21.0", 2665 | "sass": "*", 2666 | "sass-embedded": "*", 2667 | "stylus": "*", 2668 | "sugarss": "*", 2669 | "terser": "^5.16.0", 2670 | "tsx": "^4.8.1", 2671 | "yaml": "^2.4.2" 2672 | }, 2673 | "peerDependenciesMeta": { 2674 | "@types/node": { 2675 | "optional": true 2676 | }, 2677 | "jiti": { 2678 | "optional": true 2679 | }, 2680 | "less": { 2681 | "optional": true 2682 | }, 2683 | "lightningcss": { 2684 | "optional": true 2685 | }, 2686 | "sass": { 2687 | "optional": true 2688 | }, 2689 | "sass-embedded": { 2690 | "optional": true 2691 | }, 2692 | "stylus": { 2693 | "optional": true 2694 | }, 2695 | "sugarss": { 2696 | "optional": true 2697 | }, 2698 | "terser": { 2699 | "optional": true 2700 | }, 2701 | "tsx": { 2702 | "optional": true 2703 | }, 2704 | "yaml": { 2705 | "optional": true 2706 | } 2707 | } 2708 | }, 2709 | "node_modules/which": { 2710 | "version": "2.0.2", 2711 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2712 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2713 | "dev": true, 2714 | "license": "ISC", 2715 | "dependencies": { 2716 | "isexe": "^2.0.0" 2717 | }, 2718 | "bin": { 2719 | "node-which": "bin/node-which" 2720 | }, 2721 | "engines": { 2722 | "node": ">= 8" 2723 | } 2724 | }, 2725 | "node_modules/word-wrap": { 2726 | "version": "1.2.5", 2727 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 2728 | "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 2729 | "dev": true, 2730 | "license": "MIT", 2731 | "engines": { 2732 | "node": ">=0.10.0" 2733 | } 2734 | }, 2735 | "node_modules/yallist": { 2736 | "version": "3.1.1", 2737 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 2738 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 2739 | "dev": true, 2740 | "license": "ISC" 2741 | }, 2742 | "node_modules/yocto-queue": { 2743 | "version": "0.1.0", 2744 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2745 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2746 | "dev": true, 2747 | "license": "MIT", 2748 | "engines": { 2749 | "node": ">=10" 2750 | }, 2751 | "funding": { 2752 | "url": "https://github.com/sponsors/sindresorhus" 2753 | } 2754 | } 2755 | } 2756 | } 2757 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "theme-toggle", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "lint": "eslint .", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "react": "^19.0.0", 14 | "react-dom": "^19.0.0", 15 | "use-local-storage": "^3.0.0" 16 | }, 17 | "devDependencies": { 18 | "@eslint/js": "^9.21.0", 19 | "@types/react": "^19.0.10", 20 | "@types/react-dom": "^19.0.4", 21 | "@vitejs/plugin-react": "^4.3.4", 22 | "eslint": "^9.21.0", 23 | "eslint-plugin-react-hooks": "^5.1.0", 24 | "eslint-plugin-react-refresh": "^0.4.19", 25 | "globals": "^15.15.0", 26 | "vite": "^6.2.0" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /public/themes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FaithMutua-code/theme-toggle/0798e506b2031f7934dab2143b90671b0ab9e196/public/themes.png -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import useLocalStorage from 'use-local-storage' 3 | import './index.css' 4 | 5 | const App = () => { 6 | // Fixing the useLocalStorage usage: 7 | const [theme, setTheme] = useLocalStorage('theme', 'light') // 'key', 'defaultValue' 8 | 9 | // Fixing the theme toggle function 10 | const switchTheme = () => { 11 | const newTheme = theme === 'light' ? 'dark' : 'light' 12 | setTheme(newTheme) // useLocalStorage setter, not an object 13 | } 14 | 15 | return ( 16 |
17 |
18 |

Login

19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 |
27 |

Or

28 |
29 | 30 | 31 | 32 | 33 |
34 | 35 |

Remember me

36 |
37 | 38 |
39 |
40 |

Forgot Password

41 | Reset password 42 |
43 |

Create Account

44 |
45 |
46 |

Theme

47 | 48 |
49 |
50 |
51 | ) 52 | } 53 | 54 | export default App 55 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap'); 2 | :root{ 3 | --background:#ffffff; 4 | --text-primary:#000; 5 | --text-secondary:#8e05c2; 6 | --accent:#8e05c2; 7 | --border:#333; 8 | --form-bg:#fff; 9 | --input-bg: #fff; /* white input for dark theme */ 10 | --input-text: #000; 11 | } 12 | [data-theme='dark'] { 13 | --background: #121212; 14 | --text-primary: #ffffff; 15 | --text-secondary: #bb86fc; 16 | --accent: #bb86fc; 17 | --border: #444; 18 | --form-bg: #1e1e1e; 19 | --input-bg: #fff; /* white input for dark theme */ 20 | --input-text: #000; 21 | } 22 | 23 | *{ 24 | margin: 0; 25 | padding: 0; 26 | box-sizing: border-box; 27 | } 28 | body{ 29 | font-family: Arial, Helvetica, sans-serif, 'Roboto','Outfit'; 30 | } 31 | a{ 32 | color: var(--text-secondary) 33 | } 34 | .app{ 35 | background-color: var(--background); 36 | color: var(--text-primary); 37 | height: 100vh; 38 | display: flex; 39 | flex-direction: column; 40 | justify-content: center; 41 | font-size: 0.8rem; 42 | transition: all .5s; 43 | -webkit-transition: all .5s; 44 | -moz-transition: all .5s; 45 | -ms-transition: all .5s; 46 | -o-transition: all .5s; 47 | } 48 | .login h1{ 49 | text-align: center; 50 | margin: -6rem 0 2rem; 51 | font-size: 40px; 52 | } 53 | h2{ 54 | text-align: center; 55 | padding: 1rem; 56 | } 57 | .theme-toggle i{ 58 | font-size: 2rem; 59 | cursor: pointer; 60 | } 61 | .theme-toggle{ 62 | text-align: center; 63 | } 64 | .container{ 65 | display: flex; 66 | flex-direction: column; 67 | justify-content: center; 68 | align-items: center; 69 | padding: 1.5rem; 70 | width: 300px; 71 | margin: auto; 72 | box-shadow: 0px 0px 12px var(--border); 73 | background-color: var(--form-bg); 74 | } 75 | .top{ 76 | display: flex; 77 | 78 | justify-content: space-between; 79 | width: 100%; 80 | } 81 | .top i{ 82 | font-size: 1rem; 83 | 84 | } 85 | .divider{ 86 | width:100% ; 87 | text-align: center; 88 | border-bottom: 1px solid var(--text-primary); 89 | line-height: .1rem; 90 | margin: 2rem 0; 91 | } 92 | span{ 93 | padding: 0 10px; 94 | background-color: var(--form-bg); 95 | } 96 | form{ 97 | width: 100%; 98 | display: flex; 99 | flex-direction: column; 100 | } 101 | label{ 102 | margin: 8px 0; 103 | font-weight: 600; 104 | } 105 | input{ 106 | padding: 8px; 107 | margin-bottom: 8px; 108 | border-radius: 6px; 109 | border: 1px solid var(--border); 110 | background-color: var(--input-bg); 111 | color: var(--input-text); 112 | -webkit-border-radius: 6px; 113 | -moz-border-radius: 6px; 114 | -ms-border-radius: 6px; 115 | -o-border-radius: 6px; 116 | } 117 | .remember{ 118 | display: flex; 119 | align-items: center; 120 | width: 100%; 121 | } 122 | input[type=checkbox]:checked{ 123 | margin: 0; 124 | padding: 0; 125 | 126 | } 127 | .remember p{ 128 | padding-left: 8px; 129 | 130 | } 131 | button{ 132 | background-color: var(--accent); 133 | border: 1px solid var(--accent); 134 | color: #fff; 135 | padding: 10px; 136 | border-radius: 10px; 137 | font-weight: 600; 138 | cursor: pointer; 139 | -webkit-border-radius: 10px; 140 | -moz-border-radius: 10px; 141 | -ms-border-radius: 10px; 142 | -o-border-radius: 10px; 143 | } 144 | .bottom{ 145 | display: flex; 146 | justify-content: space-between; 147 | width: 100%; 148 | font-size: .8rem; 149 | } 150 | .create{ 151 | font-size: 1rem; 152 | margin-top: 1rem; 153 | cursor: pointer; 154 | } 155 | @media screen and (max-width:478px){ 156 | .login{ 157 | width: 95%; 158 | } 159 | 160 | } -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import { StrictMode } from 'react' 2 | import { createRoot } from 'react-dom/client' 3 | import './index.css' 4 | import App from './App.jsx' 5 | 6 | createRoot(document.getElementById('root')).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vite.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | --------------------------------------------------------------------------------