├── .gitignore ├── LICENSE ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── screen-shot.png ├── src ├── App.jsx ├── components │ └── threeWrapper │ │ ├── ThreeWrapper.jsx │ │ ├── assets │ │ └── testcard.jpg │ │ └── js │ │ └── main.js ├── 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 | 26 | # next.js 27 | /.next/ 28 | /out/ 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Felix Turner 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # threejs-react-wrapper 2 | 3 | A simple wrapper to run vanilla ThreeJS code inside a React component. 4 | 5 | - Uses React 18 and Vite. 6 | - Uses [Leva](https://github.com/pmndrs/leva) React GUI to show passing props from React -> ThreeJS. 7 | 8 | ## Philosophy 9 | 10 | [React-three-fiber](https://github.com/pmndrs/react-three-fiber) is great if you want to write your ThreeJS code with JSX. If you prefer coding ThreeJS with vanilla JS, this template might be useful. Any of the [ThreeJS examples](https://threejs.org/examples/) can be loaded into this wrapper. 11 | 12 | ## Available Scripts 13 | 14 | In the project directory, you can run: 15 | 16 | - `npm install` - Install dependencies. 17 | - `npm run dev` - Runs the app in dev mode. 18 | - `npm run build` - Build app to `dist` folder. 19 | 20 | ## ScreenShot 21 | 22 | ![ScreenShot](./screen-shot.png 'ScreenShot') 23 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ThreeJS React Wrapper 6 | 7 | 8 |
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "threejs-react-wrapper", 3 | "version": "0.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "threejs-react-wrapper", 9 | "version": "0.0.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@vitejs/plugin-react": "^4.0.4", 13 | "leva": "^0.9.34", 14 | "react": "^18.2.0", 15 | "react-dom": "^18.2.0", 16 | "three": "^0.176.0" 17 | }, 18 | "devDependencies": { 19 | "@types/react": "^18.0.28", 20 | "@types/react-dom": "^18.0.11", 21 | "vite": "^6.3.3" 22 | } 23 | }, 24 | "node_modules/@ampproject/remapping": { 25 | "version": "2.3.0", 26 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 27 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 28 | "license": "Apache-2.0", 29 | "dependencies": { 30 | "@jridgewell/gen-mapping": "^0.3.5", 31 | "@jridgewell/trace-mapping": "^0.3.24" 32 | }, 33 | "engines": { 34 | "node": ">=6.0.0" 35 | } 36 | }, 37 | "node_modules/@babel/code-frame": { 38 | "version": "7.26.2", 39 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", 40 | "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", 41 | "license": "MIT", 42 | "dependencies": { 43 | "@babel/helper-validator-identifier": "^7.25.9", 44 | "js-tokens": "^4.0.0", 45 | "picocolors": "^1.0.0" 46 | }, 47 | "engines": { 48 | "node": ">=6.9.0" 49 | } 50 | }, 51 | "node_modules/@babel/compat-data": { 52 | "version": "7.26.8", 53 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", 54 | "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", 55 | "license": "MIT", 56 | "engines": { 57 | "node": ">=6.9.0" 58 | } 59 | }, 60 | "node_modules/@babel/core": { 61 | "version": "7.26.10", 62 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", 63 | "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", 64 | "license": "MIT", 65 | "dependencies": { 66 | "@ampproject/remapping": "^2.2.0", 67 | "@babel/code-frame": "^7.26.2", 68 | "@babel/generator": "^7.26.10", 69 | "@babel/helper-compilation-targets": "^7.26.5", 70 | "@babel/helper-module-transforms": "^7.26.0", 71 | "@babel/helpers": "^7.26.10", 72 | "@babel/parser": "^7.26.10", 73 | "@babel/template": "^7.26.9", 74 | "@babel/traverse": "^7.26.10", 75 | "@babel/types": "^7.26.10", 76 | "convert-source-map": "^2.0.0", 77 | "debug": "^4.1.0", 78 | "gensync": "^1.0.0-beta.2", 79 | "json5": "^2.2.3", 80 | "semver": "^6.3.1" 81 | }, 82 | "engines": { 83 | "node": ">=6.9.0" 84 | }, 85 | "funding": { 86 | "type": "opencollective", 87 | "url": "https://opencollective.com/babel" 88 | } 89 | }, 90 | "node_modules/@babel/generator": { 91 | "version": "7.27.0", 92 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", 93 | "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", 94 | "license": "MIT", 95 | "dependencies": { 96 | "@babel/parser": "^7.27.0", 97 | "@babel/types": "^7.27.0", 98 | "@jridgewell/gen-mapping": "^0.3.5", 99 | "@jridgewell/trace-mapping": "^0.3.25", 100 | "jsesc": "^3.0.2" 101 | }, 102 | "engines": { 103 | "node": ">=6.9.0" 104 | } 105 | }, 106 | "node_modules/@babel/helper-compilation-targets": { 107 | "version": "7.27.0", 108 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", 109 | "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", 110 | "license": "MIT", 111 | "dependencies": { 112 | "@babel/compat-data": "^7.26.8", 113 | "@babel/helper-validator-option": "^7.25.9", 114 | "browserslist": "^4.24.0", 115 | "lru-cache": "^5.1.1", 116 | "semver": "^6.3.1" 117 | }, 118 | "engines": { 119 | "node": ">=6.9.0" 120 | } 121 | }, 122 | "node_modules/@babel/helper-module-imports": { 123 | "version": "7.25.9", 124 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", 125 | "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", 126 | "license": "MIT", 127 | "dependencies": { 128 | "@babel/traverse": "^7.25.9", 129 | "@babel/types": "^7.25.9" 130 | }, 131 | "engines": { 132 | "node": ">=6.9.0" 133 | } 134 | }, 135 | "node_modules/@babel/helper-module-transforms": { 136 | "version": "7.26.0", 137 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", 138 | "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", 139 | "license": "MIT", 140 | "dependencies": { 141 | "@babel/helper-module-imports": "^7.25.9", 142 | "@babel/helper-validator-identifier": "^7.25.9", 143 | "@babel/traverse": "^7.25.9" 144 | }, 145 | "engines": { 146 | "node": ">=6.9.0" 147 | }, 148 | "peerDependencies": { 149 | "@babel/core": "^7.0.0" 150 | } 151 | }, 152 | "node_modules/@babel/helper-plugin-utils": { 153 | "version": "7.26.5", 154 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", 155 | "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", 156 | "license": "MIT", 157 | "engines": { 158 | "node": ">=6.9.0" 159 | } 160 | }, 161 | "node_modules/@babel/helper-string-parser": { 162 | "version": "7.25.9", 163 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", 164 | "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", 165 | "license": "MIT", 166 | "engines": { 167 | "node": ">=6.9.0" 168 | } 169 | }, 170 | "node_modules/@babel/helper-validator-identifier": { 171 | "version": "7.25.9", 172 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", 173 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", 174 | "license": "MIT", 175 | "engines": { 176 | "node": ">=6.9.0" 177 | } 178 | }, 179 | "node_modules/@babel/helper-validator-option": { 180 | "version": "7.25.9", 181 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", 182 | "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", 183 | "license": "MIT", 184 | "engines": { 185 | "node": ">=6.9.0" 186 | } 187 | }, 188 | "node_modules/@babel/helpers": { 189 | "version": "7.27.0", 190 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", 191 | "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", 192 | "license": "MIT", 193 | "dependencies": { 194 | "@babel/template": "^7.27.0", 195 | "@babel/types": "^7.27.0" 196 | }, 197 | "engines": { 198 | "node": ">=6.9.0" 199 | } 200 | }, 201 | "node_modules/@babel/parser": { 202 | "version": "7.27.0", 203 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", 204 | "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", 205 | "license": "MIT", 206 | "dependencies": { 207 | "@babel/types": "^7.27.0" 208 | }, 209 | "bin": { 210 | "parser": "bin/babel-parser.js" 211 | }, 212 | "engines": { 213 | "node": ">=6.0.0" 214 | } 215 | }, 216 | "node_modules/@babel/plugin-transform-react-jsx-self": { 217 | "version": "7.25.9", 218 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", 219 | "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", 220 | "license": "MIT", 221 | "dependencies": { 222 | "@babel/helper-plugin-utils": "^7.25.9" 223 | }, 224 | "engines": { 225 | "node": ">=6.9.0" 226 | }, 227 | "peerDependencies": { 228 | "@babel/core": "^7.0.0-0" 229 | } 230 | }, 231 | "node_modules/@babel/plugin-transform-react-jsx-source": { 232 | "version": "7.25.9", 233 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", 234 | "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", 235 | "license": "MIT", 236 | "dependencies": { 237 | "@babel/helper-plugin-utils": "^7.25.9" 238 | }, 239 | "engines": { 240 | "node": ">=6.9.0" 241 | }, 242 | "peerDependencies": { 243 | "@babel/core": "^7.0.0-0" 244 | } 245 | }, 246 | "node_modules/@babel/runtime": { 247 | "version": "7.27.0", 248 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", 249 | "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", 250 | "license": "MIT", 251 | "dependencies": { 252 | "regenerator-runtime": "^0.14.0" 253 | }, 254 | "engines": { 255 | "node": ">=6.9.0" 256 | } 257 | }, 258 | "node_modules/@babel/template": { 259 | "version": "7.27.0", 260 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", 261 | "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", 262 | "license": "MIT", 263 | "dependencies": { 264 | "@babel/code-frame": "^7.26.2", 265 | "@babel/parser": "^7.27.0", 266 | "@babel/types": "^7.27.0" 267 | }, 268 | "engines": { 269 | "node": ">=6.9.0" 270 | } 271 | }, 272 | "node_modules/@babel/traverse": { 273 | "version": "7.27.0", 274 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", 275 | "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", 276 | "license": "MIT", 277 | "dependencies": { 278 | "@babel/code-frame": "^7.26.2", 279 | "@babel/generator": "^7.27.0", 280 | "@babel/parser": "^7.27.0", 281 | "@babel/template": "^7.27.0", 282 | "@babel/types": "^7.27.0", 283 | "debug": "^4.3.1", 284 | "globals": "^11.1.0" 285 | }, 286 | "engines": { 287 | "node": ">=6.9.0" 288 | } 289 | }, 290 | "node_modules/@babel/types": { 291 | "version": "7.27.0", 292 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", 293 | "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", 294 | "license": "MIT", 295 | "dependencies": { 296 | "@babel/helper-string-parser": "^7.25.9", 297 | "@babel/helper-validator-identifier": "^7.25.9" 298 | }, 299 | "engines": { 300 | "node": ">=6.9.0" 301 | } 302 | }, 303 | "node_modules/@esbuild/aix-ppc64": { 304 | "version": "0.25.3", 305 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", 306 | "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", 307 | "cpu": [ 308 | "ppc64" 309 | ], 310 | "license": "MIT", 311 | "optional": true, 312 | "os": [ 313 | "aix" 314 | ], 315 | "engines": { 316 | "node": ">=18" 317 | } 318 | }, 319 | "node_modules/@esbuild/android-arm": { 320 | "version": "0.25.3", 321 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", 322 | "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", 323 | "cpu": [ 324 | "arm" 325 | ], 326 | "license": "MIT", 327 | "optional": true, 328 | "os": [ 329 | "android" 330 | ], 331 | "engines": { 332 | "node": ">=18" 333 | } 334 | }, 335 | "node_modules/@esbuild/android-arm64": { 336 | "version": "0.25.3", 337 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", 338 | "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", 339 | "cpu": [ 340 | "arm64" 341 | ], 342 | "license": "MIT", 343 | "optional": true, 344 | "os": [ 345 | "android" 346 | ], 347 | "engines": { 348 | "node": ">=18" 349 | } 350 | }, 351 | "node_modules/@esbuild/android-x64": { 352 | "version": "0.25.3", 353 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", 354 | "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", 355 | "cpu": [ 356 | "x64" 357 | ], 358 | "license": "MIT", 359 | "optional": true, 360 | "os": [ 361 | "android" 362 | ], 363 | "engines": { 364 | "node": ">=18" 365 | } 366 | }, 367 | "node_modules/@esbuild/darwin-arm64": { 368 | "version": "0.25.3", 369 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", 370 | "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", 371 | "cpu": [ 372 | "arm64" 373 | ], 374 | "license": "MIT", 375 | "optional": true, 376 | "os": [ 377 | "darwin" 378 | ], 379 | "engines": { 380 | "node": ">=18" 381 | } 382 | }, 383 | "node_modules/@esbuild/darwin-x64": { 384 | "version": "0.25.3", 385 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", 386 | "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", 387 | "cpu": [ 388 | "x64" 389 | ], 390 | "license": "MIT", 391 | "optional": true, 392 | "os": [ 393 | "darwin" 394 | ], 395 | "engines": { 396 | "node": ">=18" 397 | } 398 | }, 399 | "node_modules/@esbuild/freebsd-arm64": { 400 | "version": "0.25.3", 401 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", 402 | "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", 403 | "cpu": [ 404 | "arm64" 405 | ], 406 | "license": "MIT", 407 | "optional": true, 408 | "os": [ 409 | "freebsd" 410 | ], 411 | "engines": { 412 | "node": ">=18" 413 | } 414 | }, 415 | "node_modules/@esbuild/freebsd-x64": { 416 | "version": "0.25.3", 417 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", 418 | "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", 419 | "cpu": [ 420 | "x64" 421 | ], 422 | "license": "MIT", 423 | "optional": true, 424 | "os": [ 425 | "freebsd" 426 | ], 427 | "engines": { 428 | "node": ">=18" 429 | } 430 | }, 431 | "node_modules/@esbuild/linux-arm": { 432 | "version": "0.25.3", 433 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", 434 | "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", 435 | "cpu": [ 436 | "arm" 437 | ], 438 | "license": "MIT", 439 | "optional": true, 440 | "os": [ 441 | "linux" 442 | ], 443 | "engines": { 444 | "node": ">=18" 445 | } 446 | }, 447 | "node_modules/@esbuild/linux-arm64": { 448 | "version": "0.25.3", 449 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", 450 | "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", 451 | "cpu": [ 452 | "arm64" 453 | ], 454 | "license": "MIT", 455 | "optional": true, 456 | "os": [ 457 | "linux" 458 | ], 459 | "engines": { 460 | "node": ">=18" 461 | } 462 | }, 463 | "node_modules/@esbuild/linux-ia32": { 464 | "version": "0.25.3", 465 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", 466 | "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", 467 | "cpu": [ 468 | "ia32" 469 | ], 470 | "license": "MIT", 471 | "optional": true, 472 | "os": [ 473 | "linux" 474 | ], 475 | "engines": { 476 | "node": ">=18" 477 | } 478 | }, 479 | "node_modules/@esbuild/linux-loong64": { 480 | "version": "0.25.3", 481 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", 482 | "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", 483 | "cpu": [ 484 | "loong64" 485 | ], 486 | "license": "MIT", 487 | "optional": true, 488 | "os": [ 489 | "linux" 490 | ], 491 | "engines": { 492 | "node": ">=18" 493 | } 494 | }, 495 | "node_modules/@esbuild/linux-mips64el": { 496 | "version": "0.25.3", 497 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", 498 | "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", 499 | "cpu": [ 500 | "mips64el" 501 | ], 502 | "license": "MIT", 503 | "optional": true, 504 | "os": [ 505 | "linux" 506 | ], 507 | "engines": { 508 | "node": ">=18" 509 | } 510 | }, 511 | "node_modules/@esbuild/linux-ppc64": { 512 | "version": "0.25.3", 513 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", 514 | "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", 515 | "cpu": [ 516 | "ppc64" 517 | ], 518 | "license": "MIT", 519 | "optional": true, 520 | "os": [ 521 | "linux" 522 | ], 523 | "engines": { 524 | "node": ">=18" 525 | } 526 | }, 527 | "node_modules/@esbuild/linux-riscv64": { 528 | "version": "0.25.3", 529 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", 530 | "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", 531 | "cpu": [ 532 | "riscv64" 533 | ], 534 | "license": "MIT", 535 | "optional": true, 536 | "os": [ 537 | "linux" 538 | ], 539 | "engines": { 540 | "node": ">=18" 541 | } 542 | }, 543 | "node_modules/@esbuild/linux-s390x": { 544 | "version": "0.25.3", 545 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", 546 | "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", 547 | "cpu": [ 548 | "s390x" 549 | ], 550 | "license": "MIT", 551 | "optional": true, 552 | "os": [ 553 | "linux" 554 | ], 555 | "engines": { 556 | "node": ">=18" 557 | } 558 | }, 559 | "node_modules/@esbuild/linux-x64": { 560 | "version": "0.25.3", 561 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", 562 | "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", 563 | "cpu": [ 564 | "x64" 565 | ], 566 | "license": "MIT", 567 | "optional": true, 568 | "os": [ 569 | "linux" 570 | ], 571 | "engines": { 572 | "node": ">=18" 573 | } 574 | }, 575 | "node_modules/@esbuild/netbsd-arm64": { 576 | "version": "0.25.3", 577 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", 578 | "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", 579 | "cpu": [ 580 | "arm64" 581 | ], 582 | "license": "MIT", 583 | "optional": true, 584 | "os": [ 585 | "netbsd" 586 | ], 587 | "engines": { 588 | "node": ">=18" 589 | } 590 | }, 591 | "node_modules/@esbuild/netbsd-x64": { 592 | "version": "0.25.3", 593 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", 594 | "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", 595 | "cpu": [ 596 | "x64" 597 | ], 598 | "license": "MIT", 599 | "optional": true, 600 | "os": [ 601 | "netbsd" 602 | ], 603 | "engines": { 604 | "node": ">=18" 605 | } 606 | }, 607 | "node_modules/@esbuild/openbsd-arm64": { 608 | "version": "0.25.3", 609 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", 610 | "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", 611 | "cpu": [ 612 | "arm64" 613 | ], 614 | "license": "MIT", 615 | "optional": true, 616 | "os": [ 617 | "openbsd" 618 | ], 619 | "engines": { 620 | "node": ">=18" 621 | } 622 | }, 623 | "node_modules/@esbuild/openbsd-x64": { 624 | "version": "0.25.3", 625 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", 626 | "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", 627 | "cpu": [ 628 | "x64" 629 | ], 630 | "license": "MIT", 631 | "optional": true, 632 | "os": [ 633 | "openbsd" 634 | ], 635 | "engines": { 636 | "node": ">=18" 637 | } 638 | }, 639 | "node_modules/@esbuild/sunos-x64": { 640 | "version": "0.25.3", 641 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", 642 | "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", 643 | "cpu": [ 644 | "x64" 645 | ], 646 | "license": "MIT", 647 | "optional": true, 648 | "os": [ 649 | "sunos" 650 | ], 651 | "engines": { 652 | "node": ">=18" 653 | } 654 | }, 655 | "node_modules/@esbuild/win32-arm64": { 656 | "version": "0.25.3", 657 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", 658 | "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", 659 | "cpu": [ 660 | "arm64" 661 | ], 662 | "license": "MIT", 663 | "optional": true, 664 | "os": [ 665 | "win32" 666 | ], 667 | "engines": { 668 | "node": ">=18" 669 | } 670 | }, 671 | "node_modules/@esbuild/win32-ia32": { 672 | "version": "0.25.3", 673 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", 674 | "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", 675 | "cpu": [ 676 | "ia32" 677 | ], 678 | "license": "MIT", 679 | "optional": true, 680 | "os": [ 681 | "win32" 682 | ], 683 | "engines": { 684 | "node": ">=18" 685 | } 686 | }, 687 | "node_modules/@esbuild/win32-x64": { 688 | "version": "0.25.3", 689 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", 690 | "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", 691 | "cpu": [ 692 | "x64" 693 | ], 694 | "license": "MIT", 695 | "optional": true, 696 | "os": [ 697 | "win32" 698 | ], 699 | "engines": { 700 | "node": ">=18" 701 | } 702 | }, 703 | "node_modules/@floating-ui/core": { 704 | "version": "1.4.1", 705 | "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.4.1.tgz", 706 | "integrity": "sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==", 707 | "dependencies": { 708 | "@floating-ui/utils": "^0.1.1" 709 | } 710 | }, 711 | "node_modules/@floating-ui/dom": { 712 | "version": "1.5.1", 713 | "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", 714 | "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", 715 | "dependencies": { 716 | "@floating-ui/core": "^1.4.1", 717 | "@floating-ui/utils": "^0.1.1" 718 | } 719 | }, 720 | "node_modules/@floating-ui/react-dom": { 721 | "version": "2.0.1", 722 | "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.1.tgz", 723 | "integrity": "sha512-rZtAmSht4Lry6gdhAJDrCp/6rKN7++JnL1/Anbr/DdeyYXQPxvg/ivrbYvJulbRf4vL8b212suwMM2lxbv+RQA==", 724 | "dependencies": { 725 | "@floating-ui/dom": "^1.3.0" 726 | }, 727 | "peerDependencies": { 728 | "react": ">=16.8.0", 729 | "react-dom": ">=16.8.0" 730 | } 731 | }, 732 | "node_modules/@floating-ui/utils": { 733 | "version": "0.1.1", 734 | "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", 735 | "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==" 736 | }, 737 | "node_modules/@jridgewell/gen-mapping": { 738 | "version": "0.3.8", 739 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 740 | "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 741 | "license": "MIT", 742 | "dependencies": { 743 | "@jridgewell/set-array": "^1.2.1", 744 | "@jridgewell/sourcemap-codec": "^1.4.10", 745 | "@jridgewell/trace-mapping": "^0.3.24" 746 | }, 747 | "engines": { 748 | "node": ">=6.0.0" 749 | } 750 | }, 751 | "node_modules/@jridgewell/resolve-uri": { 752 | "version": "3.1.2", 753 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 754 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 755 | "license": "MIT", 756 | "engines": { 757 | "node": ">=6.0.0" 758 | } 759 | }, 760 | "node_modules/@jridgewell/set-array": { 761 | "version": "1.2.1", 762 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 763 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 764 | "license": "MIT", 765 | "engines": { 766 | "node": ">=6.0.0" 767 | } 768 | }, 769 | "node_modules/@jridgewell/sourcemap-codec": { 770 | "version": "1.5.0", 771 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 772 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 773 | "license": "MIT" 774 | }, 775 | "node_modules/@jridgewell/trace-mapping": { 776 | "version": "0.3.25", 777 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 778 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 779 | "license": "MIT", 780 | "dependencies": { 781 | "@jridgewell/resolve-uri": "^3.1.0", 782 | "@jridgewell/sourcemap-codec": "^1.4.14" 783 | } 784 | }, 785 | "node_modules/@radix-ui/primitive": { 786 | "version": "1.0.1", 787 | "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", 788 | "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", 789 | "dependencies": { 790 | "@babel/runtime": "^7.13.10" 791 | } 792 | }, 793 | "node_modules/@radix-ui/react-arrow": { 794 | "version": "1.0.3", 795 | "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", 796 | "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", 797 | "dependencies": { 798 | "@babel/runtime": "^7.13.10", 799 | "@radix-ui/react-primitive": "1.0.3" 800 | }, 801 | "peerDependencies": { 802 | "@types/react": "*", 803 | "@types/react-dom": "*", 804 | "react": "^16.8 || ^17.0 || ^18.0", 805 | "react-dom": "^16.8 || ^17.0 || ^18.0" 806 | }, 807 | "peerDependenciesMeta": { 808 | "@types/react": { 809 | "optional": true 810 | }, 811 | "@types/react-dom": { 812 | "optional": true 813 | } 814 | } 815 | }, 816 | "node_modules/@radix-ui/react-compose-refs": { 817 | "version": "1.0.1", 818 | "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", 819 | "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", 820 | "dependencies": { 821 | "@babel/runtime": "^7.13.10" 822 | }, 823 | "peerDependencies": { 824 | "@types/react": "*", 825 | "react": "^16.8 || ^17.0 || ^18.0" 826 | }, 827 | "peerDependenciesMeta": { 828 | "@types/react": { 829 | "optional": true 830 | } 831 | } 832 | }, 833 | "node_modules/@radix-ui/react-context": { 834 | "version": "1.0.1", 835 | "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", 836 | "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", 837 | "dependencies": { 838 | "@babel/runtime": "^7.13.10" 839 | }, 840 | "peerDependencies": { 841 | "@types/react": "*", 842 | "react": "^16.8 || ^17.0 || ^18.0" 843 | }, 844 | "peerDependenciesMeta": { 845 | "@types/react": { 846 | "optional": true 847 | } 848 | } 849 | }, 850 | "node_modules/@radix-ui/react-dismissable-layer": { 851 | "version": "1.0.4", 852 | "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", 853 | "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", 854 | "dependencies": { 855 | "@babel/runtime": "^7.13.10", 856 | "@radix-ui/primitive": "1.0.1", 857 | "@radix-ui/react-compose-refs": "1.0.1", 858 | "@radix-ui/react-primitive": "1.0.3", 859 | "@radix-ui/react-use-callback-ref": "1.0.1", 860 | "@radix-ui/react-use-escape-keydown": "1.0.3" 861 | }, 862 | "peerDependencies": { 863 | "@types/react": "*", 864 | "@types/react-dom": "*", 865 | "react": "^16.8 || ^17.0 || ^18.0", 866 | "react-dom": "^16.8 || ^17.0 || ^18.0" 867 | }, 868 | "peerDependenciesMeta": { 869 | "@types/react": { 870 | "optional": true 871 | }, 872 | "@types/react-dom": { 873 | "optional": true 874 | } 875 | } 876 | }, 877 | "node_modules/@radix-ui/react-id": { 878 | "version": "1.0.1", 879 | "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", 880 | "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", 881 | "dependencies": { 882 | "@babel/runtime": "^7.13.10", 883 | "@radix-ui/react-use-layout-effect": "1.0.1" 884 | }, 885 | "peerDependencies": { 886 | "@types/react": "*", 887 | "react": "^16.8 || ^17.0 || ^18.0" 888 | }, 889 | "peerDependenciesMeta": { 890 | "@types/react": { 891 | "optional": true 892 | } 893 | } 894 | }, 895 | "node_modules/@radix-ui/react-popper": { 896 | "version": "1.1.2", 897 | "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.2.tgz", 898 | "integrity": "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==", 899 | "dependencies": { 900 | "@babel/runtime": "^7.13.10", 901 | "@floating-ui/react-dom": "^2.0.0", 902 | "@radix-ui/react-arrow": "1.0.3", 903 | "@radix-ui/react-compose-refs": "1.0.1", 904 | "@radix-ui/react-context": "1.0.1", 905 | "@radix-ui/react-primitive": "1.0.3", 906 | "@radix-ui/react-use-callback-ref": "1.0.1", 907 | "@radix-ui/react-use-layout-effect": "1.0.1", 908 | "@radix-ui/react-use-rect": "1.0.1", 909 | "@radix-ui/react-use-size": "1.0.1", 910 | "@radix-ui/rect": "1.0.1" 911 | }, 912 | "peerDependencies": { 913 | "@types/react": "*", 914 | "@types/react-dom": "*", 915 | "react": "^16.8 || ^17.0 || ^18.0", 916 | "react-dom": "^16.8 || ^17.0 || ^18.0" 917 | }, 918 | "peerDependenciesMeta": { 919 | "@types/react": { 920 | "optional": true 921 | }, 922 | "@types/react-dom": { 923 | "optional": true 924 | } 925 | } 926 | }, 927 | "node_modules/@radix-ui/react-portal": { 928 | "version": "1.0.3", 929 | "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", 930 | "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", 931 | "dependencies": { 932 | "@babel/runtime": "^7.13.10", 933 | "@radix-ui/react-primitive": "1.0.3" 934 | }, 935 | "peerDependencies": { 936 | "@types/react": "*", 937 | "@types/react-dom": "*", 938 | "react": "^16.8 || ^17.0 || ^18.0", 939 | "react-dom": "^16.8 || ^17.0 || ^18.0" 940 | }, 941 | "peerDependenciesMeta": { 942 | "@types/react": { 943 | "optional": true 944 | }, 945 | "@types/react-dom": { 946 | "optional": true 947 | } 948 | } 949 | }, 950 | "node_modules/@radix-ui/react-presence": { 951 | "version": "1.0.1", 952 | "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", 953 | "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", 954 | "dependencies": { 955 | "@babel/runtime": "^7.13.10", 956 | "@radix-ui/react-compose-refs": "1.0.1", 957 | "@radix-ui/react-use-layout-effect": "1.0.1" 958 | }, 959 | "peerDependencies": { 960 | "@types/react": "*", 961 | "@types/react-dom": "*", 962 | "react": "^16.8 || ^17.0 || ^18.0", 963 | "react-dom": "^16.8 || ^17.0 || ^18.0" 964 | }, 965 | "peerDependenciesMeta": { 966 | "@types/react": { 967 | "optional": true 968 | }, 969 | "@types/react-dom": { 970 | "optional": true 971 | } 972 | } 973 | }, 974 | "node_modules/@radix-ui/react-primitive": { 975 | "version": "1.0.3", 976 | "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", 977 | "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", 978 | "dependencies": { 979 | "@babel/runtime": "^7.13.10", 980 | "@radix-ui/react-slot": "1.0.2" 981 | }, 982 | "peerDependencies": { 983 | "@types/react": "*", 984 | "@types/react-dom": "*", 985 | "react": "^16.8 || ^17.0 || ^18.0", 986 | "react-dom": "^16.8 || ^17.0 || ^18.0" 987 | }, 988 | "peerDependenciesMeta": { 989 | "@types/react": { 990 | "optional": true 991 | }, 992 | "@types/react-dom": { 993 | "optional": true 994 | } 995 | } 996 | }, 997 | "node_modules/@radix-ui/react-slot": { 998 | "version": "1.0.2", 999 | "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", 1000 | "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", 1001 | "dependencies": { 1002 | "@babel/runtime": "^7.13.10", 1003 | "@radix-ui/react-compose-refs": "1.0.1" 1004 | }, 1005 | "peerDependencies": { 1006 | "@types/react": "*", 1007 | "react": "^16.8 || ^17.0 || ^18.0" 1008 | }, 1009 | "peerDependenciesMeta": { 1010 | "@types/react": { 1011 | "optional": true 1012 | } 1013 | } 1014 | }, 1015 | "node_modules/@radix-ui/react-tooltip": { 1016 | "version": "1.0.6", 1017 | "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.6.tgz", 1018 | "integrity": "sha512-DmNFOiwEc2UDigsYj6clJENma58OelxD24O4IODoZ+3sQc3Zb+L8w1EP+y9laTuKCLAysPw4fD6/v0j4KNV8rg==", 1019 | "dependencies": { 1020 | "@babel/runtime": "^7.13.10", 1021 | "@radix-ui/primitive": "1.0.1", 1022 | "@radix-ui/react-compose-refs": "1.0.1", 1023 | "@radix-ui/react-context": "1.0.1", 1024 | "@radix-ui/react-dismissable-layer": "1.0.4", 1025 | "@radix-ui/react-id": "1.0.1", 1026 | "@radix-ui/react-popper": "1.1.2", 1027 | "@radix-ui/react-portal": "1.0.3", 1028 | "@radix-ui/react-presence": "1.0.1", 1029 | "@radix-ui/react-primitive": "1.0.3", 1030 | "@radix-ui/react-slot": "1.0.2", 1031 | "@radix-ui/react-use-controllable-state": "1.0.1", 1032 | "@radix-ui/react-visually-hidden": "1.0.3" 1033 | }, 1034 | "peerDependencies": { 1035 | "@types/react": "*", 1036 | "@types/react-dom": "*", 1037 | "react": "^16.8 || ^17.0 || ^18.0", 1038 | "react-dom": "^16.8 || ^17.0 || ^18.0" 1039 | }, 1040 | "peerDependenciesMeta": { 1041 | "@types/react": { 1042 | "optional": true 1043 | }, 1044 | "@types/react-dom": { 1045 | "optional": true 1046 | } 1047 | } 1048 | }, 1049 | "node_modules/@radix-ui/react-use-callback-ref": { 1050 | "version": "1.0.1", 1051 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", 1052 | "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", 1053 | "dependencies": { 1054 | "@babel/runtime": "^7.13.10" 1055 | }, 1056 | "peerDependencies": { 1057 | "@types/react": "*", 1058 | "react": "^16.8 || ^17.0 || ^18.0" 1059 | }, 1060 | "peerDependenciesMeta": { 1061 | "@types/react": { 1062 | "optional": true 1063 | } 1064 | } 1065 | }, 1066 | "node_modules/@radix-ui/react-use-controllable-state": { 1067 | "version": "1.0.1", 1068 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", 1069 | "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", 1070 | "dependencies": { 1071 | "@babel/runtime": "^7.13.10", 1072 | "@radix-ui/react-use-callback-ref": "1.0.1" 1073 | }, 1074 | "peerDependencies": { 1075 | "@types/react": "*", 1076 | "react": "^16.8 || ^17.0 || ^18.0" 1077 | }, 1078 | "peerDependenciesMeta": { 1079 | "@types/react": { 1080 | "optional": true 1081 | } 1082 | } 1083 | }, 1084 | "node_modules/@radix-ui/react-use-escape-keydown": { 1085 | "version": "1.0.3", 1086 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", 1087 | "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", 1088 | "dependencies": { 1089 | "@babel/runtime": "^7.13.10", 1090 | "@radix-ui/react-use-callback-ref": "1.0.1" 1091 | }, 1092 | "peerDependencies": { 1093 | "@types/react": "*", 1094 | "react": "^16.8 || ^17.0 || ^18.0" 1095 | }, 1096 | "peerDependenciesMeta": { 1097 | "@types/react": { 1098 | "optional": true 1099 | } 1100 | } 1101 | }, 1102 | "node_modules/@radix-ui/react-use-layout-effect": { 1103 | "version": "1.0.1", 1104 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", 1105 | "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", 1106 | "dependencies": { 1107 | "@babel/runtime": "^7.13.10" 1108 | }, 1109 | "peerDependencies": { 1110 | "@types/react": "*", 1111 | "react": "^16.8 || ^17.0 || ^18.0" 1112 | }, 1113 | "peerDependenciesMeta": { 1114 | "@types/react": { 1115 | "optional": true 1116 | } 1117 | } 1118 | }, 1119 | "node_modules/@radix-ui/react-use-rect": { 1120 | "version": "1.0.1", 1121 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", 1122 | "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", 1123 | "dependencies": { 1124 | "@babel/runtime": "^7.13.10", 1125 | "@radix-ui/rect": "1.0.1" 1126 | }, 1127 | "peerDependencies": { 1128 | "@types/react": "*", 1129 | "react": "^16.8 || ^17.0 || ^18.0" 1130 | }, 1131 | "peerDependenciesMeta": { 1132 | "@types/react": { 1133 | "optional": true 1134 | } 1135 | } 1136 | }, 1137 | "node_modules/@radix-ui/react-use-size": { 1138 | "version": "1.0.1", 1139 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", 1140 | "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", 1141 | "dependencies": { 1142 | "@babel/runtime": "^7.13.10", 1143 | "@radix-ui/react-use-layout-effect": "1.0.1" 1144 | }, 1145 | "peerDependencies": { 1146 | "@types/react": "*", 1147 | "react": "^16.8 || ^17.0 || ^18.0" 1148 | }, 1149 | "peerDependenciesMeta": { 1150 | "@types/react": { 1151 | "optional": true 1152 | } 1153 | } 1154 | }, 1155 | "node_modules/@radix-ui/react-visually-hidden": { 1156 | "version": "1.0.3", 1157 | "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", 1158 | "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", 1159 | "dependencies": { 1160 | "@babel/runtime": "^7.13.10", 1161 | "@radix-ui/react-primitive": "1.0.3" 1162 | }, 1163 | "peerDependencies": { 1164 | "@types/react": "*", 1165 | "@types/react-dom": "*", 1166 | "react": "^16.8 || ^17.0 || ^18.0", 1167 | "react-dom": "^16.8 || ^17.0 || ^18.0" 1168 | }, 1169 | "peerDependenciesMeta": { 1170 | "@types/react": { 1171 | "optional": true 1172 | }, 1173 | "@types/react-dom": { 1174 | "optional": true 1175 | } 1176 | } 1177 | }, 1178 | "node_modules/@radix-ui/rect": { 1179 | "version": "1.0.1", 1180 | "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", 1181 | "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", 1182 | "dependencies": { 1183 | "@babel/runtime": "^7.13.10" 1184 | } 1185 | }, 1186 | "node_modules/@rollup/rollup-android-arm-eabi": { 1187 | "version": "4.40.0", 1188 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", 1189 | "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", 1190 | "cpu": [ 1191 | "arm" 1192 | ], 1193 | "license": "MIT", 1194 | "optional": true, 1195 | "os": [ 1196 | "android" 1197 | ] 1198 | }, 1199 | "node_modules/@rollup/rollup-android-arm64": { 1200 | "version": "4.40.0", 1201 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", 1202 | "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", 1203 | "cpu": [ 1204 | "arm64" 1205 | ], 1206 | "license": "MIT", 1207 | "optional": true, 1208 | "os": [ 1209 | "android" 1210 | ] 1211 | }, 1212 | "node_modules/@rollup/rollup-darwin-arm64": { 1213 | "version": "4.40.0", 1214 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", 1215 | "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", 1216 | "cpu": [ 1217 | "arm64" 1218 | ], 1219 | "license": "MIT", 1220 | "optional": true, 1221 | "os": [ 1222 | "darwin" 1223 | ] 1224 | }, 1225 | "node_modules/@rollup/rollup-darwin-x64": { 1226 | "version": "4.40.0", 1227 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", 1228 | "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", 1229 | "cpu": [ 1230 | "x64" 1231 | ], 1232 | "license": "MIT", 1233 | "optional": true, 1234 | "os": [ 1235 | "darwin" 1236 | ] 1237 | }, 1238 | "node_modules/@rollup/rollup-freebsd-arm64": { 1239 | "version": "4.40.0", 1240 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", 1241 | "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", 1242 | "cpu": [ 1243 | "arm64" 1244 | ], 1245 | "license": "MIT", 1246 | "optional": true, 1247 | "os": [ 1248 | "freebsd" 1249 | ] 1250 | }, 1251 | "node_modules/@rollup/rollup-freebsd-x64": { 1252 | "version": "4.40.0", 1253 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", 1254 | "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", 1255 | "cpu": [ 1256 | "x64" 1257 | ], 1258 | "license": "MIT", 1259 | "optional": true, 1260 | "os": [ 1261 | "freebsd" 1262 | ] 1263 | }, 1264 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1265 | "version": "4.40.0", 1266 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", 1267 | "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", 1268 | "cpu": [ 1269 | "arm" 1270 | ], 1271 | "license": "MIT", 1272 | "optional": true, 1273 | "os": [ 1274 | "linux" 1275 | ] 1276 | }, 1277 | "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1278 | "version": "4.40.0", 1279 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", 1280 | "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", 1281 | "cpu": [ 1282 | "arm" 1283 | ], 1284 | "license": "MIT", 1285 | "optional": true, 1286 | "os": [ 1287 | "linux" 1288 | ] 1289 | }, 1290 | "node_modules/@rollup/rollup-linux-arm64-gnu": { 1291 | "version": "4.40.0", 1292 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", 1293 | "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", 1294 | "cpu": [ 1295 | "arm64" 1296 | ], 1297 | "license": "MIT", 1298 | "optional": true, 1299 | "os": [ 1300 | "linux" 1301 | ] 1302 | }, 1303 | "node_modules/@rollup/rollup-linux-arm64-musl": { 1304 | "version": "4.40.0", 1305 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", 1306 | "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", 1307 | "cpu": [ 1308 | "arm64" 1309 | ], 1310 | "license": "MIT", 1311 | "optional": true, 1312 | "os": [ 1313 | "linux" 1314 | ] 1315 | }, 1316 | "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 1317 | "version": "4.40.0", 1318 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", 1319 | "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", 1320 | "cpu": [ 1321 | "loong64" 1322 | ], 1323 | "license": "MIT", 1324 | "optional": true, 1325 | "os": [ 1326 | "linux" 1327 | ] 1328 | }, 1329 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 1330 | "version": "4.40.0", 1331 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", 1332 | "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", 1333 | "cpu": [ 1334 | "ppc64" 1335 | ], 1336 | "license": "MIT", 1337 | "optional": true, 1338 | "os": [ 1339 | "linux" 1340 | ] 1341 | }, 1342 | "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1343 | "version": "4.40.0", 1344 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", 1345 | "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", 1346 | "cpu": [ 1347 | "riscv64" 1348 | ], 1349 | "license": "MIT", 1350 | "optional": true, 1351 | "os": [ 1352 | "linux" 1353 | ] 1354 | }, 1355 | "node_modules/@rollup/rollup-linux-riscv64-musl": { 1356 | "version": "4.40.0", 1357 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", 1358 | "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", 1359 | "cpu": [ 1360 | "riscv64" 1361 | ], 1362 | "license": "MIT", 1363 | "optional": true, 1364 | "os": [ 1365 | "linux" 1366 | ] 1367 | }, 1368 | "node_modules/@rollup/rollup-linux-s390x-gnu": { 1369 | "version": "4.40.0", 1370 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", 1371 | "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", 1372 | "cpu": [ 1373 | "s390x" 1374 | ], 1375 | "license": "MIT", 1376 | "optional": true, 1377 | "os": [ 1378 | "linux" 1379 | ] 1380 | }, 1381 | "node_modules/@rollup/rollup-linux-x64-gnu": { 1382 | "version": "4.40.0", 1383 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", 1384 | "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", 1385 | "cpu": [ 1386 | "x64" 1387 | ], 1388 | "license": "MIT", 1389 | "optional": true, 1390 | "os": [ 1391 | "linux" 1392 | ] 1393 | }, 1394 | "node_modules/@rollup/rollup-linux-x64-musl": { 1395 | "version": "4.40.0", 1396 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", 1397 | "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", 1398 | "cpu": [ 1399 | "x64" 1400 | ], 1401 | "license": "MIT", 1402 | "optional": true, 1403 | "os": [ 1404 | "linux" 1405 | ] 1406 | }, 1407 | "node_modules/@rollup/rollup-win32-arm64-msvc": { 1408 | "version": "4.40.0", 1409 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", 1410 | "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", 1411 | "cpu": [ 1412 | "arm64" 1413 | ], 1414 | "license": "MIT", 1415 | "optional": true, 1416 | "os": [ 1417 | "win32" 1418 | ] 1419 | }, 1420 | "node_modules/@rollup/rollup-win32-ia32-msvc": { 1421 | "version": "4.40.0", 1422 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", 1423 | "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", 1424 | "cpu": [ 1425 | "ia32" 1426 | ], 1427 | "license": "MIT", 1428 | "optional": true, 1429 | "os": [ 1430 | "win32" 1431 | ] 1432 | }, 1433 | "node_modules/@rollup/rollup-win32-x64-msvc": { 1434 | "version": "4.40.0", 1435 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", 1436 | "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", 1437 | "cpu": [ 1438 | "x64" 1439 | ], 1440 | "license": "MIT", 1441 | "optional": true, 1442 | "os": [ 1443 | "win32" 1444 | ] 1445 | }, 1446 | "node_modules/@stitches/react": { 1447 | "version": "1.2.8", 1448 | "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz", 1449 | "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==", 1450 | "peerDependencies": { 1451 | "react": ">= 16.3.0" 1452 | } 1453 | }, 1454 | "node_modules/@types/babel__core": { 1455 | "version": "7.20.5", 1456 | "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", 1457 | "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", 1458 | "license": "MIT", 1459 | "dependencies": { 1460 | "@babel/parser": "^7.20.7", 1461 | "@babel/types": "^7.20.7", 1462 | "@types/babel__generator": "*", 1463 | "@types/babel__template": "*", 1464 | "@types/babel__traverse": "*" 1465 | } 1466 | }, 1467 | "node_modules/@types/babel__generator": { 1468 | "version": "7.27.0", 1469 | "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", 1470 | "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", 1471 | "license": "MIT", 1472 | "dependencies": { 1473 | "@babel/types": "^7.0.0" 1474 | } 1475 | }, 1476 | "node_modules/@types/babel__template": { 1477 | "version": "7.4.4", 1478 | "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", 1479 | "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", 1480 | "license": "MIT", 1481 | "dependencies": { 1482 | "@babel/parser": "^7.1.0", 1483 | "@babel/types": "^7.0.0" 1484 | } 1485 | }, 1486 | "node_modules/@types/babel__traverse": { 1487 | "version": "7.20.7", 1488 | "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", 1489 | "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", 1490 | "license": "MIT", 1491 | "dependencies": { 1492 | "@babel/types": "^7.20.7" 1493 | } 1494 | }, 1495 | "node_modules/@types/estree": { 1496 | "version": "1.0.7", 1497 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", 1498 | "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", 1499 | "license": "MIT" 1500 | }, 1501 | "node_modules/@types/prop-types": { 1502 | "version": "15.7.5", 1503 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 1504 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 1505 | "devOptional": true 1506 | }, 1507 | "node_modules/@types/react": { 1508 | "version": "18.2.20", 1509 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.20.tgz", 1510 | "integrity": "sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==", 1511 | "devOptional": true, 1512 | "dependencies": { 1513 | "@types/prop-types": "*", 1514 | "@types/scheduler": "*", 1515 | "csstype": "^3.0.2" 1516 | } 1517 | }, 1518 | "node_modules/@types/react-dom": { 1519 | "version": "18.2.7", 1520 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz", 1521 | "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==", 1522 | "devOptional": true, 1523 | "dependencies": { 1524 | "@types/react": "*" 1525 | } 1526 | }, 1527 | "node_modules/@types/scheduler": { 1528 | "version": "0.16.3", 1529 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", 1530 | "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", 1531 | "devOptional": true 1532 | }, 1533 | "node_modules/@use-gesture/core": { 1534 | "version": "10.2.27", 1535 | "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.27.tgz", 1536 | "integrity": "sha512-V4XV7hn9GAD2MYu8yBBVi5iuWBsAMfjPRMsEVzoTNGYH72tf0kFP+OKqGKc8YJFQIJx6yj+AOqxmEHOmx2/MEA==" 1537 | }, 1538 | "node_modules/@use-gesture/react": { 1539 | "version": "10.2.27", 1540 | "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.27.tgz", 1541 | "integrity": "sha512-7E5vnWCxeslWlxwZ8uKIcnUZVMTRMZ8cvSnLLKF1NkyNb3PnNiAzoXM4G1vTKJKRhgOTeI6wK1YsEpwo9ABV5w==", 1542 | "dependencies": { 1543 | "@use-gesture/core": "10.2.27" 1544 | }, 1545 | "peerDependencies": { 1546 | "react": ">= 16.8.0" 1547 | } 1548 | }, 1549 | "node_modules/@vitejs/plugin-react": { 1550 | "version": "4.4.1", 1551 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", 1552 | "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", 1553 | "license": "MIT", 1554 | "dependencies": { 1555 | "@babel/core": "^7.26.10", 1556 | "@babel/plugin-transform-react-jsx-self": "^7.25.9", 1557 | "@babel/plugin-transform-react-jsx-source": "^7.25.9", 1558 | "@types/babel__core": "^7.20.5", 1559 | "react-refresh": "^0.17.0" 1560 | }, 1561 | "engines": { 1562 | "node": "^14.18.0 || >=16.0.0" 1563 | }, 1564 | "peerDependencies": { 1565 | "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" 1566 | } 1567 | }, 1568 | "node_modules/assign-symbols": { 1569 | "version": "1.0.0", 1570 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", 1571 | "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", 1572 | "engines": { 1573 | "node": ">=0.10.0" 1574 | } 1575 | }, 1576 | "node_modules/attr-accept": { 1577 | "version": "2.2.2", 1578 | "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", 1579 | "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", 1580 | "engines": { 1581 | "node": ">=4" 1582 | } 1583 | }, 1584 | "node_modules/browserslist": { 1585 | "version": "4.24.4", 1586 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", 1587 | "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", 1588 | "funding": [ 1589 | { 1590 | "type": "opencollective", 1591 | "url": "https://opencollective.com/browserslist" 1592 | }, 1593 | { 1594 | "type": "tidelift", 1595 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1596 | }, 1597 | { 1598 | "type": "github", 1599 | "url": "https://github.com/sponsors/ai" 1600 | } 1601 | ], 1602 | "license": "MIT", 1603 | "dependencies": { 1604 | "caniuse-lite": "^1.0.30001688", 1605 | "electron-to-chromium": "^1.5.73", 1606 | "node-releases": "^2.0.19", 1607 | "update-browserslist-db": "^1.1.1" 1608 | }, 1609 | "bin": { 1610 | "browserslist": "cli.js" 1611 | }, 1612 | "engines": { 1613 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1614 | } 1615 | }, 1616 | "node_modules/caniuse-lite": { 1617 | "version": "1.0.30001715", 1618 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", 1619 | "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", 1620 | "funding": [ 1621 | { 1622 | "type": "opencollective", 1623 | "url": "https://opencollective.com/browserslist" 1624 | }, 1625 | { 1626 | "type": "tidelift", 1627 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 1628 | }, 1629 | { 1630 | "type": "github", 1631 | "url": "https://github.com/sponsors/ai" 1632 | } 1633 | ], 1634 | "license": "CC-BY-4.0" 1635 | }, 1636 | "node_modules/colord": { 1637 | "version": "2.9.3", 1638 | "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", 1639 | "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" 1640 | }, 1641 | "node_modules/convert-source-map": { 1642 | "version": "2.0.0", 1643 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 1644 | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", 1645 | "license": "MIT" 1646 | }, 1647 | "node_modules/csstype": { 1648 | "version": "3.1.2", 1649 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", 1650 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", 1651 | "devOptional": true 1652 | }, 1653 | "node_modules/debug": { 1654 | "version": "4.4.0", 1655 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 1656 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 1657 | "license": "MIT", 1658 | "dependencies": { 1659 | "ms": "^2.1.3" 1660 | }, 1661 | "engines": { 1662 | "node": ">=6.0" 1663 | }, 1664 | "peerDependenciesMeta": { 1665 | "supports-color": { 1666 | "optional": true 1667 | } 1668 | } 1669 | }, 1670 | "node_modules/dequal": { 1671 | "version": "2.0.3", 1672 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 1673 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 1674 | "engines": { 1675 | "node": ">=6" 1676 | } 1677 | }, 1678 | "node_modules/electron-to-chromium": { 1679 | "version": "1.5.142", 1680 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.142.tgz", 1681 | "integrity": "sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w==", 1682 | "license": "ISC" 1683 | }, 1684 | "node_modules/esbuild": { 1685 | "version": "0.25.3", 1686 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", 1687 | "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", 1688 | "hasInstallScript": true, 1689 | "license": "MIT", 1690 | "bin": { 1691 | "esbuild": "bin/esbuild" 1692 | }, 1693 | "engines": { 1694 | "node": ">=18" 1695 | }, 1696 | "optionalDependencies": { 1697 | "@esbuild/aix-ppc64": "0.25.3", 1698 | "@esbuild/android-arm": "0.25.3", 1699 | "@esbuild/android-arm64": "0.25.3", 1700 | "@esbuild/android-x64": "0.25.3", 1701 | "@esbuild/darwin-arm64": "0.25.3", 1702 | "@esbuild/darwin-x64": "0.25.3", 1703 | "@esbuild/freebsd-arm64": "0.25.3", 1704 | "@esbuild/freebsd-x64": "0.25.3", 1705 | "@esbuild/linux-arm": "0.25.3", 1706 | "@esbuild/linux-arm64": "0.25.3", 1707 | "@esbuild/linux-ia32": "0.25.3", 1708 | "@esbuild/linux-loong64": "0.25.3", 1709 | "@esbuild/linux-mips64el": "0.25.3", 1710 | "@esbuild/linux-ppc64": "0.25.3", 1711 | "@esbuild/linux-riscv64": "0.25.3", 1712 | "@esbuild/linux-s390x": "0.25.3", 1713 | "@esbuild/linux-x64": "0.25.3", 1714 | "@esbuild/netbsd-arm64": "0.25.3", 1715 | "@esbuild/netbsd-x64": "0.25.3", 1716 | "@esbuild/openbsd-arm64": "0.25.3", 1717 | "@esbuild/openbsd-x64": "0.25.3", 1718 | "@esbuild/sunos-x64": "0.25.3", 1719 | "@esbuild/win32-arm64": "0.25.3", 1720 | "@esbuild/win32-ia32": "0.25.3", 1721 | "@esbuild/win32-x64": "0.25.3" 1722 | } 1723 | }, 1724 | "node_modules/escalade": { 1725 | "version": "3.2.0", 1726 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 1727 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 1728 | "license": "MIT", 1729 | "engines": { 1730 | "node": ">=6" 1731 | } 1732 | }, 1733 | "node_modules/extend-shallow": { 1734 | "version": "2.0.1", 1735 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1736 | "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", 1737 | "dependencies": { 1738 | "is-extendable": "^0.1.0" 1739 | }, 1740 | "engines": { 1741 | "node": ">=0.10.0" 1742 | } 1743 | }, 1744 | "node_modules/extend-shallow/node_modules/is-extendable": { 1745 | "version": "0.1.1", 1746 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 1747 | "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", 1748 | "engines": { 1749 | "node": ">=0.10.0" 1750 | } 1751 | }, 1752 | "node_modules/fdir": { 1753 | "version": "6.4.4", 1754 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", 1755 | "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", 1756 | "license": "MIT", 1757 | "peerDependencies": { 1758 | "picomatch": "^3 || ^4" 1759 | }, 1760 | "peerDependenciesMeta": { 1761 | "picomatch": { 1762 | "optional": true 1763 | } 1764 | } 1765 | }, 1766 | "node_modules/file-selector": { 1767 | "version": "0.5.0", 1768 | "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.5.0.tgz", 1769 | "integrity": "sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA==", 1770 | "dependencies": { 1771 | "tslib": "^2.0.3" 1772 | }, 1773 | "engines": { 1774 | "node": ">= 10" 1775 | } 1776 | }, 1777 | "node_modules/for-in": { 1778 | "version": "1.0.2", 1779 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1780 | "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", 1781 | "engines": { 1782 | "node": ">=0.10.0" 1783 | } 1784 | }, 1785 | "node_modules/fsevents": { 1786 | "version": "2.3.3", 1787 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1788 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1789 | "hasInstallScript": true, 1790 | "license": "MIT", 1791 | "optional": true, 1792 | "os": [ 1793 | "darwin" 1794 | ], 1795 | "engines": { 1796 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1797 | } 1798 | }, 1799 | "node_modules/gensync": { 1800 | "version": "1.0.0-beta.2", 1801 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1802 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1803 | "license": "MIT", 1804 | "engines": { 1805 | "node": ">=6.9.0" 1806 | } 1807 | }, 1808 | "node_modules/get-value": { 1809 | "version": "2.0.6", 1810 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 1811 | "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", 1812 | "engines": { 1813 | "node": ">=0.10.0" 1814 | } 1815 | }, 1816 | "node_modules/globals": { 1817 | "version": "11.12.0", 1818 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1819 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1820 | "license": "MIT", 1821 | "engines": { 1822 | "node": ">=4" 1823 | } 1824 | }, 1825 | "node_modules/is-extendable": { 1826 | "version": "1.0.1", 1827 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 1828 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 1829 | "dependencies": { 1830 | "is-plain-object": "^2.0.4" 1831 | }, 1832 | "engines": { 1833 | "node": ">=0.10.0" 1834 | } 1835 | }, 1836 | "node_modules/is-plain-object": { 1837 | "version": "2.0.4", 1838 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 1839 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 1840 | "dependencies": { 1841 | "isobject": "^3.0.1" 1842 | }, 1843 | "engines": { 1844 | "node": ">=0.10.0" 1845 | } 1846 | }, 1847 | "node_modules/isobject": { 1848 | "version": "3.0.1", 1849 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 1850 | "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", 1851 | "engines": { 1852 | "node": ">=0.10.0" 1853 | } 1854 | }, 1855 | "node_modules/js-tokens": { 1856 | "version": "4.0.0", 1857 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1858 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1859 | }, 1860 | "node_modules/jsesc": { 1861 | "version": "3.1.0", 1862 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 1863 | "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 1864 | "license": "MIT", 1865 | "bin": { 1866 | "jsesc": "bin/jsesc" 1867 | }, 1868 | "engines": { 1869 | "node": ">=6" 1870 | } 1871 | }, 1872 | "node_modules/json5": { 1873 | "version": "2.2.3", 1874 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 1875 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 1876 | "license": "MIT", 1877 | "bin": { 1878 | "json5": "lib/cli.js" 1879 | }, 1880 | "engines": { 1881 | "node": ">=6" 1882 | } 1883 | }, 1884 | "node_modules/leva": { 1885 | "version": "0.9.35", 1886 | "resolved": "https://registry.npmjs.org/leva/-/leva-0.9.35.tgz", 1887 | "integrity": "sha512-sp/ZbHGrrzM+eq+wIAc9X7C5qFagNERYkwaulKI/xy0XrDPV67jLUSSqTCFSoSc0Uk96j3oephYoO/6I8mZNuw==", 1888 | "dependencies": { 1889 | "@radix-ui/react-portal": "^1.0.2", 1890 | "@radix-ui/react-tooltip": "^1.0.5", 1891 | "@stitches/react": "^1.2.8", 1892 | "@use-gesture/react": "^10.2.5", 1893 | "colord": "^2.9.2", 1894 | "dequal": "^2.0.2", 1895 | "merge-value": "^1.0.0", 1896 | "react-colorful": "^5.5.1", 1897 | "react-dropzone": "^12.0.0", 1898 | "v8n": "^1.3.3", 1899 | "zustand": "^3.6.9" 1900 | }, 1901 | "peerDependencies": { 1902 | "react": ">=16.8.0", 1903 | "react-dom": ">=16.8.0" 1904 | } 1905 | }, 1906 | "node_modules/loose-envify": { 1907 | "version": "1.4.0", 1908 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1909 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1910 | "dependencies": { 1911 | "js-tokens": "^3.0.0 || ^4.0.0" 1912 | }, 1913 | "bin": { 1914 | "loose-envify": "cli.js" 1915 | } 1916 | }, 1917 | "node_modules/lru-cache": { 1918 | "version": "5.1.1", 1919 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 1920 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 1921 | "license": "ISC", 1922 | "dependencies": { 1923 | "yallist": "^3.0.2" 1924 | } 1925 | }, 1926 | "node_modules/merge-value": { 1927 | "version": "1.0.0", 1928 | "resolved": "https://registry.npmjs.org/merge-value/-/merge-value-1.0.0.tgz", 1929 | "integrity": "sha512-fJMmvat4NeKz63Uv9iHWcPDjCWcCkoiRoajRTEO8hlhUC6rwaHg0QCF9hBOTjZmm4JuglPckPSTtcuJL5kp0TQ==", 1930 | "dependencies": { 1931 | "get-value": "^2.0.6", 1932 | "is-extendable": "^1.0.0", 1933 | "mixin-deep": "^1.2.0", 1934 | "set-value": "^2.0.0" 1935 | }, 1936 | "engines": { 1937 | "node": ">=0.10.0" 1938 | } 1939 | }, 1940 | "node_modules/mixin-deep": { 1941 | "version": "1.3.2", 1942 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", 1943 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", 1944 | "dependencies": { 1945 | "for-in": "^1.0.2", 1946 | "is-extendable": "^1.0.1" 1947 | }, 1948 | "engines": { 1949 | "node": ">=0.10.0" 1950 | } 1951 | }, 1952 | "node_modules/ms": { 1953 | "version": "2.1.3", 1954 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1955 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 1956 | "license": "MIT" 1957 | }, 1958 | "node_modules/nanoid": { 1959 | "version": "3.3.11", 1960 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 1961 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 1962 | "funding": [ 1963 | { 1964 | "type": "github", 1965 | "url": "https://github.com/sponsors/ai" 1966 | } 1967 | ], 1968 | "license": "MIT", 1969 | "bin": { 1970 | "nanoid": "bin/nanoid.cjs" 1971 | }, 1972 | "engines": { 1973 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1974 | } 1975 | }, 1976 | "node_modules/node-releases": { 1977 | "version": "2.0.19", 1978 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", 1979 | "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", 1980 | "license": "MIT" 1981 | }, 1982 | "node_modules/object-assign": { 1983 | "version": "4.1.1", 1984 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1985 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1986 | "engines": { 1987 | "node": ">=0.10.0" 1988 | } 1989 | }, 1990 | "node_modules/picocolors": { 1991 | "version": "1.1.1", 1992 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 1993 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 1994 | "license": "ISC" 1995 | }, 1996 | "node_modules/picomatch": { 1997 | "version": "4.0.2", 1998 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 1999 | "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 2000 | "license": "MIT", 2001 | "engines": { 2002 | "node": ">=12" 2003 | }, 2004 | "funding": { 2005 | "url": "https://github.com/sponsors/jonschlinkert" 2006 | } 2007 | }, 2008 | "node_modules/postcss": { 2009 | "version": "8.5.3", 2010 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", 2011 | "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", 2012 | "funding": [ 2013 | { 2014 | "type": "opencollective", 2015 | "url": "https://opencollective.com/postcss/" 2016 | }, 2017 | { 2018 | "type": "tidelift", 2019 | "url": "https://tidelift.com/funding/github/npm/postcss" 2020 | }, 2021 | { 2022 | "type": "github", 2023 | "url": "https://github.com/sponsors/ai" 2024 | } 2025 | ], 2026 | "license": "MIT", 2027 | "dependencies": { 2028 | "nanoid": "^3.3.8", 2029 | "picocolors": "^1.1.1", 2030 | "source-map-js": "^1.2.1" 2031 | }, 2032 | "engines": { 2033 | "node": "^10 || ^12 || >=14" 2034 | } 2035 | }, 2036 | "node_modules/prop-types": { 2037 | "version": "15.8.1", 2038 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 2039 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 2040 | "dependencies": { 2041 | "loose-envify": "^1.4.0", 2042 | "object-assign": "^4.1.1", 2043 | "react-is": "^16.13.1" 2044 | } 2045 | }, 2046 | "node_modules/react": { 2047 | "version": "18.2.0", 2048 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 2049 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 2050 | "dependencies": { 2051 | "loose-envify": "^1.1.0" 2052 | }, 2053 | "engines": { 2054 | "node": ">=0.10.0" 2055 | } 2056 | }, 2057 | "node_modules/react-colorful": { 2058 | "version": "5.6.1", 2059 | "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", 2060 | "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", 2061 | "peerDependencies": { 2062 | "react": ">=16.8.0", 2063 | "react-dom": ">=16.8.0" 2064 | } 2065 | }, 2066 | "node_modules/react-dom": { 2067 | "version": "18.2.0", 2068 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 2069 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 2070 | "dependencies": { 2071 | "loose-envify": "^1.1.0", 2072 | "scheduler": "^0.23.0" 2073 | }, 2074 | "peerDependencies": { 2075 | "react": "^18.2.0" 2076 | } 2077 | }, 2078 | "node_modules/react-dropzone": { 2079 | "version": "12.1.0", 2080 | "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-12.1.0.tgz", 2081 | "integrity": "sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog==", 2082 | "dependencies": { 2083 | "attr-accept": "^2.2.2", 2084 | "file-selector": "^0.5.0", 2085 | "prop-types": "^15.8.1" 2086 | }, 2087 | "engines": { 2088 | "node": ">= 10.13" 2089 | }, 2090 | "peerDependencies": { 2091 | "react": ">= 16.8" 2092 | } 2093 | }, 2094 | "node_modules/react-is": { 2095 | "version": "16.13.1", 2096 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 2097 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 2098 | }, 2099 | "node_modules/react-refresh": { 2100 | "version": "0.17.0", 2101 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", 2102 | "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", 2103 | "license": "MIT", 2104 | "engines": { 2105 | "node": ">=0.10.0" 2106 | } 2107 | }, 2108 | "node_modules/regenerator-runtime": { 2109 | "version": "0.14.0", 2110 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", 2111 | "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" 2112 | }, 2113 | "node_modules/rollup": { 2114 | "version": "4.40.0", 2115 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", 2116 | "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", 2117 | "license": "MIT", 2118 | "dependencies": { 2119 | "@types/estree": "1.0.7" 2120 | }, 2121 | "bin": { 2122 | "rollup": "dist/bin/rollup" 2123 | }, 2124 | "engines": { 2125 | "node": ">=18.0.0", 2126 | "npm": ">=8.0.0" 2127 | }, 2128 | "optionalDependencies": { 2129 | "@rollup/rollup-android-arm-eabi": "4.40.0", 2130 | "@rollup/rollup-android-arm64": "4.40.0", 2131 | "@rollup/rollup-darwin-arm64": "4.40.0", 2132 | "@rollup/rollup-darwin-x64": "4.40.0", 2133 | "@rollup/rollup-freebsd-arm64": "4.40.0", 2134 | "@rollup/rollup-freebsd-x64": "4.40.0", 2135 | "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", 2136 | "@rollup/rollup-linux-arm-musleabihf": "4.40.0", 2137 | "@rollup/rollup-linux-arm64-gnu": "4.40.0", 2138 | "@rollup/rollup-linux-arm64-musl": "4.40.0", 2139 | "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", 2140 | "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", 2141 | "@rollup/rollup-linux-riscv64-gnu": "4.40.0", 2142 | "@rollup/rollup-linux-riscv64-musl": "4.40.0", 2143 | "@rollup/rollup-linux-s390x-gnu": "4.40.0", 2144 | "@rollup/rollup-linux-x64-gnu": "4.40.0", 2145 | "@rollup/rollup-linux-x64-musl": "4.40.0", 2146 | "@rollup/rollup-win32-arm64-msvc": "4.40.0", 2147 | "@rollup/rollup-win32-ia32-msvc": "4.40.0", 2148 | "@rollup/rollup-win32-x64-msvc": "4.40.0", 2149 | "fsevents": "~2.3.2" 2150 | } 2151 | }, 2152 | "node_modules/scheduler": { 2153 | "version": "0.23.0", 2154 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 2155 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 2156 | "dependencies": { 2157 | "loose-envify": "^1.1.0" 2158 | } 2159 | }, 2160 | "node_modules/semver": { 2161 | "version": "6.3.1", 2162 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 2163 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 2164 | "license": "ISC", 2165 | "bin": { 2166 | "semver": "bin/semver.js" 2167 | } 2168 | }, 2169 | "node_modules/set-value": { 2170 | "version": "2.0.1", 2171 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", 2172 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", 2173 | "dependencies": { 2174 | "extend-shallow": "^2.0.1", 2175 | "is-extendable": "^0.1.1", 2176 | "is-plain-object": "^2.0.3", 2177 | "split-string": "^3.0.1" 2178 | }, 2179 | "engines": { 2180 | "node": ">=0.10.0" 2181 | } 2182 | }, 2183 | "node_modules/set-value/node_modules/is-extendable": { 2184 | "version": "0.1.1", 2185 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2186 | "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", 2187 | "engines": { 2188 | "node": ">=0.10.0" 2189 | } 2190 | }, 2191 | "node_modules/source-map-js": { 2192 | "version": "1.2.1", 2193 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 2194 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 2195 | "license": "BSD-3-Clause", 2196 | "engines": { 2197 | "node": ">=0.10.0" 2198 | } 2199 | }, 2200 | "node_modules/split-string": { 2201 | "version": "3.1.0", 2202 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 2203 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", 2204 | "dependencies": { 2205 | "extend-shallow": "^3.0.0" 2206 | }, 2207 | "engines": { 2208 | "node": ">=0.10.0" 2209 | } 2210 | }, 2211 | "node_modules/split-string/node_modules/extend-shallow": { 2212 | "version": "3.0.2", 2213 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", 2214 | "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", 2215 | "dependencies": { 2216 | "assign-symbols": "^1.0.0", 2217 | "is-extendable": "^1.0.1" 2218 | }, 2219 | "engines": { 2220 | "node": ">=0.10.0" 2221 | } 2222 | }, 2223 | "node_modules/three": { 2224 | "version": "0.176.0", 2225 | "resolved": "https://registry.npmjs.org/three/-/three-0.176.0.tgz", 2226 | "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==", 2227 | "license": "MIT" 2228 | }, 2229 | "node_modules/tinyglobby": { 2230 | "version": "0.2.13", 2231 | "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", 2232 | "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", 2233 | "license": "MIT", 2234 | "dependencies": { 2235 | "fdir": "^6.4.4", 2236 | "picomatch": "^4.0.2" 2237 | }, 2238 | "engines": { 2239 | "node": ">=12.0.0" 2240 | }, 2241 | "funding": { 2242 | "url": "https://github.com/sponsors/SuperchupuDev" 2243 | } 2244 | }, 2245 | "node_modules/tslib": { 2246 | "version": "2.6.2", 2247 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", 2248 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" 2249 | }, 2250 | "node_modules/update-browserslist-db": { 2251 | "version": "1.1.3", 2252 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 2253 | "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 2254 | "funding": [ 2255 | { 2256 | "type": "opencollective", 2257 | "url": "https://opencollective.com/browserslist" 2258 | }, 2259 | { 2260 | "type": "tidelift", 2261 | "url": "https://tidelift.com/funding/github/npm/browserslist" 2262 | }, 2263 | { 2264 | "type": "github", 2265 | "url": "https://github.com/sponsors/ai" 2266 | } 2267 | ], 2268 | "license": "MIT", 2269 | "dependencies": { 2270 | "escalade": "^3.2.0", 2271 | "picocolors": "^1.1.1" 2272 | }, 2273 | "bin": { 2274 | "update-browserslist-db": "cli.js" 2275 | }, 2276 | "peerDependencies": { 2277 | "browserslist": ">= 4.21.0" 2278 | } 2279 | }, 2280 | "node_modules/v8n": { 2281 | "version": "1.5.1", 2282 | "resolved": "https://registry.npmjs.org/v8n/-/v8n-1.5.1.tgz", 2283 | "integrity": "sha512-LdabyT4OffkyXFCe9UT+uMkxNBs5rcTVuZClvxQr08D5TUgo1OFKkoT65qYRCsiKBl/usHjpXvP4hHMzzDRj3A==" 2284 | }, 2285 | "node_modules/vite": { 2286 | "version": "6.3.3", 2287 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.3.tgz", 2288 | "integrity": "sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==", 2289 | "license": "MIT", 2290 | "dependencies": { 2291 | "esbuild": "^0.25.0", 2292 | "fdir": "^6.4.4", 2293 | "picomatch": "^4.0.2", 2294 | "postcss": "^8.5.3", 2295 | "rollup": "^4.34.9", 2296 | "tinyglobby": "^0.2.13" 2297 | }, 2298 | "bin": { 2299 | "vite": "bin/vite.js" 2300 | }, 2301 | "engines": { 2302 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 2303 | }, 2304 | "funding": { 2305 | "url": "https://github.com/vitejs/vite?sponsor=1" 2306 | }, 2307 | "optionalDependencies": { 2308 | "fsevents": "~2.3.3" 2309 | }, 2310 | "peerDependencies": { 2311 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 2312 | "jiti": ">=1.21.0", 2313 | "less": "*", 2314 | "lightningcss": "^1.21.0", 2315 | "sass": "*", 2316 | "sass-embedded": "*", 2317 | "stylus": "*", 2318 | "sugarss": "*", 2319 | "terser": "^5.16.0", 2320 | "tsx": "^4.8.1", 2321 | "yaml": "^2.4.2" 2322 | }, 2323 | "peerDependenciesMeta": { 2324 | "@types/node": { 2325 | "optional": true 2326 | }, 2327 | "jiti": { 2328 | "optional": true 2329 | }, 2330 | "less": { 2331 | "optional": true 2332 | }, 2333 | "lightningcss": { 2334 | "optional": true 2335 | }, 2336 | "sass": { 2337 | "optional": true 2338 | }, 2339 | "sass-embedded": { 2340 | "optional": true 2341 | }, 2342 | "stylus": { 2343 | "optional": true 2344 | }, 2345 | "sugarss": { 2346 | "optional": true 2347 | }, 2348 | "terser": { 2349 | "optional": true 2350 | }, 2351 | "tsx": { 2352 | "optional": true 2353 | }, 2354 | "yaml": { 2355 | "optional": true 2356 | } 2357 | } 2358 | }, 2359 | "node_modules/yallist": { 2360 | "version": "3.1.1", 2361 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 2362 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 2363 | "license": "ISC" 2364 | }, 2365 | "node_modules/zustand": { 2366 | "version": "3.7.2", 2367 | "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz", 2368 | "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==", 2369 | "engines": { 2370 | "node": ">=12.7.0" 2371 | }, 2372 | "peerDependencies": { 2373 | "react": ">=16.8" 2374 | }, 2375 | "peerDependenciesMeta": { 2376 | "react": { 2377 | "optional": true 2378 | } 2379 | } 2380 | } 2381 | }, 2382 | "dependencies": { 2383 | "@ampproject/remapping": { 2384 | "version": "2.3.0", 2385 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 2386 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 2387 | "requires": { 2388 | "@jridgewell/gen-mapping": "^0.3.5", 2389 | "@jridgewell/trace-mapping": "^0.3.24" 2390 | } 2391 | }, 2392 | "@babel/code-frame": { 2393 | "version": "7.26.2", 2394 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", 2395 | "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", 2396 | "requires": { 2397 | "@babel/helper-validator-identifier": "^7.25.9", 2398 | "js-tokens": "^4.0.0", 2399 | "picocolors": "^1.0.0" 2400 | } 2401 | }, 2402 | "@babel/compat-data": { 2403 | "version": "7.26.8", 2404 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", 2405 | "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==" 2406 | }, 2407 | "@babel/core": { 2408 | "version": "7.26.10", 2409 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", 2410 | "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", 2411 | "requires": { 2412 | "@ampproject/remapping": "^2.2.0", 2413 | "@babel/code-frame": "^7.26.2", 2414 | "@babel/generator": "^7.26.10", 2415 | "@babel/helper-compilation-targets": "^7.26.5", 2416 | "@babel/helper-module-transforms": "^7.26.0", 2417 | "@babel/helpers": "^7.26.10", 2418 | "@babel/parser": "^7.26.10", 2419 | "@babel/template": "^7.26.9", 2420 | "@babel/traverse": "^7.26.10", 2421 | "@babel/types": "^7.26.10", 2422 | "convert-source-map": "^2.0.0", 2423 | "debug": "^4.1.0", 2424 | "gensync": "^1.0.0-beta.2", 2425 | "json5": "^2.2.3", 2426 | "semver": "^6.3.1" 2427 | } 2428 | }, 2429 | "@babel/generator": { 2430 | "version": "7.27.0", 2431 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", 2432 | "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", 2433 | "requires": { 2434 | "@babel/parser": "^7.27.0", 2435 | "@babel/types": "^7.27.0", 2436 | "@jridgewell/gen-mapping": "^0.3.5", 2437 | "@jridgewell/trace-mapping": "^0.3.25", 2438 | "jsesc": "^3.0.2" 2439 | } 2440 | }, 2441 | "@babel/helper-compilation-targets": { 2442 | "version": "7.27.0", 2443 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", 2444 | "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", 2445 | "requires": { 2446 | "@babel/compat-data": "^7.26.8", 2447 | "@babel/helper-validator-option": "^7.25.9", 2448 | "browserslist": "^4.24.0", 2449 | "lru-cache": "^5.1.1", 2450 | "semver": "^6.3.1" 2451 | } 2452 | }, 2453 | "@babel/helper-module-imports": { 2454 | "version": "7.25.9", 2455 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", 2456 | "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", 2457 | "requires": { 2458 | "@babel/traverse": "^7.25.9", 2459 | "@babel/types": "^7.25.9" 2460 | } 2461 | }, 2462 | "@babel/helper-module-transforms": { 2463 | "version": "7.26.0", 2464 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", 2465 | "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", 2466 | "requires": { 2467 | "@babel/helper-module-imports": "^7.25.9", 2468 | "@babel/helper-validator-identifier": "^7.25.9", 2469 | "@babel/traverse": "^7.25.9" 2470 | } 2471 | }, 2472 | "@babel/helper-plugin-utils": { 2473 | "version": "7.26.5", 2474 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", 2475 | "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==" 2476 | }, 2477 | "@babel/helper-string-parser": { 2478 | "version": "7.25.9", 2479 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", 2480 | "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" 2481 | }, 2482 | "@babel/helper-validator-identifier": { 2483 | "version": "7.25.9", 2484 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", 2485 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" 2486 | }, 2487 | "@babel/helper-validator-option": { 2488 | "version": "7.25.9", 2489 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", 2490 | "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==" 2491 | }, 2492 | "@babel/helpers": { 2493 | "version": "7.27.0", 2494 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", 2495 | "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", 2496 | "requires": { 2497 | "@babel/template": "^7.27.0", 2498 | "@babel/types": "^7.27.0" 2499 | } 2500 | }, 2501 | "@babel/parser": { 2502 | "version": "7.27.0", 2503 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", 2504 | "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", 2505 | "requires": { 2506 | "@babel/types": "^7.27.0" 2507 | } 2508 | }, 2509 | "@babel/plugin-transform-react-jsx-self": { 2510 | "version": "7.25.9", 2511 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", 2512 | "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", 2513 | "requires": { 2514 | "@babel/helper-plugin-utils": "^7.25.9" 2515 | } 2516 | }, 2517 | "@babel/plugin-transform-react-jsx-source": { 2518 | "version": "7.25.9", 2519 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", 2520 | "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", 2521 | "requires": { 2522 | "@babel/helper-plugin-utils": "^7.25.9" 2523 | } 2524 | }, 2525 | "@babel/runtime": { 2526 | "version": "7.27.0", 2527 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", 2528 | "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", 2529 | "requires": { 2530 | "regenerator-runtime": "^0.14.0" 2531 | } 2532 | }, 2533 | "@babel/template": { 2534 | "version": "7.27.0", 2535 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", 2536 | "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", 2537 | "requires": { 2538 | "@babel/code-frame": "^7.26.2", 2539 | "@babel/parser": "^7.27.0", 2540 | "@babel/types": "^7.27.0" 2541 | } 2542 | }, 2543 | "@babel/traverse": { 2544 | "version": "7.27.0", 2545 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", 2546 | "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", 2547 | "requires": { 2548 | "@babel/code-frame": "^7.26.2", 2549 | "@babel/generator": "^7.27.0", 2550 | "@babel/parser": "^7.27.0", 2551 | "@babel/template": "^7.27.0", 2552 | "@babel/types": "^7.27.0", 2553 | "debug": "^4.3.1", 2554 | "globals": "^11.1.0" 2555 | } 2556 | }, 2557 | "@babel/types": { 2558 | "version": "7.27.0", 2559 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", 2560 | "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", 2561 | "requires": { 2562 | "@babel/helper-string-parser": "^7.25.9", 2563 | "@babel/helper-validator-identifier": "^7.25.9" 2564 | } 2565 | }, 2566 | "@esbuild/aix-ppc64": { 2567 | "version": "0.25.3", 2568 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", 2569 | "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", 2570 | "optional": true 2571 | }, 2572 | "@esbuild/android-arm": { 2573 | "version": "0.25.3", 2574 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", 2575 | "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", 2576 | "optional": true 2577 | }, 2578 | "@esbuild/android-arm64": { 2579 | "version": "0.25.3", 2580 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", 2581 | "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", 2582 | "optional": true 2583 | }, 2584 | "@esbuild/android-x64": { 2585 | "version": "0.25.3", 2586 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", 2587 | "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", 2588 | "optional": true 2589 | }, 2590 | "@esbuild/darwin-arm64": { 2591 | "version": "0.25.3", 2592 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", 2593 | "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", 2594 | "optional": true 2595 | }, 2596 | "@esbuild/darwin-x64": { 2597 | "version": "0.25.3", 2598 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", 2599 | "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", 2600 | "optional": true 2601 | }, 2602 | "@esbuild/freebsd-arm64": { 2603 | "version": "0.25.3", 2604 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", 2605 | "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", 2606 | "optional": true 2607 | }, 2608 | "@esbuild/freebsd-x64": { 2609 | "version": "0.25.3", 2610 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", 2611 | "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", 2612 | "optional": true 2613 | }, 2614 | "@esbuild/linux-arm": { 2615 | "version": "0.25.3", 2616 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", 2617 | "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", 2618 | "optional": true 2619 | }, 2620 | "@esbuild/linux-arm64": { 2621 | "version": "0.25.3", 2622 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", 2623 | "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", 2624 | "optional": true 2625 | }, 2626 | "@esbuild/linux-ia32": { 2627 | "version": "0.25.3", 2628 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", 2629 | "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", 2630 | "optional": true 2631 | }, 2632 | "@esbuild/linux-loong64": { 2633 | "version": "0.25.3", 2634 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", 2635 | "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", 2636 | "optional": true 2637 | }, 2638 | "@esbuild/linux-mips64el": { 2639 | "version": "0.25.3", 2640 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", 2641 | "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", 2642 | "optional": true 2643 | }, 2644 | "@esbuild/linux-ppc64": { 2645 | "version": "0.25.3", 2646 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", 2647 | "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", 2648 | "optional": true 2649 | }, 2650 | "@esbuild/linux-riscv64": { 2651 | "version": "0.25.3", 2652 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", 2653 | "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", 2654 | "optional": true 2655 | }, 2656 | "@esbuild/linux-s390x": { 2657 | "version": "0.25.3", 2658 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", 2659 | "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", 2660 | "optional": true 2661 | }, 2662 | "@esbuild/linux-x64": { 2663 | "version": "0.25.3", 2664 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", 2665 | "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", 2666 | "optional": true 2667 | }, 2668 | "@esbuild/netbsd-arm64": { 2669 | "version": "0.25.3", 2670 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", 2671 | "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", 2672 | "optional": true 2673 | }, 2674 | "@esbuild/netbsd-x64": { 2675 | "version": "0.25.3", 2676 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", 2677 | "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", 2678 | "optional": true 2679 | }, 2680 | "@esbuild/openbsd-arm64": { 2681 | "version": "0.25.3", 2682 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", 2683 | "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", 2684 | "optional": true 2685 | }, 2686 | "@esbuild/openbsd-x64": { 2687 | "version": "0.25.3", 2688 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", 2689 | "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", 2690 | "optional": true 2691 | }, 2692 | "@esbuild/sunos-x64": { 2693 | "version": "0.25.3", 2694 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", 2695 | "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", 2696 | "optional": true 2697 | }, 2698 | "@esbuild/win32-arm64": { 2699 | "version": "0.25.3", 2700 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", 2701 | "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", 2702 | "optional": true 2703 | }, 2704 | "@esbuild/win32-ia32": { 2705 | "version": "0.25.3", 2706 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", 2707 | "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", 2708 | "optional": true 2709 | }, 2710 | "@esbuild/win32-x64": { 2711 | "version": "0.25.3", 2712 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", 2713 | "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", 2714 | "optional": true 2715 | }, 2716 | "@floating-ui/core": { 2717 | "version": "1.4.1", 2718 | "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.4.1.tgz", 2719 | "integrity": "sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==", 2720 | "requires": { 2721 | "@floating-ui/utils": "^0.1.1" 2722 | } 2723 | }, 2724 | "@floating-ui/dom": { 2725 | "version": "1.5.1", 2726 | "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", 2727 | "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", 2728 | "requires": { 2729 | "@floating-ui/core": "^1.4.1", 2730 | "@floating-ui/utils": "^0.1.1" 2731 | } 2732 | }, 2733 | "@floating-ui/react-dom": { 2734 | "version": "2.0.1", 2735 | "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.1.tgz", 2736 | "integrity": "sha512-rZtAmSht4Lry6gdhAJDrCp/6rKN7++JnL1/Anbr/DdeyYXQPxvg/ivrbYvJulbRf4vL8b212suwMM2lxbv+RQA==", 2737 | "requires": { 2738 | "@floating-ui/dom": "^1.3.0" 2739 | } 2740 | }, 2741 | "@floating-ui/utils": { 2742 | "version": "0.1.1", 2743 | "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", 2744 | "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==" 2745 | }, 2746 | "@jridgewell/gen-mapping": { 2747 | "version": "0.3.8", 2748 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 2749 | "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 2750 | "requires": { 2751 | "@jridgewell/set-array": "^1.2.1", 2752 | "@jridgewell/sourcemap-codec": "^1.4.10", 2753 | "@jridgewell/trace-mapping": "^0.3.24" 2754 | } 2755 | }, 2756 | "@jridgewell/resolve-uri": { 2757 | "version": "3.1.2", 2758 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 2759 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" 2760 | }, 2761 | "@jridgewell/set-array": { 2762 | "version": "1.2.1", 2763 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 2764 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" 2765 | }, 2766 | "@jridgewell/sourcemap-codec": { 2767 | "version": "1.5.0", 2768 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 2769 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" 2770 | }, 2771 | "@jridgewell/trace-mapping": { 2772 | "version": "0.3.25", 2773 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 2774 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 2775 | "requires": { 2776 | "@jridgewell/resolve-uri": "^3.1.0", 2777 | "@jridgewell/sourcemap-codec": "^1.4.14" 2778 | } 2779 | }, 2780 | "@radix-ui/primitive": { 2781 | "version": "1.0.1", 2782 | "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", 2783 | "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", 2784 | "requires": { 2785 | "@babel/runtime": "^7.13.10" 2786 | } 2787 | }, 2788 | "@radix-ui/react-arrow": { 2789 | "version": "1.0.3", 2790 | "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", 2791 | "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", 2792 | "requires": { 2793 | "@babel/runtime": "^7.13.10", 2794 | "@radix-ui/react-primitive": "1.0.3" 2795 | } 2796 | }, 2797 | "@radix-ui/react-compose-refs": { 2798 | "version": "1.0.1", 2799 | "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", 2800 | "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", 2801 | "requires": { 2802 | "@babel/runtime": "^7.13.10" 2803 | } 2804 | }, 2805 | "@radix-ui/react-context": { 2806 | "version": "1.0.1", 2807 | "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", 2808 | "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", 2809 | "requires": { 2810 | "@babel/runtime": "^7.13.10" 2811 | } 2812 | }, 2813 | "@radix-ui/react-dismissable-layer": { 2814 | "version": "1.0.4", 2815 | "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", 2816 | "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", 2817 | "requires": { 2818 | "@babel/runtime": "^7.13.10", 2819 | "@radix-ui/primitive": "1.0.1", 2820 | "@radix-ui/react-compose-refs": "1.0.1", 2821 | "@radix-ui/react-primitive": "1.0.3", 2822 | "@radix-ui/react-use-callback-ref": "1.0.1", 2823 | "@radix-ui/react-use-escape-keydown": "1.0.3" 2824 | } 2825 | }, 2826 | "@radix-ui/react-id": { 2827 | "version": "1.0.1", 2828 | "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", 2829 | "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", 2830 | "requires": { 2831 | "@babel/runtime": "^7.13.10", 2832 | "@radix-ui/react-use-layout-effect": "1.0.1" 2833 | } 2834 | }, 2835 | "@radix-ui/react-popper": { 2836 | "version": "1.1.2", 2837 | "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.2.tgz", 2838 | "integrity": "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==", 2839 | "requires": { 2840 | "@babel/runtime": "^7.13.10", 2841 | "@floating-ui/react-dom": "^2.0.0", 2842 | "@radix-ui/react-arrow": "1.0.3", 2843 | "@radix-ui/react-compose-refs": "1.0.1", 2844 | "@radix-ui/react-context": "1.0.1", 2845 | "@radix-ui/react-primitive": "1.0.3", 2846 | "@radix-ui/react-use-callback-ref": "1.0.1", 2847 | "@radix-ui/react-use-layout-effect": "1.0.1", 2848 | "@radix-ui/react-use-rect": "1.0.1", 2849 | "@radix-ui/react-use-size": "1.0.1", 2850 | "@radix-ui/rect": "1.0.1" 2851 | } 2852 | }, 2853 | "@radix-ui/react-portal": { 2854 | "version": "1.0.3", 2855 | "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", 2856 | "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", 2857 | "requires": { 2858 | "@babel/runtime": "^7.13.10", 2859 | "@radix-ui/react-primitive": "1.0.3" 2860 | } 2861 | }, 2862 | "@radix-ui/react-presence": { 2863 | "version": "1.0.1", 2864 | "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", 2865 | "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", 2866 | "requires": { 2867 | "@babel/runtime": "^7.13.10", 2868 | "@radix-ui/react-compose-refs": "1.0.1", 2869 | "@radix-ui/react-use-layout-effect": "1.0.1" 2870 | } 2871 | }, 2872 | "@radix-ui/react-primitive": { 2873 | "version": "1.0.3", 2874 | "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", 2875 | "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", 2876 | "requires": { 2877 | "@babel/runtime": "^7.13.10", 2878 | "@radix-ui/react-slot": "1.0.2" 2879 | } 2880 | }, 2881 | "@radix-ui/react-slot": { 2882 | "version": "1.0.2", 2883 | "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", 2884 | "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", 2885 | "requires": { 2886 | "@babel/runtime": "^7.13.10", 2887 | "@radix-ui/react-compose-refs": "1.0.1" 2888 | } 2889 | }, 2890 | "@radix-ui/react-tooltip": { 2891 | "version": "1.0.6", 2892 | "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.6.tgz", 2893 | "integrity": "sha512-DmNFOiwEc2UDigsYj6clJENma58OelxD24O4IODoZ+3sQc3Zb+L8w1EP+y9laTuKCLAysPw4fD6/v0j4KNV8rg==", 2894 | "requires": { 2895 | "@babel/runtime": "^7.13.10", 2896 | "@radix-ui/primitive": "1.0.1", 2897 | "@radix-ui/react-compose-refs": "1.0.1", 2898 | "@radix-ui/react-context": "1.0.1", 2899 | "@radix-ui/react-dismissable-layer": "1.0.4", 2900 | "@radix-ui/react-id": "1.0.1", 2901 | "@radix-ui/react-popper": "1.1.2", 2902 | "@radix-ui/react-portal": "1.0.3", 2903 | "@radix-ui/react-presence": "1.0.1", 2904 | "@radix-ui/react-primitive": "1.0.3", 2905 | "@radix-ui/react-slot": "1.0.2", 2906 | "@radix-ui/react-use-controllable-state": "1.0.1", 2907 | "@radix-ui/react-visually-hidden": "1.0.3" 2908 | } 2909 | }, 2910 | "@radix-ui/react-use-callback-ref": { 2911 | "version": "1.0.1", 2912 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", 2913 | "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", 2914 | "requires": { 2915 | "@babel/runtime": "^7.13.10" 2916 | } 2917 | }, 2918 | "@radix-ui/react-use-controllable-state": { 2919 | "version": "1.0.1", 2920 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", 2921 | "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", 2922 | "requires": { 2923 | "@babel/runtime": "^7.13.10", 2924 | "@radix-ui/react-use-callback-ref": "1.0.1" 2925 | } 2926 | }, 2927 | "@radix-ui/react-use-escape-keydown": { 2928 | "version": "1.0.3", 2929 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", 2930 | "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", 2931 | "requires": { 2932 | "@babel/runtime": "^7.13.10", 2933 | "@radix-ui/react-use-callback-ref": "1.0.1" 2934 | } 2935 | }, 2936 | "@radix-ui/react-use-layout-effect": { 2937 | "version": "1.0.1", 2938 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", 2939 | "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", 2940 | "requires": { 2941 | "@babel/runtime": "^7.13.10" 2942 | } 2943 | }, 2944 | "@radix-ui/react-use-rect": { 2945 | "version": "1.0.1", 2946 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", 2947 | "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", 2948 | "requires": { 2949 | "@babel/runtime": "^7.13.10", 2950 | "@radix-ui/rect": "1.0.1" 2951 | } 2952 | }, 2953 | "@radix-ui/react-use-size": { 2954 | "version": "1.0.1", 2955 | "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", 2956 | "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", 2957 | "requires": { 2958 | "@babel/runtime": "^7.13.10", 2959 | "@radix-ui/react-use-layout-effect": "1.0.1" 2960 | } 2961 | }, 2962 | "@radix-ui/react-visually-hidden": { 2963 | "version": "1.0.3", 2964 | "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", 2965 | "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", 2966 | "requires": { 2967 | "@babel/runtime": "^7.13.10", 2968 | "@radix-ui/react-primitive": "1.0.3" 2969 | } 2970 | }, 2971 | "@radix-ui/rect": { 2972 | "version": "1.0.1", 2973 | "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", 2974 | "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", 2975 | "requires": { 2976 | "@babel/runtime": "^7.13.10" 2977 | } 2978 | }, 2979 | "@rollup/rollup-android-arm-eabi": { 2980 | "version": "4.40.0", 2981 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", 2982 | "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", 2983 | "optional": true 2984 | }, 2985 | "@rollup/rollup-android-arm64": { 2986 | "version": "4.40.0", 2987 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", 2988 | "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", 2989 | "optional": true 2990 | }, 2991 | "@rollup/rollup-darwin-arm64": { 2992 | "version": "4.40.0", 2993 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", 2994 | "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", 2995 | "optional": true 2996 | }, 2997 | "@rollup/rollup-darwin-x64": { 2998 | "version": "4.40.0", 2999 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", 3000 | "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", 3001 | "optional": true 3002 | }, 3003 | "@rollup/rollup-freebsd-arm64": { 3004 | "version": "4.40.0", 3005 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", 3006 | "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", 3007 | "optional": true 3008 | }, 3009 | "@rollup/rollup-freebsd-x64": { 3010 | "version": "4.40.0", 3011 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", 3012 | "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", 3013 | "optional": true 3014 | }, 3015 | "@rollup/rollup-linux-arm-gnueabihf": { 3016 | "version": "4.40.0", 3017 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", 3018 | "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", 3019 | "optional": true 3020 | }, 3021 | "@rollup/rollup-linux-arm-musleabihf": { 3022 | "version": "4.40.0", 3023 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", 3024 | "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", 3025 | "optional": true 3026 | }, 3027 | "@rollup/rollup-linux-arm64-gnu": { 3028 | "version": "4.40.0", 3029 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", 3030 | "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", 3031 | "optional": true 3032 | }, 3033 | "@rollup/rollup-linux-arm64-musl": { 3034 | "version": "4.40.0", 3035 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", 3036 | "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", 3037 | "optional": true 3038 | }, 3039 | "@rollup/rollup-linux-loongarch64-gnu": { 3040 | "version": "4.40.0", 3041 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", 3042 | "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", 3043 | "optional": true 3044 | }, 3045 | "@rollup/rollup-linux-powerpc64le-gnu": { 3046 | "version": "4.40.0", 3047 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", 3048 | "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", 3049 | "optional": true 3050 | }, 3051 | "@rollup/rollup-linux-riscv64-gnu": { 3052 | "version": "4.40.0", 3053 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", 3054 | "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", 3055 | "optional": true 3056 | }, 3057 | "@rollup/rollup-linux-riscv64-musl": { 3058 | "version": "4.40.0", 3059 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", 3060 | "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", 3061 | "optional": true 3062 | }, 3063 | "@rollup/rollup-linux-s390x-gnu": { 3064 | "version": "4.40.0", 3065 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", 3066 | "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", 3067 | "optional": true 3068 | }, 3069 | "@rollup/rollup-linux-x64-gnu": { 3070 | "version": "4.40.0", 3071 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", 3072 | "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", 3073 | "optional": true 3074 | }, 3075 | "@rollup/rollup-linux-x64-musl": { 3076 | "version": "4.40.0", 3077 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", 3078 | "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", 3079 | "optional": true 3080 | }, 3081 | "@rollup/rollup-win32-arm64-msvc": { 3082 | "version": "4.40.0", 3083 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", 3084 | "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", 3085 | "optional": true 3086 | }, 3087 | "@rollup/rollup-win32-ia32-msvc": { 3088 | "version": "4.40.0", 3089 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", 3090 | "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", 3091 | "optional": true 3092 | }, 3093 | "@rollup/rollup-win32-x64-msvc": { 3094 | "version": "4.40.0", 3095 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", 3096 | "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", 3097 | "optional": true 3098 | }, 3099 | "@stitches/react": { 3100 | "version": "1.2.8", 3101 | "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz", 3102 | "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==", 3103 | "requires": {} 3104 | }, 3105 | "@types/babel__core": { 3106 | "version": "7.20.5", 3107 | "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", 3108 | "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", 3109 | "requires": { 3110 | "@babel/parser": "^7.20.7", 3111 | "@babel/types": "^7.20.7", 3112 | "@types/babel__generator": "*", 3113 | "@types/babel__template": "*", 3114 | "@types/babel__traverse": "*" 3115 | } 3116 | }, 3117 | "@types/babel__generator": { 3118 | "version": "7.27.0", 3119 | "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", 3120 | "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", 3121 | "requires": { 3122 | "@babel/types": "^7.0.0" 3123 | } 3124 | }, 3125 | "@types/babel__template": { 3126 | "version": "7.4.4", 3127 | "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", 3128 | "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", 3129 | "requires": { 3130 | "@babel/parser": "^7.1.0", 3131 | "@babel/types": "^7.0.0" 3132 | } 3133 | }, 3134 | "@types/babel__traverse": { 3135 | "version": "7.20.7", 3136 | "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", 3137 | "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", 3138 | "requires": { 3139 | "@babel/types": "^7.20.7" 3140 | } 3141 | }, 3142 | "@types/estree": { 3143 | "version": "1.0.7", 3144 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", 3145 | "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" 3146 | }, 3147 | "@types/prop-types": { 3148 | "version": "15.7.5", 3149 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 3150 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 3151 | "devOptional": true 3152 | }, 3153 | "@types/react": { 3154 | "version": "18.2.20", 3155 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.20.tgz", 3156 | "integrity": "sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==", 3157 | "devOptional": true, 3158 | "requires": { 3159 | "@types/prop-types": "*", 3160 | "@types/scheduler": "*", 3161 | "csstype": "^3.0.2" 3162 | } 3163 | }, 3164 | "@types/react-dom": { 3165 | "version": "18.2.7", 3166 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz", 3167 | "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==", 3168 | "devOptional": true, 3169 | "requires": { 3170 | "@types/react": "*" 3171 | } 3172 | }, 3173 | "@types/scheduler": { 3174 | "version": "0.16.3", 3175 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", 3176 | "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", 3177 | "devOptional": true 3178 | }, 3179 | "@use-gesture/core": { 3180 | "version": "10.2.27", 3181 | "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.27.tgz", 3182 | "integrity": "sha512-V4XV7hn9GAD2MYu8yBBVi5iuWBsAMfjPRMsEVzoTNGYH72tf0kFP+OKqGKc8YJFQIJx6yj+AOqxmEHOmx2/MEA==" 3183 | }, 3184 | "@use-gesture/react": { 3185 | "version": "10.2.27", 3186 | "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.27.tgz", 3187 | "integrity": "sha512-7E5vnWCxeslWlxwZ8uKIcnUZVMTRMZ8cvSnLLKF1NkyNb3PnNiAzoXM4G1vTKJKRhgOTeI6wK1YsEpwo9ABV5w==", 3188 | "requires": { 3189 | "@use-gesture/core": "10.2.27" 3190 | } 3191 | }, 3192 | "@vitejs/plugin-react": { 3193 | "version": "4.4.1", 3194 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", 3195 | "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", 3196 | "requires": { 3197 | "@babel/core": "^7.26.10", 3198 | "@babel/plugin-transform-react-jsx-self": "^7.25.9", 3199 | "@babel/plugin-transform-react-jsx-source": "^7.25.9", 3200 | "@types/babel__core": "^7.20.5", 3201 | "react-refresh": "^0.17.0" 3202 | } 3203 | }, 3204 | "assign-symbols": { 3205 | "version": "1.0.0", 3206 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", 3207 | "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" 3208 | }, 3209 | "attr-accept": { 3210 | "version": "2.2.2", 3211 | "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", 3212 | "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==" 3213 | }, 3214 | "browserslist": { 3215 | "version": "4.24.4", 3216 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", 3217 | "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", 3218 | "requires": { 3219 | "caniuse-lite": "^1.0.30001688", 3220 | "electron-to-chromium": "^1.5.73", 3221 | "node-releases": "^2.0.19", 3222 | "update-browserslist-db": "^1.1.1" 3223 | } 3224 | }, 3225 | "caniuse-lite": { 3226 | "version": "1.0.30001715", 3227 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", 3228 | "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==" 3229 | }, 3230 | "colord": { 3231 | "version": "2.9.3", 3232 | "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", 3233 | "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" 3234 | }, 3235 | "convert-source-map": { 3236 | "version": "2.0.0", 3237 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 3238 | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" 3239 | }, 3240 | "csstype": { 3241 | "version": "3.1.2", 3242 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", 3243 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", 3244 | "devOptional": true 3245 | }, 3246 | "debug": { 3247 | "version": "4.4.0", 3248 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 3249 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 3250 | "requires": { 3251 | "ms": "^2.1.3" 3252 | } 3253 | }, 3254 | "dequal": { 3255 | "version": "2.0.3", 3256 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 3257 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" 3258 | }, 3259 | "electron-to-chromium": { 3260 | "version": "1.5.142", 3261 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.142.tgz", 3262 | "integrity": "sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w==" 3263 | }, 3264 | "esbuild": { 3265 | "version": "0.25.3", 3266 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", 3267 | "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", 3268 | "requires": { 3269 | "@esbuild/aix-ppc64": "0.25.3", 3270 | "@esbuild/android-arm": "0.25.3", 3271 | "@esbuild/android-arm64": "0.25.3", 3272 | "@esbuild/android-x64": "0.25.3", 3273 | "@esbuild/darwin-arm64": "0.25.3", 3274 | "@esbuild/darwin-x64": "0.25.3", 3275 | "@esbuild/freebsd-arm64": "0.25.3", 3276 | "@esbuild/freebsd-x64": "0.25.3", 3277 | "@esbuild/linux-arm": "0.25.3", 3278 | "@esbuild/linux-arm64": "0.25.3", 3279 | "@esbuild/linux-ia32": "0.25.3", 3280 | "@esbuild/linux-loong64": "0.25.3", 3281 | "@esbuild/linux-mips64el": "0.25.3", 3282 | "@esbuild/linux-ppc64": "0.25.3", 3283 | "@esbuild/linux-riscv64": "0.25.3", 3284 | "@esbuild/linux-s390x": "0.25.3", 3285 | "@esbuild/linux-x64": "0.25.3", 3286 | "@esbuild/netbsd-arm64": "0.25.3", 3287 | "@esbuild/netbsd-x64": "0.25.3", 3288 | "@esbuild/openbsd-arm64": "0.25.3", 3289 | "@esbuild/openbsd-x64": "0.25.3", 3290 | "@esbuild/sunos-x64": "0.25.3", 3291 | "@esbuild/win32-arm64": "0.25.3", 3292 | "@esbuild/win32-ia32": "0.25.3", 3293 | "@esbuild/win32-x64": "0.25.3" 3294 | } 3295 | }, 3296 | "escalade": { 3297 | "version": "3.2.0", 3298 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 3299 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" 3300 | }, 3301 | "extend-shallow": { 3302 | "version": "2.0.1", 3303 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 3304 | "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", 3305 | "requires": { 3306 | "is-extendable": "^0.1.0" 3307 | }, 3308 | "dependencies": { 3309 | "is-extendable": { 3310 | "version": "0.1.1", 3311 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 3312 | "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" 3313 | } 3314 | } 3315 | }, 3316 | "fdir": { 3317 | "version": "6.4.4", 3318 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", 3319 | "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", 3320 | "requires": {} 3321 | }, 3322 | "file-selector": { 3323 | "version": "0.5.0", 3324 | "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.5.0.tgz", 3325 | "integrity": "sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA==", 3326 | "requires": { 3327 | "tslib": "^2.0.3" 3328 | } 3329 | }, 3330 | "for-in": { 3331 | "version": "1.0.2", 3332 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 3333 | "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" 3334 | }, 3335 | "fsevents": { 3336 | "version": "2.3.3", 3337 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 3338 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 3339 | "optional": true 3340 | }, 3341 | "gensync": { 3342 | "version": "1.0.0-beta.2", 3343 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 3344 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" 3345 | }, 3346 | "get-value": { 3347 | "version": "2.0.6", 3348 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 3349 | "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" 3350 | }, 3351 | "globals": { 3352 | "version": "11.12.0", 3353 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 3354 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" 3355 | }, 3356 | "is-extendable": { 3357 | "version": "1.0.1", 3358 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 3359 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 3360 | "requires": { 3361 | "is-plain-object": "^2.0.4" 3362 | } 3363 | }, 3364 | "is-plain-object": { 3365 | "version": "2.0.4", 3366 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 3367 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 3368 | "requires": { 3369 | "isobject": "^3.0.1" 3370 | } 3371 | }, 3372 | "isobject": { 3373 | "version": "3.0.1", 3374 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 3375 | "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" 3376 | }, 3377 | "js-tokens": { 3378 | "version": "4.0.0", 3379 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3380 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 3381 | }, 3382 | "jsesc": { 3383 | "version": "3.1.0", 3384 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 3385 | "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" 3386 | }, 3387 | "json5": { 3388 | "version": "2.2.3", 3389 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 3390 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" 3391 | }, 3392 | "leva": { 3393 | "version": "0.9.35", 3394 | "resolved": "https://registry.npmjs.org/leva/-/leva-0.9.35.tgz", 3395 | "integrity": "sha512-sp/ZbHGrrzM+eq+wIAc9X7C5qFagNERYkwaulKI/xy0XrDPV67jLUSSqTCFSoSc0Uk96j3oephYoO/6I8mZNuw==", 3396 | "requires": { 3397 | "@radix-ui/react-portal": "^1.0.2", 3398 | "@radix-ui/react-tooltip": "^1.0.5", 3399 | "@stitches/react": "^1.2.8", 3400 | "@use-gesture/react": "^10.2.5", 3401 | "colord": "^2.9.2", 3402 | "dequal": "^2.0.2", 3403 | "merge-value": "^1.0.0", 3404 | "react-colorful": "^5.5.1", 3405 | "react-dropzone": "^12.0.0", 3406 | "v8n": "^1.3.3", 3407 | "zustand": "^3.6.9" 3408 | } 3409 | }, 3410 | "loose-envify": { 3411 | "version": "1.4.0", 3412 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 3413 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 3414 | "requires": { 3415 | "js-tokens": "^3.0.0 || ^4.0.0" 3416 | } 3417 | }, 3418 | "lru-cache": { 3419 | "version": "5.1.1", 3420 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 3421 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 3422 | "requires": { 3423 | "yallist": "^3.0.2" 3424 | } 3425 | }, 3426 | "merge-value": { 3427 | "version": "1.0.0", 3428 | "resolved": "https://registry.npmjs.org/merge-value/-/merge-value-1.0.0.tgz", 3429 | "integrity": "sha512-fJMmvat4NeKz63Uv9iHWcPDjCWcCkoiRoajRTEO8hlhUC6rwaHg0QCF9hBOTjZmm4JuglPckPSTtcuJL5kp0TQ==", 3430 | "requires": { 3431 | "get-value": "^2.0.6", 3432 | "is-extendable": "^1.0.0", 3433 | "mixin-deep": "^1.2.0", 3434 | "set-value": "^2.0.0" 3435 | } 3436 | }, 3437 | "mixin-deep": { 3438 | "version": "1.3.2", 3439 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", 3440 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", 3441 | "requires": { 3442 | "for-in": "^1.0.2", 3443 | "is-extendable": "^1.0.1" 3444 | } 3445 | }, 3446 | "ms": { 3447 | "version": "2.1.3", 3448 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 3449 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 3450 | }, 3451 | "nanoid": { 3452 | "version": "3.3.11", 3453 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 3454 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" 3455 | }, 3456 | "node-releases": { 3457 | "version": "2.0.19", 3458 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", 3459 | "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" 3460 | }, 3461 | "object-assign": { 3462 | "version": "4.1.1", 3463 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3464 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 3465 | }, 3466 | "picocolors": { 3467 | "version": "1.1.1", 3468 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 3469 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" 3470 | }, 3471 | "picomatch": { 3472 | "version": "4.0.2", 3473 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 3474 | "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==" 3475 | }, 3476 | "postcss": { 3477 | "version": "8.5.3", 3478 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", 3479 | "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", 3480 | "requires": { 3481 | "nanoid": "^3.3.8", 3482 | "picocolors": "^1.1.1", 3483 | "source-map-js": "^1.2.1" 3484 | } 3485 | }, 3486 | "prop-types": { 3487 | "version": "15.8.1", 3488 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 3489 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 3490 | "requires": { 3491 | "loose-envify": "^1.4.0", 3492 | "object-assign": "^4.1.1", 3493 | "react-is": "^16.13.1" 3494 | } 3495 | }, 3496 | "react": { 3497 | "version": "18.2.0", 3498 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 3499 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 3500 | "requires": { 3501 | "loose-envify": "^1.1.0" 3502 | } 3503 | }, 3504 | "react-colorful": { 3505 | "version": "5.6.1", 3506 | "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", 3507 | "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", 3508 | "requires": {} 3509 | }, 3510 | "react-dom": { 3511 | "version": "18.2.0", 3512 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 3513 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 3514 | "requires": { 3515 | "loose-envify": "^1.1.0", 3516 | "scheduler": "^0.23.0" 3517 | } 3518 | }, 3519 | "react-dropzone": { 3520 | "version": "12.1.0", 3521 | "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-12.1.0.tgz", 3522 | "integrity": "sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog==", 3523 | "requires": { 3524 | "attr-accept": "^2.2.2", 3525 | "file-selector": "^0.5.0", 3526 | "prop-types": "^15.8.1" 3527 | } 3528 | }, 3529 | "react-is": { 3530 | "version": "16.13.1", 3531 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 3532 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 3533 | }, 3534 | "react-refresh": { 3535 | "version": "0.17.0", 3536 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", 3537 | "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==" 3538 | }, 3539 | "regenerator-runtime": { 3540 | "version": "0.14.0", 3541 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", 3542 | "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" 3543 | }, 3544 | "rollup": { 3545 | "version": "4.40.0", 3546 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", 3547 | "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", 3548 | "requires": { 3549 | "@rollup/rollup-android-arm-eabi": "4.40.0", 3550 | "@rollup/rollup-android-arm64": "4.40.0", 3551 | "@rollup/rollup-darwin-arm64": "4.40.0", 3552 | "@rollup/rollup-darwin-x64": "4.40.0", 3553 | "@rollup/rollup-freebsd-arm64": "4.40.0", 3554 | "@rollup/rollup-freebsd-x64": "4.40.0", 3555 | "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", 3556 | "@rollup/rollup-linux-arm-musleabihf": "4.40.0", 3557 | "@rollup/rollup-linux-arm64-gnu": "4.40.0", 3558 | "@rollup/rollup-linux-arm64-musl": "4.40.0", 3559 | "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", 3560 | "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", 3561 | "@rollup/rollup-linux-riscv64-gnu": "4.40.0", 3562 | "@rollup/rollup-linux-riscv64-musl": "4.40.0", 3563 | "@rollup/rollup-linux-s390x-gnu": "4.40.0", 3564 | "@rollup/rollup-linux-x64-gnu": "4.40.0", 3565 | "@rollup/rollup-linux-x64-musl": "4.40.0", 3566 | "@rollup/rollup-win32-arm64-msvc": "4.40.0", 3567 | "@rollup/rollup-win32-ia32-msvc": "4.40.0", 3568 | "@rollup/rollup-win32-x64-msvc": "4.40.0", 3569 | "@types/estree": "1.0.7", 3570 | "fsevents": "~2.3.2" 3571 | } 3572 | }, 3573 | "scheduler": { 3574 | "version": "0.23.0", 3575 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 3576 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 3577 | "requires": { 3578 | "loose-envify": "^1.1.0" 3579 | } 3580 | }, 3581 | "semver": { 3582 | "version": "6.3.1", 3583 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 3584 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" 3585 | }, 3586 | "set-value": { 3587 | "version": "2.0.1", 3588 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", 3589 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", 3590 | "requires": { 3591 | "extend-shallow": "^2.0.1", 3592 | "is-extendable": "^0.1.1", 3593 | "is-plain-object": "^2.0.3", 3594 | "split-string": "^3.0.1" 3595 | }, 3596 | "dependencies": { 3597 | "is-extendable": { 3598 | "version": "0.1.1", 3599 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 3600 | "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" 3601 | } 3602 | } 3603 | }, 3604 | "source-map-js": { 3605 | "version": "1.2.1", 3606 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 3607 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" 3608 | }, 3609 | "split-string": { 3610 | "version": "3.1.0", 3611 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 3612 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", 3613 | "requires": { 3614 | "extend-shallow": "^3.0.0" 3615 | }, 3616 | "dependencies": { 3617 | "extend-shallow": { 3618 | "version": "3.0.2", 3619 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", 3620 | "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", 3621 | "requires": { 3622 | "assign-symbols": "^1.0.0", 3623 | "is-extendable": "^1.0.1" 3624 | } 3625 | } 3626 | } 3627 | }, 3628 | "three": { 3629 | "version": "0.176.0", 3630 | "resolved": "https://registry.npmjs.org/three/-/three-0.176.0.tgz", 3631 | "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==" 3632 | }, 3633 | "tinyglobby": { 3634 | "version": "0.2.13", 3635 | "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", 3636 | "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", 3637 | "requires": { 3638 | "fdir": "^6.4.4", 3639 | "picomatch": "^4.0.2" 3640 | } 3641 | }, 3642 | "tslib": { 3643 | "version": "2.6.2", 3644 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", 3645 | "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" 3646 | }, 3647 | "update-browserslist-db": { 3648 | "version": "1.1.3", 3649 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 3650 | "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 3651 | "requires": { 3652 | "escalade": "^3.2.0", 3653 | "picocolors": "^1.1.1" 3654 | } 3655 | }, 3656 | "v8n": { 3657 | "version": "1.5.1", 3658 | "resolved": "https://registry.npmjs.org/v8n/-/v8n-1.5.1.tgz", 3659 | "integrity": "sha512-LdabyT4OffkyXFCe9UT+uMkxNBs5rcTVuZClvxQr08D5TUgo1OFKkoT65qYRCsiKBl/usHjpXvP4hHMzzDRj3A==" 3660 | }, 3661 | "vite": { 3662 | "version": "6.3.3", 3663 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.3.tgz", 3664 | "integrity": "sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==", 3665 | "requires": { 3666 | "esbuild": "^0.25.0", 3667 | "fdir": "^6.4.4", 3668 | "fsevents": "~2.3.3", 3669 | "picomatch": "^4.0.2", 3670 | "postcss": "^8.5.3", 3671 | "rollup": "^4.34.9", 3672 | "tinyglobby": "^0.2.13" 3673 | } 3674 | }, 3675 | "yallist": { 3676 | "version": "3.1.1", 3677 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 3678 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 3679 | }, 3680 | "zustand": { 3681 | "version": "3.7.2", 3682 | "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz", 3683 | "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==", 3684 | "requires": {} 3685 | } 3686 | } 3687 | } 3688 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "threejs-react-wrapper", 3 | "license": "MIT", 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@vitejs/plugin-react": "^4.0.4", 13 | "leva": "^0.9.34", 14 | "react": "^18.2.0", 15 | "react-dom": "^18.2.0", 16 | "three": "^0.176.0" 17 | }, 18 | "devDependencies": { 19 | "@types/react": "^18.0.28", 20 | "@types/react-dom": "^18.0.11", 21 | "vite": "^6.3.3" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /screen-shot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felixturner/threejs-react-wrapper/f71decb2dca634e931b26c4abfee1df6fa4340a7/screen-shot.png -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import { useControls } from 'leva'; 2 | import { ThreeWrapper } from './components/threeWrapper/ThreeWrapper'; 3 | 4 | function App() { 5 | //create Leva controls 6 | const { mounted, speed, scale } = useControls({ 7 | mounted: true, 8 | speed: { 9 | value: 0.5, 10 | min: 0, 11 | max: 1, 12 | step: 0.01, 13 | }, 14 | 15 | scale: { 16 | value: 1, 17 | min: 0.5, 18 | max: 2, 19 | step: 0.1, 20 | }, 21 | }); 22 | 23 | //pass Leva values as props to ThreeWrapper 24 | return mounted && ; 25 | } 26 | 27 | export default App; 28 | -------------------------------------------------------------------------------- /src/components/threeWrapper/ThreeWrapper.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef } from 'react'; 2 | import { init, dispose, setProps } from './js/main.js'; 3 | 4 | /* 5 | A simple React component to mount and unmount a ThreeJS scene 6 | */ 7 | 8 | export function ThreeWrapper(props) { 9 | const glCanvas = useRef(); //ref to webgl canvas 10 | const glContainer = useRef(); //ref to webgl canvas container 11 | 12 | useEffect(() => { 13 | //do on mount 14 | init(glCanvas.current, glContainer.current); 15 | return () => { 16 | //do on unmount 17 | dispose(); 18 | }; 19 | }, []); // run once on page load 20 | 21 | useEffect(() => { 22 | //when props change, send into webgl 23 | setProps(props); 24 | }, [props]); 25 | 26 | return ( 27 |
28 | 29 |
30 | ); 31 | } 32 | -------------------------------------------------------------------------------- /src/components/threeWrapper/assets/testcard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felixturner/threejs-react-wrapper/f71decb2dca634e931b26c4abfee1df6fa4340a7/src/components/threeWrapper/assets/testcard.jpg -------------------------------------------------------------------------------- /src/components/threeWrapper/js/main.js: -------------------------------------------------------------------------------- 1 | import * as THREE from 'three'; 2 | import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; 3 | import Stats from 'three/addons/libs/stats.module.js'; 4 | import testcard from '../assets/testcard.jpg'; 5 | 6 | /* 7 | Main Three.js code. A rotating cube with orbit controls and stats. 8 | This is a vanilla JS ES6 module, as used in the threejs examples. 9 | Handles resizing to containerElement, init and disposal. 10 | Assets can be loaded via imports (see testcard.jpg above). 11 | */ 12 | 13 | console.log('THREE version', THREE.REVISION); 14 | 15 | let scene, 16 | camera, 17 | renderer, 18 | cube, 19 | controls, 20 | stats, 21 | containerEl, 22 | raf, 23 | resizeObs, 24 | material; 25 | 26 | let speed = 0; 27 | 28 | export function init(canvas, _containerEl) { 29 | console.log('threejs init'); 30 | containerEl = _containerEl; 31 | stats = new Stats(); 32 | containerEl.appendChild(stats.dom); 33 | stats.dom.style.position = 'absolute'; 34 | 35 | scene = new THREE.Scene(); 36 | camera = new THREE.PerspectiveCamera( 37 | 45, 38 | window.innerWidth / window.innerHeight, 39 | 0.1, 40 | 1000 41 | ); 42 | camera.position.z = 3; 43 | 44 | renderer = new THREE.WebGLRenderer({ canvas: canvas }); 45 | renderer.setSize(window.innerWidth, window.innerHeight); 46 | renderer.outputColorSpace = THREE.LinearSRGBColorSpace; 47 | 48 | const geometry = new THREE.BoxGeometry(1, 1, 1); 49 | material = new THREE.MeshBasicMaterial({ 50 | map: new THREE.TextureLoader().load(testcard), 51 | }); 52 | cube = new THREE.Mesh(geometry, material); 53 | scene.add(cube); 54 | 55 | controls = new OrbitControls(camera, containerEl); 56 | 57 | //watch for size change of container element 58 | resizeObs = new ResizeObserver(onResize); 59 | resizeObs.observe(containerEl); 60 | 61 | update(); 62 | } 63 | 64 | function update() { 65 | raf = requestAnimationFrame(update); 66 | cube.rotation.x += speed / 40; 67 | cube.rotation.y += speed / 40; 68 | renderer.render(scene, camera); 69 | stats.update(); 70 | controls.update(); 71 | } 72 | 73 | function onResize() { 74 | console.log('threejs onResize'); 75 | let w = containerEl.offsetWidth; 76 | let h = containerEl.offsetHeight; 77 | camera.aspect = w / h; 78 | camera.updateProjectionMatrix(); 79 | renderer.setSize(w, h); 80 | renderer.setPixelRatio(window.devicePixelRatio); 81 | renderer.render(scene, camera); 82 | } 83 | 84 | export function dispose() { 85 | console.log('threejs dispose'); 86 | //clean up 87 | cancelAnimationFrame(raf); 88 | resizeObs.disconnect(); 89 | controls.dispose(); 90 | material.dispose(); 91 | cube.geometry.dispose(); 92 | resizeObs = null; 93 | scene = null; 94 | camera = null; 95 | controls = null; 96 | renderer = null; 97 | stats = null; 98 | material = null; 99 | } 100 | 101 | export function setProps(props) { 102 | speed = props.speed; 103 | cube.scale.setScalar(props.scale); 104 | } 105 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | height: 100%; 3 | } 4 | body { 5 | margin: 0; 6 | padding: 0; 7 | height: 100%; 8 | display: flex; 9 | justify-content: center; 10 | align-items: center; 11 | } 12 | 13 | .gl-container { 14 | width: 80vw; 15 | height: 80vh; 16 | border-radius: 10px; 17 | overflow: hidden; 18 | } 19 | -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import { createRoot } from 'react-dom/client'; 2 | import App from './App'; 3 | import './index.css'; 4 | 5 | createRoot(document.getElementById('root')).render(); 6 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import react from '@vitejs/plugin-react'; 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }); 8 | --------------------------------------------------------------------------------