diff --git a/.env.development b/.env.development index 161467af..2f67a8f6 100644 --- a/.env.development +++ b/.env.development @@ -1,3 +1,7 @@ NEXT_PUBLIC_TEST="테스트변수입니다. development" -NEXT_PUBLIC_API_SERVER_PATH="http://localhost:8080" \ No newline at end of file +NEXT_PUBLIC_API_SERVER_PATH="http://localhost:8080" + +DATABASE_URL="sqlserver://mssql.devgrr.kr:1433;database=qcast;user=qcast;password=Qwertqaz12345;trustServerCertificate=true" + +SESSION_SECRET="i3iHH1yp2/2SpQSIySQ4bpyc4g0D+zCF9FAn5xUG0+Y=" \ No newline at end of file diff --git a/.env.production b/.env.production index efb12105..8970b77b 100644 --- a/.env.production +++ b/.env.production @@ -1,3 +1,7 @@ NEXT_PUBLIC_TEST="테스트변수입니다. production" -NEXT_PUBLIC_API_SERVER_PATH="http://localhost:8080" \ No newline at end of file +NEXT_PUBLIC_API_SERVER_PATH="http://localhost:8080" + +DATABASE_URL="" + +SESSION_SECRET="i3iHH1yp2/2SpQSIySQ4bpyc4g0D+zCF9FAn5xUG0+Y=" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 463cc5fb..9610f12a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,14 +8,25 @@ "name": "q.cast.prototype-nontype", "version": "0.1.0", "dependencies": { + "@nextui-org/react": "^2.4.2", + "@prisma/client": "^5.17.0", + "axios": "^1.7.3", "fabric": "^5.3.0", + "framer-motion": "^11.2.13", + "mathjs": "^13.0.2", + "mongodb": "^6.8.0", "next": "14.2.3", "react": "^18", "react-dom": "^18", + "react-toastify": "^10.0.5", + "recoil": "^0.7.7", "uuid": "^9.0.1" }, "devDependencies": { "postcss": "^8", + "prettier": "^3.3.3", + "prisma": "^5.17.0", + "sass": "^1.77.8", "tailwindcss": "^3.4.1" } }, @@ -23,7 +34,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, "engines": { "node": ">=10" }, @@ -31,11 +41,108 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", + "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", + "license": "MIT", + "dependencies": { + "@formatjs/intl-localematcher": "0.5.4", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", + "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", + "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/icu-skeleton-parser": "1.8.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", + "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", + "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@internationalized/date": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.4.tgz", + "integrity": "sha512-Dygi9hH1s7V9nha07pggCkvmRfDd3q2lWnMGvrJyrOwYMe1yj4D2T9BoH9I6MGR7xz0biQrtLPsqUkqXzIrBOw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "intl-messageformat": "^10.1.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.3.tgz", + "integrity": "sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/string": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.3.tgz", + "integrity": "sha512-9kpfLoA8HegiWTeCbR2livhdVeKobCnVv8tlJ6M2jF+4tcMqDo94ezwlnrUANBWPgd8U7OXIHCk2Ov2qhk4KXw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -52,7 +159,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -66,7 +172,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -75,7 +180,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -83,14 +187,12 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -116,6 +218,15 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.8.tgz", + "integrity": "sha512-qKwC/M/nNNaKUBMQ0nuzm47b7ZYWQHN3pcXq4IIcoSBc2hOIrflAxJduIvvqmhoz3gR2TacTAs8vlsCVPkiEdQ==", + "license": "MIT", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, "node_modules/@next/env": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz", @@ -256,11 +367,1399 @@ "node": ">= 10" } }, + "node_modules/@nextui-org/accordion": { + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/@nextui-org/accordion/-/accordion-2.0.38.tgz", + "integrity": "sha512-kFCZU1VaKkUI295Fg3NxuQR2+kZ5vTH4ftIs0oByrOs0+l14dVQGFOd9ZV402fHNykZJt7Sk6oWjTp4Qwl83JA==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/divider": "2.0.31", + "@nextui-org/framer-utils": "2.0.24", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-aria-accordion": "2.0.7", + "@react-aria/button": "3.9.5", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-stately/tree": "3.8.1", + "@react-types/accordion": "3.0.0-alpha.21", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/aria-utils": { + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@nextui-org/aria-utils/-/aria-utils-2.0.24.tgz", + "integrity": "sha512-YD+YvT01zFqN1Ey137OeFl9SEhAYf2BoZz+ykWiIJlMjl/LY1d5WE0nkzsjMHh6MV3HgS6CExxlf7TuApN6Piw==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-rsc-utils": "2.0.13", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/system": "2.2.5", + "@react-aria/utils": "3.24.1", + "@react-stately/collections": "3.10.7", + "@react-stately/overlays": "3.6.7", + "@react-types/overlays": "3.8.7", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/autocomplete": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nextui-org/autocomplete/-/autocomplete-2.1.5.tgz", + "integrity": "sha512-VcSe3B/CmIvfZnAJHHYKp3r83QrqI0T8v9jjrpQ0PN8qKOc7LmQUsvnAkBRuHCLlaC1xPwZtyJp0TJyRF8tM3w==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/button": "2.0.37", + "@nextui-org/input": "2.2.4", + "@nextui-org/listbox": "2.1.25", + "@nextui-org/popover": "2.1.27", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/scroll-shadow": "2.1.19", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/spinner": "2.0.33", + "@nextui-org/use-aria-button": "2.0.10", + "@nextui-org/use-safe-layout-effect": "2.0.6", + "@react-aria/combobox": "3.9.1", + "@react-aria/focus": "3.17.1", + "@react-aria/i18n": "3.11.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-aria/visually-hidden": "3.8.12", + "@react-stately/combobox": "3.8.4", + "@react-types/combobox": "3.11.1", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/avatar": { + "version": "2.0.32", + "resolved": "https://registry.npmjs.org/@nextui-org/avatar/-/avatar-2.0.32.tgz", + "integrity": "sha512-2dCpIKuGvbOVLJ6m2AkNhPqqamIin3FDqDLop2ILNhyAxgxPYitqE3JqsUA/hlZCzu79sZudruuubzHWzHqf0Q==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-image": "2.0.6", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/badge": { + "version": "2.0.31", + "resolved": "https://registry.npmjs.org/@nextui-org/badge/-/badge-2.0.31.tgz", + "integrity": "sha512-ayOw9j6Fa/RxZjk+2AhhBzXFm2Xv2RNYMrXAqGaJ+cbhofsqu8QnP0/4W+CiVXx8C0jpPmNAgSklRXgbKHs10Q==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/breadcrumbs": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@nextui-org/breadcrumbs/-/breadcrumbs-2.0.12.tgz", + "integrity": "sha512-PCZI7xqu1UrjJcCkd6HwGJ+h2L5k6LMBQRVbD8/7jMKkJxpoQXC7h5uCtEeLG2CafVih4cUCBTuzUnsubtKLnQ==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@react-aria/breadcrumbs": "3.5.13", + "@react-aria/focus": "3.17.1", + "@react-aria/utils": "3.24.1", + "@react-types/breadcrumbs": "3.7.5", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/button": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/@nextui-org/button/-/button-2.0.37.tgz", + "integrity": "sha512-dBtdO30qfu+K4YYLNmmpUy16Q82H1ucY8A4NjP4iEAJ1sPunoAYvba7h9xabrpUKW9IOyItOThSesxsfpaXYug==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/ripple": "2.0.32", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/spinner": "2.0.33", + "@nextui-org/use-aria-button": "2.0.10", + "@react-aria/button": "3.9.5", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-types/button": "3.9.4", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/calendar": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@nextui-org/calendar/-/calendar-2.0.11.tgz", + "integrity": "sha512-pgCEekJHSr5QKxpJaABIFS2ItqgK8qZ7pKrCOJjmRHBh4Y9WGfndrIW6z3IkHZiO01CKJbpjb9ytTjufsU6kIA==", + "license": "MIT", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@nextui-org/button": "2.0.37", + "@nextui-org/framer-utils": "2.0.24", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-aria-button": "2.0.10", + "@react-aria/calendar": "3.5.8", + "@react-aria/focus": "3.17.1", + "@react-aria/i18n": "3.11.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-aria/visually-hidden": "3.8.12", + "@react-stately/calendar": "3.5.1", + "@react-stately/utils": "3.10.1", + "@react-types/button": "3.9.4", + "@react-types/calendar": "3.4.6", + "@react-types/shared": "3.23.1", + "@types/lodash.debounce": "^4.0.7", + "lodash.debounce": "^4.0.8", + "scroll-into-view-if-needed": "3.0.10" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.1.0", + "@nextui-org/theme": ">=2.2.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/card": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@nextui-org/card/-/card-2.0.33.tgz", + "integrity": "sha512-iO/ThbUz75YlcFrWO9EssMhOxbc9LN0SSk181+2QnPDbKls9wbkUEfGjq/d9k3h6jb9FaR5N5XwVpT4aUt2Usw==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/ripple": "2.0.32", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-aria-button": "2.0.10", + "@react-aria/button": "3.9.5", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/checkbox": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nextui-org/checkbox/-/checkbox-2.1.4.tgz", + "integrity": "sha512-74AD4imL064mvs4trQKQj/efwIZYaBt0TmXO6jV+6xGE6S9YjCAy+OBotrgRBG9fURQVQU1qJGnwwsOIdxCXkA==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-callback-ref": "2.0.6", + "@nextui-org/use-safe-layout-effect": "2.0.6", + "@react-aria/checkbox": "3.14.3", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-aria/visually-hidden": "3.8.12", + "@react-stately/checkbox": "3.6.5", + "@react-stately/toggle": "3.7.4", + "@react-types/checkbox": "3.8.1", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/chip": { + "version": "2.0.32", + "resolved": "https://registry.npmjs.org/@nextui-org/chip/-/chip-2.0.32.tgz", + "integrity": "sha512-fGqXamG7xs+DvKPra+rJEkIAjaQwPi8FSvsJ4P4LWzQ3U+HjymEI07BW8xQmaLceHInbTLTfdbTjAYdGNzAdOQ==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-types/checkbox": "3.8.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/code": { + "version": "2.0.32", + "resolved": "https://registry.npmjs.org/@nextui-org/code/-/code-2.0.32.tgz", + "integrity": "sha512-YBLCWDgR+ebWIr+noN02/ls+PsQV9leLskgPLFUfpRzHoXdGeUUhE8IjTv14KFP3XlW3Cf9ALFy3IgPuIZ+yuQ==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/system-rsc": "2.1.5" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/date-input": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nextui-org/date-input/-/date-input-2.1.3.tgz", + "integrity": "sha512-Y6d+AVPnM7uYy7boSHrk+cW/pft1fKbpXh/ed5omTgFx6rKRZ/agQmP5erMcmNzpv3Bis4wCc89WNnBtCjEZMw==", + "license": "MIT", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@react-aria/datepicker": "3.10.1", + "@react-aria/i18n": "3.11.1", + "@react-aria/utils": "3.24.1", + "@react-stately/datepicker": "3.9.4", + "@react-types/datepicker": "3.7.4", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.1.0", + "@nextui-org/theme": ">=2.2.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/date-picker": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@nextui-org/date-picker/-/date-picker-2.1.6.tgz", + "integrity": "sha512-PycYKAm1tmew64aQWQtZfTbV73S4GPGYJnK6hr9W0iXUCOQQH5UbzLwdWGXnVXvtrJzczFQllaXaQccwWCeTzg==", + "license": "MIT", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/button": "2.0.37", + "@nextui-org/calendar": "2.0.11", + "@nextui-org/date-input": "2.1.3", + "@nextui-org/popover": "2.1.27", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@react-aria/datepicker": "3.10.1", + "@react-aria/i18n": "3.11.1", + "@react-aria/utils": "3.24.1", + "@react-stately/datepicker": "3.9.4", + "@react-stately/overlays": "3.6.7", + "@react-stately/utils": "3.10.1", + "@react-types/datepicker": "3.7.4", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.1.0", + "@nextui-org/theme": ">=2.2.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/divider": { + "version": "2.0.31", + "resolved": "https://registry.npmjs.org/@nextui-org/divider/-/divider-2.0.31.tgz", + "integrity": "sha512-z9GhrpmhXhJGuW0GSO1OP01mwDTSItuIRIz0VGpKOPVTqOzOMHkXN978wgNXqJ+knWZcaiF7WHvd83O05jmbkg==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-rsc-utils": "2.0.13", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/system-rsc": "2.1.5", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/dropdown": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/@nextui-org/dropdown/-/dropdown-2.1.29.tgz", + "integrity": "sha512-ujHJVHzOcfwqNqlkt14t8YV3AAn03sME7gBxujQcwtDFGYMJeP9pvTU24L/FjBEb3Fd1XdhjwowU/sTuVTK4Yg==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/menu": "2.0.28", + "@nextui-org/popover": "2.1.27", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@react-aria/focus": "3.17.1", + "@react-aria/menu": "3.14.1", + "@react-aria/utils": "3.24.1", + "@react-stately/menu": "3.7.1", + "@react-types/menu": "3.9.9" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/framer-utils": { + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@nextui-org/framer-utils/-/framer-utils-2.0.24.tgz", + "integrity": "sha512-Fc5ugVaLsXhd3bgJg+hvw20uaaz9gAxYY2ouS/3leN7QBSRAwpy3Dl+tX8BbLeyx3ZosVrHIJ3w4bhDMzFVk9Q==", + "license": "MIT", + "dependencies": { + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/system": "2.2.5", + "@nextui-org/use-measure": "2.0.2" + }, + "peerDependencies": { + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/image": { + "version": "2.0.31", + "resolved": "https://registry.npmjs.org/@nextui-org/image/-/image-2.0.31.tgz", + "integrity": "sha512-HxWaGUBtNaT9pLGvDo5Q2ruGxdhXYrdNcLvRhtoohiZeIKo1Y8jTbBUCVGxdxklTZAF3H7klrTcsdSwHTGfk0g==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-image": "2.0.6" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/input": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@nextui-org/input/-/input-2.2.4.tgz", + "integrity": "sha512-CVeTwwUJn9pEJC+kq3Jg0nAFeYVGBbIU7U2YFSG8XJK2X75odj8RSQdVd3Dt2U/b5Mtwt5sBh9gMzCedtjffWg==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-safe-layout-effect": "2.0.6", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/textfield": "3.14.5", + "@react-aria/utils": "3.24.1", + "@react-stately/utils": "3.10.1", + "@react-types/shared": "3.23.1", + "@react-types/textfield": "3.9.3", + "react-textarea-autosize": "^8.5.3" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/kbd": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@nextui-org/kbd/-/kbd-2.0.33.tgz", + "integrity": "sha512-1Q7vKKJjfn5RPMsySQEljo2clf03Ta4V4ZA4O92ktJ8YzbdNnDfUiWtfFxF64R183ZVfe869RBSpuOdzZLNuKQ==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/system-rsc": "2.1.5", + "@react-aria/utils": "3.24.1" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/link": { + "version": "2.0.34", + "resolved": "https://registry.npmjs.org/@nextui-org/link/-/link-2.0.34.tgz", + "integrity": "sha512-497AvjzckEB/TE1eJEziS2QkxwCY81RPsWoApNSeHGdYrMO1tfgUFKATgadfBQjoba6FdCcLc2QaUapOetqFaA==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-aria-link": "2.0.19", + "@react-aria/focus": "3.17.1", + "@react-aria/link": "3.7.1", + "@react-aria/utils": "3.24.1", + "@react-types/link": "3.5.5" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/listbox": { + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/@nextui-org/listbox/-/listbox-2.1.25.tgz", + "integrity": "sha512-WJqxhzPxADLIsenREaaoQ44bs3gQx5yqOvK86Jkiv/m9nXr0YuxZOJEsVa5GenkmyJBrEd6LkBV5cZ1TGNzbJw==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/divider": "2.0.31", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-is-mobile": "2.0.9", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/listbox": "3.12.1", + "@react-aria/utils": "3.24.1", + "@react-stately/list": "3.10.5", + "@react-types/menu": "3.9.9", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/menu": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/@nextui-org/menu/-/menu-2.0.28.tgz", + "integrity": "sha512-/bcIeBCGpauDkdz6VZvl1YXP5xpSSSYVTvhsChkcvzWzDXLG004uVAsw4kjP2i9OGxoehrjkl9wkIzCFCEdsHw==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/divider": "2.0.31", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-aria-menu": "2.0.6", + "@nextui-org/use-is-mobile": "2.0.9", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/menu": "3.14.1", + "@react-aria/utils": "3.24.1", + "@react-stately/menu": "3.7.1", + "@react-stately/tree": "3.8.1", + "@react-types/menu": "3.9.9", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/modal": { + "version": "2.0.39", + "resolved": "https://registry.npmjs.org/@nextui-org/modal/-/modal-2.0.39.tgz", + "integrity": "sha512-b0G5IRNrfQumx8mQQO92rn2iC2ueUuk4XKvxYYmYNpx3/qpdEP9tckozw+s0QFyZocRPY+yYa0pBtMBGC2lWGQ==", + "license": "MIT", + "dependencies": { + "@nextui-org/framer-utils": "2.0.24", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-aria-button": "2.0.10", + "@nextui-org/use-aria-modal-overlay": "2.0.11", + "@nextui-org/use-disclosure": "2.0.10", + "@react-aria/dialog": "3.5.14", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/overlays": "3.22.1", + "@react-aria/utils": "3.24.1", + "@react-stately/overlays": "3.6.7", + "@react-types/overlays": "3.8.7" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/navbar": { + "version": "2.0.36", + "resolved": "https://registry.npmjs.org/@nextui-org/navbar/-/navbar-2.0.36.tgz", + "integrity": "sha512-uobdPsh4TSPm2Us74/Vey43z0/oRqWb6x4+eHIJf9VhYP9pY733N2n17v2mvU7SvcNhkold/PWfXPYiA8kMlug==", + "license": "MIT", + "dependencies": { + "@nextui-org/framer-utils": "2.0.24", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-aria-toggle-button": "2.0.10", + "@nextui-org/use-scroll-position": "2.0.8", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/overlays": "3.22.1", + "@react-aria/utils": "3.24.1", + "@react-stately/toggle": "3.7.4", + "@react-stately/utils": "3.10.1", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/pagination": { + "version": "2.0.35", + "resolved": "https://registry.npmjs.org/@nextui-org/pagination/-/pagination-2.0.35.tgz", + "integrity": "sha512-07KJgZcJBt2e9RY6TsiQm5qrjDLH+gT3yB7yQ4jPdCK9fkTB0r2kvTOYdPUvrtVJYRq2bwFCWOz+9mokdNfcwg==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-pagination": "2.0.9", + "@react-aria/focus": "3.17.1", + "@react-aria/i18n": "3.11.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "scroll-into-view-if-needed": "3.0.10" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/popover": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/@nextui-org/popover/-/popover-2.1.27.tgz", + "integrity": "sha512-UV42nqvUR9IOy7Hgc5S2Xo+2YWzBAHCcU+C/9O9SchXL0DyU/ol+IPqxuBxdJDi5fiFYr9mTBoPZgAEGDoJjDg==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/button": "2.0.37", + "@nextui-org/framer-utils": "2.0.24", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-aria-button": "2.0.10", + "@nextui-org/use-safe-layout-effect": "2.0.6", + "@react-aria/dialog": "3.5.14", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/overlays": "3.22.1", + "@react-aria/utils": "3.24.1", + "@react-stately/overlays": "3.6.7", + "@react-types/button": "3.9.4", + "@react-types/overlays": "3.8.7", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/progress": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@nextui-org/progress/-/progress-2.0.33.tgz", + "integrity": "sha512-rP54lZbH7BSzX9sFj7k3ylrUpk10XDWngc1dB1M+GlPsI2XRnzI3s+GE9kuZG2+N6eL/KLVG1YOg8u9eAYnwpA==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-is-mounted": "2.0.6", + "@react-aria/i18n": "3.11.1", + "@react-aria/progress": "3.4.13", + "@react-aria/utils": "3.24.1", + "@react-types/progress": "3.5.4" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/radio": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nextui-org/radio/-/radio-2.1.4.tgz", + "integrity": "sha512-Y18TXvGVz/G1E3jjYmutSSx1EdQRs5iMCVZNS/Bz4avE9QMSrHl6fOhZIndrm8LwCTqn7lbKRQngZLN4tvPinQ==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/radio": "3.10.4", + "@react-aria/utils": "3.24.1", + "@react-aria/visually-hidden": "3.8.12", + "@react-stately/radio": "3.10.4", + "@react-types/radio": "3.8.1", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/react": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@nextui-org/react/-/react-2.4.6.tgz", + "integrity": "sha512-8o/k5A5g0xXj6hmV2AulkAswQnZGt2WI64Coq+toWBTumQLcW6iAqPJBDztCDiz+6yiU6Nvk/1ZuZJeRs3XMRw==", + "license": "MIT", + "dependencies": { + "@nextui-org/accordion": "2.0.38", + "@nextui-org/autocomplete": "2.1.5", + "@nextui-org/avatar": "2.0.32", + "@nextui-org/badge": "2.0.31", + "@nextui-org/breadcrumbs": "2.0.12", + "@nextui-org/button": "2.0.37", + "@nextui-org/calendar": "2.0.11", + "@nextui-org/card": "2.0.33", + "@nextui-org/checkbox": "2.1.4", + "@nextui-org/chip": "2.0.32", + "@nextui-org/code": "2.0.32", + "@nextui-org/date-input": "2.1.3", + "@nextui-org/date-picker": "2.1.6", + "@nextui-org/divider": "2.0.31", + "@nextui-org/dropdown": "2.1.29", + "@nextui-org/framer-utils": "2.0.24", + "@nextui-org/image": "2.0.31", + "@nextui-org/input": "2.2.4", + "@nextui-org/kbd": "2.0.33", + "@nextui-org/link": "2.0.34", + "@nextui-org/listbox": "2.1.25", + "@nextui-org/menu": "2.0.28", + "@nextui-org/modal": "2.0.39", + "@nextui-org/navbar": "2.0.36", + "@nextui-org/pagination": "2.0.35", + "@nextui-org/popover": "2.1.27", + "@nextui-org/progress": "2.0.33", + "@nextui-org/radio": "2.1.4", + "@nextui-org/ripple": "2.0.32", + "@nextui-org/scroll-shadow": "2.1.19", + "@nextui-org/select": "2.2.5", + "@nextui-org/skeleton": "2.0.31", + "@nextui-org/slider": "2.2.15", + "@nextui-org/snippet": "2.0.41", + "@nextui-org/spacer": "2.0.32", + "@nextui-org/spinner": "2.0.33", + "@nextui-org/switch": "2.0.33", + "@nextui-org/system": "2.2.5", + "@nextui-org/table": "2.0.39", + "@nextui-org/tabs": "2.0.35", + "@nextui-org/theme": "2.2.9", + "@nextui-org/tooltip": "2.0.39", + "@nextui-org/user": "2.0.33", + "@react-aria/visually-hidden": "3.8.12" + }, + "peerDependencies": { + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/react-rsc-utils": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.13.tgz", + "integrity": "sha512-QewsXtoQlMsR9stThdazKEImg9oyZkPLs7wsymhrzh6/HdQCl9bTdb6tJcROg4vg5LRYKGG11USSQO2nKlfCcQ==", + "license": "MIT" + }, + "node_modules/@nextui-org/react-utils": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.0.16.tgz", + "integrity": "sha512-QdDoqzhx+4t9cDTVmtw5iOrfyLvpqyKsq8PARHUniCiQQDQd1ao7FCpzHgvU9poYcEdRk+Lsna66zbeMkFBB6w==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-rsc-utils": "2.0.13", + "@nextui-org/shared-utils": "2.0.7" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/ripple": { + "version": "2.0.32", + "resolved": "https://registry.npmjs.org/@nextui-org/ripple/-/ripple-2.0.32.tgz", + "integrity": "sha512-xOqoHWzpvv5KRh7P8pXt3aZEmI1tyhiTNhrwjJaRME0d5xSA0gNzYhrjP5g0+Dxy4nKRDIZ1znJcd87KI07JFA==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/scroll-shadow": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/@nextui-org/scroll-shadow/-/scroll-shadow-2.1.19.tgz", + "integrity": "sha512-od5AnhX6iO0sHoTAVReWv1O1dbNCEeOBOFdnyzFins6ZC5EnAl/oBPR/KLd8glHtgM3Jt8dvIVlBXPEPZKZwaw==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-data-scroll-overflow": "2.1.6" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/select": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@nextui-org/select/-/select-2.2.5.tgz", + "integrity": "sha512-Il1eigjSXOBgJ745nhn6TDPD1jj1avrnvk9WV/DCjOsFRwfstRnDzsS1aNpZKHqJgHhFRQZ1ivz8hA4x3Zgasg==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/listbox": "2.1.25", + "@nextui-org/popover": "2.1.27", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/scroll-shadow": "2.1.19", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/spinner": "2.0.33", + "@nextui-org/use-aria-button": "2.0.10", + "@nextui-org/use-aria-multiselect": "2.2.3", + "@nextui-org/use-safe-layout-effect": "2.0.6", + "@react-aria/focus": "3.17.1", + "@react-aria/form": "3.0.5", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-aria/visually-hidden": "3.8.12", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/shared-icons": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@nextui-org/shared-icons/-/shared-icons-2.0.9.tgz", + "integrity": "sha512-WG3yinVY7Tk9VqJgcdF4V8Ok9+fcm5ey7S1els7kujrfqLYxtqoKywgiY/7QHwZlfQkzpykAfy+NAlHkTP5hMg==", + "license": "MIT", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/shared-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.0.7.tgz", + "integrity": "sha512-FxY3N0i1Al7Oz3yOQN0dSpG8UUrLIP3iYh3ubD7BhdQoZLl5xbG6++q1gqOzZXV+ZWeUFMY/or0ofzWxGHiOow==", + "license": "MIT" + }, + "node_modules/@nextui-org/skeleton": { + "version": "2.0.31", + "resolved": "https://registry.npmjs.org/@nextui-org/skeleton/-/skeleton-2.0.31.tgz", + "integrity": "sha512-pT0l2skPP6Nq9edLJNQxUJI/WLKu4Lx5Vvs7nlE/9NpkxyQ805l4LiYsMD30dkjjxe+WpXtIjjAXY0BQqdid0Q==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/slider": { + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@nextui-org/slider/-/slider-2.2.15.tgz", + "integrity": "sha512-ImsxvxAJ2wxRL45y4IbVWThZI/vw2Gq/6qUVZFAwyF54dlro08eJZJIOOG7bKfA5Ob63JLfroUijrlZ9kGP5cA==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/tooltip": "2.0.39", + "@react-aria/focus": "3.17.1", + "@react-aria/i18n": "3.11.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/slider": "3.7.8", + "@react-aria/utils": "3.24.1", + "@react-aria/visually-hidden": "3.8.12", + "@react-stately/slider": "3.5.4" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/snippet": { + "version": "2.0.41", + "resolved": "https://registry.npmjs.org/@nextui-org/snippet/-/snippet-2.0.41.tgz", + "integrity": "sha512-ZZopaecAZbKJIdabwGVF3ahL2MM7L0zZII61SO3LDPAwqXOuta9ixMYk1XVCI0V2PVqTkabQgdpt1ZLgmFH+Kw==", + "license": "MIT", + "dependencies": { + "@nextui-org/button": "2.0.37", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/tooltip": "2.0.39", + "@nextui-org/use-clipboard": "2.0.6", + "@react-aria/focus": "3.17.1", + "@react-aria/utils": "3.24.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/spacer": { + "version": "2.0.32", + "resolved": "https://registry.npmjs.org/@nextui-org/spacer/-/spacer-2.0.32.tgz", + "integrity": "sha512-NxqEYTig4OfkLDPlO2/jASB4gV8L9DLpsNZSqzaacIJZwk4BCTsNoBi3CuNt5ZsMoGYujtFP6QU0zH9fZbuzwA==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/system-rsc": "2.1.5" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/spinner": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@nextui-org/spinner/-/spinner-2.0.33.tgz", + "integrity": "sha512-c1wW4YEbzdn0t1MJAXhJ2W0PuNxrxtZg2DVqJeqh3180y4iQPYDzEy7oFoU0FpK53LcBPxjfsKHNL6v1pn+60A==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/system-rsc": "2.1.5" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/switch": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@nextui-org/switch/-/switch-2.0.33.tgz", + "integrity": "sha512-T7w+8+ex7Pey9HVGXkNft4D11mO5J9iPfmemfLbSOYqbSydcOuINuGRQ1QWy7X+lLYhhZBHb9Ykcf4QtR4dqTQ==", + "license": "MIT", + "dependencies": { + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-safe-layout-effect": "2.0.6", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/switch": "3.6.4", + "@react-aria/utils": "3.24.1", + "@react-aria/visually-hidden": "3.8.12", + "@react-stately/toggle": "3.7.4", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/system": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@nextui-org/system/-/system-2.2.5.tgz", + "integrity": "sha512-nrX6768aiyWtpxX3OTFBIVWR+v9nlMsC3KaBinNfek97sNm7gAfTHi7q5kylE3L5yIMpNG+DclAKpuxgDQEmvw==", + "license": "MIT", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/system-rsc": "2.1.5", + "@react-aria/i18n": "3.11.1", + "@react-aria/overlays": "3.22.1", + "@react-aria/utils": "3.24.1", + "@react-stately/utils": "3.10.1" + }, + "peerDependencies": { + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/system-rsc": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.1.5.tgz", + "integrity": "sha512-tkJLAyJu34Rr5KUMMqoB7cZjOVXB+7a/7N4ushZfuiLdoYijgmcXFMzLxjm+tbt9zA5AV+ivsfbHvscg77dJ6w==", + "license": "MIT", + "dependencies": { + "@react-types/shared": "3.23.1", + "clsx": "^1.2.1" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18" + } + }, + "node_modules/@nextui-org/table": { + "version": "2.0.39", + "resolved": "https://registry.npmjs.org/@nextui-org/table/-/table-2.0.39.tgz", + "integrity": "sha512-VYvmrQ6GliwmzukKLZ7Nxp3sFXdskWZp8/BjwROLFE9Zco22CC0++7VPG3ebOYAIhi4e1Je+QUTx4/eh2wZZgg==", + "license": "MIT", + "dependencies": { + "@nextui-org/checkbox": "2.1.4", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-icons": "2.0.9", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/spacer": "2.0.32", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/table": "3.14.1", + "@react-aria/utils": "3.24.1", + "@react-aria/visually-hidden": "3.8.12", + "@react-stately/table": "3.11.8", + "@react-stately/virtualizer": "3.7.1", + "@react-types/grid": "3.2.6", + "@react-types/table": "3.9.5" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/tabs": { + "version": "2.0.35", + "resolved": "https://registry.npmjs.org/@nextui-org/tabs/-/tabs-2.0.35.tgz", + "integrity": "sha512-K6uDZbJwn1qLRw8XeBS2TwGQl9zKXg3Q1ShLzVG2IjTGHGNAn9lwkUzn0FNUNaU1GK2o8wOyKhX7K02J3Ev5fw==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/framer-utils": "2.0.24", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-is-mounted": "2.0.6", + "@nextui-org/use-update-effect": "2.0.6", + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/tabs": "3.9.1", + "@react-aria/utils": "3.24.1", + "@react-stately/tabs": "3.6.6", + "@react-types/shared": "3.23.1", + "@react-types/tabs": "3.3.7", + "scroll-into-view-if-needed": "3.0.10" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/theme": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.2.9.tgz", + "integrity": "sha512-TN2I9sMriLaj00pXsIMlg19+UHeOdjzS2JV0u4gjL14mSbQl5BYNxgbvU3gbMqkZZQ6OpwT4RnT8RS+ks6TXCw==", + "license": "MIT", + "dependencies": { + "clsx": "^1.2.1", + "color": "^4.2.3", + "color2k": "^2.0.2", + "deepmerge": "4.3.1", + "flat": "^5.0.2", + "lodash.foreach": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.kebabcase": "^4.1.1", + "lodash.mapkeys": "^4.6.0", + "lodash.omit": "^4.5.0", + "tailwind-merge": "^1.14.0", + "tailwind-variants": "^0.1.20" + }, + "peerDependencies": { + "tailwindcss": ">=3.4.0" + } + }, + "node_modules/@nextui-org/tooltip": { + "version": "2.0.39", + "resolved": "https://registry.npmjs.org/@nextui-org/tooltip/-/tooltip-2.0.39.tgz", + "integrity": "sha512-DWP3XAmVb/SlcdI4SQodtT8ZyMzYMuvRbq4+JQwm+qq1+FGs55z15+8h9DRFQEseEEaDs0hCs6+kgbieZlUitw==", + "license": "MIT", + "dependencies": { + "@nextui-org/aria-utils": "2.0.24", + "@nextui-org/framer-utils": "2.0.24", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@nextui-org/use-safe-layout-effect": "2.0.6", + "@react-aria/interactions": "3.21.3", + "@react-aria/overlays": "3.22.1", + "@react-aria/tooltip": "3.7.4", + "@react-aria/utils": "3.24.1", + "@react-stately/tooltip": "3.4.9", + "@react-types/overlays": "3.8.7", + "@react-types/tooltip": "3.4.9" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=10.17.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-accordion": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.0.7.tgz", + "integrity": "sha512-VzGlxmsu2tWG2Pht1e0PBz40jz95v0OEKYVXq91WpDMwj8Bl1CYvxrw2Qz41/5Xi0X843Mmo4sPwrc/hk0+RHA==", + "license": "MIT", + "dependencies": { + "@react-aria/button": "3.9.5", + "@react-aria/focus": "3.17.1", + "@react-aria/selection": "3.18.1", + "@react-aria/utils": "3.24.1", + "@react-stately/tree": "3.8.1", + "@react-types/accordion": "3.0.0-alpha.21", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-button": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-button/-/use-aria-button-2.0.10.tgz", + "integrity": "sha512-tUpp4QMr1zugKPevyToeRHIufTuc/g+67/r/oQLRTG0mMo3yGVmggykQuYn22fqqZPpW6nHcB9VYc+XtZZ27TQ==", + "license": "MIT", + "dependencies": { + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-types/button": "3.9.4", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-link": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-link/-/use-aria-link-2.0.19.tgz", + "integrity": "sha512-ef61cJLlwcR4zBWiaeHZy4K18juFjUup2SslfLIAiZz3kVosBCGKmkJkw1SASYY8+D/oUc2B6BFIk25YEsRKRw==", + "license": "MIT", + "dependencies": { + "@react-aria/focus": "3.17.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/utils": "3.24.1", + "@react-types/link": "3.5.5", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-menu": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-menu/-/use-aria-menu-2.0.6.tgz", + "integrity": "sha512-fGDF25E99THbgeDV2r2w4BHw5ZbGW3Lu6Y+vbLUcLBBh6x8/W8cqrpYFrzSUzn1RCun1t17yOAHZEV2rbvtMzA==", + "license": "MIT", + "dependencies": { + "@react-aria/i18n": "3.11.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/menu": "3.14.1", + "@react-aria/selection": "3.18.1", + "@react-aria/utils": "3.24.1", + "@react-stately/collections": "3.10.7", + "@react-stately/tree": "3.8.1", + "@react-types/menu": "3.9.9", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-modal-overlay": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.0.11.tgz", + "integrity": "sha512-crMOCHyGIiBJiihxqidJCNR3AHH62uewfImDLEwyE/SlIkhAqW5jteUhkq0QfCSH4U/ydWisQ14niWDEgtzxXg==", + "license": "MIT", + "dependencies": { + "@react-aria/overlays": "3.22.1", + "@react-aria/utils": "3.24.1", + "@react-stately/overlays": "3.6.7", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-multiselect": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.2.3.tgz", + "integrity": "sha512-VeRoyyUUVgJ7DrdfzU6onjohHxJfG7bmwpIfQyurMzvTZcmcVUGTnddAnRPVEoOro68tTAj4IuPs/4xkf1aXxg==", + "license": "MIT", + "dependencies": { + "@react-aria/i18n": "3.11.1", + "@react-aria/interactions": "3.21.3", + "@react-aria/label": "3.7.8", + "@react-aria/listbox": "3.12.1", + "@react-aria/menu": "3.14.1", + "@react-aria/selection": "3.18.1", + "@react-aria/utils": "3.24.1", + "@react-stately/form": "3.0.3", + "@react-stately/list": "3.10.5", + "@react-stately/menu": "3.7.1", + "@react-types/button": "3.9.4", + "@react-types/overlays": "3.8.7", + "@react-types/select": "3.9.4", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-toggle-button": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.10.tgz", + "integrity": "sha512-U5jOmEO+nMIgYvBF0+gJtdq8C6dynGMjzAboPG4FhuHOzDoNiC12G5FIbGnRe8K1hMsKVuaI72p9986NhfqNgw==", + "license": "MIT", + "dependencies": { + "@nextui-org/use-aria-button": "2.0.10", + "@react-aria/utils": "3.24.1", + "@react-stately/toggle": "3.7.4", + "@react-types/button": "3.9.4", + "@react-types/shared": "3.23.1" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-callback-ref": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-callback-ref/-/use-callback-ref-2.0.6.tgz", + "integrity": "sha512-2WcwWuK1L/wIpTbibnLrysmmkzWomvkVIcgWayB6n/w+bpPrPCG7Zyg2WHzmMmDhe6imV//KKBgNKRi8Xhu/VA==", + "license": "MIT", + "dependencies": { + "@nextui-org/use-safe-layout-effect": "2.0.6" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-clipboard/-/use-clipboard-2.0.6.tgz", + "integrity": "sha512-UQbCoAX1vqEKYeMF8Xp2RdTqbDD8Or16+7W4f8OQc5+uaJeKaAL6LPITi5M5ipgruTvzM845XooHdiAStH322Q==", + "license": "MIT", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-data-scroll-overflow": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.1.6.tgz", + "integrity": "sha512-z9XzBF64qjTSp6jTttMDEPku7Xpgci/tYTokEQHWgydRg3FZEaBqRgOOMeiXAV1Py/kQB062MjPSneUtwYlozA==", + "license": "MIT", + "dependencies": { + "@nextui-org/shared-utils": "2.0.7" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-disclosure": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@nextui-org/use-disclosure/-/use-disclosure-2.0.10.tgz", + "integrity": "sha512-s2I58d7x2f1JRriZnNm9ZoxrGmxF+DnC9BXM1sD99Wq1VNMd0dhitmx0mUWfUB7l5HLyZgKOeiSLG+ugy1F1Yw==", + "license": "MIT", + "dependencies": { + "@nextui-org/use-callback-ref": "2.0.6", + "@react-aria/utils": "3.24.1", + "@react-stately/utils": "3.10.1" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-image": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-image/-/use-image-2.0.6.tgz", + "integrity": "sha512-VelN9y3vzwIpPfubFMh00YRQ0f4+I5FElcAvAqoo0Kfb0K7sGrTo1lZNApHm6yBN2gJMMeccG9u7bZB+wcDGZQ==", + "license": "MIT", + "dependencies": { + "@nextui-org/use-safe-layout-effect": "2.0.6" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-is-mobile": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mobile/-/use-is-mobile-2.0.9.tgz", + "integrity": "sha512-u5pRmPV0wacdpOcAkQnWwE30yNBl2uk1WvbWkrSELxIVRN22+fTIYn8ynnHK0JbJFTA6/5zh7uIfETQu3L6KjA==", + "license": "MIT", + "dependencies": { + "@react-aria/ssr": "3.9.4" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-is-mounted": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-is-mounted/-/use-is-mounted-2.0.6.tgz", + "integrity": "sha512-/lcMdYnwBZ1EuKMLRIhHeAZG8stXWNTz7wBweAlLId23VC4VHgCp/s9K9Vbj1A5/r8FiFQeoTmXQuMAMUoPRtg==", + "license": "MIT", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-measure": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nextui-org/use-measure/-/use-measure-2.0.2.tgz", + "integrity": "sha512-H/RSPPA9B5sZ10wiXR3jLlYFEuiVnc0O/sgLLQfrb5M0hvHoaqMThnsZpm//5iyS7tD7kxPeYNLa1EhzlQKxDA==", + "license": "MIT", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-pagination": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@nextui-org/use-pagination/-/use-pagination-2.0.9.tgz", + "integrity": "sha512-p5Gssyb71/SjRezq2o1aRsYTmC9idziW3pLCJFpVwLGfgWNARf9C6NS1oQsqKgjF5lvzoa88soZRDhKKvRAt/g==", + "license": "MIT", + "dependencies": { + "@nextui-org/shared-utils": "2.0.7", + "@react-aria/i18n": "3.11.1" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-safe-layout-effect": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.6.tgz", + "integrity": "sha512-xzEJXf/g9GaSqjLpQ4+Z2/pw1GPq2Fc5cWRGqEXbGauEMXuH8UboRls1BmIV1RuOpqI6FgxkEmxL1EuVIRVmvQ==", + "license": "MIT", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-scroll-position": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.8.tgz", + "integrity": "sha512-sUuoLEPWxCNlgzayy3VZSneVA1rKSdh4kBuBbYJTp/g2yyrpZYnyYzWpeNJ4dhDQr1cpTDODehJekWPBhNN+uw==", + "license": "MIT", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-update-effect": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-update-effect/-/use-update-effect-2.0.6.tgz", + "integrity": "sha512-n5Qiv3ferKn+cSxU3Vv+96LdG8I/00mzc7Veoan+P9GL0aCTrsPB6RslTsiblaiAXQcqTiFXd8xwsK309DXOXA==", + "license": "MIT", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/user": { + "version": "2.0.33", + "resolved": "https://registry.npmjs.org/@nextui-org/user/-/user-2.0.33.tgz", + "integrity": "sha512-v6gGTlsaqM7Ndwtx9N/AAQFRICcIE5DuFxRZRqPfLa+jbZhJuWG2OSIATPeUOxgr8pKWpeV78nETdFKEKcsUPA==", + "license": "MIT", + "dependencies": { + "@nextui-org/avatar": "2.0.32", + "@nextui-org/react-utils": "2.0.16", + "@nextui-org/shared-utils": "2.0.7", + "@react-aria/focus": "3.17.1", + "@react-aria/utils": "3.24.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -273,7 +1772,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -282,7 +1780,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -295,12 +1792,1922 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, "engines": { "node": ">=14" } }, + "node_modules/@prisma/client": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.17.0.tgz", + "integrity": "sha512-N2tnyKayT0Zf7mHjwEyE8iG7FwTmXDHFZ1GnNhQp0pJUObsuel4ZZ1XwfuAYkq5mRIiC/Kot0kt0tGCfLJ70Jw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.13" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } + } + }, + "node_modules/@prisma/debug": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.17.0.tgz", + "integrity": "sha512-l7+AteR3P8FXiYyo496zkuoiJ5r9jLQEdUuxIxNCN1ud8rdbH3GTxm+f+dCyaSv9l9WY+29L9czaVRXz9mULfg==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/engines": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.17.0.tgz", + "integrity": "sha512-+r+Nf+JP210Jur+/X8SIPLtz+uW9YA4QO5IXA+KcSOBe/shT47bCcRMTYCbOESw3FFYFTwe7vU6KTWHKPiwvtg==", + "devOptional": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.17.0", + "@prisma/engines-version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", + "@prisma/fetch-engine": "5.17.0", + "@prisma/get-platform": "5.17.0" + } + }, + "node_modules/@prisma/engines-version": { + "version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053.tgz", + "integrity": "sha512-tUuxZZysZDcrk5oaNOdrBnnkoTtmNQPkzINFDjz7eG6vcs9AVDmA/F6K5Plsb2aQc/l5M2EnFqn3htng9FA4hg==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/fetch-engine": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.17.0.tgz", + "integrity": "sha512-ESxiOaHuC488ilLPnrv/tM2KrPhQB5TRris/IeIV4ZvUuKeaicCl4Xj/JCQeG9IlxqOgf1cCg5h5vAzlewN91Q==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.17.0", + "@prisma/engines-version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", + "@prisma/get-platform": "5.17.0" + } + }, + "node_modules/@prisma/get-platform": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.17.0.tgz", + "integrity": "sha512-UlDgbRozCP1rfJ5Tlkf3Cnftb6srGrEQ4Nm3og+1Se2gWmCZ0hmPIi+tQikGDUVLlvOWx3Gyi9LzgRP+HTXV9w==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.17.0" + } + }, + "node_modules/@react-aria/breadcrumbs": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.13.tgz", + "integrity": "sha512-G1Gqf/P6kVdfs94ovwP18fTWuIxadIQgHsXS08JEVcFVYMjb9YjqnEBaohUxD1tq2WldMbYw53ahQblT4NTG+g==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.11.1", + "@react-aria/link": "^3.7.1", + "@react-aria/utils": "^3.24.1", + "@react-types/breadcrumbs": "^3.7.5", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/button": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.5.tgz", + "integrity": "sha512-dgcYR6j8WDOMLKuVrtxzx4jIC05cVKDzc+HnPO8lNkBAOfjcuN5tkGRtIjLtqjMvpZHhQT5aDbgFpIaZzxgFIg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/utils": "^3.24.1", + "@react-stately/toggle": "^3.7.4", + "@react-types/button": "^3.9.4", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/calendar": { + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.8.tgz", + "integrity": "sha512-Whlp4CeAA5/ZkzrAHUv73kgIRYjw088eYGSc+cvSOCxfrc/2XkBm9rNrnSBv0DvhJ8AG0Fjz3vYakTmF3BgZBw==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@react-aria/i18n": "^3.11.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/live-announcer": "^3.3.4", + "@react-aria/utils": "^3.24.1", + "@react-stately/calendar": "^3.5.1", + "@react-types/button": "^3.9.4", + "@react-types/calendar": "^3.4.6", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/checkbox": { + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.3.tgz", + "integrity": "sha512-EtBJL6iu0gvrw3A4R7UeVLR6diaVk/mh4kFBc7c8hQjpEJweRr4hmJT3hrNg3MBcTWLxFiMEXPGgWEwXDBygtA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/form": "^3.0.5", + "@react-aria/interactions": "^3.21.3", + "@react-aria/label": "^3.7.8", + "@react-aria/toggle": "^3.10.4", + "@react-aria/utils": "^3.24.1", + "@react-stately/checkbox": "^3.6.5", + "@react-stately/form": "^3.0.3", + "@react-stately/toggle": "^3.7.4", + "@react-types/checkbox": "^3.8.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/combobox": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.9.1.tgz", + "integrity": "sha512-SpK92dCmT8qn8aEcUAihRQrBb5LZUhwIbDExFII8PvUvEFy/PoQHXIo3j1V29WkutDBDpMvBv/6XRCHGXPqrhQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.11.1", + "@react-aria/listbox": "^3.12.1", + "@react-aria/live-announcer": "^3.3.4", + "@react-aria/menu": "^3.14.1", + "@react-aria/overlays": "^3.22.1", + "@react-aria/selection": "^3.18.1", + "@react-aria/textfield": "^3.14.5", + "@react-aria/utils": "^3.24.1", + "@react-stately/collections": "^3.10.7", + "@react-stately/combobox": "^3.8.4", + "@react-stately/form": "^3.0.3", + "@react-types/button": "^3.9.4", + "@react-types/combobox": "^3.11.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/datepicker": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.10.1.tgz", + "integrity": "sha512-4HZL593nrNMa1GjBmWEN/OTvNS6d3/16G1YJWlqiUlv11ADulSbqBIjMmkgwrJVFcjrgqtXFy+yyrTA/oq94Zw==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@internationalized/number": "^3.5.3", + "@internationalized/string": "^3.2.3", + "@react-aria/focus": "^3.17.1", + "@react-aria/form": "^3.0.5", + "@react-aria/i18n": "^3.11.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/label": "^3.7.8", + "@react-aria/spinbutton": "^3.6.5", + "@react-aria/utils": "^3.24.1", + "@react-stately/datepicker": "^3.9.4", + "@react-stately/form": "^3.0.3", + "@react-types/button": "^3.9.4", + "@react-types/calendar": "^3.4.6", + "@react-types/datepicker": "^3.7.4", + "@react-types/dialog": "^3.5.10", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/dialog": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.14.tgz", + "integrity": "sha512-oqDCjQ8hxe3GStf48XWBf2CliEnxlR9GgSYPHJPUc69WBj68D9rVcCW3kogJnLAnwIyf3FnzbX4wSjvUa88sAQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/overlays": "^3.22.1", + "@react-aria/utils": "^3.24.1", + "@react-types/dialog": "^3.5.10", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/focus": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.17.1.tgz", + "integrity": "sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.21.3", + "@react-aria/utils": "^3.24.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/focus/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/form": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.5.tgz", + "integrity": "sha512-n290jRwrrRXO3fS82MyWR+OKN7yznVesy5Q10IclSTVYHHI3VI53xtAPr/WzNjJR1um8aLhOcDNFKwnNIUUCsQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.21.3", + "@react-aria/utils": "^3.24.1", + "@react-stately/form": "^3.0.3", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/grid": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.10.1.tgz", + "integrity": "sha512-7dSgiYVQapBtPV4SIit+9fJ1qoEjtp+PXffJkWAPtGbg/jJ4b0jcVzykH7ARD4w/6jAJN/oVSfrKZqFPoLAd9w==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.18.1", + "@react-aria/i18n": "^3.12.1", + "@react-aria/interactions": "^3.22.1", + "@react-aria/live-announcer": "^3.3.4", + "@react-aria/selection": "^3.19.1", + "@react-aria/utils": "^3.25.1", + "@react-stately/collections": "^3.10.9", + "@react-stately/grid": "^3.9.1", + "@react-stately/selection": "^3.16.1", + "@react-types/checkbox": "^3.8.3", + "@react-types/grid": "^3.2.8", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-aria/focus": { + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.1.tgz", + "integrity": "sha512-N0Cy61WCIv+57mbqC7hiZAsB+3rF5n4JKabxUmg/2RTJL6lq7hJ5N4gx75ymKxkN8GnVDwt4pKZah48Wopa5jw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.22.1", + "@react-aria/utils": "^3.25.1", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-aria/i18n": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.1.tgz", + "integrity": "sha512-0q3gyogF9Ekah+9LOo6tcfshxsk2Ope+KdbtFHJVhznedMxn6RpHGcVur5ImbQ1dYafA5CmjBUGJW70b56+BGA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.5", + "@internationalized/message": "^3.1.4", + "@internationalized/number": "^3.5.3", + "@internationalized/string": "^3.2.3", + "@react-aria/ssr": "^3.9.5", + "@react-aria/utils": "^3.25.1", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-aria/interactions": { + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.1.tgz", + "integrity": "sha512-5TLzQaDAQQ5C70yG8GInbO4wIylKY67RfTIIwQPGR/4n5OIjbUD8BOj3NuSsuZ/frUPaBXo1VEBBmSO23fxkjw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.5", + "@react-aria/utils": "^3.25.1", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-aria/selection": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.19.1.tgz", + "integrity": "sha512-mbExvq2Omi60sTWFGjwcNz1ja2P8VDsxWAqSypHRTyqXhtgqbv8V/v8Gp+7BmVPH1YHcbhztl6rvUZTDOSszzw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.18.1", + "@react-aria/i18n": "^3.12.1", + "@react-aria/interactions": "^3.22.1", + "@react-aria/utils": "^3.25.1", + "@react-stately/selection": "^3.16.1", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-aria/ssr": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz", + "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-aria/utils": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz", + "integrity": "sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.5", + "@react-stately/utils": "^3.10.2", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-stately/collections": { + "version": "3.10.9", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.9.tgz", + "integrity": "sha512-plyrng6hOQMG8LrjArMA6ts/DgWyXln3g90/hFNbqe/hdVYF53sDVsj8Jb+5LtoYTpiAlV6eOvy1XR0vPZUf8w==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-stately/utils": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz", + "integrity": "sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-types/checkbox": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.3.tgz", + "integrity": "sha512-f4c1mnLEt0iS1NMkyZXgT3q3AgcxzDk7w6MSONOKydcnh0xG5L2oefY14DhVDLkAuQS7jThlUFwiAs+MxiO3MA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-types/grid": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.8.tgz", + "integrity": "sha512-6PJrpukwMqlv3IhJSDkJuVbhHM8Oe6hd2supWqd9adMXrlSP7QHt9a8SgFcFblCCTx8JzUaA0PvY5sTudcEtOQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/grid/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/i18n": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.11.1.tgz", + "integrity": "sha512-vuiBHw1kZruNMYeKkTGGnmPyMnM5T+gT8bz97H1FqIq1hQ6OPzmtBZ6W6l6OIMjeHI5oJo4utTwfZl495GALFQ==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@internationalized/message": "^3.1.4", + "@internationalized/number": "^3.5.3", + "@internationalized/string": "^3.2.3", + "@react-aria/ssr": "^3.9.4", + "@react-aria/utils": "^3.24.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.21.3", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.3.tgz", + "integrity": "sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.4", + "@react-aria/utils": "^3.24.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/label": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.8.tgz", + "integrity": "sha512-MzgTm5+suPA3KX7Ug6ZBK2NX9cin/RFLsv1BdafJ6CZpmUSpWnGE/yQfYUB7csN7j31OsZrD3/P56eShYWAQfg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/utils": "^3.24.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/link": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.7.1.tgz", + "integrity": "sha512-a4IaV50P3fXc7DQvEIPYkJJv26JknFbRzFT5MJOMgtzuhyJoQdILEUK6XHYjcSSNCA7uLgzpojArVk5Hz3lCpw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/utils": "^3.24.1", + "@react-types/link": "^3.5.5", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/listbox": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.12.1.tgz", + "integrity": "sha512-7JiUp0NGykbv/HgSpmTY1wqhuf/RmjFxs1HZcNaTv8A+DlzgJYc7yQqFjP3ZA/z5RvJFuuIxggIYmgIFjaRYdA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.21.3", + "@react-aria/label": "^3.7.8", + "@react-aria/selection": "^3.18.1", + "@react-aria/utils": "^3.24.1", + "@react-stately/collections": "^3.10.7", + "@react-stately/list": "^3.10.5", + "@react-types/listbox": "^3.4.9", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/live-announcer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.4.tgz", + "integrity": "sha512-w8lxs35QrRrn6pBNzVfyGOeqWdxeVKf9U6bXIVwhq7rrTqRULL8jqy8RJIMfIs1s8G5FpwWYjyBOjl2g5Cu1iA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-aria/menu": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.14.1.tgz", + "integrity": "sha512-BYliRb38uAzq05UOFcD5XkjA5foQoXRbcH3ZufBsc4kvh79BcP1PMW6KsXKGJ7dC/PJWUwCui6QL1kUg8PqMHA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/i18n": "^3.11.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/overlays": "^3.22.1", + "@react-aria/selection": "^3.18.1", + "@react-aria/utils": "^3.24.1", + "@react-stately/collections": "^3.10.7", + "@react-stately/menu": "^3.7.1", + "@react-stately/tree": "^3.8.1", + "@react-types/button": "^3.9.4", + "@react-types/menu": "^3.9.9", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/overlays": { + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.22.1.tgz", + "integrity": "sha512-GHiFMWO4EQ6+j6b5QCnNoOYiyx1Gk8ZiwLzzglCI4q1NY5AG2EAmfU4Z1+Gtrf2S5Y0zHbumC7rs9GnPoGLUYg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/i18n": "^3.11.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/ssr": "^3.9.4", + "@react-aria/utils": "^3.24.1", + "@react-aria/visually-hidden": "^3.8.12", + "@react-stately/overlays": "^3.6.7", + "@react-types/button": "^3.9.4", + "@react-types/overlays": "^3.8.7", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/progress": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.13.tgz", + "integrity": "sha512-YBV9bOO5JzKvG8QCI0IAA00o6FczMgIDiK8Q9p5gKorFMatFUdRayxlbIPoYHMi+PguLil0jHgC7eOyaUcrZ0g==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.11.1", + "@react-aria/label": "^3.7.8", + "@react-aria/utils": "^3.24.1", + "@react-types/progress": "^3.5.4", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/radio": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.4.tgz", + "integrity": "sha512-3fmoMcQtCpgjTwJReFjnvIE/C7zOZeCeWUn4JKDqz9s1ILYsC3Rk5zZ4q66tFn6v+IQnecrKT52wH6+hlVLwTA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/form": "^3.0.5", + "@react-aria/i18n": "^3.11.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/label": "^3.7.8", + "@react-aria/utils": "^3.24.1", + "@react-stately/radio": "^3.10.4", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/selection": { + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.18.1.tgz", + "integrity": "sha512-GSqN2jX6lh7v+ldqhVjAXDcrWS3N4IsKXxO6L6Ygsye86Q9q9Mq9twWDWWu5IjHD6LoVZLUBCMO+ENGbOkyqeQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/i18n": "^3.11.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/utils": "^3.24.1", + "@react-stately/selection": "^3.15.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/slider": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.8.tgz", + "integrity": "sha512-MYvPcM0K8jxEJJicUK2+WxUkBIM/mquBxOTOSSIL3CszA80nXIGVnLlCUnQV3LOUzpWtabbWaZokSPtGgOgQOw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/i18n": "^3.11.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/label": "^3.7.8", + "@react-aria/utils": "^3.24.1", + "@react-stately/slider": "^3.5.4", + "@react-types/shared": "^3.23.1", + "@react-types/slider": "^3.7.3", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/spinbutton": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.7.tgz", + "integrity": "sha512-OCimp4yXoFIgh6WAMOls5DDDRDRO75ZFic3YA6wLWTRNHxo1Lj8S90i1A6pakY6bi4hdBCKmj4DnFSNKAw1iWg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.1", + "@react-aria/live-announcer": "^3.3.4", + "@react-aria/utils": "^3.25.1", + "@react-types/button": "^3.9.6", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/spinbutton/node_modules/@react-aria/i18n": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.1.tgz", + "integrity": "sha512-0q3gyogF9Ekah+9LOo6tcfshxsk2Ope+KdbtFHJVhznedMxn6RpHGcVur5ImbQ1dYafA5CmjBUGJW70b56+BGA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.5", + "@internationalized/message": "^3.1.4", + "@internationalized/number": "^3.5.3", + "@internationalized/string": "^3.2.3", + "@react-aria/ssr": "^3.9.5", + "@react-aria/utils": "^3.25.1", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/spinbutton/node_modules/@react-aria/ssr": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz", + "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/spinbutton/node_modules/@react-aria/utils": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz", + "integrity": "sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.5", + "@react-stately/utils": "^3.10.2", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/spinbutton/node_modules/@react-stately/utils": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz", + "integrity": "sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/spinbutton/node_modules/@react-types/button": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.6.tgz", + "integrity": "sha512-8lA+D5JLbNyQikf8M/cPP2cji91aVTcqjrGpDqI7sQnaLFikM8eFR6l1ZWGtZS5MCcbfooko77ha35SYplSQvw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/spinbutton/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/spinbutton/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.4.tgz", + "integrity": "sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/switch": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.4.tgz", + "integrity": "sha512-2nVqz4ZuJyof47IpGSt3oZRmp+EdS8wzeDYgf42WHQXrx4uEOk1mdLJ20+NnsYhj/2NHZsvXVrjBeKMjlMs+0w==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/toggle": "^3.10.4", + "@react-stately/toggle": "^3.7.4", + "@react-types/switch": "^3.5.3", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/table": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.14.1.tgz", + "integrity": "sha512-WaPgQe4zQF5OaluO5rm+Y2nEoFR63vsLd4BT4yjK1uaFhKhDY2Zk+1SCVQvBLLKS4WK9dhP05nrNzT0vp/ZPOw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/grid": "^3.9.1", + "@react-aria/i18n": "^3.11.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/live-announcer": "^3.3.4", + "@react-aria/utils": "^3.24.1", + "@react-aria/visually-hidden": "^3.8.12", + "@react-stately/collections": "^3.10.7", + "@react-stately/flags": "^3.0.3", + "@react-stately/table": "^3.11.8", + "@react-stately/virtualizer": "^3.7.1", + "@react-types/checkbox": "^3.8.1", + "@react-types/grid": "^3.2.6", + "@react-types/shared": "^3.23.1", + "@react-types/table": "^3.9.5", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/tabs": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.1.tgz", + "integrity": "sha512-S5v/0sRcOaSXaJYZuuy1ZVzYc7JD4sDyseG1133GjyuNjJOFHgoWMb+b4uxNIJbZxnLgynn/ZDBZSO+qU+fIxw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/i18n": "^3.11.1", + "@react-aria/selection": "^3.18.1", + "@react-aria/utils": "^3.24.1", + "@react-stately/tabs": "^3.6.6", + "@react-types/shared": "^3.23.1", + "@react-types/tabs": "^3.3.7", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/textfield": { + "version": "3.14.5", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.5.tgz", + "integrity": "sha512-hj7H+66BjB1iTKKaFXwSZBZg88YT+wZboEXZ0DNdQB2ytzoz/g045wBItUuNi4ZjXI3P+0AOZznVMYadWBAmiA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/form": "^3.0.5", + "@react-aria/label": "^3.7.8", + "@react-aria/utils": "^3.24.1", + "@react-stately/form": "^3.0.3", + "@react-stately/utils": "^3.10.1", + "@react-types/shared": "^3.23.1", + "@react-types/textfield": "^3.9.3", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/toggle": { + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.6.tgz", + "integrity": "sha512-AGlbtB1b8grrtjbiW5Au0LKYzxR83RHbHhaUkFwajyYRGyuEzr3Y03OiveoPB+DayA8Gz3H1ZVmW++8JZQOWHw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.18.1", + "@react-aria/interactions": "^3.22.1", + "@react-aria/utils": "^3.25.1", + "@react-stately/toggle": "^3.7.6", + "@react-types/checkbox": "^3.8.3", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/@react-aria/focus": { + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.1.tgz", + "integrity": "sha512-N0Cy61WCIv+57mbqC7hiZAsB+3rF5n4JKabxUmg/2RTJL6lq7hJ5N4gx75ymKxkN8GnVDwt4pKZah48Wopa5jw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.22.1", + "@react-aria/utils": "^3.25.1", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/@react-aria/interactions": { + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.1.tgz", + "integrity": "sha512-5TLzQaDAQQ5C70yG8GInbO4wIylKY67RfTIIwQPGR/4n5OIjbUD8BOj3NuSsuZ/frUPaBXo1VEBBmSO23fxkjw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.5", + "@react-aria/utils": "^3.25.1", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/@react-aria/ssr": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz", + "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/@react-aria/utils": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz", + "integrity": "sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.5", + "@react-stately/utils": "^3.10.2", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/@react-stately/toggle": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.6.tgz", + "integrity": "sha512-xRZyrjNVu1VCd1xpg5RwmNYs9fXb+JHChoUaRcBmGCCjsPD0R5uR3iNuE17RXJtWS3/8o9IJVn90+/7NW7boOg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.10.2", + "@react-types/checkbox": "^3.8.3", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/@react-stately/utils": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz", + "integrity": "sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/@react-types/checkbox": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.3.tgz", + "integrity": "sha512-f4c1mnLEt0iS1NMkyZXgT3q3AgcxzDk7w6MSONOKydcnh0xG5L2oefY14DhVDLkAuQS7jThlUFwiAs+MxiO3MA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/toggle/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/tooltip": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.4.tgz", + "integrity": "sha512-+XRx4HlLYqWY3fB8Z60bQi/rbWDIGlFUtXYbtoa1J+EyRWfhpvsYImP8qeeNO/vgjUtDy1j9oKa8p6App9mBMQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.17.1", + "@react-aria/interactions": "^3.21.3", + "@react-aria/utils": "^3.24.1", + "@react-stately/tooltip": "^3.4.9", + "@react-types/shared": "^3.23.1", + "@react-types/tooltip": "^3.4.9", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.24.1.tgz", + "integrity": "sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.4", + "@react-stately/utils": "^3.10.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/utils/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/visually-hidden": { + "version": "3.8.12", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.12.tgz", + "integrity": "sha512-Bawm+2Cmw3Xrlr7ARzl2RLtKh0lNUdJ0eNqzWcyx4c0VHUAWtThmH5l+HRqFUGzzutFZVo89SAy40BAbd0gjVw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.21.3", + "@react-aria/utils": "^3.24.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/calendar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.5.1.tgz", + "integrity": "sha512-7l7QhqGUJ5AzWHfvZzbTe3J4t72Ht5BmhW4hlVI7flQXtfrmYkVtl3ZdytEZkkHmWGYZRW9b4IQTQGZxhtlElA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@react-stately/utils": "^3.10.1", + "@react-types/calendar": "^3.4.6", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/checkbox": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.5.tgz", + "integrity": "sha512-IXV3f9k+LtmfQLE+DKIN41Q5QB/YBLDCB1YVx5PEdRp52S9+EACD5683rjVm8NVRDwjMi2SP6RnFRk7fVb5Azg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/form": "^3.0.3", + "@react-stately/utils": "^3.10.1", + "@react-types/checkbox": "^3.8.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/collections": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.7.tgz", + "integrity": "sha512-KRo5O2MWVL8n3aiqb+XR3vP6akmHLhLWYZEmPKjIv0ghQaEebBTrN3wiEjtd6dzllv0QqcWvDLM1LntNfJ2TsA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/combobox": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.4.tgz", + "integrity": "sha512-iLVGvKRRz0TeJXZhZyK783hveHpYA6xovOSdzSD+WGYpiPXo1QrcrNoH3AE0Z2sHtorU+8nc0j58vh5PB+m2AA==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.10.7", + "@react-stately/form": "^3.0.3", + "@react-stately/list": "^3.10.5", + "@react-stately/overlays": "^3.6.7", + "@react-stately/select": "^3.6.4", + "@react-stately/utils": "^3.10.1", + "@react-types/combobox": "^3.11.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/datepicker": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.4.tgz", + "integrity": "sha512-yBdX01jn6gq4NIVvHIqdjBUPo+WN8Bujc4OnPw+ZnfA4jI0eIgq04pfZ84cp1LVXW0IB0VaCu1AlQ/kvtZjfGA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@internationalized/string": "^3.2.3", + "@react-stately/form": "^3.0.3", + "@react-stately/overlays": "^3.6.7", + "@react-stately/utils": "^3.10.1", + "@react-types/datepicker": "^3.7.4", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/flags": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.3.tgz", + "integrity": "sha512-/ha7XFA0RZTQsbzSPwu3KkbNMgbvuM0GuMTYLTBWpgBrovBNTM+QqI/PfZTdHg8PwCYF4H5Y8gjdSpdulCvJFw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-stately/form": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.3.tgz", + "integrity": "sha512-92YYBvlHEWUGUpXgIaQ48J50jU9XrxfjYIN8BTvvhBHdD63oWgm8DzQnyT/NIAMzdLnhkg7vP+fjG8LjHeyIAg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/grid": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.9.1.tgz", + "integrity": "sha512-LSVIcXO/cqwG0IgDSk2juDbpARBS1IzGnsTp/8vSOejMxq5MXrwxL5hUcqNczL8Ss6aLpELm42tCS0kPm3cMKw==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.10.9", + "@react-stately/selection": "^3.16.1", + "@react-types/grid": "^3.2.8", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/grid/node_modules/@react-stately/collections": { + "version": "3.10.9", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.9.tgz", + "integrity": "sha512-plyrng6hOQMG8LrjArMA6ts/DgWyXln3g90/hFNbqe/hdVYF53sDVsj8Jb+5LtoYTpiAlV6eOvy1XR0vPZUf8w==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/grid/node_modules/@react-types/grid": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.8.tgz", + "integrity": "sha512-6PJrpukwMqlv3IhJSDkJuVbhHM8Oe6hd2supWqd9adMXrlSP7QHt9a8SgFcFblCCTx8JzUaA0PvY5sTudcEtOQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/grid/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/list": { + "version": "3.10.5", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.5.tgz", + "integrity": "sha512-fV9plO+6QDHiewsYIhboxcDhF17GO95xepC5ki0bKXo44gr14g/LSo/BMmsaMnV+1BuGdBunB05bO4QOIaigXA==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.10.7", + "@react-stately/selection": "^3.15.1", + "@react-stately/utils": "^3.10.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/menu": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.7.1.tgz", + "integrity": "sha512-mX1w9HHzt+xal1WIT2xGrTQsoLvDwuB2R1Er1MBABs//MsJzccycatcgV/J/28m6tO5M9iuFQQvLV+i1dCtodg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/overlays": "^3.6.7", + "@react-types/menu": "^3.9.9", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/overlays": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.7.tgz", + "integrity": "sha512-6zp8v/iNUm6YQap0loaFx6PlvN8C0DgWHNlrlzMtMmNuvjhjR0wYXVaTfNoUZBWj25tlDM81ukXOjpRXg9rLrw==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.10.1", + "@react-types/overlays": "^3.8.7", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/radio": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.4.tgz", + "integrity": "sha512-kCIc7tAl4L7Hu4Wt9l2jaa+MzYmAJm0qmC8G8yPMbExpWbLRu6J8Un80GZu+JxvzgDlqDyrVvyv9zFifwH/NkQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/form": "^3.0.3", + "@react-stately/utils": "^3.10.1", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/select": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.6.tgz", + "integrity": "sha512-JEpBosWNSXRexE/iReATei1EiVdTIwOWlLcCGw6K7oC/5/f+OHMsh2Kkt/c/RzM/to3vgR+Wbbqwrb712AWgYQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/form": "^3.0.5", + "@react-stately/list": "^3.10.7", + "@react-stately/overlays": "^3.6.9", + "@react-types/select": "^3.9.6", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select/node_modules/@react-stately/collections": { + "version": "3.10.9", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.9.tgz", + "integrity": "sha512-plyrng6hOQMG8LrjArMA6ts/DgWyXln3g90/hFNbqe/hdVYF53sDVsj8Jb+5LtoYTpiAlV6eOvy1XR0vPZUf8w==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select/node_modules/@react-stately/form": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.5.tgz", + "integrity": "sha512-J3plwJ63HQz109OdmaTqTA8Qhvl3gcYYK7DtgKyNP6mc/Me2Q4tl2avkWoA+22NRuv5m+J8TpBk4AVHUEOwqeQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select/node_modules/@react-stately/list": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.7.tgz", + "integrity": "sha512-W5PG7uG5GQV2Q59vXJE7QLKHZIoUNEx+JmHrBUCMKUgyngSpKIIEDR/R/C1b6ZJ9jMqqZA68Zlnd5iK1/mBi1A==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.10.9", + "@react-stately/selection": "^3.16.1", + "@react-stately/utils": "^3.10.2", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select/node_modules/@react-stately/overlays": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.9.tgz", + "integrity": "sha512-4chfyzKw7P2UEainm0yzjUgYwG1ovBejN88eTrn+O62x5huuMCwe0cbMxmYh4y7IhRFSee3jIJd0SP0u/+i39w==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.10.2", + "@react-types/overlays": "^3.8.9", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select/node_modules/@react-stately/utils": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz", + "integrity": "sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select/node_modules/@react-types/overlays": { + "version": "3.8.9", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.9.tgz", + "integrity": "sha512-9ni9upQgXPnR+K9cWmbYWvm3ll9gH8P/XsEZprqIV5zNLMF334jADK48h4jafb1X9RFnj0WbHo6BqcSObzjTig==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select/node_modules/@react-types/select": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.6.tgz", + "integrity": "sha512-cVSFR0eJLup/ht1Uto+y8uyLmHO89J6wNh65SIHb3jeVz9oLBAedP3YNI2qB+F9qFMUcA8PBSLXIIuT6gXzLgQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/select/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/selection": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.16.1.tgz", + "integrity": "sha512-qmnmYaXY7IhhzmIiInec1a/yPxlPSBHka6vrWddvt0S6zN7FU5cv6sm69ONUwYwLKSoaNHgOGvZhmsTzyV0O2A==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.10.9", + "@react-stately/utils": "^3.10.2", + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/selection/node_modules/@react-stately/collections": { + "version": "3.10.9", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.9.tgz", + "integrity": "sha512-plyrng6hOQMG8LrjArMA6ts/DgWyXln3g90/hFNbqe/hdVYF53sDVsj8Jb+5LtoYTpiAlV6eOvy1XR0vPZUf8w==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/selection/node_modules/@react-stately/utils": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz", + "integrity": "sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/selection/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/slider": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.4.tgz", + "integrity": "sha512-Jsf7K17dr93lkNKL9ij8HUcoM1sPbq8TvmibD6DhrK9If2lje+OOL8y4n4qreUnfMT56HCAeS9wCO3fg3eMyrw==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.10.1", + "@react-types/shared": "^3.23.1", + "@react-types/slider": "^3.7.3", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/table": { + "version": "3.11.8", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.8.tgz", + "integrity": "sha512-EdyRW3lT1/kAVDp5FkEIi1BQ7tvmD2YgniGdLuW/l9LADo0T+oxZqruv60qpUS6sQap+59Riaxl91ClDxrJnpg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.10.7", + "@react-stately/flags": "^3.0.3", + "@react-stately/grid": "^3.8.7", + "@react-stately/selection": "^3.15.1", + "@react-stately/utils": "^3.10.1", + "@react-types/grid": "^3.2.6", + "@react-types/shared": "^3.23.1", + "@react-types/table": "^3.9.5", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/tabs": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.6.tgz", + "integrity": "sha512-sOLxorH2uqjAA+v1ppkMCc2YyjgqvSGeBDgtR/lyPSDd4CVMoTExszROX2dqG0c8il9RQvzFuufUtQWMY6PgSA==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/list": "^3.10.5", + "@react-types/shared": "^3.23.1", + "@react-types/tabs": "^3.3.7", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/toggle": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.4.tgz", + "integrity": "sha512-CoYFe9WrhLkDP4HGDpJYQKwfiYCRBAeoBQHv+JWl5eyK61S8xSwoHsveYuEZ3bowx71zyCnNAqWRrmNOxJ4CKA==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.10.1", + "@react-types/checkbox": "^3.8.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/tooltip": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.9.tgz", + "integrity": "sha512-P7CDJsdoKarz32qFwf3VNS01lyC+63gXpDZG31pUu+EO5BeQd4WKN/AH1Beuswpr4GWzxzFc1aXQgERFGVzraA==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/overlays": "^3.6.7", + "@react-types/tooltip": "^3.4.9", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/tree": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.1.tgz", + "integrity": "sha512-LOdkkruJWch3W89h4B/bXhfr0t0t1aRfEp+IMrrwdRAl23NaPqwl5ILHs4Xu5XDHqqhg8co73pHrJwUyiTWEjw==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.10.7", + "@react-stately/selection": "^3.15.1", + "@react-stately/utils": "^3.10.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.1.tgz", + "integrity": "sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/virtualizer": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.7.1.tgz", + "integrity": "sha512-voHgE6EQ+oZaLv6u2umKxakvIKNkCQuUihqKACTjdslp7SJh4Mvs3oLBI0hf0JOh+rCcFIKDvQtFwy1fXFRYBA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/utils": "^3.24.1", + "@react-types/shared": "^3.23.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/accordion": { + "version": "3.0.0-alpha.21", + "resolved": "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.21.tgz", + "integrity": "sha512-cbE06jH/ZoI+1898xd7ocQ/A/Rtkz8wTJAVOYgc8VRY1SYNQ/XZTGH5T6dD6aERAmiDwL/kjD7xhsE80DyaEKA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/breadcrumbs": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.5.tgz", + "integrity": "sha512-lV9IDYsMiu2TgdMIjEmsOE0YWwjb3jhUNK1DCZZfq6uWuiHLgyx2EncazJBUWSjHJ4ta32j7xTuXch+8Ai6u/A==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/link": "^3.5.5", + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/button": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.4.tgz", + "integrity": "sha512-raeQBJUxBp0axNF74TXB8/H50GY8Q3eV6cEKMbZFP1+Dzr09Ngv0tJBeW0ewAxAguNH5DRoMUAUGIXtSXskVdA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/calendar": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.6.tgz", + "integrity": "sha512-WSntZPwtvsIYWvBQRAPvuCn55UTJBZroTvX0vQvWykJRQnPAI20G1hMQ3dNsnAL+gLZUYxBXn66vphmjUuSYew==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/checkbox": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.1.tgz", + "integrity": "sha512-5/oVByPw4MbR/8QSdHCaalmyWC71H/QGgd4aduTJSaNi825o+v/hsN2/CH7Fq9atkLKsC8fvKD00Bj2VGaKriQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/combobox": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.11.1.tgz", + "integrity": "sha512-UNc3OHt5cUt5gCTHqhQIqhaWwKCpaNciD8R7eQazmHiA9fq8ROlV+7l3gdNgdhJbTf5Bu/V5ISnN7Y1xwL3zqQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/datepicker": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.4.tgz", + "integrity": "sha512-ZfvgscvNzBJpYyVWg3nstJtA/VlWLwErwSkd1ivZYam859N30w8yH+4qoYLa6FzWLCFlrsRHyvtxlEM7lUAt5A==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.5.4", + "@react-types/calendar": "^3.4.6", + "@react-types/overlays": "^3.8.7", + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/dialog": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.12.tgz", + "integrity": "sha512-JmpQbSpXltqEyYfEwoqDolABIiojeExkqolHNdQlayIsfFuSxZxNwXZPOpz58Ri/iwv21JP7K3QF0Gb2Ohxl9w==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/overlays": "^3.8.9", + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/dialog/node_modules/@react-types/overlays": { + "version": "3.8.9", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.9.tgz", + "integrity": "sha512-9ni9upQgXPnR+K9cWmbYWvm3ll9gH8P/XsEZprqIV5zNLMF334jADK48h4jafb1X9RFnj0WbHo6BqcSObzjTig==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/dialog/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/grid": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.6.tgz", + "integrity": "sha512-XfHenL2jEBUYrhKiPdeM24mbLRXUn79wVzzMhrNYh24nBwhsPPpxF+gjFddT3Cy8dt6tRInfT6pMEu9nsXwaHw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/link": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.5.tgz", + "integrity": "sha512-G6P5WagHDR87npN7sEuC5IIgL1GsoY4WFWKO4734i2CXRYx24G9P0Su3AX4GA3qpspz8sK1AWkaCzBMmvnunfw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/listbox": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.1.tgz", + "integrity": "sha512-n5bOgD9lgfK1qaLtag9WPnu151SwXBCNn/OgGY/Br9mWRl+nPUEYtFcPX+2VCld7uThf54kwrTmzlFnaraIlcw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/listbox/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/menu": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.9.tgz", + "integrity": "sha512-FamUaPVs1Fxr4KOMI0YcR2rYZHoN7ypGtgiEiJ11v/tEPjPPGgeKDxii0McCrdOkjheatLN1yd2jmMwYj6hTDg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/overlays": "^3.8.7", + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/overlays": { + "version": "3.8.7", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.7.tgz", + "integrity": "sha512-zCOYvI4at2DkhVpviIClJ7bRrLXYhSg3Z3v9xymuPH3mkiuuP/dm8mUCtkyY4UhVeUTHmrQh1bzaOP00A+SSQA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/progress": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.4.tgz", + "integrity": "sha512-JNc246sTjasPyx5Dp7/s0rp3Bz4qlu4LrZTulZlxWyb53WgBNL7axc26CCi+I20rWL9+c7JjhrRxnLl/1cLN5g==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/radio": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.1.tgz", + "integrity": "sha512-bK0gio/qj1+0Ldu/3k/s9BaOZvnnRgvFtL3u5ky479+aLG5qf1CmYed3SKz8ErZ70JkpuCSrSwSCFf0t1IHovw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/select": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.4.tgz", + "integrity": "sha512-xI7dnOW2st91fPPcv6hdtrTdcfetYiqZuuVPZ5TRobY7Q10/Zqqe/KqtOw1zFKUj9xqNJe4Ov3xP5GSdcO60Eg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/shared": { + "version": "3.23.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.23.1.tgz", + "integrity": "sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/slider": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.5.tgz", + "integrity": "sha512-bRitwQRQjQoOcKEdPMljnvm474dwrmsc6pdsVQDh/qynzr+KO9IHuYc3qPW53WVE2hMQJDohlqtCAWQXWQ5Vcg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/slider/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/switch": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.5.tgz", + "integrity": "sha512-SZx1Bd+COhAOs/RTifbZG+uq/llwba7VAKx7XBeX4LeIz1dtguy5bigOBgFTMQi4qsIVCpybSWEEl+daj4XFPw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.24.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/switch/node_modules/@react-types/shared": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", + "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/table": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.5.tgz", + "integrity": "sha512-fgM2j9F/UR4Anmd28CueghCgBwOZoCVyN8fjaIFPd2MN4gCwUUfANwxLav65gZk4BpwUXGoQdsW+X50L3555mg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/grid": "^3.2.6", + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/tabs": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.7.tgz", + "integrity": "sha512-ZdLe5xOcFX6+/ni45Dl2jO0jFATpTnoSqj6kLIS/BYv8oh0n817OjJkLf+DS3CLfNjApJWrHqAk34xNh6nRnEg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/textfield": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.3.tgz", + "integrity": "sha512-DoAY6cYOL0pJhgNGI1Rosni7g72GAt4OVr2ltEx2S9ARmFZ0DBvdhA9lL2nywcnKMf27PEJcKMXzXc10qaHsJw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/tooltip": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.9.tgz", + "integrity": "sha512-wZ+uF1+Zc43qG+cOJzioBmLUNjRa7ApdcT0LI1VvaYvH5GdfjzUJOorLX9V/vAci0XMJ50UZ+qsh79aUlw2yqg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/overlays": "^3.8.7", + "@react-types/shared": "^3.23.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", @@ -324,6 +3731,36 @@ "node": ">= 10" } }, + "node_modules/@types/lodash": { + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "license": "MIT" + }, + "node_modules/@types/lodash.debounce": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz", + "integrity": "sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "license": "MIT" + }, + "node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "license": "MIT", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -396,7 +3833,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, "engines": { "node": ">=12" }, @@ -408,7 +3844,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, "engines": { "node": ">=12" }, @@ -419,14 +3854,12 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -458,26 +3891,33 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "optional": true + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, "engines": { "node": ">=8" }, @@ -489,7 +3929,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -498,7 +3937,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -512,6 +3950,15 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "optional": true }, + "node_modules/bson": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.8.0.tgz", + "integrity": "sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.20.1" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -527,7 +3974,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, "engines": { "node": ">= 6" } @@ -570,7 +4016,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -594,7 +4039,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -616,11 +4060,32 @@ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -631,8 +4096,17 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } }, "node_modules/color-support": { "version": "1.1.3", @@ -643,11 +4117,16 @@ "color-support": "bin.js" } }, + "node_modules/color2k": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", + "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==", + "license": "MIT" + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "optional": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -659,11 +4138,29 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, "engines": { "node": ">= 6" } }, + "node_modules/complex.js": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz", + "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==", + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -680,7 +4177,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -694,7 +4190,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -773,8 +4268,7 @@ "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "optional": true + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, "node_modules/decompress-response": { "version": "4.2.1", @@ -788,11 +4282,19 @@ "node": ">=8" } }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "optional": true, "engines": { "node": ">=0.4.0" } @@ -812,17 +4314,21 @@ "node": ">=8" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/domexception": { "version": "4.0.0", @@ -840,14 +4346,18 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/escape-latex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz", + "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==", + "license": "MIT" }, "node_modules/escodegen": { "version": "2.1.0", @@ -917,7 +4427,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -933,7 +4442,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -945,7 +4453,6 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -954,7 +4461,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -962,11 +4468,39 @@ "node": ">=8" } }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -982,7 +4516,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "optional": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -992,6 +4525,44 @@ "node": ">= 6" } }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "11.3.21", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.3.21.tgz", + "integrity": "sha512-D+hfIsvzV8eL/iycld4K+tKlg2Q2LdwnrcBEohtGw3cG1AIuNYATbT5RUqIM1ndsAk+EfGhoSGf0UaiFodc5Tw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -1026,7 +4597,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -1040,7 +4610,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1113,11 +4682,19 @@ "node": ">=8" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/glob": { "version": "10.4.1", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", - "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -1139,7 +4716,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -1152,6 +4728,12 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, + "node_modules/hamt_plus": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz", + "integrity": "sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==", + "license": "MIT" + }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -1162,7 +4744,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -1221,6 +4802,13 @@ "node": ">=0.10.0" } }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "devOptional": true, + "license": "MIT" + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1238,11 +4826,37 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "optional": true }, + "node_modules/intl-messageformat": { + "version": "10.5.14", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", + "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", + "license": "BSD-3-Clause", + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/fast-memoize": "2.2.0", + "@formatjs/icu-messageformat-parser": "2.7.8", + "tslib": "^2.4.0" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -1254,7 +4868,6 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -1266,7 +4879,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1275,7 +4887,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "devOptional": true, "engines": { "node": ">=8" } @@ -1284,7 +4895,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1296,7 +4906,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -1310,14 +4919,12 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jackspeak": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", - "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -1331,11 +4938,16 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", + "license": "MIT" + }, "node_modules/jiti": { "version": "1.21.6", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, "bin": { "jiti": "bin/jiti.js" } @@ -1395,7 +5007,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, "engines": { "node": ">=10" } @@ -1403,8 +5014,43 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "license": "MIT" + }, + "node_modules/lodash.mapkeys": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz", + "integrity": "sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA==", + "license": "MIT" + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", @@ -1421,7 +5067,6 @@ "version": "10.2.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, "engines": { "node": "14 || >=16.14" } @@ -1450,11 +5095,39 @@ "semver": "bin/semver.js" } }, + "node_modules/mathjs": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-13.0.3.tgz", + "integrity": "sha512-GpP9OW6swA5POZXvgpc/1FYkAr8lKgV04QHS1tIU60klFfplVCYaNzn6qy0vSp0hAQQN7shcx9CeB507dlLujA==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.24.8", + "complex.js": "^2.1.1", + "decimal.js": "^10.4.3", + "escape-latex": "^1.2.0", + "fraction.js": "^4.3.7", + "javascript-natural-sort": "^0.7.1", + "seedrandom": "^3.0.5", + "tiny-emitter": "^2.1.0", + "typed-function": "^4.2.1" + }, + "bin": { + "mathjs": "bin/cli.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -1463,7 +5136,6 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -1476,7 +5148,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "optional": true, "engines": { "node": ">= 0.6" } @@ -1485,7 +5156,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "optional": true, "dependencies": { "mime-db": "1.52.0" }, @@ -1509,7 +5179,6 @@ "version": "9.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -1524,7 +5193,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -1566,6 +5234,87 @@ "node": ">=10" } }, + "node_modules/mongodb": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.8.0.tgz", + "integrity": "sha512-HGQ9NWDle5WvwMnrvUxsFYPd3JEbqD3RgABHBQRuoCEND0qzhsd0iH5ypHsf1eJ+sXmvmyKpP+FLOKY8Il7jMw==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.5", + "bson": "^6.7.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", + "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==", + "license": "Apache-2.0", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "license": "MIT", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1576,7 +5325,6 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -1743,7 +5491,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1771,7 +5518,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -1780,7 +5526,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, "engines": { "node": ">= 6" } @@ -1813,7 +5558,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -1821,14 +5565,12 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -1849,7 +5591,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -1861,7 +5602,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1870,7 +5610,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, "engines": { "node": ">= 6" } @@ -1879,7 +5618,6 @@ "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1907,7 +5645,6 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -1924,7 +5661,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, "dependencies": { "camelcase-css": "^2.0.1" }, @@ -1943,7 +5679,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1978,7 +5713,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, "engines": { "node": ">=14" }, @@ -1990,7 +5724,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.11" }, @@ -2009,7 +5742,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", - "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2021,8 +5753,46 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prisma": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.17.0.tgz", + "integrity": "sha512-m4UWkN5lBE6yevqeOxEvmepnL5cNPEjzMw2IqDB59AcEV6w7D8vGljDLd1gPFH+W6gUxw9x7/RmN5dCS/WTPxA==", + "devOptional": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/engines": "5.17.0" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, "node_modules/psl": { "version": "1.9.0", @@ -2034,7 +5804,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "optional": true, "engines": { "node": ">=6" } @@ -2049,7 +5818,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -2088,11 +5856,119 @@ "react": "^18.3.1" } }, + "node_modules/react-remove-scroll": { + "version": "2.5.10", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.10.tgz", + "integrity": "sha512-m3zvBRANPBw3qxVVjEIPEQinkcwlFZ4qyomuWVpNJdv4c6MvHfXV0C3L9Jx5rr3HeBHKNRX+1jreB5QloDIJjA==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.6", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", + "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-toastify": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-10.0.5.tgz", + "integrity": "sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-toastify/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, "dependencies": { "pify": "^2.3.0" } @@ -2115,7 +5991,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -2123,6 +5998,32 @@ "node": ">=8.10.0" } }, + "node_modules/recoil": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.7.7.tgz", + "integrity": "sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ==", + "license": "MIT", + "dependencies": { + "hamt_plus": "1.0.2" + }, + "peerDependencies": { + "react": ">=16.13.1" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -2133,7 +6034,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -2150,7 +6050,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -2219,7 +6118,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -2264,6 +6162,24 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -2284,6 +6200,21 @@ "loose-envify": "^1.1.0" } }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz", + "integrity": "sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==", + "license": "MIT" + }, "node_modules/semver": { "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", @@ -2306,7 +6237,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2318,7 +6248,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -2327,7 +6256,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "engines": { "node": ">=14" }, @@ -2366,6 +6294,15 @@ "simple-concat": "^1.0.0" } }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2383,6 +6320,15 @@ "node": ">=0.10.0" } }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "license": "MIT", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -2404,7 +6350,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2422,7 +6367,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2436,7 +6380,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -2444,14 +6387,12 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2463,7 +6404,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2479,7 +6419,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2491,7 +6430,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -2522,7 +6460,6 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -2544,7 +6481,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -2558,11 +6494,36 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "optional": true }, + "node_modules/tailwind-merge": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", + "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "0.1.20", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.1.20.tgz", + "integrity": "sha512-AMh7x313t/V+eTySKB0Dal08RHY7ggYK0MSn/ad8wKWOrDUIzyiWNayRUm2PIJ4VRkvRnfNuyRuKbLV3EN+ewQ==", + "license": "MIT", + "dependencies": { + "tailwind-merge": "^1.14.0" + }, + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, "node_modules/tailwindcss": { "version": "3.4.4", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", - "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -2625,7 +6586,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, "dependencies": { "any-promise": "^1.0.0" } @@ -2634,7 +6594,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -2642,11 +6601,16 @@ "node": ">=0.8" } }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -2684,14 +6648,22 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "node_modules/tslib": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, + "node_modules/typed-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.2.1.tgz", + "integrity": "sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, "node_modules/universalify": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", @@ -2711,11 +6683,93 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "license": "MIT", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "devOptional": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { "version": "9.0.1", @@ -2755,7 +6809,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "optional": true, "engines": { "node": ">=12" } @@ -2798,7 +6851,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -2863,7 +6915,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2881,7 +6932,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2898,7 +6948,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -2907,7 +6956,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2921,14 +6969,12 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2942,7 +6988,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3002,7 +7047,6 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "dev": true, "bin": { "yaml": "bin.mjs" }, diff --git a/package.json b/package.json index 28845ef0..24a868c1 100644 --- a/package.json +++ b/package.json @@ -10,22 +10,29 @@ }, "dependencies": { "@nextui-org/react": "^2.4.2", - "@prisma/client": "^5.17.0", + "@prisma/client": "^5.18.0", + "ag-grid-react": "^32.0.2", "axios": "^1.7.3", "fabric": "^5.3.0", "framer-motion": "^11.2.13", + "iron-session": "^8.0.2", "mathjs": "^13.0.2", - "mongodb": "^6.8.0", + "mssql": "^11.0.1", "next": "14.2.3", + "next-international": "^1.2.4", "react": "^18", + "react-datepicker": "^7.3.0", "react-dom": "^18", + "react-responsive-modal": "^6.4.2", + "react-toastify": "^10.0.5", "recoil": "^0.7.7", "uuid": "^9.0.1" }, "devDependencies": { + "@turf/turf": "^7.0.0", "postcss": "^8", "prettier": "^3.3.3", - "prisma": "^5.17.0", + "prisma": "^5.18.0", "sass": "^1.77.8", "tailwindcss": "^3.4.1" } diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 327b757a..027c8859 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -3,17 +3,26 @@ generator client { } datasource db { - provider = "mongodb" + provider = "sqlserver" url = env("DATABASE_URL") } -model test { - id String @id @default(auto()) @map("_id") @db.ObjectId - content String -} - -model canvas { - id String @id @default(auto()) @map("_id") @db.ObjectId - loginId String - canvas Json +model M_USER { + USER_ID String @id(map: "M_USER_pk") @db.VarChar(50) + SALE_STORE_ID String @db.VarChar(10) + PASSWORD String @db.VarChar(10) + CATEGORY String? @db.NVarChar(20) + NAME String @db.NVarChar(20) + NAME_KANA String @db.NVarChar(20) + TEL String? @db.VarChar(15) + FAX String? @db.VarChar(15) + MAIL String? @db.NVarChar(100) + GROUP_ID String @db.VarChar(5) + MODULE_SELECT_GROUP_ID String? @db.VarChar(5) + VERSION_MANAGEMENT_ID String? @db.VarChar(20) + DISP_COST_PRICE Boolean? + DISP_SELLING_PRICE Boolean? + REGIST_DATETIME DateTime? @db.DateTime + LAST_EDIT_DATETIME DateTime? @db.DateTime + LAST_EDIT_USER String? @db.VarChar(50) } \ No newline at end of file diff --git a/src/app/[locale]/LocaleProvider.js b/src/app/[locale]/LocaleProvider.js new file mode 100644 index 00000000..cb4aa5d6 --- /dev/null +++ b/src/app/[locale]/LocaleProvider.js @@ -0,0 +1,11 @@ +'use client' + +import { I18nProviderClient } from '@/locales/client' + +export function LocaleProvider({ locale, children }) { + return ( + + {children} + + ) +} diff --git a/src/app/changelog/changelog.module.css b/src/app/[locale]/changelog/changelog.module.css similarity index 100% rename from src/app/changelog/changelog.module.css rename to src/app/[locale]/changelog/changelog.module.css diff --git a/src/app/[locale]/changelog/page.jsx b/src/app/[locale]/changelog/page.jsx new file mode 100644 index 00000000..dd7f623a --- /dev/null +++ b/src/app/[locale]/changelog/page.jsx @@ -0,0 +1,83 @@ +'use client' + +import { Button, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow } from '@nextui-org/react' + +import { AxiosType, useAxios } from '@/hooks/useAxios' +// import { get } from '@/lib/Axios' + +import QSelect from '@/components/ui/QSelect' + +import styles from './changelog.module.css' + +export default function changelogPage() { + const { get } = useAxios() + const testVar = process.env.NEXT_PUBLIC_TEST + + const handleUsers = async () => { + // const users = await get('/api/user/find-all') + const params = { + type: AxiosType.INTERNAL, + url: '/api/user/find-all', + } + const users = await get(params) + console.log('users', users) + } + + const data = [ + { + id: 1, + author: 'SWYOO', + contents: '버튼 정리(템플릿 적용)', + date: '2024.07.16', + }, + { + id: 2, + author: 'SWYOO', + contents: 'README.md 파일 이미지 경로 수정', + date: '2024.07.17', + }, + { + id: 3, + author: 'SWYOO', + contents: '', + date: '', + }, + ] + return ( + <> +
+
이 영역은 테스트입니다.
+
+ + + DATE + NAME + CONTENTS + + + {data.map((item) => ( + + {item.date} + {item.author} + {item.contents} + + ))} + +
+
+
+ +
+
{testVar}
+
+
+ +
+
+
+

Sass 테스트입니다.

+
+
+ + ) +} diff --git a/src/app/community/archive/page.jsx b/src/app/[locale]/community/archive/page.jsx similarity index 100% rename from src/app/community/archive/page.jsx rename to src/app/[locale]/community/archive/page.jsx diff --git a/src/app/community/faq/page.jsx b/src/app/[locale]/community/faq/page.jsx similarity index 100% rename from src/app/community/faq/page.jsx rename to src/app/[locale]/community/faq/page.jsx diff --git a/src/app/community/notice/page.jsx b/src/app/[locale]/community/notice/page.jsx similarity index 100% rename from src/app/community/notice/page.jsx rename to src/app/[locale]/community/notice/page.jsx diff --git a/src/app/[locale]/error.jsx b/src/app/[locale]/error.jsx new file mode 100644 index 00000000..07d75e7e --- /dev/null +++ b/src/app/[locale]/error.jsx @@ -0,0 +1,15 @@ +'use client' + +export default function ServerError() { + return ( +
+
+
+

500

+

Internal Server Error.

+

We are already working to solve the problem.

+
+
+
+ ) +} diff --git a/src/app/[locale]/intro/page.jsx b/src/app/[locale]/intro/page.jsx new file mode 100644 index 00000000..3c96c165 --- /dev/null +++ b/src/app/[locale]/intro/page.jsx @@ -0,0 +1,11 @@ +import Intro from '@/components/Intro' + +export default function IntroPage() { + return ( + <> +
+ +
+ + ) +} diff --git a/src/app/[locale]/layout.js b/src/app/[locale]/layout.js new file mode 100644 index 00000000..9ae6b1b9 --- /dev/null +++ b/src/app/[locale]/layout.js @@ -0,0 +1,15 @@ +'use client' + +import { useCurrentLocale } from '@/locales/client' +import { LocaleProvider } from './LocaleProvider' + +export default function LocaleLayout({ children }) { + const locale = useCurrentLocale() + return ( + <> + + {children} + + + ) +} diff --git a/src/app/[locale]/login/page.jsx b/src/app/[locale]/login/page.jsx new file mode 100644 index 00000000..0686da2e --- /dev/null +++ b/src/app/[locale]/login/page.jsx @@ -0,0 +1,9 @@ +import Login from '@/components/auth/Login' + +export default function LoginPage() { + return ( + <> + + + ) +} diff --git a/src/app/management/plan/page.jsx b/src/app/[locale]/management/plan/page.jsx similarity index 100% rename from src/app/management/plan/page.jsx rename to src/app/[locale]/management/plan/page.jsx diff --git a/src/app/management/stuff/page.jsx b/src/app/[locale]/management/stuff/page.jsx similarity index 100% rename from src/app/management/stuff/page.jsx rename to src/app/[locale]/management/stuff/page.jsx diff --git a/src/app/master/company/page.jsx b/src/app/[locale]/master/company/page.jsx similarity index 100% rename from src/app/master/company/page.jsx rename to src/app/[locale]/master/company/page.jsx diff --git a/src/app/master/price/page.jsx b/src/app/[locale]/master/price/page.jsx similarity index 100% rename from src/app/master/price/page.jsx rename to src/app/[locale]/master/price/page.jsx diff --git a/src/app/[locale]/not-found.jsx b/src/app/[locale]/not-found.jsx new file mode 100644 index 00000000..8127943b --- /dev/null +++ b/src/app/[locale]/not-found.jsx @@ -0,0 +1,25 @@ +'use client' + +import Link from 'next/link' + +export default function NotFound() { + return ( +
+
+
+

404

+

Something's missing.

+

+ Sorry, we can't find that page. You'll find lots to explore on the home page.{' '} +

+ + Back to Homepage + +
+
+
+ ) +} diff --git a/src/app/[locale]/page.js b/src/app/[locale]/page.js new file mode 100644 index 00000000..e2c11aed --- /dev/null +++ b/src/app/[locale]/page.js @@ -0,0 +1,23 @@ +import MainPage from '@/components/Main' +import { getSession } from '@/lib/authActions' +import { getCurrentLocale } from '@/locales/server' + +export default async function page() { + const session = await getSession() + + const currentLocale = getCurrentLocale() + + const mainPageProps = { + currentLocale, + isLoggedIn: session?.isLoggedIn, + } + + return ( + <> +
+

Main

+ +
+ + ) +} diff --git a/src/app/roof/page.jsx b/src/app/[locale]/roof/page.jsx similarity index 100% rename from src/app/roof/page.jsx rename to src/app/[locale]/roof/page.jsx diff --git a/src/app/roof2/page.jsx b/src/app/[locale]/roof2/page.jsx similarity index 100% rename from src/app/roof2/page.jsx rename to src/app/[locale]/roof2/page.jsx diff --git a/src/app/changelog/page.jsx b/src/app/changelog/page.jsx deleted file mode 100644 index 52c207b8..00000000 --- a/src/app/changelog/page.jsx +++ /dev/null @@ -1,55 +0,0 @@ -'use client' - -import { Button, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow } from '@nextui-org/react' -import Hero from '@/components/Hero' -import QSelect from '@/components/ui/QSelect' -import styles from './changelog.module.css' -import { get } from '@/lib/Axios' - -export default function changelogPage() { - const testVar = process.env.NEXT_PUBLIC_TEST - - const handleUsers = async () => { - const users = await get('/api/user/find-all') - console.log(users) - } - return ( - <> - -
이 영역은 테스트입니다.
-
- - - DATE - NAME - CONTENTS - - - - 2024.07.17 - SWYOO - ` * README.md 파일 이미지 경로 수정 ` - - - 2024.07.16 - SWYOO - ` * 버튼 정리(템플릿 적용) ` - - -
-
-
- -
-
{testVar}
-
-
- -
-
-
-

Sass 테스트입니다.

-
- - ) -} diff --git a/src/app/intro/page.jsx b/src/app/intro/page.jsx deleted file mode 100644 index d26257fb..00000000 --- a/src/app/intro/page.jsx +++ /dev/null @@ -1,15 +0,0 @@ -'use client' - -import Hero from '@/components/Hero' -import Intro from '@/components/Intro' - -export default function IntroPage() { - return ( - <> - -
- -
- - ) -} diff --git a/src/app/layout.js b/src/app/layout.js index d9dd77d0..72ac7bf3 100644 --- a/src/app/layout.js +++ b/src/app/layout.js @@ -1,10 +1,15 @@ import { Inter } from 'next/font/google' -import './globals.css' -import '../styles/style.scss' -import Headers from '@/components/Headers' + import RecoilRootWrapper from './RecoilWrapper' import UIProvider from './UIProvider' import { headers } from 'next/headers' +import Headers from '@/components/Headers' + +import { ToastContainer } from 'react-toastify' +import QModal from '@/components/common/modal/QModal' + +import './globals.css' +import '../styles/style.scss' const inter = Inter({ subsets: ['latin'] }) @@ -24,6 +29,8 @@ export default function RootLayout({ children }) { {headerPathname !== '/login' && } {children} + + diff --git a/src/app/login/page.jsx b/src/app/login/page.jsx deleted file mode 100644 index c5d063fd..00000000 --- a/src/app/login/page.jsx +++ /dev/null @@ -1,91 +0,0 @@ -export default function page() { - return ( - <> -
-
-
- Your Company -

- Sign in to your account -

-
- -
-
-
- -
- -
-
- -
-
- - -
-
- -
-
- -
- -
-
- -

- Not a member?{' '} - - Start a 14 day free trial - -

-
-
-
- - ) -} diff --git a/src/app/page.js b/src/app/page.js index feb99992..9c905040 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -1,5 +1,5 @@ -import Hero from '@/components/Hero' +import Main from '@/components/Main' export default function Home() { - return + return
} diff --git a/src/components/Headers.jsx b/src/components/Headers.jsx index 12d36144..a5503b8c 100644 --- a/src/components/Headers.jsx +++ b/src/components/Headers.jsx @@ -2,7 +2,7 @@ import Link from 'next/link' export default function Headers() { return ( -
+
+ + +

+ Not a member?{' '} + + Start a 14 day free trial + +

+
+ + + ) +} diff --git a/src/components/common/datepicker/RangeDatePicker.jsx b/src/components/common/datepicker/RangeDatePicker.jsx new file mode 100644 index 00000000..ad802f49 --- /dev/null +++ b/src/components/common/datepicker/RangeDatePicker.jsx @@ -0,0 +1,19 @@ +import DatePicker from 'react-datepicker' +import 'react-datepicker/dist/react-datepicker.css' + +export default function RangeDatePicker(props) { + const { startRangeDate, endRangeDate, setDateRange } = props + + return ( + { + setDateRange(update) + }} + isClearable={true} + /> + ) +} diff --git a/src/components/common/datepicker/SingleDatePicker.jsx b/src/components/common/datepicker/SingleDatePicker.jsx new file mode 100644 index 00000000..ca5feba0 --- /dev/null +++ b/src/components/common/datepicker/SingleDatePicker.jsx @@ -0,0 +1,8 @@ +import DatePicker from 'react-datepicker' +import 'react-datepicker/dist/react-datepicker.css' + +export default function SingleDatePicker(props) { + const { startDate, setStartDate } = props + + return setStartDate(date)} /> +} diff --git a/src/components/common/grid/QGrid.jsx b/src/components/common/grid/QGrid.jsx new file mode 100644 index 00000000..2611f078 --- /dev/null +++ b/src/components/common/grid/QGrid.jsx @@ -0,0 +1,89 @@ +'use client' + +import { useCallback, useEffect, useMemo, useState } from 'react' +import { AgGridReact } from 'ag-grid-react' + +import 'ag-grid-community/styles/ag-grid.css' +import 'ag-grid-community/styles/ag-theme-quartz.css' + +export default function QGrid(props) { + console.log('QGrid props:', props) + const { gridData, gridColumns, isPageable = true } = props + const [count, setCount] = useState(0) + const [clickedCount, setClickedCount] = useState(0) + /** + * 행 데이터를 설정할 때 useState을 사용하여 렌더링 전반에 걸쳐 일관된 배열 참조를 유지하는 것이 좋습니다 + */ + const [rowData, setRowData] = useState(null) + + /** + * Column Definitions를 설정할 때는 useMemo 또는 useState를 사용하여 렌더 간에 일관된 참조를 유지하십시오. + * 응용 프로그램이 Column Definitions를 동적으로 변경하는 경우에도 렌더링 간에 일관된 참조를 유지하려면 useMemo 또는 useState를 사용하십시오. + */ + const [colDefs, setColDefs] = useState( + gridColumns ?? [ + { field: 'mission', filter: true }, + { field: 'company' }, + { field: 'location' }, + { field: 'date' }, + { field: 'price', valueFormatter: (params) => `₩ ${params.value.toLocaleString()}` }, + { field: 'successful' }, + { field: 'rocket' }, + ], + ) + + /** + * defaultColDef 속성을 제공할 때 이 인라인 또는 구성 요소의 단순 개체로 정의하지 마십시오. 이렇게 하면 모든 렌더링에서 새 인스턴스가 생성됩니다. + * 대신 or useState 를 사용하여 useMemo 렌더 간에 일관된 참조가 유지되도록 합니다. + */ + const defaultColDef = useMemo(() => { + filter: true + }, []) + + /** + * 단순 유형(string, boolean 및 number)의 속성은 렌더링 간에 값으로 비교되므로 후크를 사용할 필요가 없습니다. + */ + const rowBuffer = 0 + + /** + * 모든 렌더링에서 그리드 상태를 재설정하지 않도록 useCallback을 사용하는 것이 좋습니다. + */ + const isRowSelectable = useCallback((node) => node.data.value > count, [count]) + + /** + * Event Listeners의 경우 이벤트 처리기가 그리드 내에서 업데이트를 트리거하지 않으므로 useCallback을 사용할 필요가 없습니다. + * 그러나 콜백과 일관성을 유지하고 항상 useCallback을 사용하는 것이 더 쉬울 수 있습니다. + */ + const onFilterOpened = useCallback(() => { + console.log(`number of clicks is ${clickedCount}`) + }, [clickedCount]) + + // Fetch data & update rowData state + useEffect(() => { + // async function fetchData() { + // const response = await fetch('https://www.ag-grid.com/example-assets/space-mission-data.json') + // const data = await response.json() + // setRowData(data) + // } + + console.log('use effect') + gridData ? setRowData(gridData) : '' + }, [gridData]) + + return ( +
+ +
+ ) +} diff --git a/src/components/common/modal/QModal.jsx b/src/components/common/modal/QModal.jsx new file mode 100644 index 00000000..1cf01915 --- /dev/null +++ b/src/components/common/modal/QModal.jsx @@ -0,0 +1,20 @@ +'use client' + +import { useRecoilState, useRecoilValue } from 'recoil' + +import { Modal } from 'react-responsive-modal' + +import { modalContent, modalState } from '@/store/modalAtom' + +import 'react-responsive-modal/styles.css' + +export default function QModal() { + const [open, setOpen] = useRecoilState(modalState) + const children = useRecoilValue(modalContent) + + return ( + setOpen(false)} center> + {children} + + ) +} diff --git a/src/components/fabric/QLine.js b/src/components/fabric/QLine.js index e6a2bc65..0d05a959 100644 --- a/src/components/fabric/QLine.js +++ b/src/components/fabric/QLine.js @@ -29,6 +29,8 @@ export const QLine = fabric.util.createClass(fabric.Line, { this.setLength() this.direction = options.direction ?? getDirection({ x: this.x1, y: this.y1 }, { x: this.x2, y: this.y2 }) + this.startPoint = { x: this.x1, y: this.y1 } + this.endPoint = { x: this.x2, y: this.y2 } if (canvas) { this.canvas = canvas diff --git a/src/components/fabric/QPolygon.js b/src/components/fabric/QPolygon.js index 61a7928c..b2586724 100644 --- a/src/components/fabric/QPolygon.js +++ b/src/components/fabric/QPolygon.js @@ -2,7 +2,8 @@ import { fabric } from 'fabric' import { v4 as uuidv4 } from 'uuid' import { QLine } from '@/components/fabric/QLine' import { distanceBetweenPoints, findTopTwoIndexesByDistance, getDirectionByPoint, sortedPointLessEightPoint, sortedPoints } from '@/util/canvas-util' -import { calculateAngle, dividePolygon, drawHelpLineInHexagon } from '@/util/qpolygon-utils' +import { calculateAngle, drawHippedRoof, inPolygon, lineIntersect, splitPolygonWithLines, toGeoJSON } from '@/util/qpolygon-utils' +import * as turf from '@turf/turf' export const QPolygon = fabric.util.createClass(fabric.Polygon, { type: 'QPolygon', @@ -14,6 +15,8 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { ridges: [], connectRidges: [], cells: [], + parentId: null, + innerLines: [], initialize: function (points, options, canvas) { // 소수점 전부 제거 points.forEach((point) => { @@ -21,6 +24,8 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { point.y = Math.round(point.y) }) options.sort = options.sort ?? true + options.parentId = options.parentId ?? null + if (!options.sort && points.length <= 8) { points = sortedPointLessEightPoint(points) } else { @@ -31,7 +36,7 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { } const nextPoint = points[(i + 1) % points.length] const angle = calculateAngle(point, nextPoint) - if (!(Math.abs(angle) === 0 || Math.abs(angle) === 180)) { + if (!(Math.abs(angle) === 0 || Math.abs(angle) === 180 || Math.abs(angle) === 90)) { isDiagonal = true } }) @@ -146,11 +151,12 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { // 보조선 그리기 drawHelpLine(chon = 4) { - drawHelpLineInHexagon(this, chon) + // drawHelpLineInHexagon(this, chon) + drawHippedRoof(this, chon) }, addLengthText() { - let points = this.points + let points = this.getCurrentPoints() points.forEach((start, i) => { const thisText = this.canvas.getObjects().find((obj) => obj.name === 'lengthText' && obj.parentId === this.id && obj.idx === i) @@ -228,18 +234,17 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { for (let i = 0; i < cols; i++) { for (let j = 0; j < rows; j++) { - const rectLeft = minX + i * (rectWidth + cell.padding) + tmpWidth - const rectTop = minY + j * (rectHeight + cell.padding) + tmpHeight + const rectLeft = minX + i * (rectWidth + cell.padding) + const rectTop = minY + j * (rectHeight + cell.padding) const rectPoints = [ { x: rectLeft, y: rectTop }, - { x: rectLeft + rectWidth, y: rectTop }, { x: rectLeft, y: rectTop + rectHeight }, { x: rectLeft + rectWidth, y: rectTop + rectHeight }, + { x: rectLeft + rectWidth, y: rectTop }, ] - const allPointsInside = rectPoints.every((point) => this.inPolygon(point)) - if (allPointsInside) { + if (inPolygon(this.points, rectPoints)) { const rect = new fabric.Rect({ left: rectLeft, top: rectTop, @@ -256,6 +261,7 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { opacity: 0.8, name: 'cell', idx: idx, + parentId: this.id, }) idx++ @@ -268,6 +274,277 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { this.cells = drawCellsArray return drawCellsArray }, + fillCellABType(cell = { width: 50, height: 100, padding: 5, wallDirection: 'left', referenceDirection: 'none', startIndex: -1 }) { + const points = this.points + + const minX = Math.min(...points.map((p) => p.x)) //왼쪽 + const maxX = Math.max(...points.map((p) => p.x)) //오른쪽 + const minY = Math.min(...points.map((p) => p.y)) //위 + const maxY = Math.max(...points.map((p) => p.y)) //아래 + + const boundingBoxWidth = maxX - minX + const boundingBoxHeight = maxY - minY + + const rectWidth = cell.width + const rectHeight = cell.height + + const cols = Math.floor((boundingBoxWidth + cell.padding) / (rectWidth + cell.padding)) + const rows = Math.floor((boundingBoxHeight + cell.padding) / (rectHeight + cell.padding)) + + //전체 높이에서 패딩을 포함하고 rows를 곱해서 여백길이를 계산 후에 2로 나누면 반높이를 넣어서 중간으로 정렬 + + let centerHeight = rows > 1 ? (boundingBoxHeight - (rectHeight + cell.padding / 2) * rows) / 2 : (boundingBoxHeight - rectHeight * rows) / 2 //rows 1개 이상이면 cell 을 반 나눠서 중간을 맞춘다 + let centerWidth = cols > 1 ? (boundingBoxWidth - (rectWidth + cell.padding / 2) * cols) / 2 : (boundingBoxWidth - rectWidth * cols) / 2 + + const drawCellsArray = [] //그려진 셀의 배열 + + let idx = 1 + let startXPos, startYPos + + for (let i = 0; i < cols; i++) { + for (let j = 0; j < rows; j++) { + const rectPoints = [] + + if (cell.referenceDirection !== 'none') { + //4각형은 기준점이 없다 + + if (cell.referenceDirection === 'top') { + //top, bottom은 A패턴만 + if (cell.wallDirection === 'left') { + startXPos = minX + i * rectWidth + startYPos = minY + j * rectHeight + + if (i > 0) { + startXPos = startXPos + i * cell.padding //옆으로 패딩 + } + } else { + startXPos = maxX - (1 + i) * rectWidth - 0.01 + startYPos = minY + j * rectHeight + 0.01 + + if (i > 0) { + startXPos = startXPos - i * cell.padding //옆으로 패딩 + } + } + + if (j > 0) { + startYPos = startYPos + j * cell.padding + } + + rectPoints.push( + { x: startXPos, y: startYPos }, + { x: startXPos + rectWidth, y: startYPos }, + { x: startXPos, y: startYPos + rectHeight }, + { x: startXPos + rectWidth, y: startYPos + rectHeight }, + ) + } else if (cell.referenceDirection === 'bottom') { + if (cell.wallDirection === 'left') { + startXPos = minX + i * rectWidth + startYPos = maxY - j * rectHeight - 0.01 + + if (i > 0) { + startXPos = startXPos + i * cell.padding + } + + rectPoints.push( + { x: startXPos, y: startYPos }, + { x: startXPos + rectWidth, y: startYPos }, + { x: startXPos, y: startYPos - rectHeight }, + { x: startXPos + rectWidth, y: startYPos - rectHeight }, + ) + } else { + startXPos = maxX - i * rectWidth - 0.01 + startYPos = maxY - j * rectHeight - 0.01 + + if (i > 0) { + startXPos = startXPos - i * cell.padding + } + + rectPoints.push( + { x: startXPos, y: startYPos }, + { x: startXPos - rectWidth, y: startYPos }, + { x: startXPos, y: startYPos - rectHeight }, + { x: startXPos - rectWidth, y: startYPos - rectHeight }, + ) + startXPos = startXPos - rectWidth //우 -> 좌 들어가야해서 마이너스 처리 + } + startYPos = startYPos - rectHeight //밑에서 위로 올라가는거라 마이너스 처리 + + if (j > 0) { + startYPos = startYPos - j * cell.padding + } + } else if (cell.referenceDirection === 'left') { + //여기서부턴 B패턴임 + if (cell.wallDirection === 'top') { + startXPos = minX + i * rectWidth + startYPos = minY + j * rectHeight + + if (i > 0) { + startXPos = startXPos + i * cell.padding //밑으로 + } + if (j > 0) { + startYPos = startYPos + j * cell.padding //옆으로 패딩 + } + + rectPoints.push( + { x: startXPos, y: startYPos }, + { x: startXPos + rectWidth, y: startYPos }, + { x: startXPos, y: startYPos + rectHeight }, + { x: startXPos + rectWidth, y: startYPos + rectHeight }, + ) + } else { + startXPos = minX + i * rectWidth + startYPos = maxY - j * rectHeight - 0.01 + + if (i > 0) { + startXPos = startXPos + i * cell.padding + } + + if (j > 0) { + startYPos = startYPos - j * cell.padding + } + + rectPoints.push( + { x: startXPos, y: startYPos }, + { x: startXPos + rectWidth, y: startYPos }, + { x: startXPos, y: startYPos - rectHeight }, + { x: startXPos + rectWidth, y: startYPos - rectHeight }, + ) + + startYPos = startYPos - rectHeight //밑에서 위로 올라가는거라 마이너스 처리 + } + } else if (cell.referenceDirection === 'right') { + if (cell.wallDirection === 'top') { + startXPos = maxX - i * rectWidth - 0.01 + startYPos = minY + j * rectHeight + 0.01 + + if (j > 0) { + startYPos = startYPos + j * cell.padding //위에서 밑으로라 + + } + + rectPoints.push( + { x: startXPos, y: startYPos }, + { x: startXPos - rectWidth, y: startYPos }, + { x: startXPos, y: startYPos + rectHeight }, + { x: startXPos - rectWidth, y: startYPos + rectHeight }, + ) + } else { + startXPos = maxX - i * rectWidth - 0.01 + startYPos = maxY - j * rectHeight - 0.01 + + if (j > 0) { + startYPos = startYPos - j * cell.padding + } + rectPoints.push( + { x: startXPos, y: startYPos }, + { x: startXPos - rectWidth, y: startYPos }, + { x: startXPos, y: startYPos - rectHeight }, + { x: startXPos - rectWidth, y: startYPos - rectHeight }, + ) + startYPos = startYPos - rectHeight //밑에서 위로 올라가는거라 마이너스 처리 + } + + if (i > 0) { + startXPos = startXPos - i * cell.padding //옆으로 패딩 + } + startXPos = startXPos - rectWidth // 우측에서 -> 좌측으로 그려짐 + } + } else { + // centerWidth = 0 //나중에 중간 정렬 이면 어쩌구 함수 만들어서 넣음 + if (['left', 'right'].includes(cell.wallDirection)) { + centerWidth = 0 + } else if (['top', 'bottom'].includes(cell.wallDirection)) { + centerHeight = 0 + } + + if (cell.wallDirection === 'left') { + startXPos = minX + i * rectWidth + centerWidth + startYPos = minY + j * rectHeight + centerHeight + if (i > 0) { + startXPos = startXPos + i * cell.padding + } + if (j > 0 && j < rows) { + startYPos = startYPos + j * cell.padding + } + } else if (cell.wallDirection === 'right') { + startXPos = maxX - (1 + i) * rectWidth - 0.01 - centerWidth + startYPos = minY + j * rectHeight + 0.01 + centerHeight + if (i > 0) { + startXPos = startXPos - i * cell.padding + } + if (j > 0 && j < rows) { + startYPos = startYPos + j * cell.padding + } + } else if (cell.wallDirection === 'top') { + startXPos = minX + i * rectWidth - 0.01 + centerWidth + startYPos = minY + j * rectHeight + 0.01 + centerHeight + + if (i > 0) { + startXPos = startXPos + i * cell.padding + } + if (j > 0 && j < rows) { + startYPos = startYPos + j * cell.padding + } + } else if (cell.wallDirection === 'bottom') { + startXPos = minX + i * rectWidth + 0.01 + centerWidth + startYPos = maxY - (j + 1) * rectHeight - 0.01 - centerHeight + + if (i > 0) { + startXPos = startXPos + i * cell.padding + } + + if (j > 0 && j < rows) { + startYPos = startYPos - j * cell.padding + } + } + } + + const allPointsInside = rectPoints.every((point) => this.inPolygonABType(point.x, point.y, points)) + + if (allPointsInside) { + //먼저 그룹화를 시켜놓고 뒤에서 글씨를 넣어서 변경한다 + const text = new fabric.Text(``, { + fontFamily: 'serif', + fontSize: 30, + fill: 'black', + type: 'cellText', + }) + + const rect = new fabric.Rect({ + // left: startXPos, + // top: startYPos, + width: rectWidth, + height: rectHeight, + fill: '#BFFD9F', + stroke: 'black', + selectable: true, // 선택 가능하게 설정 + // lockMovementX: true, // X 축 이동 잠금 + // lockMovementY: true, // Y 축 이동 잠금 + // lockRotation: true, // 회전 잠금 + // lockScalingX: true, // X 축 크기 조정 잠금 + // lockScalingY: true, // Y 축 크기 조정 잠금 + opacity: 0.8, + name: 'cell', + idx: idx, + type: 'cellRect', + }) + + var group = new fabric.Group([rect, text], { + left: startXPos, + top: startYPos, + }) + + idx++ + drawCellsArray.push(group) //배열에 넣어서 반환한다 + this.canvas.add(group) + this.canvas?.renderAll() + } + } + } + + this.cells = drawCellsArray + return drawCellsArray + }, + inPolygon(point) { const vertices = this.points let intersects = 0 @@ -291,7 +568,7 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { } let xInt = ((point.y - vertex1.y) * (vertex2.x - vertex1.x)) / (vertex2.y - vertex1.y) + vertex1.x - if (xInt < point.x) { + if (xInt <= point.x) { intersects++ } } @@ -299,6 +576,57 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { return intersects % 2 === 1 }, + inPolygonABType(x, y, polygon) { + let inside = false + let n = polygon.length + + for (let i = 0, j = n - 1; i < n; j = i++) { + let xi = polygon[i].x + let yi = polygon[i].y + let xj = polygon[j].x + let yj = polygon[j].y + + // console.log('xi : ', xi, 'yi : ', yi, 'xj : ', xj, 'yj : ', yj) + + let intersect = yi > y !== yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi) + xi + if (intersect) inside = !inside + } + + return inside + }, + + inPolygon2(rectPoints) { + const polygonCoords = toGeoJSON(this.points) + const rectCoords = toGeoJSON(rectPoints) + + const outerPolygon = turf.polygon([polygonCoords]) + const innerPolygon = turf.polygon([rectCoords]) + // 각 점이 다각형 내부에 있는지 확인 + const allPointsInside = rectCoords.every((coord) => { + const point = turf.point(coord) + return turf.booleanPointInPolygon(point, outerPolygon) + }) + + // 사각형의 변 정의 + const rectEdges = [ + [rectCoords[0], rectCoords[1]], + [rectCoords[1], rectCoords[2]], + [rectCoords[2], rectCoords[3]], + [rectCoords[3], rectCoords[0]], + ] + + // 다각형의 변 정의 + const outerEdges = turf.lineString(outerPolygon.geometry.coordinates[0]) + + // 사각형의 변들이 다각형의 변과 교차하는지 확인 + const noEdgesIntersect = rectEdges.every((edge) => { + const line = turf.lineString(edge) + const intersects = turf.lineIntersect(line, outerEdges) + return intersects.features.length === 0 + }) + + return allPointsInside && noEdgesIntersect + }, distanceFromEdge(point) { const vertices = this.getCurrentPoints() let minDistance = Infinity @@ -330,24 +658,15 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { return minDistance }, getCurrentPoints() { - const scaleX = this.scaleX - const scaleY = this.scaleY - - const left = this.left - const top = this.top - - // 시작점 - const point = this.points[0] - - const movingX = left - point.x * scaleX - const movingY = top - point.y * scaleY - - return this.points.map((point) => { - return { - x: point.x * scaleX + movingX, - y: point.y * scaleY + movingY, - } - }) + const pathOffset = this.get('pathOffset') + const matrix = this.calcTransformMatrix() + return this.get('points') + .map(function (p) { + return new fabric.Point(p.x - pathOffset.x, p.y - pathOffset.y) + }) + .map(function (p) { + return fabric.util.transformPoint(p, matrix) + }) }, setWall: function (wall) { this.wall = wall @@ -358,6 +677,6 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, { }) }, divideLine() { - dividePolygon(this) + splitPolygonWithLines(this) }, }) diff --git a/src/hooks/useAxios.js b/src/hooks/useAxios.js new file mode 100644 index 00000000..9e188ba7 --- /dev/null +++ b/src/hooks/useAxios.js @@ -0,0 +1,67 @@ +import axios from 'axios' + +export const AxiosType = { + INTERNAL: 'Internal', + EXTERNAL: 'External', +} + +export function useAxios() { + const getInstances = (type) => { + return axios.create({ + baseURL: type === AxiosType.INTERNAL ? process.env.NEXT_PUBLIC_API_SERVER_PATH : '', + headers: { + Accept: 'application/json', + }, + }) + } + + axios.interceptors.request.use((config) => { + // config['Authorization'] = localStorage.getItem('token') + //TODO: 인터셉터에서 추가 로직 구현 + return config + }) + + axios.interceptors.request.use(undefined, (error) => { + //TODO: 인터셉터에서 에러 처리 로직 구현 + // if (error.isAxiosError && e.response?.status === 401) { + // localStorage.removeItem('token') + // } + }) + + const get = async ({ type, url }) => { + return await getInstances(type) + .get(url) + .then((res) => res.data) + .catch(console.error) + } + + const post = async ({ type, url, data }) => { + return await getInstances(type) + .post(url, data) + .then((res) => res.data) + .catch(console.error) + } + + const put = async ({ type, url, data }) => { + return await getInstances(type) + .put(url, data) + .then((res) => res.data) + .catch(console.error) + } + + const patch = async ({ type, url, data }) => { + return await getInstances(type) + .patch(url, data) + .then((res) => res.data) + .catch(console.error) + } + + const del = async ({ type, url }) => { + return await getInstances(type) + .delete(url) + .then((res) => res.data) + .catch(console.error) + } + + return { get, post, put, patch, del } +} diff --git a/src/hooks/useCanvas.js b/src/hooks/useCanvas.js index 77f261cc..968f3676 100644 --- a/src/hooks/useCanvas.js +++ b/src/hooks/useCanvas.js @@ -89,21 +89,37 @@ export function useCanvas(id) { canvas?.off('object:modified') canvas?.off('object:removed') canvas?.off('object:added') - canvas?.off('mouse:move', drawMouseLines) - canvas?.off('mouse:down', handleMouseDown) + canvas?.off('mouse:move') + canvas?.off('mouse:down') } const addEventOnObject = (e) => { const target = e.target if (target.name === 'cell') { target.on('mousedown', () => { - target.set({ fill: 'red' }) + if (target.get('selected')) { + target.set({ selected: false }) + target.set({ fill: '#BFFD9F' }) + } else { + target.set({ selected: true }) + target.set({ fill: 'red' }) + } + canvas?.renderAll() }) } if (target.name === 'trestle') { target.on('mousedown', () => { - target.set({ strokeWidth: 5 }) + if (target.get('selected')) { + target.set({ strokeWidth: 1 }) + target.set({ strokeDashArray: [5, 5] }) + target.set({ selected: false }) + } else { + target.set({ strokeWidth: 5 }) + target.set({ strokeDashArray: [0, 0] }) + target.set({ selected: true }) + } + canvas?.renderAll() }) } } @@ -339,8 +355,8 @@ export function useCanvas(id) { let top = targetObj.top + 10 - if (top > CANVAS.HEIGHT) { - top = CANVAS.HEIGHT + if (top > canvasSize.vertical) { + top = canvasSize.vertical } targetObj.set({ top: top }) @@ -387,8 +403,8 @@ export function useCanvas(id) { let left = targetObj.left + 10 - if (left > CANVAS.WIDTH) { - left = CANVAS.WIDTH + if (left > canvasSize.horizontal) { + left = canvasSize.horizontal } targetObj.set({ left: left }) diff --git a/src/hooks/useMode.js b/src/hooks/useMode.js index efa933e2..9edd121c 100644 --- a/src/hooks/useMode.js +++ b/src/hooks/useMode.js @@ -1,6 +1,6 @@ import { useEffect, useRef, useState } from 'react' import { findTopTwoIndexesByDistance, getCenterPoint, getDirection, getStartIndex, rearrangeArray } from '@/util/canvas-util' -import { useRecoilState } from 'recoil' +import { useRecoilState, useRecoilValue } from 'recoil' import { canvasSizeState, @@ -12,6 +12,7 @@ import { sortedPolygonArray, templateTypeState, wallState, + compassState, } from '@/store/canvasAtom' import { QLine } from '@/components/fabric/QLine' import { fabric } from 'fabric' @@ -29,6 +30,7 @@ export const Mode = { ROOF_PATTERN: 'roofPattern', //지붕패턴 모드 ROOF_TRESTLE: 'roofTrestle', //지붕가대 모드 FILL_CELLS: 'fillCells', //태양광셀 모드 + CELL_POWERCON: 'cellPowercon', //파워콘 DEFAULT: 'default', } @@ -59,12 +61,15 @@ export function useMode() { const [selectedCellRoofArray, setSelectedCellRoofArray] = useState([]) const [drewRoofCells, setDrewRoofCells] = useRecoilState(drewRoofCellsState) const [roofStyle, setRoofStyle] = useState(1) //기본 지붕 패턴 + const [templateCenterLine, setTemplateCenterLine] = useState([]) + const compass = useRecoilValue(compassState) useEffect(() => { // 이벤트 리스너 추가 - if (!canvas) { - return - } + // if (!canvas) { + canvas?.setZoom(0.8) + // return + // } document.addEventListener('keydown', handleKeyDown) // 컴포넌트가 언마운트될 때 이벤트 리스너 제거 @@ -246,6 +251,9 @@ export function useMode() { case 'fillCells': makeRoofFillCells() break + case 'cellPowercon': + makeCellPowercon() + break case 'default': canvas?.off('mouse:down') break @@ -510,7 +518,7 @@ export function useMode() { * 마우스로 그린 점 기준으로 외벽선을 완성시켜준다. * makePolygon 함수에 포함되어있던 내용을 다른 템플릿 적용에서도 사용할수 있도록 함수로 대체 */ - const drawWallPolygon = () => { + const drawWallPolygon = (sort = true) => { const firstPoint = historyPoints.current[0] const lastPoint = historyPoints.current[historyPoints.current.length - 1] historyPoints.current.forEach((point) => { @@ -521,7 +529,7 @@ export function useMode() { historyPoints.current = [] // handleOuterlines() - const wall = makePolygon() + const wall = makePolygon(null, sort) wall.set({ name: 'wall' }) setWall(wall) @@ -533,9 +541,9 @@ export function useMode() { if (historyPoints.current.length >= 4) { const wall = drawWallPolygon() + setWall(wall) handleOuterlinesTest2(wall) - /*setWall(wall) - roof.drawHelpLine()*/ + setTemplateType(1) } } @@ -639,7 +647,7 @@ export function useMode() { canvas?.renderAll() } - const makePolygon = (otherLines) => { + const makePolygon = (otherLines, sort = true) => { // 캔버스에서 모든 라인 객체를 찾습니다. const lines = otherLines || historyLines.current @@ -686,6 +694,7 @@ export function useMode() { fill: 'transparent', viewLengthText: true, fontSize: fontSize, + sort: sort, }, canvas, ) @@ -711,9 +720,12 @@ export function useMode() { canvas?.clear() startPoint.current = null setEndPoint(null) + setTemplateType(0) points.current = [] historyPoints.current = [] historyLines.current = [] + + setSelectedCellRoofArray([]) //셀 그린거 삭제 } const zoomIn = () => { @@ -1087,7 +1099,7 @@ export function useMode() { offsetPoints.push(offsetPoint) } - return makePolygon(offsetPoints) + return makePolygon(offsetPoints, false) } /** @@ -1108,6 +1120,391 @@ export function useMode() { roof.divideLine() } + const drawRoofPolygon = (wall, offset = 50) => { + console.log(wall) + let points = wall.points, + expandedPoints = [] + + let minX = points[0].x, + minY = points[0].y, + maxX = points[0].x, + maxY = points[0].y + + points.forEach((point) => { + if (point.x < minX) minX = point.x + if (point.y < minY) minY = point.y + if (point.x > maxX) maxX = point.x + if (point.y > maxY) maxY = point.y + }) + + console.log(points) + points.forEach((point, index) => { + const prevIndex = index === 0 ? points.length - 1 : index - 1 + const nextIndex = index === points.length - 1 ? 0 : index + 1 + point.direction = getDirectionByPoint(point, points[nextIndex]) + point.length = Math.abs(point.x - points[nextIndex].x) === 0 ? Math.abs(point.y - points[nextIndex].y) : Math.abs(point.x - points[nextIndex].x) + // point.degree = Math.round(getDegreeBetweenTwoLines(points[prevIndex], point, points[nextIndex])) + }) + console.log('points : ', points) + + points.forEach((currentWall, index) => { + let prevWall = points[index === 0 ? points.length - 1 : index - 1] + let nextWall = points[index === points.length - 1 ? 0 : index + 1] + let isStartPointIn = minX < currentWall.x && currentWall.x < maxX && minY < currentWall.y && currentWall.y < maxY + // let isEndPointIn = minX < currentWall.x2 && currentWall.x2 < maxX && minY < currentWall.y2 && currentWall.y2 < maxY + + if (prevWall.direction !== nextWall.direction) { + if (currentWall.direction === 'top') { + console.log('prevWall degree : ', 45) + if (prevWall.direction === 'right') { + let addLength = getLineOffsetPoint(prevWall, currentWall, nextWall, offset) + expandedPoints.push({ + x: currentWall.x + addLength, + y: currentWall.y + addLength, + }) + } + if (prevWall.direction === 'left') { + console.log('prevWall degree : ', 225) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y + offset, + }) + } + } + if (currentWall.direction === 'bottom') { + if (prevWall.direction === 'right') { + console.log('prevWall degree : ', 45) + let addLength = getLineOffsetPoint(prevWall, currentWall, nextWall, offset) + console.log(currentWall.x, '-', offset, '+', addLength) + console.log('addLength : ', addLength) + expandedPoints.push({ + x: currentWall.x + addLength, + y: currentWall.y - addLength, + }) + } + if (prevWall.direction === 'left') { + console.log('prevWall degree : ', 315) + let addLength = getLineOffsetPoint(prevWall, currentWall, nextWall, offset) + console.log(currentWall.x, '-', offset, '+', addLength) + console.log('addLength : ', addLength) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y - offset, + }) + } + } + if (currentWall.direction === 'right') { + if (prevWall.direction === 'top') { + if (isStartPointIn) { + console.log('prevWall degree : ', 135) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y + offset, + }) + } else { + console.log('prevWall degree : ', 315) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y - offset, + }) + } + } + if (prevWall.direction === 'bottom') { + if (isStartPointIn) { + console.log('prevWall degree : ', 45) + + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y - offset, + }) + } else { + console.log('prevWall degree : ', 225) + let addLength = getLineOffsetPoint(prevWall, currentWall, nextWall, offset) + console.log('addLength : ', addLength) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y + offset, + }) + } + } + } + if (currentWall.direction === 'left') { + if (prevWall.direction === 'top') { + if (isStartPointIn) { + console.log('prevWall degree : ', 225) + let addLength = getLineOffsetPoint(prevWall, currentWall, nextWall, offset) + console.log('addLength : ', addLength) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y + offset, + }) + } else { + console.log('prevWall degree : ', 45) + + let addLength = getLineOffsetPoint(prevWall, currentWall, nextWall, offset) + + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y - offset, + }) + } + } + if (prevWall.direction === 'bottom') { + if (isStartPointIn) { + console.log('prevWall degree : ', 315) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y - offset, + }) + } else { + console.log('prevWall degree : ', 135) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y + offset, + }) + } + } + } + } else { + console.log('else :::: ') + if (currentWall.direction === 'top') { + if (prevWall.direction === 'right') { + if (isStartPointIn) { + console.log('prevWall degree : ', 315) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y - offset, + }) + } else { + console.log('prevWall degree : ', 135) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y + offset, + }) + } + } + if (prevWall.direction === 'left') { + if (isStartPointIn) { + console.log('prevWall degree : ', 45) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y - offset, + }) + } else { + console.log('prevWall degree : ', 225) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y + offset, + }) + } + } + } + if (currentWall.direction === 'bottom') { + if (prevWall.direction === 'right') { + if (isStartPointIn) { + console.log('prevWall degree : ', 225) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y + offset, + }) + } else { + console.log('prevWall degree : ', 45) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y - offset, + }) + } + } + } + if (currentWall.direction === 'right') { + if (prevWall.direction === 'top') { + if (isStartPointIn) { + console.log('prevWall degree : ', 135) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y + offset, + }) + } else { + console.log('prevWall degree : ', 315) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y - offset, + }) + } + } + if (prevWall.direction === 'bottom') { + if (isStartPointIn) { + console.log('prevWall degree : ', 225) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y + offset, + }) + } else { + console.log('prevWall degree : ', 45) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y - offset, + }) + } + } + } + if (currentWall.direction === 'left') { + if (prevWall.direction === 'top') { + if (isStartPointIn) { + console.log('prevWall degree : ', 225) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y + offset, + }) + } else { + console.log('prevWall degree : ', 45) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y - offset, + }) + } + } + if (prevWall.direction === 'bottom') { + if (isStartPointIn) { + console.log('prevWall degree : ', 135) + expandedPoints.push({ + x: currentWall.x + offset, + y: currentWall.y + offset, + }) + } else { + console.log('prevWall degree : ', 315) + expandedPoints.push({ + x: currentWall.x - offset, + y: currentWall.y - offset, + }) + } + } + } + } + }) + + console.log('expandedPoints : ', expandedPoints) + + /*const roof = new fabric.Polygon(expandedPoints, { + fill: 'transparent', + stroke: 'red', + strokeWidth: 1, + selectable: true, + fontSize: fontSize, + name: 'QPolygon1', + }) + + roof.wall = wall + canvas?.add(roof)*/ + + // roof.drawHelpLine() + } + + /** + * 구하려는 라인의 x1,y1좌표가 기준 + * @param line1 이전 라인 + * @param line2 현재 라인 + * @param line3 다음 라인 + * @param offset + * @returns {number} + */ + const getLineOffsetPoint = (line1, line2, line3, offset) => { + //밑변 + let a = Math.abs(line1.x - line2.x) + //빗변 + let c = Math.sqrt(Math.abs(line1.x - line2.x) ** 2 + Math.abs(line1.y - line2.y) ** 2) + + console.log(a, c) + //밑변과 빗변사이의 각도 + let alphaDegree = getDegreeBetweenTwoLines(line1, line2, line3) + alphaDegree = alphaDegree <= 90 ? alphaDegree : 180 - alphaDegree + alphaDegree = 90 - alphaDegree + console.log('alphaDegree : ', alphaDegree) + + // console.log('Math.tan(alphaDegree * (Math.PI / 180)) : ', Math.tan(alphaDegree * (Math.PI / 180))) + console.log(Math.round(offset * Math.tan(alphaDegree * (Math.PI / 180)))) + + const angle = getDegreeBetweenTwoLines(line1, line2, line3) + const side1 = line1.length + const side2 = line2.length + const side3 = Math.sqrt(side1 ** 2 + side2 ** 2 - 2 * side1 * side2 * Math.cos(angle * (Math.PI / 180))) + const beta = Math.round(Math.asin((side2 * Math.sin(angle * (Math.PI / 180))) / side3) * (180 / Math.PI) * 10) / 10 + const alpha = 180 - angle - beta + + console.log('angle : ', angle, 'alpha : ', alpha, 'beta : ', beta) + + const h = side2 * Math.sin(alpha * (Math.PI / 180)) + const h_new = h + offset + console.log('빗변까지 길이 : ', h, 'offset 적용된 빗변까지 길이 : ', h_new) + const newAdjacent = h_new / Math.sin(angle * (Math.PI / 180)) + console.log('offset 적용된 밑변 : ', newAdjacent) + + // offset = Math.sqrt(diffAdjacent ** 2 + diffAdjacent ** 2) / 2 + console.log('offset : ', offset) + return offset + } + + /** + * 구하려는 라인의 x1,y1좌표가 기준 + * @param line1 이전 라인 + * @param line2 현재 라인 + * @param line3 다음 라인 + * @returns {number} + */ + const getDegreeBetweenTwoLines = (line1, line2, line3) => { + console.log('getDegreeBetweenTwoLines 확인 ==========') + console.log(line1, line2, line3) + let x1 = line1.x, + x2 = line2.x, + x3 = line3.x + let y1 = line1.y, + y2 = line2.y, + y3 = line3.y + + // 각 점 사이의 벡터 계산 + const vector1 = { x: x1 - x2, y: y1 - y2 } + const vector2 = { x: x3 - x2, y: y3 - y2 } + + // 벡터의 길이 계산 + const magnitude1 = Math.sqrt(vector1.x * vector1.x + vector1.y * vector1.y) + const magnitude2 = Math.sqrt(vector2.x * vector2.x + vector2.y * vector2.y) + + // 내적 계산 + const dotProduct = vector1.x * vector2.x + vector1.y * vector2.y + + // 각도 계산 (라디안에서도 0에서 PI 라디안 사이의 각도로 변환) + let angle = Math.acos(dotProduct / (magnitude1 * magnitude2)) + + // 라디안에서 도 단위로 변환 + angle = angle * (180 / Math.PI) + + console.log('angel : ', angle) + return angle + } + + const calculateParallelPoint = (x1, y1, x2, y2, distance) => { + // 원래 선의 dx, dy 계산 + const dx = x2 - x1 + const dy = y2 - y1 + + // 법선 벡터 정규화 + const norm = Math.sqrt(dx * dx + dy * dy) + const unitVectorX = dy / norm + const unitVectorY = -dx / norm + + // 원하는 거리만큼 평행 이동 + const offsetX = distance * unitVectorX + const offsetY = distance * unitVectorY + + // 새로운 평행선의 두 점 계산 + const newX1 = x1 + offsetX + const newY1 = y1 + offsetY + const newX2 = x2 + offsetX + const newY2 = y2 + offsetY + + return { newPoint1: { x: newX1, y: newY1 }, newPoint2: { x: newX2, y: newY2 } } + } + const togglePolygonLine = (obj) => { const rtnLines = [] if (obj.type === 'QPolygon') { @@ -1146,7 +1543,7 @@ export function useMode() { const applyTemplateA = () => { changeMode(canvas, Mode.EDIT) - const polygon = drawWallPolygon() + const polygon = drawWallPolygon(false) handleClear() if (polygon.lines.length === 4) { @@ -1410,7 +1807,7 @@ export function useMode() { let bigRoofPolygon = [] let middleRoofPolygon = [] let smallRoofPolygon = [] - + let templateCenterLine = [] //추후 셀 입력시 상하좌우를 센터선 기준으로 판단하기 위함 if (prevHighIndex === 1) { if (horizontalDirection === 'left') { //배열 순서대로 뒤에꺼를 찾아서 계산한다 @@ -1457,6 +1854,8 @@ export function useMode() { secondVertCenterLine = new QLine([secondVertCenterPoint, middleSubLine.y1, secondVertCenterPoint, middleSubLine.y2 - edge], centerLineOpt) canvas.add(secondVertCenterLine) outLines.push(secondVertCenterLine) + templateCenterLine.push(vertCenterLine) + templateCenterLine.push(secondVertCenterLine) //작은 지붕쪽 너비 길이를 구한는 로직 let secondHoriCenterLength = (Math.abs(lastLine.get('x1') - lastLine.get('x2')) + Math.abs(lastLine.get('y1') - lastLine.get('y2'))) / 2 @@ -1618,6 +2017,9 @@ export function useMode() { ) canvas.add(secondHoriCenterLine) + templateCenterLine.push(vertCenterLine) + templateCenterLine.push(secondVertCenterLine) + //일반라인 외각선 그리기 normalIndexArray.forEach((index) => { const line = lines[index] @@ -1758,6 +2160,9 @@ export function useMode() { canvas.add(secondVertCenterLine) outLines.push(secondVertCenterLine) + templateCenterLine.push(vertCenterLine) + templateCenterLine.push(secondVertCenterLine) + //작은 지붕쪽 너비 길이를 구한는 로직 let secondHoriCenterLength = (Math.abs(lastLine.get('x1') - lastLine.get('x2')) + Math.abs(lastLine.get('y1') - lastLine.get('y2'))) / 2 let secondHoriCenterPoint = (secondVertCenterLine.y1 + secondVertCenterLine.y2) / 2 @@ -1895,15 +2300,14 @@ export function useMode() { //작은 지붕쪽 높이 길이를 구하는 로직 let secondVertCenterPoint = (lastLine.x1 + lastLine.x2) / 2 - secondVertCenterLine = new QLine([secondVertCenterPoint, middleSubLine.y1, secondVertCenterPoint, middleSubLine.y2 + edge], { - stroke: 'blue', - strokeWidth: 4, - property: 'centerLine', - fontSize: 14, - }) + secondVertCenterLine = new QLine([secondVertCenterPoint, middleSubLine.y1, secondVertCenterPoint, middleSubLine.y2 + edge], centerLineOpt) canvas.add(secondVertCenterLine) outLines.push(secondVertCenterLine) + + templateCenterLine.push(vertCenterLine) + templateCenterLine.push(secondVertCenterLine) + //작은 지붕쪽 너비 길이를 구한는 로직 let secondHoriCenterLength = (Math.abs(lastLine.get('x1') - lastLine.get('x2')) + Math.abs(lastLine.get('y1') - lastLine.get('y2'))) / 2 let secondHoriCenterPoint = (secondVertCenterLine.y1 + secondVertCenterLine.y2) / 2 @@ -1999,7 +2403,7 @@ export function useMode() { roofPatternPolygonArray.push(middleRoofPolygon) //중간라인 폴리곤 roofPatternPolygonArray.push(smallRoofPolygon) //작은지붕폴리곤 setRoofPolygonPattern({ roofPatternPolygonArray, lines }) //모든 행을 저장 - + setTemplateCenterLine(templateCenterLine) //A,B 템플릿의 센터 라인을 저장 canvas?.renderAll() } @@ -2085,38 +2489,10 @@ export function useMode() { return tmpArray } - // 외적을 계산하는 함수 - function crossProduct(p1, p2, p3) { - const dx1 = p2.x - p1.x - const dy1 = p2.y - p1.y - const dx2 = p3.x - p2.x - const dy2 = p3.y - p2.y - return dx1 * dy2 - dy1 * dx2 - } - - let concaveIndices = [] //볼록한 부분 인덱스 배열 - let concavePointIndices = [] //오목한 부분 인덱스 배열 - - // 오목한 부분 찾기 - function findConcavePointIndices(points) { - let concaveIndices = [] - for (let i = 0; i < points.length; i++) { - const p1 = points[i] - const p2 = points[(i + 1) % points.length] - const p3 = points[(i + 2) % points.length] - const cross = crossProduct(p1, p2, p3) - if (cross < 0) { - concaveIndices.push((i + 1) % points.length) - } else { - concavePointIndices.push((i + 1) % points.length) - } - } - return concaveIndices - } - // 오목한 부분 인덱스 찾기 - concaveIndices = findConcavePointIndices(points) //오목한 부분을 제외한 인덱스 - const concavePoints = concaveIndices.map((index) => points[index]) + const concaveIndicesObj = findConcavePointIndices(points) //오목한 부분을 제외한 인덱스 + let concavePointIndices = concaveIndicesObj.concavePointIndices + const concaveLine = { index: concavePointIndices[0], line: lines[concavePointIndices[0]], @@ -2168,7 +2544,7 @@ export function useMode() { offsetPoints.push(offsetPoint) } - const outlinePolygon = makePolygon(offsetPoints) + const outlinePolygon = makePolygon(offsetPoints, false) outlinePolygon.setViewLengthText(false) // 아웃라인 폴리곤의 각 변을 선으로 생성 @@ -2253,6 +2629,7 @@ export function useMode() { vertCenterLine = reSortQlineArray(vertCenterLine) lines = reSortQlineArray(lines) + setTemplateCenterLine(vertCenterLine) //해당라인에서 만나는점을 계산 vertCenterLine.forEach((vertLine) => { @@ -2410,7 +2787,6 @@ export function useMode() { } else { // 오목한 부분이 세로선일때 아래ㄷ, 위ㄷ //라인들을 좌측에서 -> 우측으로 그리는거처럼 데이터 보정 - lines.forEach((line, index) => { if (!(index % 2 === 0)) { line.line.set('stroke', 'skyblue') @@ -2457,6 +2833,7 @@ export function useMode() { vertCenterLine = reSortQlineArray(vertCenterLine) lines = reSortQlineArray(lines) + setTemplateCenterLine(vertCenterLine) //해당라인에서 만나는점을 계산 vertCenterLine.forEach((vertLine) => { @@ -2607,7 +2984,7 @@ export function useMode() { */ const applyTemplateB = () => { changeMode(canvas, Mode.EDIT) - const polygon = drawWallPolygon() + const polygon = drawWallPolygon(false) const params = { eaves: 50, edge: 20, @@ -2622,6 +2999,8 @@ export function useMode() { } else if (polygon.lines.length === 6) { console.log('6각형') handleTemplateB(params) + } else if (polygon.lines.length === 8) { + handleOuterLineTemplateB8Points(polygon) } setTemplateType(3) @@ -2776,6 +3155,8 @@ export function useMode() { const middleRoofPolygon = [] const smallRoofPolygon = [] + const templateCenterLine = [] + rerangeOdd.forEach((line, index) => { const centeredPoint = getCenterPoint(line.y1, line.y2) let points1 = [] @@ -2932,6 +3313,9 @@ export function useMode() { ] subLines.forEach((sLine, index) => { const subLine = new QLine(sLine, qlineOpt) + if (index === 1) { + templateCenterLine.push(subLine) + } canvas.add(subLine) }) centralSubDashLinePoint.x1 = getCenterPoint(line.x1, line.x2 + edge) @@ -2945,6 +3329,9 @@ export function useMode() { ] subLines.forEach((sLine, index) => { const subLine = new QLine(sLine, qlineOpt) + if (index === 1) { + templateCenterLine.push(subLine) + } canvas.add(subLine) }) centralSubDashLinePoint.x1 = getCenterPoint(line.x1, line.x2 + edge) @@ -2962,6 +3349,9 @@ export function useMode() { ] subLines.forEach((sLine, index) => { const subLine = new QLine(sLine, qlineOpt) + if (index === 0) { + templateCenterLine.push(subLine) + } canvas.add(subLine) }) centralSubDashLinePoint.x1 = getCenterPoint(line.x1 - edge, line.x2) @@ -2991,8 +3381,12 @@ export function useMode() { ] subLines.forEach((sLine, index) => { const subLine = new QLine(sLine, qlineOpt) + if (index === 0) { + templateCenterLine.push(subLine) + } canvas.add(subLine) }) + centralSubDashLinePoint.x1 = getCenterPoint(line.x1 - edge, line.x2) centralSubDashLinePoint.x2 = getCenterPoint(line.x1 - edge, line.x2) centralSubDashLinePoint.y1 = line.y1 - eaves @@ -3018,6 +3412,7 @@ export function useMode() { qlineOptDash, ) canvas.add(centralSubDashLine) + templateCenterLine.push(centralLine) if (polygon.shape === 1) { bigRoofPolygon[3] = { x: centralLine.x1, y: centralLine.y1 } @@ -3045,11 +3440,584 @@ export function useMode() { roofPatternPolygonArray.push(middleRoofPolygon) roofPatternPolygonArray.push(smallRoofPolygon) setRoofPolygonPattern({ roofPatternPolygonArray, lines: polygon.lines }) + setTemplateCenterLine(templateCenterLine) // } canvas?.renderAll() } + const handleOuterLineTemplateB8Points = (polygon, offsetInputX = 20, offsetInputY = 50) => { + let offsetPoints = [] + + const originalMax = 71 + const transformedMax = 100 + + let lines = [] //내각라인 + let outLines = [] //아웃라인 + let halfLength = 0 //선길이 + let offsetX + let offsetY + + const dashedCenterLineOpt = { + stroke: 'black', + strokeWidth: 1, + property: 'centerLine', + strokeDashArray: [8, 4], + fontSize: 14, + } + + const centerLineOpt = { + stroke: 'blue', + strokeWidth: 2, + property: 'bigHoriCenter', + fontSize: 14, + } + + // 폴리곤의 각 변을 선으로 생성 + for (let i = 0; i < polygon.points.length; i++) { + const start = polygon.points[i] + const end = polygon.points[(i + 1) % polygon.points.length] // 다음 점, 마지막 점의 경우 첫 점으로 + + const line = new QLine([start.x, start.y, end.x, end.y], { + stroke: '#A0D468', + strokeWidth: 2, + property: 'normal', + fontSize: 14, + }) + + // 선을 배열에 추가 + lines.push(line) + canvas.add(line) + } + + offsetInputY = offsetInputY !== 0 ? offsetInputY : offsetInputX + + const sortedIndex = getStartIndex(polygon.lines) + let tmpArraySorted = rearrangeArray(polygon.lines, sortedIndex) + setSortedArray(tmpArraySorted) //recoil에 넣음 + + const points = tmpArraySorted.map((line) => ({ + x: line.x1, + y: line.y1, + })) + + //좌표 재정렬 + function reSortQlineArray(array) { + let tmpArray = [] + let minX, minY, maxX, maxY + let tmp + array.forEach((arr, index) => { + tmp = arr + if (arr.x2 < arr.x1 || arr.y2 < arr.y1) { + minX = arr.x2 + minY = arr.y2 + maxX = arr.x1 + maxY = arr.y1 + tmp['x1'] = minX + tmp['y1'] = minY + tmp['x2'] = maxX + tmp['y2'] = maxY + tmp.line['x1'] = minX + tmp.line['y1'] = minY + tmp.line['x2'] = maxX + tmp.line['y2'] = maxY + } + tmpArray.push(tmp) + }) + + return tmpArray + } + + // 오목한 부분 인덱스 찾기 + const concaveIndicesObj = findConcavePointIndices(points) //오목한 부분을 제외한 인덱스 + let concavePointIndices = concaveIndicesObj.concavePointIndices + + const concaveLine = { + index: concavePointIndices[0], + line: lines[concavePointIndices[0]], + } + + for (let i = 0; i < points.length; i++) { + let prev = points[(i - 1 + points.length) % points.length] + let current = points[i] + let next = points[(i + 1) % points.length] + + // 두 벡터 계산 (prev -> current, current -> next) + let vector1 = { x: current.x - prev.x, y: current.y - prev.y } + let vector2 = { x: next.x - current.x, y: next.y - current.y } + + // 벡터의 길이 계산 + let length1 = Math.sqrt(vector1.x * vector1.x + vector1.y * vector1.y) + let length2 = Math.sqrt(vector2.x * vector2.x + vector2.y * vector2.y) + + // 벡터를 단위 벡터로 정규화 + let unitVector1 = { x: vector1.x / length1, y: vector1.y / length1 } + let unitVector2 = { x: vector2.x / length2, y: vector2.y / length2 } + + // 법선 벡터 계산 (왼쪽 방향) + let normal1 = { x: -unitVector1.y, y: unitVector1.x } + let normal2 = { x: -unitVector2.y, y: unitVector2.x } + + // 법선 벡터 평균 계산 + let averageNormal = { + x: (normal1.x + normal2.x) / 2, + y: (normal1.y + normal2.y) / 2, + } + + // 평균 법선 벡터를 단위 벡터로 정규화 + let lengthNormal = Math.sqrt(averageNormal.x * averageNormal.x + averageNormal.y * averageNormal.y) + let unitNormal = { + x: averageNormal.x / lengthNormal, + y: averageNormal.y / lengthNormal, + } + + offsetX = (offsetInputX / transformedMax) * originalMax * 2 + offsetY = (offsetInputY / transformedMax) * originalMax * 2 + + // 오프셋 적용 + let offsetPoint = { + x1: current.x + unitNormal.x * offsetX, + y1: current.y + unitNormal.y * offsetY, + } + + offsetPoints.push(offsetPoint) + } + + const outlinePolygon = makePolygon(offsetPoints, false) + outlinePolygon.setViewLengthText(false) + + // 아웃라인 폴리곤의 각 변을 선으로 생성 + for (let i = 0; i < outlinePolygon.points.length; i++) { + const start = outlinePolygon.points[i] + const end = outlinePolygon.points[(i + 1) % outlinePolygon.points.length] // 다음 점, 마지막 점의 경우 첫 점으로 + + const line = new QLine([start.x, start.y, end.x, end.y], { + stroke: 'blue', + strokeWidth: 2, + property: 'normal', + fontSize: 14, + idx: i, + }) + + // 선을 배열에 추가 + outLines.push(line) + canvas.add(line) + } + + canvas?.remove(outlinePolygon) //임시 폴리곤을 삭제 + + let parallelLinesIdx = concavePointIndices[0] + 4 //들어간선에 무조건 평행하는 선 찾기 + if (parallelLinesIdx >= outLines.length) { + parallelLinesIdx = parallelLinesIdx - outLines.length + } + + let vertCenterLine = [] + let halfHoriCenterLinePoint = [] //카라바선의 2분할의 1번 배열 + let horiCenterLine = [] + let shorVertCenterLine = [] + + let edgeIndexArray = [] + + if (concavePointIndices[0] % 2 === 0) { + //concave가 짝수면 좌우로 그려진 ㄷ자 + //케라바 색을 바꾼다 + lines.forEach((line, index) => { + if (index % 2 === 0) { + line.line.set('stroke', 'skyblue') + if (concavePointIndices[0] !== index) { + edgeIndexArray.push(index) + } + } + }) + + outLines = reSortQlineArray(outLines) + edgeIndexArray.forEach((idx, index) => { + //가로라인이 케라바 라인임 + if (concavePointIndices[0] !== idx) { + //오목이가 아니면 반으로 갈라서 계산 + + //카라바 선의 2분할 치수를 그림 + let halfLength = outLines[idx].length / 2 + let centerLine1 = new QLine([outLines[idx].x1, outLines[idx].y1, outLines[idx].x1, outLines[idx].y1 + halfLength], centerLineOpt) + canvas.add(centerLine1) + + let centerLine2 = new QLine([outLines[idx].x1, centerLine1.y2, outLines[idx].x2, centerLine1.y2 + halfLength], centerLineOpt) + canvas.add(centerLine2) + canvas.remove(outLines[idx]) //기존 라인 삭제 + + halfHoriCenterLinePoint.push({ + index: idx, + x1: centerLine1.x1, + y1: centerLine1.y1, + x2: centerLine1.x2, + y2: centerLine1.y2, + }) //각 카라바 라인의 1번이 마지막점을 잡아서 센터선으로 설정 + } + }) + + // //각 센터 라인을 그림 + halfHoriCenterLinePoint.forEach((centerPoint) => { + let tmpX2 = parallelLinesIdx !== centerPoint.index ? concaveLine.line.x2 : outLines[concavePointIndices[0]].x1 //평행선에서 내려오는 선은 아웃라인에 닿아야한다 + + let line = new QLine([centerPoint.x2, centerPoint.y2, tmpX2, centerPoint.y2], centerLineOpt) + canvas.add(line) + + line['arrayIndex'] = centerPoint.index //커스텀으로 기존 index를 넣어줌 + vertCenterLine.push(line) + }) + + vertCenterLine = reSortQlineArray(vertCenterLine) + lines = reSortQlineArray(lines) + setTemplateCenterLine(vertCenterLine) + + //해당라인에서 만나는점을 계산 + vertCenterLine.forEach((vertLine) => { + if (parallelLinesIdx !== vertLine.arrayIndex) { + //평행선을 제외한 애들만 네모를 연결 + let nearLine + let nearOutline + if (vertLine.arrayIndex > concaveLine.index) { + //센터에 인덱스가 오목점 보다 크면 다음 작으면 앞에꺼 + nearLine = lines[concaveLine.index + 1] + nearOutline = outLines[concaveLine.index + 1] + } else { + nearLine = lines[concaveLine.index - 1] + nearOutline = outLines[concaveLine.index - 1] + } + + let nearLineY = nearLine.y1 + if (parallelLinesIdx < concaveLine.index) { + //오목점 위치가 평행선보다 크면 위쪽으로 오목 + nearLineY = nearLine.y2 + } + + //기존에 있는 라인에서 연장해서 새로 그림 + let centerExtendHoriLine = new QLine([vertLine.x1, nearOutline.line.y1, vertLine.x2, nearOutline.line.y2], centerLineOpt) + canvas.add(centerExtendHoriLine) + canvas.remove(nearOutline) + outLines.splice(nearOutline.idx, 1, centerExtendHoriLine) //아웃라인에 데이터를 다시 넣는다 + + //가로형에선 기본으로 ㄷ자 형태로 한다 + let centerExtendLine = new QLine([vertLine.line.x1, vertLine.line.y1, centerExtendHoriLine.x1, centerExtendHoriLine.y1], centerLineOpt) + + //오목이가 배열에 반보다 작으면 역 ㄷ자 여서 변경 + if (concavePointIndices[0] < outLines.length / 2) { + centerExtendLine = new QLine([vertLine.line.x2, vertLine.line.y2, centerExtendHoriLine.x2, centerExtendHoriLine.y2], centerLineOpt) + } + + canvas.add(centerExtendLine) //새로그리고 + + let betweenCenterLine = (vertLine.line.x1 + vertLine.line.x2) / 2 + let centerDashLine = new QLine([betweenCenterLine, centerExtendLine.y1, betweenCenterLine, centerExtendLine.y2], dashedCenterLineOpt) + + canvas.add(centerDashLine) + horiCenterLine.push(centerDashLine) + shorVertCenterLine.push(vertLine) //마지막에 가운데 선을 긋기 위해 담음 + } else { + let longDashLine = halfHoriCenterLinePoint.find((obj) => obj.index === parallelLinesIdx) //평행선 + + let dashCenterExtendLineLength = longDashLine.y2 - longDashLine.y1 //y반개 길이 + let betweenCenterLine = (vertLine.line.x1 + vertLine.line.x2) / 2 //y의 길이 + let totalLength = ((longDashLine.y2 - longDashLine.y1) * 2) / dashCenterExtendLineLength //2개로 나눔 + + //반 쪼개서 그린다 + for (let i = 0; i < totalLength; i++) { + //2번에 나눠서 + let startY = i === 0 ? longDashLine.y1 : longDashLine.y1 + dashCenterExtendLineLength //시작 하는 y의 좌표 + //x값은 고정이임 //TODO: 지붕 각도 계산법에 의해 재계산해야함 + let centerDashLine = new QLine([betweenCenterLine, startY, betweenCenterLine, startY + dashCenterExtendLineLength], dashedCenterLineOpt) + canvas.add(centerDashLine) + horiCenterLine.push(centerDashLine) + } + } + }) + + //마지막에 오목한 외곽선을 연장한다 + const tmpLastOutLine = outLines[concavePointIndices[0]] + const lastOutLine = new QLine([tmpLastOutLine.x1, shorVertCenterLine[0].y1, tmpLastOutLine.x1, shorVertCenterLine[1].y1], centerLineOpt) + canvas.add(lastOutLine) + canvas.remove(tmpLastOutLine) + + //폴리곤 패턴을 그리기 위해 작성 + let tmpVertCenterLine = outLines.filter((x, index) => index % 2 !== 0) //세로만 찾음 + tmpVertCenterLine = tmpVertCenterLine.concat(vertCenterLine) + tmpVertCenterLine.sort((a, b) => a.y1 - b.y1) + tmpVertCenterLine.push(lastOutLine) + + let roofPatternPolygonArray = [] + let tmpArray = [] + let tmpBigArray = [] + + const lastCenterLine = tmpVertCenterLine[tmpVertCenterLine.length - 1] //마지막 센터라인을 정의 + + for (let i = 0; i < tmpVertCenterLine.length - 1; i++) { + //-1인건 마지막은 오목한 선이라 돌 필요 없음 + //라인 하나에 두점씩 나온다 + let firstPointObj = {} + let secondPointObj = {} + + let x1 = tmpVertCenterLine[i].x1 + let y1 = tmpVertCenterLine[i].y1 + let x2 = tmpVertCenterLine[i].x2 + let y2 = tmpVertCenterLine[i].y2 + + if (i === 2 || i === 4) { + //작은 네모들 + tmpArray = [] + const prevLine = tmpVertCenterLine[i - 1] //뒤에서 앞라인을 찾는다 + const nextLine = tmpVertCenterLine[i + 1] + + //내 앞뒤 라인 + const tmpX1 = i === 2 ? prevLine.x1 : nextLine.x1 + const tmpY1 = i === 2 ? prevLine.y1 : nextLine.y1 + const tmpX2 = i === 2 ? prevLine.x2 : nextLine.x2 + const tmpY2 = i === 2 ? prevLine.y2 : nextLine.y2 + + firstPointObj = { x: tmpX1, y: tmpY1 } + secondPointObj = { x: tmpX2, y: tmpY2 } + tmpArray.push(firstPointObj) + tmpArray.push(secondPointObj) + + //현재 내 선 + firstPointObj = { x: x1, y: y1 } + secondPointObj = { x: x2, y: y2 } + tmpArray.push(firstPointObj) + tmpArray.push(secondPointObj) + roofPatternPolygonArray.push(tmpArray) + } else { + //큰 육각 + if (i === 1 || i === 5) { + // 큰 폴리곤은 가운데 선으로 되야됨 + if (outLines.length / 2 > concavePointIndices[0]) { + x2 = i === 1 ? lastCenterLine.x1 : lastCenterLine.x2 + y2 = i === 1 ? lastCenterLine.y1 : lastCenterLine.y2 + } else { + //오목이가 배열 전체보다 크면 오른쪽 오목이 + x1 = i === 1 ? lastCenterLine.x1 : lastCenterLine.x2 + y1 = i === 1 ? lastCenterLine.y2 : lastCenterLine.y1 + } + } + + if (i === 5) { + //5번일때는 앞에 3번에 선이 필요하다 + let prevX1 = tmpVertCenterLine[i - 2].x1 + let prevY1 = tmpVertCenterLine[i - 2].y1 + let prevX2 = tmpVertCenterLine[i - 2].x2 + let prevY2 = tmpVertCenterLine[i - 2].y2 + firstPointObj = { x: prevX1, y: prevY1 } + secondPointObj = { x: prevX2, y: prevY2 } + tmpBigArray.push(firstPointObj) + tmpBigArray.push(secondPointObj) + } + + firstPointObj = { x: x1, y: y1 } + secondPointObj = { x: x2, y: y2 } + tmpBigArray.push(firstPointObj) + tmpBigArray.push(secondPointObj) + + if (i === 3 || i === 6) { + roofPatternPolygonArray.push(tmpBigArray) + tmpBigArray = [] + } + } + } + + setRoofPolygonPattern({ roofPatternPolygonArray, lines }) + } else { + // 오목한 부분이 세로선일때 아래ㄷ, 위ㄷ + //라인들을 좌측에서 -> 우측으로 그리는거처럼 데이터 보정 + lines.forEach((line, index) => { + if (!(index % 2 === 0)) { + line.line.set('stroke', 'skyblue') + } + }) + outLines = reSortQlineArray(outLines) + outLines.forEach((outline, index) => { + if (!(index % 2 === 0)) { + //세로라인이 케라바 라인임 + + if (concavePointIndices[0] !== index) { + //오목이가 아니면 반으로 갈라서 계산 + + //카라바 선의 2분할 치수를 그림 + let halfLength = outline.length / 2 + let centerLine1 = new QLine([outline.x1, outline.y1, outline.x1 + halfLength, outline.y1], centerLineOpt) + canvas.add(centerLine1) + + let centerLine2 = new QLine([centerLine1.x2, outline.y1, centerLine1.x2 + halfLength, outline.y1], centerLineOpt) + canvas.add(centerLine2) + canvas.remove(outline) //기존 라인 삭제 + + halfHoriCenterLinePoint.push({ + index: index, + x1: centerLine1.x1, + y1: centerLine1.y1, + x2: centerLine1.x2, + y2: centerLine1.y2, + }) //각 카라바 라인의 1번이 마지막점을 잡아서 센터선으로 설정 + } + } + }) + + //각 센터 라인을 그림 + halfHoriCenterLinePoint.forEach((centerPoint) => { + let tmpY2 = parallelLinesIdx !== centerPoint.index ? concaveLine.line.y1 : outLines[concavePointIndices[0]].y2 //평행선에서 내려오는 선은 아웃라인에 닿아야한다 + + let line = new QLine([centerPoint.x2, centerPoint.y1, centerPoint.x2, tmpY2], centerLineOpt) + canvas.add(line) + + line['arrayIndex'] = centerPoint.index //커스텀으로 기존 index를 넣어줌 + vertCenterLine.push(line) + }) + + vertCenterLine = reSortQlineArray(vertCenterLine) + lines = reSortQlineArray(lines) + setTemplateCenterLine(vertCenterLine) + + //해당라인에서 만나는점을 계산 + vertCenterLine.forEach((vertLine) => { + if (parallelLinesIdx !== vertLine.arrayIndex) { + //평행선을 제외한 애들만 네모를 연결 + let nearLine + let nearOutline + if (vertLine.arrayIndex > concaveLine.index) { + //센터에 인덱스가 오목점 보다 크면 다음 작으면 앞에꺼 + nearLine = lines[concaveLine.index + 1] + nearOutline = outLines[concaveLine.index + 1] + } else { + nearLine = lines[concaveLine.index - 1] + nearOutline = outLines[concaveLine.index - 1] + } + + let nearLineY = nearLine.y1 + if (parallelLinesIdx < concaveLine.index) { + //오목점 위치가 평행선보다 크면 위쪽으로 오목 + nearLineY = nearLine.y2 + } + + let centerExtendLine = new QLine([vertLine.line.x1, nearLineY, nearOutline.x1, nearLineY], centerLineOpt) + canvas.add(centerExtendLine) //새로그리고 + + //기존에 있는 라인에서 연장해서 새로 그림 + let centerExtendHoriLine = new QLine([nearOutline.line.x1, vertLine.y1, nearOutline.line.x2, vertLine.line.y2], centerLineOpt) + canvas.add(centerExtendHoriLine) + canvas.remove(nearOutline) + outLines.splice(nearOutline.idx, 1, centerExtendHoriLine) //아웃라인에 데이터를 다시 넣는다 + + let betweenCenterLine = (vertLine.line.y1 + vertLine.line.y2) / 2 + let centerDashLine = new QLine([vertLine.line.x1, betweenCenterLine, nearOutline.x1, betweenCenterLine], dashedCenterLineOpt) + + canvas.add(centerDashLine) + horiCenterLine.push(centerDashLine) + shorVertCenterLine.push(vertLine) //마지막에 가운데 선을 긋기 위해 담음 + } else { + let longDashLine = halfHoriCenterLinePoint.find((obj) => obj.index === parallelLinesIdx) + + let dashCenterExtendLineLength = longDashLine.x2 - longDashLine.x1 + let betweenCenterLine = (vertLine.line.y1 + vertLine.line.y2) / 2 + let totalLength = ((longDashLine.x2 - longDashLine.x1) * 2) / dashCenterExtendLineLength + + //반 쪼개서 그린다 + for (let i = 0; i < totalLength; i++) { + let startX = i === 0 ? longDashLine.x1 : longDashLine.x1 + dashCenterExtendLineLength + let centerDashLine = new QLine([startX, betweenCenterLine, startX + dashCenterExtendLineLength, betweenCenterLine], dashedCenterLineOpt) + canvas.add(centerDashLine) + horiCenterLine.push(centerDashLine) + } + } + }) + + //마지막에 오목한 외곽선을 연장한다 + const tmpLastOutLine = outLines[concavePointIndices[0]] + const lastOutLine = new QLine([shorVertCenterLine[0].x1, tmpLastOutLine.y1, shorVertCenterLine[1].x1, tmpLastOutLine.y2], centerLineOpt) + canvas.add(lastOutLine) + canvas.remove(tmpLastOutLine) + + let tmpVertCenterLine = outLines.filter((x, index) => index % 2 === 0) //세로만 찾음 + tmpVertCenterLine = tmpVertCenterLine.concat(vertCenterLine) + tmpVertCenterLine.sort((a, b) => a.x1 - b.x1) + tmpVertCenterLine.push(lastOutLine) + + let roofPatternPolygonArray = [] + let tmpArray = [] + let tmpBigArray = [] + + const lastCenterLine = tmpVertCenterLine[tmpVertCenterLine.length - 1] //마지막 센터라인을 정의 + + for (let i = 0; i < tmpVertCenterLine.length - 1; i++) { + //-1인건 마지막은 오목한 선이라 돌 필요 없음 + //라인 하나에 두점씩 나온다 + let firstPointObj = {} + let secondPointObj = {} + + let x1 = tmpVertCenterLine[i].x1 + let y1 = tmpVertCenterLine[i].y1 + let x2 = tmpVertCenterLine[i].x2 + let y2 = tmpVertCenterLine[i].y2 + + if (i === 2 || i === 4) { + tmpArray = [] + const prevLine = tmpVertCenterLine[i - 1] //뒤에서 앞라인을 찾는다 + const nextLine = tmpVertCenterLine[i + 1] + + //내 앞뒤 라인 + const tmpX1 = i === 2 ? prevLine.x1 : nextLine.x1 + const tmpY1 = i === 2 ? prevLine.y1 : nextLine.y1 + const tmpX2 = i === 2 ? prevLine.x2 : nextLine.x2 + const tmpY2 = i === 2 ? prevLine.y2 : nextLine.y2 + + firstPointObj = { x: tmpX1, y: tmpY1 } + secondPointObj = { x: tmpX2, y: tmpY2 } + tmpArray.push(firstPointObj) + tmpArray.push(secondPointObj) + + //현재 내 선 + firstPointObj = { x: x1, y: y1 } + secondPointObj = { x: x2, y: y2 } + tmpArray.push(firstPointObj) + tmpArray.push(secondPointObj) + roofPatternPolygonArray.push(tmpArray) + } else { + if (i === 1 || i === 5) { + // 큰 폴리곤은 가운데 선으로 되야됨 + if (outLines.length / 2 < concavePointIndices[0]) { + //오목이가 배열 전체보다 크면 위쪽 방향 + x2 = i === 1 ? lastCenterLine.x2 : lastCenterLine.x1 + y2 = i === 1 ? lastCenterLine.y2 : lastCenterLine.y1 + } else { + x1 = i === 1 ? lastCenterLine.x1 : lastCenterLine.x2 + y1 = i === 1 ? lastCenterLine.y1 : lastCenterLine.y2 + } + } + + if (i === 5) { + //5번일때는 앞에 3번에 선이 필요하다 + let prevX1 = tmpVertCenterLine[i - 2].x1 + let prevY1 = tmpVertCenterLine[i - 2].y1 + let prevX2 = tmpVertCenterLine[i - 2].x2 + let prevY2 = tmpVertCenterLine[i - 2].y2 + firstPointObj = { x: prevX1, y: prevY1 } + secondPointObj = { x: prevX2, y: prevY2 } + tmpBigArray.push(firstPointObj) + tmpBigArray.push(secondPointObj) + } + + firstPointObj = { x: x1, y: y1 } + secondPointObj = { x: x2, y: y2 } + tmpBigArray.push(firstPointObj) + tmpBigArray.push(secondPointObj) + + if (i === 3 || i === 6) { + roofPatternPolygonArray.push(tmpBigArray) + tmpBigArray = [] + } + } + } + setRoofPolygonPattern({ roofPatternPolygonArray, lines }) + } + canvas?.renderAll() + } + /** * 세로 방샹 라인의 좌표 순서를 위에서 아래로 변경 * @param {array} arr @@ -3149,7 +4117,7 @@ export function useMode() { ctx.scale(ratio, ratio) if (mode === 'cell') { - ctx.fillStyle = 'rgba(0, 0, 0, 0.3)' + ctx.fillStyle = 'rgba(0, 0, 0, 0.1)' ctx.fillRect(0, 0, patternSize.width * 2, patternSize.height * 2) } @@ -3236,62 +4204,34 @@ export function useMode() { * 가대 생성 로직 */ const makeRoofTrestle = () => { + if (compass === undefined) { + alert('방위를 먼저 선택 해주세요.') + return + } + if (Object.keys(roofPolygonPattern).length === 0 && roofPolygonPattern.constructor === Object) { alert('객체가 비어있습니다.') return } const polygons = roofPolygonArray //리코일에 있는 패턴그린 폴리곤가져옴 - let selectedAreaArray = [] - - const defualtStrokeStyle = { - stroke: 'red', - strokeDashArray: [9, 5], - strokeWidth: 0.3, - } - - const selectedStrokeStyle = { - stroke: 'red', - strokeWidth: 3, - } /** * 지붕가대 생성 후 가대 선택 이벤트를 추가하는 로직 * @param polygon */ - function toggleSelection(polygon) { - if (polygon.strokeWidth === defualtStrokeStyle.strokeWidth) { - //기본 선택이랑 스트로크 굵기가 같으면 선택 안됨으로 봄 - polygon.set({ - stroke: selectedStrokeStyle.stroke, - strokeWidth: selectedStrokeStyle.strokeWidth, - strokeDashArray: [0], - }) - canvas.discardActiveObject() // 객체의 활성 상태 해제 - selectedAreaArray.push(polygon) - } else { - //선택후 재선택하면 선택안됨으로 변경 - polygon.set({ - stroke: defualtStrokeStyle.stroke, - strokeWidth: defualtStrokeStyle.strokeWidth, - strokeDashArray: defualtStrokeStyle.strokeDashArray, - }) - canvas.discardActiveObject() // 객체의 활성 상태 해제 + const pattern = getRoofPattern(roofStyle, 'cell') //셀모드 배경색을 칠한다 - //폴리곤에 커스텀 인덱스를 가지고 해당 배열 인덱스를 찾아 삭제함 - const removeIndex = polygon.idx - const removeArrayIndex = selectedAreaArray.findIndex((x) => x.idx === removeIndex) - selectedAreaArray.splice(removeArrayIndex, 1) - } - canvas?.renderAll() - } - - const pattern = getRoofPattern(roofStyle, 'cell') + polygons.sort((a, b) => b.points.length - a.points.length) //무조건 잴 긴거 정렬 // 외각선을 안쪽으로 그려 가대선을 그린다. polygons.forEach((polygon, index) => { const trestlePolygon = handleOuterlinesTest(polygon, -12) + let referenceDirection = 'none' //상단 기준 값 + let parallelPoint = -1 trestlePolygon.setViewLengthText(false) //얘는 set으로 안먹는다... + trestlePolygon.bringForward() + trestlePolygon.set({ stroke: 'red', strokeDashArray: [9, 5], @@ -3301,26 +4241,175 @@ export function useMode() { lockRotation: true, lockScalingX: true, lockScalingY: true, - bringToFront: true, idx: polygon.customIndex, //가대 폴리곤의 임시 인덱스를 넣어줌 name: 'trestlePolygon', }) + if (polygon.points.length > 4) { + //6, 8각 + //4각 이상일때만 한다 + const concave = findConcavePointIndices(polygon.points) //오목한 부분기준으로 시작점을 찾으려 계산 + parallelPoint = parseInt(concave.concavePointIndices[0] + 3) % polygon.points.length //시작점을 찾기 위해 적용 + + if (templateType === 2) { + //셀이 그려져야할 기준 방향 + //A타입 + if (parallelPoint === 0 || parallelPoint === 5) { + referenceDirection = 'top' + } else { + referenceDirection = 'bottom' + } + } else if (templateType === 3) { + //B타입 + if (parallelPoint === 0 || parallelPoint === 1) { + referenceDirection = 'left' + } else { + referenceDirection = 'right' + } + } + } + + //셀이 생성될 지붕의 흐름방향을 정함 + templateCenterLine.some((centerLine) => { + if (templateType === 2) { + trestlePolygon.set({ + referenceDirection: referenceDirection, + startIndex: parallelPoint, + }) //기준면 방향 + trestlePolygon.points.forEach((trestleLine, index) => { + if (trestleLine.x === centerLine.x1 - 12) { + trestlePolygon.set({ wallDirection: 'left' }) + return true + } else if (trestleLine.x === centerLine.x1 + 12) { + trestlePolygon.set({ wallDirection: 'right' }) + return true + } + }) + } else if (templateType === 3) { + trestlePolygon.set({ + referenceDirection: referenceDirection, + startIndex: parallelPoint, + }) //기준면 방향 + trestlePolygon.points.forEach((trestleLine, index) => { + if (trestleLine.y === centerLine.y1 - 12) { + trestlePolygon.set({ wallDirection: 'top' }) + return true + } else if (trestleLine.y === centerLine.y1 + 12) { + trestlePolygon.set({ wallDirection: 'bottom' }) + return true + } + }) + } + }) + /** * 가대 선택 이벤트 */ trestlePolygon.on('mousedown', function () { toggleSelection(trestlePolygon) }) - - console.log('polygon', polygon) - polygon.set({ fill: pattern }) + trestlePolygon.bringForward() }) + canvas?.renderAll() + setMode(Mode.DEFAULT) //default 모드로 변경 + } + + /** + * 가대 영역 선택 시 이벤트 + * @param {} polygon + */ + const toggleSelection = (polygon) => { + const selectedAreaArray = selectedCellRoofArray + + const defualtStrokeStyle = { + stroke: 'red', + strokeDashArray: [9, 5], + strokeWidth: 0.3, + } + + const wallDirection = polygon.wallDirection + + // //A템플릿 타입 + // if (templateType === 2) { + // if (compass === 90) { + // if (wallDirection === 'right') { + // alert('선택할 수 없는 방향입니다.') + // return + // } + // } else if (compass === 270) { + // if (wallDirection === 'left') { + // alert('선택할 수 없는 방향입니다.') + // return + // } + // } + // } else if (templateType === 3) { + // if (compass === 0) { + // if (wallDirection === 'top') { + // alert('선택할 수 없는 방향입니다.') + // return + // } + // } else if (compass === 180) { + // if (wallDirection === 'bottom') { + // alert('선택할 수 없는 방향입니다.') + // return + // } + // } + // } + + const invalidDirections = { + 2: { + 90: 'right', + 270: 'left', + }, + 3: { + 0: 'top', + 180: 'bottom', + }, + } + + if (invalidDirections[templateType] && invalidDirections[templateType][compass] === wallDirection) { + alert('선택할 수 없는 방향입니다.') + canvas.discardActiveObject() // 객체의 활성 상태 해제 + return + } + + const selectedStrokeStyle = { + stroke: 'red', + strokeWidth: 3, + } + if (polygon.strokeWidth === defualtStrokeStyle.strokeWidth) { + //기본 선택이랑 스트로크 굵기가 같으면 선택 안됨으로 봄 + polygon.set({ + stroke: selectedStrokeStyle.stroke, + strokeWidth: selectedStrokeStyle.strokeWidth, + strokeDashArray: [0], + }) + canvas.discardActiveObject() // 객체의 활성 상태 해제 + + //중복으로 들어가는걸 방지하기 위한 코드 + const isExist = selectedAreaArray.some((x) => x.idx === polygon.idx) + if (!isExist) { + selectedAreaArray.push(polygon) + } + } else { + //선택후 재선택하면 선택안됨으로 변경 + polygon.set({ + stroke: defualtStrokeStyle.stroke, + strokeWidth: defualtStrokeStyle.strokeWidth, + strokeDashArray: defualtStrokeStyle.strokeDashArray, + }) + canvas.discardActiveObject() // 객체의 활성 상태 해제 + + //폴리곤에 커스텀 인덱스를 가지고 해당 배열 인덱스를 찾아 삭제함 + const removeIndex = polygon.idx + const removeArrayIndex = selectedAreaArray.findIndex((x) => x.idx === removeIndex) + selectedAreaArray.splice(removeArrayIndex, 1) + } + setSelectedCellRoofArray(selectedAreaArray) canvas?.renderAll() - setMode(Mode.DEFAULT) //default 모드로 변경 } /** @@ -3328,8 +4417,9 @@ export function useMode() { */ const makeRoofFillCells = () => { const drawCellsArray = [] + const selectedCellRoofs = [...selectedCellRoofArray] - if (selectedCellRoofArray.length === 0) { + if (selectedCellRoofs.length === 0) { //배열에 선택된 가대 셀이 없으면 리턴 alert('선택된 영역이 없습니다.') setMode(Mode.DEFAULT) //default 모드로 변경 @@ -3349,16 +4439,25 @@ export function useMode() { } } - const inputCellSize = { width: 172, height: 113 } + const inputCellSize = { width: 172, height: 113 } //추후 입력받는 값으로 변경 const cellSize = { ...inputCellSize } //기본으로 가로형으로 넣고 if (templateType === 2) { ;[cellSize.width, cellSize.height] = [cellSize.height, cellSize.width] } - selectedCellRoofArray.forEach((polygon, index) => { - const drawCells = polygon.fillCell({ width: cellSize.width, height: cellSize.height, padding: 10 }) - drawCellsArray.push({ roofIndex: polygon.customIndex, drawCells: drawCells }) + selectedCellRoofs.forEach((polygon, index) => { + const drawCells = polygon.fillCellABType({ + width: cellSize.width, + height: cellSize.height, + padding: 10, + wallDirection: polygon.wallDirection, + referenceDirection: polygon.referenceDirection, + startIndex: polygon.startIndex, + }) + drawCellsArray.push({ roofIndex: polygon.idx, drawCells: drawCells }) + + // toggleSelection(polygon) //선택 후 셀그리면 지우려고 했는데 방위 땜에 삭제 }) setDrewRoofCells(drawCellsArray) @@ -3366,21 +4465,26 @@ export function useMode() { } const createRoofRack = () => { + const trestlePolygons = canvas?.getObjects().filter((obj) => obj.name === 'trestle') + // 이미 만들어진 가대가 있을 경우 return + if (trestlePolygons.length !== 0) { + return + } + + canvas?.off('mouse:move') + canvas?.off('mouse:out') + document.removeEventListener('keydown', handleKeyDown) const roofs = canvas?.getObjects().filter((obj) => obj.name === 'roof') let roofCells = [] // roof에 적재된 cell들 roofs.forEach((roof, index) => { - let maxLengthLine = roof.lines.reduce((acc, cur) => { - return acc.length > cur.length ? acc : cur - }) - - const offsetPolygonPoint = offsetPolygon(roof.points, -20, 0) + const offsetPolygonPoint = offsetPolygon(roof.points, -20) const trestlePoly = new QPolygon(offsetPolygonPoint, { fill: 'transparent', stroke: 'red', strokeDashArray: [5, 5], strokeWidth: 1, - selectable: true, + selectable: false, fontSize: fontSize, name: 'trestle', lockMovementX: true, // X 축 이동 잠금 @@ -3389,17 +4493,49 @@ export function useMode() { lockScalingX: true, // X 축 크기 조정 잠금 lockScalingY: true, // Y 축 크기 조정 잠금 idx: index, + parentId: roof.id, }) canvas?.add(trestlePoly) + }) + + setDrewRoofCells(roofCells) + } + + //배터리 셀 넣기 + const drawCellInTrestle = () => { + const trestlePolygons = canvas?.getObjects().filter((obj) => obj.name === 'trestle' && obj.selected) + const notSelectedTrestlePolygons = canvas?.getObjects().filter((obj) => obj.name === 'trestle' && !obj.selected) + if (trestlePolygons.length === 0) { + alert('가대가 없습니다.') + return + } + + if (drewRoofCells.length > 0) { + alert('기존 셀은 제거됩니다.') + } + + notSelectedTrestlePolygons.forEach((trestle) => { + trestle.cells.forEach((cell) => { + canvas?.remove(cell) + }) + trestle.cells = [] + }) + + const drawCellsArray = [] + trestlePolygons.forEach((trestle, index) => { + trestle.fire('mousedown') + let maxLengthLine = trestle.lines.reduce((acc, cur) => { + return acc.length > cur.length ? acc : cur + }) let drawRoofCells if (maxLengthLine.direction === 'right' || maxLengthLine.direction === 'left') { - drawRoofCells = trestlePoly.fillCell({ width: 100, height: 50, padding: 10 }) - trestlePoly.direction = 'south' + drawRoofCells = trestle.fillCell({ width: 50, height: 100, padding: 0 }) + trestle.direction = 'south' } else { - drawRoofCells = trestlePoly.fillCell({ width: 50, height: 100, padding: 10 }) - trestlePoly.direction = 'east' + drawRoofCells = trestle.fillCell({ width: 100, height: 50, padding: 0 }) + trestle.direction = 'east' } drawRoofCells.forEach((cell) => { @@ -3410,6 +4546,70 @@ export function useMode() { setDrewRoofCells(roofCells) } + const makeCellPowercon = () => { + setMode(Mode.DEFAULT) + let cellsGroupObj = [] + + drewRoofCells.forEach((obj) => { + cellsGroupObj = cellsGroupObj.concat(obj.drawCells) + }) + + const chunkSize = 1000 / 200 // 파워콘와트 나누기 셀와트 + const cellPowerconArray = [] + + //파워콘과 셀의 파워를 나눠서 나온 갯수만큼 배열을 재생성 + for (let i = 0; i < cellsGroupObj.length; i += chunkSize) { + cellPowerconArray.push(cellsGroupObj.slice(i, i + chunkSize)) + } + + for (let i = 0; i < cellPowerconArray.length; i++) { + const cellPowerconGroups = cellPowerconArray[i] + cellPowerconGroups.forEach((cellPowerconGroup, index) => { + const cellRectObj = cellPowerconGroup._objects[0] + const cellTextObj = cellPowerconGroup._objects[1] + + cellTextObj.set({ + text: `(${i + 1})`, + }) + cellPowerconGroup.addWithUpdate() + + //폰트 사이즈가 커진 후에 계산을 해야함 + cellTextObj.set({ + left: cellRectObj.left + cellRectObj.width / 2 - cellTextObj.width / 2, + top: cellRectObj.top + cellRectObj.height / 2 - cellTextObj.height / 2, + }) + cellPowerconGroup.addWithUpdate() + }) + } + canvas.renderAll() + } + + // 외적을 계산하는 함수 + const crossProduct = (p1, p2, p3) => { + const dx1 = p2.x - p1.x + const dy1 = p2.y - p1.y + const dx2 = p3.x - p2.x + const dy2 = p3.y - p2.y + return dx1 * dy2 - dy1 * dx2 + } + // 오목한 부분 찾기 + const findConcavePointIndices = (points) => { + let concaveIndices = [] + let concavePointIndices = [] + for (let i = 0; i < points.length; i++) { + const p1 = points[i] + const p2 = points[(i + 1) % points.length] + const p3 = points[(i + 2) % points.length] + const cross = crossProduct(p1, p2, p3) + if (cross < 0) { + concaveIndices.push((i + 1) % points.length) + } else { + concavePointIndices.push((i + 1) % points.length) + } + } + return { concaveIndices: concaveIndices, concavePointIndices: concavePointIndices } + } + return { mode, setMode, @@ -3425,5 +4625,7 @@ export function useMode() { makeRoofPatternPolygon, makeRoofTrestle, createRoofRack, + drawRoofPolygon, + drawCellInTrestle, } } diff --git a/src/hooks/useToast.js b/src/hooks/useToast.js new file mode 100644 index 00000000..d9c0fdb3 --- /dev/null +++ b/src/hooks/useToast.js @@ -0,0 +1,35 @@ +import { toast } from 'react-toastify' + +const toastDefaultOptions = { + position: 'top-right', + autoClose: 3000, + draggable: false, + hideProgressBar: false, + rtl: false, + pauseOnFocusLoss: true, + pauseOnHover: true, + theme: 'light', + limit: 2, + closeOnClick: true, +} + +const QToast = (props) => { + // type TypeOptions = 'info' | 'success' | 'warning' | 'error' | 'default' + const { message, type = 'info', options } = props + const customOptions = { ...toastDefaultOptions, ...options } + + switch (type) { + case 'info': + return toast.info(message, customOptions) + case 'success': + return toast.success(message, customOptions) + case 'warning': + return toast.warn(message, customOptions) + case 'error': + return toast.error(message, customOptions) + default: + return toast(message, customOptions) + } +} + +export { QToast } diff --git a/src/lib/authActions.js b/src/lib/authActions.js new file mode 100644 index 00000000..e1968efe --- /dev/null +++ b/src/lib/authActions.js @@ -0,0 +1,61 @@ +'use server' + +import { cookies } from 'next/headers' +import { redirect } from 'next/navigation' + +import { getIronSession } from 'iron-session' + +import { getUserByIdAndPassword } from './user' +import { defaultSession, sessionOptions } from './session' + +export async function logout() { + const session = await getSession() + session.destroy() + redirect('/login') +} + +export async function getSession() { + let session + session = await getIronSession(cookies(), sessionOptions) + + console.log('session:', session) + if (!session.isLoggedIn) { + session.isLoggedIn = defaultSession.isLoggedIn + } + + return session +} + +export async function login(formData) { + const session = await getSession() + + const userId = formData.get('id') + const password = formData.get('password') + + console.log('id:', userId) + console.log('password:', password) + + // const user = { + // id: 1, + // name: 'jinsoo Kim', + // email: 'jinsoo.kim@example.com', + // } + const loginUser = await getUserByIdAndPassword({ userId, password }) + console.log('loginUser:', loginUser) + + if (!loginUser) { + throw Error('Wrong Credentials!') + } + + // session.id = user.id + // session.email = user.email + session.userId = loginUser.USER_ID + session.saleStoreId = loginUser.SALE_STORE_ID + session.name = loginUser.NAME + session.mail = loginUser.MAIL + session.isLoggedIn = true + console.log('session:', session) + + await session.save() + redirect('/') +} diff --git a/src/lib/session.js b/src/lib/session.js new file mode 100644 index 00000000..95d51411 --- /dev/null +++ b/src/lib/session.js @@ -0,0 +1,16 @@ +export const defaultSession = { + userId: null, + saleStoreId: null, + name: null, + mail: null, + isLoggedIn: false, +} + +export const sessionOptions = { + password: process.env.SESSION_SECRET, + cookieName: 'lama-session', + cookieOptions: { + httpOnly: true, + secure: process.env.NODE_ENV === 'production', + }, +} diff --git a/src/lib/user.js b/src/lib/user.js new file mode 100644 index 00000000..bdc619ee --- /dev/null +++ b/src/lib/user.js @@ -0,0 +1,31 @@ +'use server' + +const { PrismaClient } = require('@prisma/client') + +const prisma = new PrismaClient() + +export async function getUserByIdAndPassword({ userId, password }) { + return prisma.m_USER.findFirst({ + where: { + USER_ID: userId, + PASSWORD: password, + }, + }) +} + +export async function getUser(userId) { + return prisma.m_USER.findUnique({ + where: { + user_id: userId, + }, + }) +} + +export async function getUsers() { + return prisma.m_USER.findMany({ + where: { + // USER_ID: 'daiwajoho01', + USER_ID: { in: ['daiwajoho01', 'daiwajoho', 'daiwabutsuryu'] }, + }, + }) +} diff --git a/src/locales/client.js b/src/locales/client.js new file mode 100644 index 00000000..c4679862 --- /dev/null +++ b/src/locales/client.js @@ -0,0 +1,18 @@ +'use client' + +import { createI18nClient } from 'next-international/client' + +export const { useI18n, useScopedI18n, I18nProviderClient, useChangeLocale, defineLocale, useCurrentLocale } = createI18nClient( + { + ko: () => import('./ko'), + ja: () => import('./ja'), + }, + { + // Uncomment to set base path + // basePath: '/base', + // Uncomment to use custom segment name + // segmentName: 'locale', + // Uncomment to set fallback locale + // fallbackLocale: en, + }, +) diff --git a/src/locales/ja.js b/src/locales/ja.js new file mode 100644 index 00000000..2b7df6bd --- /dev/null +++ b/src/locales/ja.js @@ -0,0 +1,7 @@ +console.log('Loaded JA') + +export default { + hello: 'こんにちは', + welcome: 'こんにちは {name}!', + locale: '現在のロケールは {locale} です。', +} diff --git a/src/locales/ko.js b/src/locales/ko.js new file mode 100644 index 00000000..40e17ba2 --- /dev/null +++ b/src/locales/ko.js @@ -0,0 +1,7 @@ +console.log('Loaded KO') + +export default { + hello: '안녕', + welcome: '안녕 {name}!', + locale: '현재 로케일은 {locale}입니다.', +} diff --git a/src/locales/server.js b/src/locales/server.js new file mode 100644 index 00000000..7bfe43f0 --- /dev/null +++ b/src/locales/server.js @@ -0,0 +1,14 @@ +import { createI18nServer } from 'next-international/server' + +export const { getI18n, getScopedI18n, getCurrentLocale, getStaticParams } = createI18nServer( + { + ko: () => import('./ko'), + ja: () => import('./ja'), + }, + { + // Uncomment to use custom segment name + // segmentName: 'locale', + // Uncomment to set fallback locale + // fallbackLocale: en, + }, +) diff --git a/src/middleware.js b/src/middleware.js index d0329940..f93c0506 100644 --- a/src/middleware.js +++ b/src/middleware.js @@ -1,12 +1,27 @@ -import { NextRequest, NextResponse } from 'next/server' +import { createI18nMiddleware } from 'next-international/middleware' + +const I18nMiddleware = createI18nMiddleware({ + locales: ['ko', 'ja'], + defaultLocale: 'ko', +}) export function middleware(request) { - const requestHeaders = new Headers(request.headers) - requestHeaders.set('x-pathname', request.nextUrl.pathname) - - return NextResponse.next({ - request: { - headers: requestHeaders, - }, - }) + return I18nMiddleware(request) } + +export const config = { + matcher: ['/((?!api|static|.*\\..*|_next|favicon.ico|robots.txt).*)'], +} + +// import { NextRequest, NextResponse } from 'next/server' + +// export function middleware(request) { +// const requestHeaders = new Headers(request.headers) +// requestHeaders.set('x-pathname', request.nextUrl.pathname) + +// return NextResponse.next({ +// request: { +// headers: requestHeaders, +// }, +// }) +// } diff --git a/src/store/canvasAtom.js b/src/store/canvasAtom.js index 48eb0281..fa4d2770 100644 --- a/src/store/canvasAtom.js +++ b/src/store/canvasAtom.js @@ -50,7 +50,7 @@ export const roofPolygonArrayState = atom({ export const templateTypeState = atom({ key: 'templateType', - default: 1, //1:모임지붕, 2:A타입, 3:B타입 + default: 0, //1:모임지붕, 2:A타입, 3:B타입 dangerouslyAllowMutability: true, }) @@ -67,3 +67,9 @@ export const roofMaterialState = atom({ default: { width: 20, height: 10, rafter: 0, roofStyle: 2 }, dangerouslyAllowMutability: true, }) + +export const compassState = atom({ + key: 'compass', + default: undefined, + dangerouslyAllowMutability: true, +}) diff --git a/src/store/modalAtom.js b/src/store/modalAtom.js new file mode 100644 index 00000000..a9a708ac --- /dev/null +++ b/src/store/modalAtom.js @@ -0,0 +1,15 @@ +import { atom } from 'recoil' + +export const modalState = atom({ + key: 'modalState', + default: false, +}) + +export const modalContent = atom({ + key: 'modalContent', + default: ( + <> +
test
+ + ), +}) diff --git a/src/styles/style.scss b/src/styles/style.scss index e7f56590..92085ad6 100644 --- a/src/styles/style.scss +++ b/src/styles/style.scss @@ -1 +1,2 @@ -@import '_test.scss'; \ No newline at end of file +@import '_test.scss'; +@import 'react-toastify/dist/ReactToastify.css'; \ No newline at end of file diff --git a/src/util/canvas-util.js b/src/util/canvas-util.js index 5977eeb4..7374c024 100644 --- a/src/util/canvas-util.js +++ b/src/util/canvas-util.js @@ -38,7 +38,7 @@ export function actionHandler(eventData, transform, x, y) { // define a function that can keep the polygon in the same position when we change its width/height/top/left export function anchorWrapper(anchorIndex, fn) { - return function (eventData, transform, x, y) { + return function(eventData, transform, x, y) { let fabricObject = transform.target let originX = fabricObject?.points[anchorIndex].x - fabricObject.pathOffset.x let originY = fabricObject.points[anchorIndex].y - fabricObject.pathOffset.y @@ -241,6 +241,14 @@ export const getRoofHypotenuse = (base) => { return Math.sqrt(base * base * 2) } +/** + * 빗변의 길이를 입력받아 밑변의 길이를 반환 + * @param base 빗변 + */ +export const getAdjacent = (base) => { + return Math.round(Math.sqrt(Math.pow(base, 2) / 2)) +} + /** * 촌을 입력받아 각도를 반환 * @param chon diff --git a/src/util/qpolygon-utils.js b/src/util/qpolygon-utils.js index 80693e04..5a216524 100644 --- a/src/util/qpolygon-utils.js +++ b/src/util/qpolygon-utils.js @@ -1,7 +1,15 @@ import { fabric } from 'fabric' import { QLine } from '@/components/fabric/QLine' -import { calculateIntersection, distanceBetweenPoints, findClosestPoint, getDirectionByPoint } from '@/util/canvas-util' +import { + calculateIntersection, + distanceBetweenPoints, + findClosestPoint, + getAdjacent, + getDirectionByPoint, + getRoofHypotenuse, +} from '@/util/canvas-util' import { QPolygon } from '@/components/fabric/QPolygon' +import * as turf from '@turf/turf' const TWO_PI = Math.PI * 2 @@ -533,7 +541,7 @@ export const dividePolygon = (polygon) => { const newPolygon = new QPolygon(polygonPoints, { fontSize: polygon.fontSize, - id: polygon.id, + parentId: polygon.id, name: 'roof', selectable: false, stroke: 'black', @@ -578,7 +586,7 @@ export const dividePolygon = (polygon) => { const newPolygon = new QPolygon(polygonPoints, { fontSize: polygon.fontSize, - id: polygon.id, + parentId: polygon.id, name: 'roof', selectable: false, stroke: 'black', @@ -596,7 +604,7 @@ export const dividePolygon = (polygon) => { const newPolygon = new QPolygon(polygonPoints, { fontSize: polygon.fontSize, - id: polygon.id, + parentId: polygon.id, name: 'roof', selectable: false, stroke: 'black', @@ -671,7 +679,7 @@ export const dividePolygon = (polygon) => { const newPolygon = new QPolygon(polygonPoints, { fontSize: polygon.fontSize, - id: polygon.id, + parentId: polygon.id, name: 'roof', selectable: false, stroke: 'black', @@ -928,8 +936,9 @@ function createPaddingPolygon(polygon, offset, arcSegments = 0) { return paddingPolygon } -export default function offsetPolygon(vertices, offset, arcSegments = 0) { +export default function offsetPolygon(vertices, offset) { const polygon = createPolygon(vertices) + const arcSegments = 0 const originPolygon = new QPolygon(vertices, { fontSize: 0 }) @@ -953,3 +962,1790 @@ export default function offsetPolygon(vertices, offset, arcSegments = 0) { } } } + +export const splitPolygonWithLines = (polygon) => { + const roofs = [] + const allLines = [...polygon.innerLines] + + // allLines에 x1,y1,x2,y2를 비교해서 중복되는 값을 제거한다. + allLines.forEach((line, index) => { + const startPoint = line.startPoint + const endPoint = line.endPoint + + allLines.forEach((line2, index2) => { + if (index !== index2) { + if ( + (isSamePoint(startPoint, line2.startPoint) && isSamePoint(endPoint, line2.endPoint)) || + (isSamePoint(endPoint, line2.startPoint) && isSamePoint(startPoint, line2.endPoint)) + ) { + allLines.splice(index2, 1) + } + } + }) + }) + + /** + * 좌표 테스트용 + */ + allLines.forEach((line) => { + const text = new fabric.Text(`(${line.startPoint.x},${line.startPoint.y})`, { + left: line.startPoint.x, + top: line.startPoint.y, + fontSize: 15, + }) + + polygon.canvas.add(text) + polygon.canvas.renderAll() + + const text2 = new fabric.Text(`(${line.endPoint.x},${line.endPoint.y})`, { + left: line.endPoint.x, + top: line.endPoint.y, + fontSize: 15, + }) + + polygon.canvas.add(text2) + polygon.canvas.renderAll() + }) + + polygon.points.forEach((point, index) => { + const text = new fabric.Text(`(${point.x},${point.y})`, { + left: point.x, + top: point.y, + fontSize: 15, + }) + + polygon.canvas.add(text) + polygon.canvas.renderAll() + }) + /** + * 좌표 테스트용 끝 + */ + + polygon.points.forEach((point, index) => { + allLines.forEach((line) => { + if (line.endPoint.x === point.x && line.endPoint.y === point.y) { + const temp = line.startPoint + line.startPoint = line.endPoint + line.endPoint = temp + } + }) + }) + + polygon.points.forEach((point, index) => { + const routes = [] + + // 시작점은 시작 hip라인의 출발점 + const startPoint = point + // 도착점은 마지막 hip라인의 끝나는 점 + const endPoint = polygon.points[(index + 1) % polygon.points.length] + + const startLine = allLines.find((line) => line.startPoint.x === startPoint.x && line.startPoint.y === startPoint.y) + const endLine = allLines.find((line) => line.startPoint.x === endPoint.x && line.startPoint.y === endPoint.y) + + const arrivalPoint = endLine.endPoint + routes.push(startLine.startPoint) + routes.push(startLine.endPoint) + + //hip끼리 만나는 경우는 아무것도 안해도됨 + if (!isSamePoint(startLine.endPoint, arrivalPoint)) { + // polygon line까지 추가 + const allLinesCopy = [...allLines, ...polygon.lines] + // hip이 만나지 않는 경우 갈 수 있는 길을 다 돌아야함 + let currentPoint = startLine.endPoint + let currentLine = startLine + let movedLines = [] + let subMovedLines = [] + while (!isSamePoint(currentPoint, arrivalPoint)) { + // startHip에서 만나는 출발선 두개. 두개의 선을 출발하여 arrivalPoint에 도착할 때 까지 count를 세고, 더 낮은 count를 가진 길을 선택한다. + let connectedLines = allLinesCopy.filter((line) => isSamePoint(line.startPoint, currentPoint) || isSamePoint(line.endPoint, currentPoint)) + + connectedLines = connectedLines.filter((line) => line !== currentLine) + + connectedLines = connectedLines.filter((line) => !subMovedLines.includes(line)) + + //마지막 선이 endLine의 startPoint와 같은경우 그 전까지 movedLine을 제거한다. + const endLineMeetLineCnt = connectedLines.filter((line) => { + return isSamePoint(line.endPoint, endLine.startPoint) || isSamePoint(line.startPoint, endLine.startPoint) + }).length + + if (endLineMeetLineCnt !== 0) { + movedLines.push(subMovedLines) + + console.log(movedLines, index) + } + + connectedLines = connectedLines.filter((line) => { + return !isSamePoint(line.endPoint, endLine.startPoint) && !isSamePoint(line.startPoint, endLine.startPoint) + }) + + if (connectedLines.length === 0) { + return + } + + let tempPoints = [] + + for (let i = 0; i < connectedLines.length; i++) { + if (isSamePoint(connectedLines[i].startPoint, currentPoint)) { + tempPoints.push({ point: connectedLines[i].endPoint, index: i, line: connectedLines[i] }) + } else { + tempPoints.push({ point: connectedLines[i].startPoint, index: i, line: connectedLines[i] }) + } + } + + //tempPoints에서 arrivalPoint와 가장 가까운 점을 찾는다. + let minDistance = Number.MAX_SAFE_INTEGER + let minIndex = 0 + tempPoints.forEach((tempPoint, index) => { + const distance = Math.sqrt(Math.pow(tempPoint.point.x - arrivalPoint.x, 2) + Math.pow(tempPoint.point.y - arrivalPoint.y, 2)) + if (distance < minDistance) { + minDistance = distance + minIndex = tempPoint.index + } + }) + + currentPoint = tempPoints[minIndex].point + currentLine = tempPoints[minIndex].line + if (currentLine !== startLine) { + subMovedLines.push(currentLine) + } + routes.push(currentPoint) + } + } + + routes.push(endLine.startPoint) + roofs.push(routes) + }) + + // 중복 제거 + roofs.forEach((roofPoint, index) => { + const samePointLengthRoofPoints = roofs.filter((roof) => roof.length === roofPoint.length && roof !== roofPoint) + + samePointLengthRoofPoints.forEach((samePointRoof) => { + if (arraysHaveSamePoints(samePointRoof, roofPoint)) { + roofs.splice(roofs.indexOf(samePointRoof), 1) + } + }) + }) + + roofs.forEach((roofPoint) => { + const roof = new QPolygon(roofPoint, { + fontSize: polygon.fontSize, + stroke: 'black', + fill: 'transparent', + strokeWidth: 3, + name: 'roof', + selectable: false, + }) + + polygon.canvas.add(roof) + polygon.canvas.renderAll() + }) +} + +const isSamePoint = (a, b) => { + return a.x === b.x && a.y === b.y +} + +/** + * Calculate the angle between two lines. + * @param {Object} line1 - The first line defined by two points {x1, y1} and {x2, y2}. + * @param {Object} line2 - The second line defined by two points {x1, y1} and {x2, y2}. + * @returns {number} - The angle between the two lines in degrees. + */ +function calculateAngleBetweenLines(line1, line2) { + const { x1: x1_1, y1: y1_1, x2: x2_1, y2: y2_1 } = line1 + const { x1: x1_2, y1: y1_2, x2: x2_2, y2: y2_2 } = line2 + + // Calculate direction vectors + const vector1 = { x: x2_1 - x1_1, y: y2_1 - y1_1 } + const vector2 = { x: x2_2 - x1_2, y: y2_2 - y1_2 } + + // Calculate dot product and magnitudes + const dotProduct = vector1.x * vector2.x + vector1.y * vector2.y + const magnitude1 = Math.sqrt(vector1.x * vector1.x + vector1.y * vector1.y) + const magnitude2 = Math.sqrt(vector2.x * vector2.x + vector2.y * vector2.y) + + // Calculate the cosine of the angle + const cosTheta = dotProduct / (magnitude1 * magnitude2) + + // Calculate the angle in radians and then convert to degrees + const angleInRadians = Math.acos(cosTheta) + const angleInDegrees = (angleInRadians * 180) / Math.PI + + return angleInDegrees +} + +export const drawHippedRoof = (polygon, chon) => { + drawRoofRidge(polygon) + drawHips(polygon) + connectLinePoint(polygon) +} +/*마루 그리기 + 외벽의 모양이 돌출된 ㄷ의 형태일때 + 현재 라인의 외벽길이가 붙어있는 두외벽의 길이보다 짧거나 같다면 + 지붕의 두 꼭지점에서 외벽의 두 꼭지점으로 45도 방향으로 선을 그려 만나는 지점이 마루의 시작점이 되고 + 시작점에서 부터 (가장 긴선 - ( 삼각형의 빗변 에서 직각까지의 수직길이 x 2))의 길이가 마루의 끝점이 된다. + 다만 마루의 길이는 나머지 나머지 두 지붕의 길이중 짧은선의 길이를 넘어갈수 없다. +*/ +const drawRoofRidge = (polygon) => { + const lines = polygon.wall.lines + console.log('polygon.wall.points : ', polygon.wall.points) + polygon.lines.forEach((value, index) => { + let currentLine, prevWall, currentWall, nextWall + let startXPoint, startYPoint, endXPoint, endYPoint + if (index === 0) { + prevWall = polygon.wall.lines[polygon.wall.lines.length - 1] + } else { + prevWall = polygon.wall.lines[index - 1] + } + currentLine = polygon.lines[index] + currentWall = polygon.wall.lines[index] + + if (index === polygon.lines.length - 1) { + nextWall = polygon.wall.lines[0] + } else if (index === polygon.lines.length) { + nextWall = polygon.wall.lines[1] + } else { + nextWall = polygon.wall.lines[index + 1] + } + + if (getLineDirection(prevWall) !== getLineDirection(nextWall) && currentWall.length < currentLine.length) { + let minX = Math.min(currentWall.x1, currentWall.x2, prevWall.x1, nextWall.x2) + let maxX = Math.max(currentWall.x1, currentWall.x2, prevWall.x1, nextWall.x2) + let minY = Math.min(currentWall.y1, currentWall.y2, prevWall.y1, nextWall.y2) + let maxY = Math.max(currentWall.y1, currentWall.y2, prevWall.y1, nextWall.y2) + + let lineCoordinate = [ + { x: minX, y: minY }, + { x: minX, y: maxY }, + { x: maxX, y: maxY }, + { x: maxX, y: minY }, + ] + + let innerPointLine = lines + .filter((line) => { + if (getPointInPolygon(lineCoordinate, { x: line.x1, y: line.y1 })) { + return line + } + }) + .reduce((prev, current) => { + if (prev !== undefined) { + if (currentWall.direction === 'top' || currentWall.direction === 'bottom') { + return Math.abs(currentWall.x1 - prev.x1 + (currentWall.x1 - prev.x2)) < + Math.abs(currentWall.x1 - current.x1 + (currentWall.x1 - current.x2)) + ? prev + : current + } + if (currentWall.direction === 'left' || currentWall.direction === 'right') { + return Math.abs(currentWall.y1 - prev.y1 + (currentWall.y1 - prev.y2)) < + Math.abs(currentWall.y1 - current.y1 + (currentWall.y1 - current.y2)) + ? prev + : current + } + } else { + if (currentWall.direction === 'top' || currentWall.direction === 'bottom') { + return current + } + if (currentWall.direction === 'left' || currentWall.direction === 'right') { + return current + } + } + }, undefined) + + console.log('여기 확인 ===== currentWall : ', currentWall) + let acrossLine = lines + .filter((line) => { + /*let minAcrossX, maxAcrossX, minAcrossY, maxAcrossY + if (currentWall.direction === 'top' || currentWall.direction === 'bottom') { + minAcrossX = Math.min(currentWall.x1, line.x1) + maxAcrossX = Math.max(currentWall.x1, line.x1) + minAcrossY = Math.min(currentWall.y1, currentWall.y2) + maxAcrossY = Math.max(currentWall.y1, currentWall.y2) + } + if (currentWall.direction === 'left' || currentWall.direction === 'right') { + minAcrossX = Math.min(currentWall.x1, currentWall.x2) + maxAcrossX = Math.max(currentWall.x1, currentWall.x2) + minAcrossY = Math.min(currentWall.y1, line.y1) + maxAcrossY = Math.max(currentWall.y1, line.y1) + } + let coordinate = [ + { x: minAcrossX, y: minAcrossY }, + { x: minAcrossX, y: maxAcrossY }, + { x: maxAcrossX, y: maxAcrossY }, + { x: maxAcrossX, y: minAcrossY }, + ] + console.log('coordinate : ', coordinate) + let isPointInLine = false + lines.forEach((l) => { + if (getPointInPolygon(coordinate, { x: l.x1, y: l.y1 }, true)) { + isPointInLine = true + } + }) + console.log('line : ', line) + console.log('isPointInLine : ', isPointInLine)*/ + // if (!isPointInLine && (currentWall.direction === 'top' || currentWall.direction === 'bottom')) { + if (currentWall.direction === 'top' || currentWall.direction === 'bottom') { + return line.direction === 'top' || line.direction === 'bottom' + } + // if (!isPointInLine && (currentWall.direction === 'left' || currentWall.direction === 'right')) { + if (currentWall.direction === 'left' || currentWall.direction === 'right') { + return line.direction === 'left' || line.direction === 'right' + } + }) + .reduce((prev, current) => { + if (prev !== undefined) { + if (currentWall.direction === 'top' || currentWall.direction === 'bottom') { + if (prevWall.direction === 'right' && currentWall.x1 > current.x1) { + return Math.abs(prev.x1 - currentWall.x1) > Math.abs(current.x1 - currentWall.x1) ? prev : current + } + if (prevWall.direction === 'left' && currentWall.x1 < current.x1) { + return Math.abs(prev.x1 - currentWall.x1) > Math.abs(current.x1 - currentWall.x1) ? prev : current + } + } + if (currentWall.direction === 'left' || currentWall.direction === 'right') { + if (prevWall.direction === 'top' && currentWall.y1 < current.y1) { + return Math.abs(prev.y1 - currentWall.y1) > Math.abs(current.y1 - currentWall.y1) ? prev : current + } + if (prevWall.direction === 'bottom' && currentWall.y1 > current.y1) { + return Math.abs(prev.y1 - currentWall.y1) > Math.abs(current.y1 - currentWall.y1) ? prev : current + } + } + return prev + } else { + if (currentWall.direction === 'top' || currentWall.direction === 'bottom') { + if (prevWall.direction === 'right' && currentWall.x1 > current.x1) { + return current + } + if (prevWall.direction === 'left' && currentWall.x1 < current.x1) { + return current + } + } + if (currentWall.direction === 'left' || currentWall.direction === 'right') { + if (prevWall.direction === 'top' && currentWall.y1 < current.y1) { + return current + } + if (prevWall.direction === 'bottom' && currentWall.y1 > current.y1) { + return current + } + } + } + }, undefined) + + let ridgeLengthToWall, ridgeBaseLength, ridgeLengthToAcrossLine, ridgeMaxLength + + // console.log('currentWall : ', currentWall.length) + // console.log('innerPointLine : ', innerPointLine) + if (innerPointLine !== undefined) { + if (currentWall.direction === 'top' || currentWall.direction === 'bottom') { + // console.log('currentWall : ', currentWall) + // console.log('acrossLine : ', acrossLine) + if (innerPointLine.y1 === innerPointLine.y2) { + // console.log('innerPointLine : ', innerPointLine) + ridgeBaseLength = Math.abs(currentWall.y1 - innerPointLine.y1) + ridgeLengthToWall = Math.max(prevWall.length, nextWall.length, Math.abs(currentWall.x1 - acrossLine.x1)) - ridgeBaseLength + ridgeLengthToWall = Math.min( + Math.max(Math.abs(currentWall.x1 - innerPointLine.x1), Math.abs(currentWall.x1 - innerPointLine.x2)), + ridgeLengthToWall, + ) + ridgeLengthToAcrossLine = Math.abs(acrossLine.x1 - innerPointLine.x1) + ridgeMaxLength = Math.max( + prevWall.length, + nextWall.length, + Math.abs(currentWall.x1 - acrossLine.x1), + Math.abs(currentWall.x1 - acrossLine.x1), + ) + } else { + ridgeBaseLength = + Math.abs(currentWall.y1 - innerPointLine.y1) < Math.abs(currentWall.y1 - innerPointLine.y2) + ? Math.abs(currentWall.y1 - innerPointLine.y1) + : Math.abs(currentWall.y1 - innerPointLine.y2) + ridgeLengthToWall = Math.max(prevWall.length, nextWall.length, ridgeBaseLength) - ridgeBaseLength + ridgeLengthToAcrossLine = Math.abs(acrossLine.x1 - innerPointLine.x1) + ridgeMaxLength = Math.max(prevWall.length, nextWall.length, Math.abs(currentWall.x1 - acrossLine.x1)) + } + /*console.log( + 'ridgeBaseLength : ', + ridgeBaseLength, + ' ridgeLengthToWall : ', + ridgeLengthToWall, + ' ridgeLengthToAcrossLine : ', + ridgeLengthToAcrossLine, + 'ridgeMaxLength : ', + ridgeMaxLength, + )*/ + if (ridgeBaseLength > 0) { + if (ridgeLengthToWall <= ridgeLengthToAcrossLine) { + if (nextWall.direction === 'right') { + startXPoint = currentWall.x1 + ridgeBaseLength / 2 + endXPoint = startXPoint + ridgeLengthToWall + } + if (nextWall.direction === 'left') { + startXPoint = currentWall.x1 - ridgeBaseLength / 2 + endXPoint = startXPoint - ridgeLengthToWall + } + } else { + if (nextWall.direction === 'right') { + startXPoint = acrossLine.x1 - ridgeLengthToAcrossLine - ridgeBaseLength / 2 + endXPoint = acrossLine.x1 - ridgeBaseLength / 2 + } + if (nextWall.direction === 'left') { + startXPoint = acrossLine.x1 + ridgeLengthToAcrossLine + ridgeBaseLength / 2 + endXPoint = startXPoint - ridgeLengthToAcrossLine + } + } + if (currentWall.direction === 'top') { + startYPoint = currentWall.y1 - ridgeBaseLength / 2 + endYPoint = startYPoint + } + if (currentWall.direction === 'bottom') { + startYPoint = currentWall.y1 + ridgeBaseLength / 2 + endYPoint = startYPoint + } + } + } + if (currentWall.direction === 'right' || currentWall.direction === 'left') { + // console.log('currentWall.length : ', currentWall.length) + if (innerPointLine.x1 === innerPointLine.x2) { + ridgeBaseLength = Math.abs(currentWall.x1 - innerPointLine.x1) + ridgeLengthToWall = Math.max(prevWall.length, nextWall.length, Math.abs(currentWall.x1 - acrossLine.x1)) - ridgeBaseLength + ridgeLengthToAcrossLine = Math.abs(acrossLine.y1 - innerPointLine.y1) + ridgeLengthToWall = Math.min( + Math.max(Math.abs(currentWall.y1 - innerPointLine.y1), Math.abs(currentWall.y1 - innerPointLine.y2)), + ridgeLengthToWall, + ) + ridgeMaxLength = Math.max( + prevWall.length, + nextWall.length, + Math.abs(currentWall.y1 - acrossLine.y1), + Math.abs(currentWall.y1 - acrossLine.y2), + ) + } else { + ridgeBaseLength = + Math.abs(currentWall.x1 - innerPointLine.x1) < Math.abs(currentWall.x1 - innerPointLine.x2) + ? Math.abs(currentWall.x1 - innerPointLine.x1) + : Math.abs(currentWall.x1 - innerPointLine.x2) + ridgeLengthToWall = Math.max(prevWall.length, nextWall.length, ridgeBaseLength) - ridgeBaseLength + ridgeLengthToAcrossLine = Math.abs(acrossLine.y1 - innerPointLine.y1) + ridgeMaxLength = Math.max(prevWall.length, nextWall.length, Math.abs(currentWall.y1 - acrossLine.y1)) + } + /*console.log( + 'ridgeBaseLength : ', + ridgeBaseLength, + ' ridgeLengthToWall : ', + ridgeLengthToWall, + ' ridgeLengthToAcrossLine : ', + ridgeLengthToAcrossLine, + )*/ + if (ridgeBaseLength > 0) { + if (ridgeLengthToWall <= ridgeLengthToAcrossLine) { + if (nextWall.direction === 'top') { + startYPoint = currentWall.y1 - ridgeBaseLength / 2 + endYPoint = startYPoint - ridgeLengthToWall + } + if (nextWall.direction === 'bottom') { + startYPoint = currentWall.y1 + ridgeBaseLength / 2 + endYPoint = startYPoint + ridgeLengthToWall + } + } else { + if (nextWall.direction === 'top') { + startYPoint = acrossLine.y1 + ridgeLengthToAcrossLine + ridgeBaseLength / 2 + endYPoint = acrossLine.y1 + ridgeBaseLength / 2 + } + if (nextWall.direction === 'bottom') { + startYPoint = acrossLine.y1 - ridgeLengthToAcrossLine - ridgeBaseLength / 2 + endYPoint = acrossLine.y1 - ridgeBaseLength / 2 + } + } + if (currentWall.direction === 'right') { + startXPoint = currentWall.x1 + ridgeBaseLength / 2 + endXPoint = startXPoint + } + if (currentWall.direction === 'left') { + startXPoint = currentWall.x1 - ridgeBaseLength / 2 + endXPoint = startXPoint + } + } + } + } else { + // console.log('여기부터 확인 currentWall : ', currentWall.length) + // console.log('acrossLine : ', acrossLine) + ridgeBaseLength = currentWall.length + ridgeLengthToWall = Math.min(prevWall.length, nextWall.length) + ridgeMaxLength = Math.max(prevWall.length, nextWall.length) + // console.log('ridgeBaseLength : ', ridgeBaseLength, ' ridgeLengthToWall : ', ridgeLengthToWall, ' ridgeMaxLength : ', ridgeMaxLength) + if (currentWall.direction === 'top' || currentWall.direction === 'bottom') { + ridgeLengthToAcrossLine = Math.abs(acrossLine.x1 - currentWall.x1) - ridgeBaseLength + ridgeMaxLength = Math.max(ridgeMaxLength, Math.abs(acrossLine.x1 - currentWall.x1)) + if (ridgeLengthToWall <= ridgeLengthToAcrossLine) { + if (nextWall.direction === 'right') { + startXPoint = currentWall.x1 + ridgeBaseLength / 2 + endXPoint = startXPoint + ridgeLengthToWall + } + if (nextWall.direction === 'left') { + startXPoint = currentWall.x1 - ridgeBaseLength / 2 + endXPoint = startXPoint - ridgeLengthToWall + } + } else { + if (nextWall.direction === 'right') { + startXPoint = acrossLine.x1 - ridgeLengthToAcrossLine - ridgeBaseLength / 2 + endXPoint = startXPoint + ridgeLengthToAcrossLine + } + if (nextWall.direction === 'left') { + startXPoint = acrossLine.x1 + ridgeLengthToAcrossLine + ridgeBaseLength / 2 + endXPoint = startXPoint - ridgeLengthToAcrossLine + } + } + if (currentWall.direction === 'top') { + startYPoint = currentWall.y1 - ridgeBaseLength / 2 + endYPoint = startYPoint + } + if (currentWall.direction === 'bottom') { + startYPoint = currentWall.y1 + ridgeBaseLength / 2 + endYPoint = startYPoint + } + } + if (currentWall.direction === 'left' || currentWall.direction === 'right') { + ridgeLengthToAcrossLine = Math.abs(acrossLine.y1 - currentWall.y1) - ridgeBaseLength + ridgeMaxLength = Math.max(ridgeMaxLength, Math.abs(acrossLine.x1 - currentWall.x1)) + if (ridgeLengthToWall <= ridgeLengthToAcrossLine) { + if (nextWall.direction === 'top') { + startYPoint = currentWall.y1 - ridgeBaseLength / 2 + endYPoint = startYPoint - ridgeLengthToWall + } + if (nextWall.direction === 'bottom') { + startYPoint = currentWall.y1 + ridgeBaseLength / 2 + endYPoint = startYPoint + ridgeLengthToWall + } + } else { + if (nextWall.direction === 'top') { + startYPoint = acrossLine.y1 + ridgeLengthToAcrossLine + ridgeBaseLength / 2 + endYPoint = acrossLine.y1 + ridgeBaseLength / 2 + } + if (nextWall.direction === 'bottom') { + startYPoint = acrossLine.y1 - ridgeLengthToAcrossLine - ridgeBaseLength / 2 + endYPoint = acrossLine.y1 - ridgeBaseLength / 2 + } + } + if (currentWall.direction === 'right') { + startXPoint = currentWall.x1 + ridgeBaseLength / 2 + endXPoint = startXPoint + } + if (currentWall.direction === 'left') { + startXPoint = currentWall.x1 - ridgeBaseLength / 2 + endXPoint = startXPoint + } + } + } + // console.log('ridgeLengthToAcrossLine : ', ridgeLengthToAcrossLine) + // console.log(startXPoint, startYPoint, endXPoint, endYPoint) + if ( + // polygon.ridges.length < getMaxRidge(lines.length) && + ridgeBaseLength <= ridgeMaxLength && + startXPoint !== undefined && + startYPoint !== undefined && + endXPoint !== undefined && + endYPoint !== undefined + ) { + const ridge = new QLine( + [Math.min(startXPoint, endXPoint), Math.min(startYPoint, endYPoint), Math.max(startXPoint, endXPoint), Math.max(startYPoint, endYPoint)], + { + fontSize: polygon.fontSize, + stroke: 'blue', + strokeWidth: 1, + }, + ) + polygon.canvas.add(ridge) + polygon.ridges.push(ridge) + polygon.innerLines.push(ridge) + } + } + }) + //중복 제거 + polygon.ridges = polygon.ridges.filter((ridge, index, self) => index === self.findIndex((t) => t.x1 === ridge.x1 && t.y1 === ridge.y1)) + polygon.innerLines = polygon.innerLines.filter((line, index, self) => index === self.findIndex((t) => t.x1 === line.x1 && t.y1 === line.y1)) + //겹쳐지는 마루는 하나로 합침 + polygon.ridges.forEach((ridge, index) => { + polygon.ridges + .filter((ridge2) => !(ridge.x1 === ridge2.x1 && ridge.y1 === ridge2.y1 && ridge.x2 === ridge2.x2 && ridge.y2 === ridge2.y2)) + .forEach((ridge2) => { + let overlap = segmentsOverlap(ridge, ridge2) + if (overlap) { + let x1 = Math.min(ridge.x1, ridge2.x1, ridge.x2, ridge2.x2) + let x2 = Math.max(ridge.x1, ridge2.x1, ridge.x2, ridge2.x2) + let y1 = Math.min(ridge.y1, ridge2.y1, ridge.y2, ridge2.y2) + let y2 = Math.max(ridge.y1, ridge2.y1, ridge.y2, ridge2.y2) + const newRidge = new QLine([x1, y1, x2, y2], { + fontSize: polygon.fontSize, + stroke: 'blue', + strokeWidth: 1, + }) + polygon.canvas.remove(ridge) + polygon.canvas.remove(ridge2) + polygon.ridges = polygon.ridges.filter((r) => !(ridge.x1 === r.x1 && ridge.y1 === r.y1 && ridge.x2 === r.x2 && ridge.y2 === r.y2)) + polygon.ridges = polygon.ridges.filter((r) => !(ridge2.x1 === r.x1 && ridge2.y1 === r.y1 && ridge2.x2 === r.x2 && ridge2.y2 === r.y2)) + polygon.innerLines = polygon.innerLines.filter((r) => !(ridge.x1 === r.x1 && ridge.y1 === r.y1 && ridge.x2 === r.x2 && ridge.y2 === r.y2)) + polygon.innerLines = polygon.innerLines.filter( + (r) => !(ridge2.x1 === r.x1 && ridge2.y1 === r.y1 && ridge2.x2 === r.x2 && ridge2.y2 === r.y2), + ) + + polygon.canvas.add(newRidge) + polygon.ridges.push(newRidge) + polygon.innerLines.push(newRidge) + } + }) + }) +} + +/** + * 두 선분이 겹치는지 확인 + * @param line1 + * @param line2 + * @returns {boolean} + */ +const segmentsOverlap = (line1, line2) => { + if (line1.y1 === line1.y2 && line2.y1 === line2.y2 && line1.y1 === line2.y1) { + // console.log('가로방향 겹침 확인 ') + if ((line1.x1 <= line2.x1 && line1.x2 >= line2.x1) || (line1.x1 <= line2.x2 && line1.x2 >= line2.x2)) { + // console.log('가로방향 겹침') + return true + } + } + if (line1.x1 === line1.x2 && line2.x1 === line2.x2 && line1.x1 === line2.x1) { + // console.log('세로방향 겹침 확인') + if ((line1.y1 <= line2.y1 && line1.y2 >= line2.y1) || (line1.y1 <= line2.y2 && line1.y2 >= line2.y2)) { + // console.log('세로방향 겹침') + return true + } + } + return false +} + +const drawHips = (polygon) => { + /* + 마루에서 시작되는 hip을 먼저 그립니다. + */ + console.log('polygon.ridges', polygon.ridges) + console.log('polygon.lines', polygon.lines) + polygon.ridges.forEach((ridge) => { + let leftTop, rightTop, leftBottom, rightBottom + if (ridge.y1 === ridge.y2) { + console.log('가로방향 마루') + //왼쪽 좌표 기준 225, 315도 방향 라인확인 + leftTop = polygon.lines + .filter((line) => line.x1 < ridge.x1 && line.y1 < ridge.y1 && Math.abs(line.x1 - ridge.x1) === Math.abs(line.y1 - ridge.y1)) + .reduce((prev, current) => { + if (prev === undefined) { + return current + } else { + return Math.min(ridge.x1 - current.x1) < Math.min(ridge.x1 - prev.x1) ? current : prev + } + }, undefined) + + leftBottom = polygon.lines + .filter((line) => line.x1 < ridge.x1 && line.y1 > ridge.y1 && Math.abs(line.x1 - ridge.x1) === Math.abs(line.y1 - ridge.y1)) + .reduce((prev, current) => { + if (prev === undefined) { + return current + } else { + return Math.min(ridge.x1 - current.x1) < Math.min(ridge.x1 - prev.x1) ? current : prev + } + }, undefined) + + //오른쪽 좌표 기준 45, 135도 방향 라인확인 + rightTop = polygon.lines + .filter((line) => line.x1 > ridge.x2 && line.y1 < ridge.y2 && Math.abs(line.x1 - ridge.x2) === Math.abs(line.y1 - ridge.y2)) + .reduce((prev, current) => { + if (prev === undefined) { + return current + } else { + return Math.min(current.x1 - ridge.x2) < Math.min(prev.x1 - ridge.x2) ? current : prev + } + }, undefined) + + rightBottom = polygon.lines + .filter((line) => line.x1 > ridge.x2 && line.y1 > ridge.y2 && Math.abs(line.x1 - ridge.x2) === Math.abs(line.y1 - ridge.y2)) + .reduce((prev, current) => { + if (prev === undefined) { + return current + } else { + return Math.min(current.x1 - ridge.x2) < Math.min(prev.x1 - ridge.x2) ? current : prev + } + }, undefined) + if (leftTop !== undefined) { + let isRidgePointOnLine = false + polygon.ridges.forEach((r) => { + if ( + r.x1 < ridge.x1 && + r.y1 < ridge.y1 && + (r.y1 - rightTop.y1) * (ridge.x1 - rightTop.x1) === (r.x1 - rightTop.x1) * (ridge.y1 - rightTop.y1) + ) { + isRidgePointOnLine = true + } + if ( + r.x2 < ridge.x1 && + r.y2 < ridge.y1 && + (r.y2 - rightTop.y1) * (ridge.x1 - rightTop.x1) === (r.x2 - rightTop.x1) * (ridge.y1 - rightTop.y1) + ) { + isRidgePointOnLine = true + } + }) + if (!isRidgePointOnLine) { + const hip = new QLine([leftTop.x1, leftTop.y1, ridge.x1, ridge.y1], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + if (leftBottom !== undefined) { + let isRidgePointOnLine = false + polygon.ridges.forEach((r) => { + if ( + r.x1 < ridge.x1 && + r.y1 > ridge.y1 && + (r.y1 - rightTop.y1) * (ridge.x1 - rightTop.x1) === (r.x1 - rightTop.x1) * (ridge.y1 - rightTop.y1) + ) { + isRidgePointOnLine = true + } + if ( + r.x2 < ridge.x1 && + r.y2 > ridge.y1 && + (r.y2 - rightTop.y1) * (ridge.x1 - rightTop.x1) === (r.x2 - rightTop.x1) * (ridge.y1 - rightTop.y1) + ) { + isRidgePointOnLine = true + } + }) + if (!isRidgePointOnLine) { + const hip = new QLine([leftBottom.x1, leftBottom.y1, ridge.x1, ridge.y1], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + if (rightTop !== undefined) { + let isRidgePointOnLine = false + polygon.ridges.forEach((r) => { + if ( + r.x1 > ridge.x2 && + r.y1 < ridge.y2 && + (r.y1 - rightTop.y1) * (ridge.x2 - rightTop.x1) === (r.x1 - rightTop.x1) * (ridge.y2 - rightTop.y1) + ) { + isRidgePointOnLine = true + } + if ( + r.x2 > ridge.x2 && + r.y2 < ridge.y2 && + (r.y2 - rightTop.y1) * (ridge.x2 - rightTop.x1) === (r.x2 - rightTop.x1) * (ridge.y2 - rightTop.y1) + ) { + isRidgePointOnLine = true + } + }) + if (!isRidgePointOnLine) { + const hip = new QLine([rightTop.x1, rightTop.y1, ridge.x2, ridge.y2], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + if (rightBottom !== undefined) { + let isRidgePointOnLine = false + polygon.ridges.forEach((r) => { + if ( + r.x1 > ridge.x2 && + r.y1 > ridge.y2 && + (r.y1 - rightBottom.y1) * (ridge.x2 - rightBottom.x1) === (r.x1 - rightBottom.x1) * (ridge.y2 - rightBottom.y1) + ) { + isRidgePointOnLine = true + } + if ( + r.x2 > ridge.x2 && + r.y2 > ridge.y2 && + (r.y2 - rightBottom.y1) * (ridge.x2 - rightBottom.x1) === (r.x2 - rightBottom.x1) * (ridge.y2 - rightBottom.y1) + ) { + isRidgePointOnLine = true + } + }) + if (!isRidgePointOnLine) { + const hip = new QLine([rightBottom.x1, rightBottom.y1, ridge.x2, ridge.y2], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + } + if (ridge.x1 === ridge.x2) { + console.log('세로방향 마루') + //위쪽 좌표 기준 45, 315도 방향 라인확인 + leftTop = polygon.lines + .filter((line) => line.x1 < ridge.x1 && line.y1 < ridge.y1 && Math.abs(line.x1 - ridge.x1) === Math.abs(line.y1 - ridge.y1)) + .reduce((prev, current) => { + if (prev === undefined) { + return current + } else { + return Math.min(ridge.y1 - current.y1) < Math.min(ridge.y1 - prev.y1) ? current : prev + } + }, undefined) + + rightTop = polygon.lines + .filter((line) => line.x1 > ridge.x1 && line.y1 < ridge.y1 && Math.abs(line.x1 - ridge.x1) === Math.abs(line.y1 - ridge.y1)) + .reduce((prev, current) => { + if (prev === undefined) { + return current + } else { + return Math.min(ridge.y1 - current.y1) < Math.min(ridge.y1 - prev.y1) ? current : prev + } + }, undefined) + + //아래쪽 좌표 기준 135, 225도 방향 라인확인 + leftBottom = polygon.lines + .filter((line) => line.x1 < ridge.x2 && line.y1 > ridge.y2 && Math.abs(line.x1 - ridge.x2) === Math.abs(line.y1 - ridge.y2)) + .reduce((prev, current) => { + if (prev === undefined) { + return current + } else { + return Math.min(current.y1 - ridge.y2) < Math.min(prev.y1 - ridge.y2) ? current : prev + } + }, undefined) + + rightBottom = polygon.lines + .filter((line) => line.x1 > ridge.x2 && line.y1 > ridge.y2 && Math.abs(line.x1 - ridge.x2) === Math.abs(line.y1 - ridge.y2)) + .reduce((prev, current) => { + if (prev === undefined) { + return current + } else { + return Math.min(current.y1 - ridge.y2) < Math.min(prev.y1 - ridge.y2) ? current : prev + } + }, undefined) + + if (leftTop !== undefined) { + let isRidgePointOnLine = false + polygon.ridges.forEach((r) => { + if (r.x1 < ridge.x1 && r.y1 < ridge.y1) { + if ((r.y1 - leftTop.y1) * (ridge.x1 - leftTop.x1) === (r.x1 - leftTop.x1) * (ridge.y1 - leftTop.y1)) { + isRidgePointOnLine = true + } + } + if (r.x2 < ridge.x1 && r.y2 < ridge.y1) { + if ((r.y2 - leftTop.y1) * (ridge.x1 - leftTop.x1) === (r.x2 - leftTop.x1) * (ridge.y1 - leftTop.y1)) { + isRidgePointOnLine = true + } + } + }) + if (!isRidgePointOnLine) { + const hip = new QLine([leftTop.x1, leftTop.y1, ridge.x1, ridge.y1], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + if (rightTop !== undefined) { + let isRidgePointOnLine = false + polygon.ridges.forEach((r) => { + if (r.x1 > ridge.x1 && r.y1 < ridge.y1) { + if ((r.y1 - rightTop.y1) * (ridge.x1 - rightTop.x1) === (r.x1 - rightTop.x1) * (ridge.y1 - rightTop.y1)) { + isRidgePointOnLine = true + } + } + if (r.x2 > ridge.x1 && r.y2 < ridge.y1) { + if ((r.y2 - rightTop.y1) * (ridge.x1 - rightTop.x1) === (r.x2 - rightTop.x1) * (ridge.y1 - rightTop.y1)) { + isRidgePointOnLine = true + } + } + }) + if (!isRidgePointOnLine) { + const hip = new QLine([rightTop.x1, rightTop.y1, ridge.x1, ridge.y1], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + if (leftBottom !== undefined) { + let isRidgePointOnLine = false + polygon.ridges.forEach((r) => { + if ( + r.x1 < ridge.x2 && + r.y1 > ridge.y2 && + (r.y1 - leftBottom.y1) * (ridge.x2 - leftBottom.x1) === (r.x1 - leftBottom.x1) * (ridge.y2 - leftBottom.y1) + ) { + isRidgePointOnLine = true + } + if ( + r.x2 < ridge.x2 && + r.y2 > ridge.y2 && + (r.y2 - leftBottom.y1) * (ridge.x2 - leftBottom.x1) === (r.x2 - leftBottom.x1) * (ridge.y2 - leftBottom.y1) + ) { + isRidgePointOnLine = true + } + }) + console.log('leftBottom isRidgePointOnLine : ', isRidgePointOnLine) + if (!isRidgePointOnLine) { + const hip = new QLine([leftBottom.x1, leftBottom.y1, ridge.x2, ridge.y2], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + if (rightBottom !== undefined) { + let isRidgePointOnLine = false + polygon.ridges.forEach((r) => { + if ( + r.x1 < ridge.x2 && + r.y1 > ridge.y2 && + (r.y1 - rightBottom.y1) * (ridge.x2 - rightBottom.x1) === (r.x1 - rightBottom.x1) * (ridge.y2 - rightBottom.y1) + ) { + isRidgePointOnLine = true + } + if ( + r.x2 < ridge.x2 && + r.y2 > ridge.y2 && + (r.y2 - rightBottom.y1) * (ridge.x2 - rightBottom.x1) === (r.x2 - rightBottom.x1) * (ridge.y2 - rightBottom.y1) + ) { + isRidgePointOnLine = true + } + }) + if (!isRidgePointOnLine) { + const hip = new QLine([rightBottom.x1, rightBottom.y1, ridge.x2, ridge.y2], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + } + }) + + // 가장 가까운 마루를 확인하여 그릴 수 있는 라인이 존재하면 먼저 그린다. + let prevLine, currentLine, nextLine + polygon.lines.forEach((value, index) => { + if (index === 0) { + prevLine = polygon.lines[polygon.lines.length - 1] + } else { + prevLine = polygon.lines[index - 1] + } + currentLine = polygon.lines[index] + + if (index === polygon.lines.length - 1) { + nextLine = polygon.lines[0] + } else if (index === polygon.lines.length) { + nextLine = polygon.lines[1] + } else { + nextLine = polygon.lines[index + 1] + } + + if (!isAlreadyHip(polygon, currentLine)) { + let dVector = getDirectionForDegree(prevLine, currentLine) + let nearRidge + + switch (dVector) { + case 45: + nearRidge = polygon.ridges + .filter( + (ridge) => + ((currentLine.x1 < ridge.x1 && currentLine.y1 > ridge.y1) || (currentLine.x1 < ridge.x2 && currentLine.y1 > ridge.y2)) && + (Math.abs(currentLine.x1 - ridge.x1) === Math.abs(currentLine.y1 - ridge.y1) || + Math.abs(currentLine.x1 - ridge.x2) === Math.abs(currentLine.y1 - ridge.y2)), + ) + .reduce((prev, current) => { + if (prev !== undefined) { + if ( + currentLine.x1 < current.x1 && + currentLine.y1 > current.y1 && + Math.abs(currentLine.x1 - current.x1) === Math.abs(currentLine.y1 - current.y1) + ) { + return Math.min(Math.abs(current.x1 - currentLine.x1)) < Math.min(Math.abs(prev.x - currentLine.x1)) + ? { + x: current.x1, + y: current.y1, + } + : prev + } else if ( + currentLine.x1 < current.x2 && + currentLine.y1 > current.y2 && + Math.abs(currentLine.x1 - current.x2) === Math.abs(currentLine.y1 - current.y2) + ) { + return Math.min(Math.abs(current.x2 - currentLine.x1)) < Math.min(Math.abs(prev.x - currentLine.x1)) + ? { + x: current.x2, + y: current.y2, + } + : prev + } else { + return prev + } + } else { + if ( + currentLine.x1 < current.x1 && + currentLine.y1 > current.y1 && + Math.abs(currentLine.x1 - current.x1) === Math.abs(currentLine.y1 - current.y1) + ) { + return { x: current.x1, y: current.y1 } + } else if ( + currentLine.x1 < current.x2 && + currentLine.y1 > current.y2 && + Math.abs(currentLine.x1 - current.x2) === Math.abs(currentLine.y1 - current.y2) + ) { + return { x: current.x2, y: current.y2 } + } else { + return undefined + } + } + }, undefined) + break + case 135: + nearRidge = polygon.ridges + .filter( + (ridge) => + ((currentLine.x1 < ridge.x1 && currentLine.y1 < ridge.y1) || (currentLine.x1 < ridge.x2 && currentLine.y1 < ridge.y2)) && + (Math.abs(currentLine.x1 - ridge.x1) === Math.abs(currentLine.y1 - ridge.y1) || + Math.abs(currentLine.x1 - ridge.x2) === Math.abs(currentLine.y1 - ridge.y2)), + ) + .reduce((prev, current) => { + if (prev !== undefined) { + if ( + currentLine.x1 < current.x1 && + currentLine.y1 < current.y1 && + Math.abs(currentLine.x1 - current.x1) === Math.abs(currentLine.y1 - current.y1) + ) { + return Math.min(Math.abs(current.x1 - currentLine.x1)) < Math.min(Math.abs(prev.x - currentLine.x1)) + ? { + x: current.x1, + y: current.y1, + } + : prev + } else if ( + currentLine.x1 < current.x2 && + currentLine.y1 < current.y2 && + Math.abs(currentLine.x1 - current.x2) === Math.abs(currentLine.y1 - current.y2) + ) { + return Math.min(Math.abs(current.x1 - currentLine.x1)) < Math.min(Math.abs(prev.x - currentLine.x1)) + ? { + x: current.x2, + y: current.y2, + } + : prev + } else { + return prev + } + } else { + if ( + currentLine.x1 < current.x1 && + currentLine.y1 < current.y1 && + Math.abs(currentLine.x1 - current.x1) === Math.abs(currentLine.y1 - current.y1) + ) { + return { x: current.x1, y: current.y1 } + } else if ( + currentLine.x1 < current.x2 && + currentLine.y1 < current.y2 && + Math.abs(currentLine.x1 - current.x2) === Math.abs(currentLine.y1 - current.y2) + ) { + return { x: current.x2, y: current.y2 } + } else { + return undefined + } + } + }, undefined) + break + case 225: + nearRidge = polygon.ridges + .filter( + (ridge) => + ((currentLine.x1 > ridge.x1 && currentLine.y1 < ridge.y1) || (currentLine.x1 > ridge.x2 && currentLine.y1 < ridge.y2)) && + (Math.abs(currentLine.x1 - ridge.x1) === Math.abs(currentLine.y1 - ridge.y1) || + Math.abs(currentLine.x1 - ridge.x2) === Math.abs(currentLine.y1 - ridge.y2)), + ) + .reduce((prev, current) => { + if (prev !== undefined) { + if ( + currentLine.x1 > current.x1 && + currentLine.y1 < current.y1 && + Math.abs(currentLine.x1 - current.x1) === Math.abs(currentLine.y1 - current.y1) + ) { + return Math.min(Math.abs(current.x1 - currentLine.x1)) < Math.min(Math.abs(prev.x - currentLine.x1)) + ? { + x: current.x1, + y: current.y1, + } + : prev + } else if ( + currentLine.x1 > current.x2 && + currentLine.y1 < current.y2 && + Math.abs(currentLine.x1 - current.x2) === Math.abs(currentLine.y1 - current.y2) + ) { + return Math.min(Math.abs(current.x1 - currentLine.x1)) < Math.min(Math.abs(prev.x - currentLine.x1)) + ? { + x: current.x2, + y: current.y2, + } + : prev + } else { + return prev + } + } else { + if ( + currentLine.x1 > current.x1 && + currentLine.y1 < current.y1 && + Math.abs(currentLine.x1 - current.x1) === Math.abs(currentLine.y1 - current.y1) + ) { + return { x: current.x1, y: current.y1 } + } else if ( + currentLine.x1 > current.x2 && + currentLine.y1 < current.y2 && + Math.abs(currentLine.x1 - current.x2) === Math.abs(currentLine.y1 - current.y2) + ) { + return { x: current.x2, y: current.y2 } + } else { + return undefined + } + } + }, undefined) + break + case 315: + nearRidge = polygon.ridges + .filter( + (ridge) => + ((currentLine.x1 > ridge.x1 && currentLine.y1 > ridge.y1) || (currentLine.x1 > ridge.x2 && currentLine.y1 > ridge.y2)) && + (Math.abs(currentLine.x1 - ridge.x1) === Math.abs(currentLine.y1 - ridge.y1) || + Math.abs(currentLine.x1 - ridge.x2) === Math.abs(currentLine.y1 - ridge.y2)), + ) + .reduce((prev, current) => { + if (prev !== undefined) { + if ( + currentLine.x1 > current.x1 && + currentLine.y1 > current.y1 && + Math.abs(currentLine.x1 - current.x1) === Math.abs(currentLine.y1 - current.y1) + ) { + return Math.min(Math.abs(current.x1 - currentLine.x1)) < Math.min(Math.abs(prev.x - currentLine.x1)) + ? { + x: current.x1, + y: current.y1, + } + : prev + } else if ( + currentLine.x1 > current.x2 && + currentLine.y1 > current.y2 && + Math.abs(currentLine.x1 - current.x2) === Math.abs(currentLine.y1 - current.y2) + ) { + return Math.min(Math.abs(current.x1 - currentLine.x1)) < Math.min(Math.abs(prev.x - currentLine.x1)) + ? { + x: current.x2, + y: current.y2, + } + : prev + } else { + return prev + } + } else { + if ( + currentLine.x1 > current.x1 && + currentLine.y1 > current.y1 && + Math.abs(currentLine.x1 - current.x1) === Math.abs(currentLine.y1 - current.y1) + ) { + return { x: current.x1, y: current.y1 } + } else if ( + currentLine.x1 > current.x2 && + currentLine.y1 > current.y2 && + Math.abs(currentLine.x1 - current.x2) === Math.abs(currentLine.y1 - current.y2) + ) { + return { x: current.x2, y: current.y2 } + } else { + return undefined + } + } + }, undefined) + break + } + + console.log('nearRidge : ', nearRidge) + + if (nearRidge !== undefined) { + let endXPoint, endYPoint + let minX, maxX, minY, maxY + + switch (dVector) { + case 45: + endXPoint = nearRidge.x + endYPoint = nearRidge.y + minX = Math.min(currentLine.x1, nearRidge.x) + minY = Math.min(currentLine.y1, nearRidge.y) + maxX = Math.max(currentLine.x1, nearRidge.x) + maxY = Math.max(currentLine.y1, nearRidge.y) + break + case 135: + endXPoint = nearRidge.x + endYPoint = nearRidge.y + minX = Math.min(currentLine.x1, nearRidge.x) + minY = Math.min(currentLine.y1, nearRidge.y) + maxX = Math.max(currentLine.x1, nearRidge.x) + maxY = Math.max(currentLine.y1, nearRidge.y) + break + case 225: + endXPoint = nearRidge.x + endYPoint = nearRidge.y + minX = Math.min(currentLine.x1, nearRidge.x) + minY = Math.min(currentLine.y1, nearRidge.y) + maxX = Math.max(currentLine.x1, nearRidge.x) + maxY = Math.max(currentLine.y1, nearRidge.y) + break + case 315: + endXPoint = nearRidge.x + endYPoint = nearRidge.y + minX = Math.min(currentLine.x1, nearRidge.x) + minY = Math.min(currentLine.y1, nearRidge.y) + maxX = Math.max(currentLine.x1, nearRidge.x) + maxY = Math.max(currentLine.y1, nearRidge.y) + break + } + + let lineCoordinate = [ + { x: minX, y: minY }, + { x: minX, y: maxY }, + { x: maxX, y: maxY }, + { x: maxX, y: minY }, + ] + + let innerPoint = polygon.lines.filter((line) => { + if (getPointInPolygon(lineCoordinate, { x: line.x1, y: line.y1 })) { + return line + } + }) + + if (innerPoint <= 0) { + const hip = new QLine([currentLine.x1, currentLine.y1, endXPoint, endYPoint], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + } + } + }) + + // 마루와 연결되지 않은 hip을 그린다. + console.log('마루와 연결되지 않은 hip') + polygon.lines.forEach((line, index) => { + if (!isAlreadyHip(polygon, line)) { + let prevLine, currentLine, nextLine + if (index === 0) { + prevLine = polygon.lines[polygon.lines.length - 1] + } else { + prevLine = polygon.lines[index - 1] + } + currentLine = polygon.lines[index] + + if (index === polygon.lines.length - 1) { + nextLine = polygon.lines[0] + } else if (index === polygon.lines.length) { + nextLine = polygon.lines[1] + } else { + nextLine = polygon.lines[index + 1] + } + + let endXPoint, endYPoint + let dVector = getDirectionForDegree(prevLine, currentLine) + + let minX = Math.min(currentLine.x1, currentLine.x2, prevLine.x1, nextLine.x2) + let maxX = Math.max(currentLine.x1, currentLine.x2, prevLine.x1, nextLine.x2) + let minY = Math.min(currentLine.y1, currentLine.y2, prevLine.y1, nextLine.y2) + let maxY = Math.max(currentLine.y1, currentLine.y2, prevLine.y1, nextLine.y2) + + let lineCoordinate = [ + { x: minX, y: minY }, + { x: minX, y: maxY }, + { x: maxX, y: maxY }, + { x: maxX, y: minY }, + ] + + let acrossLine = getAcrossLine(polygon, currentLine, dVector) + let hypotenuse, adjacent + + console.log(acrossLine) + + if (getLineDirection(prevLine) === getLineDirection(nextLine)) { + hypotenuse = Math.round(getRoofHypotenuse(Math.abs(currentLine.x1 - acrossLine.x1) / 2)) + } else { + hypotenuse = Math.min( + Math.round(getRoofHypotenuse(currentLine.length / 2)), + Math.round(getRoofHypotenuse(Math.abs(currentLine.x1 - acrossLine.x1) / 2)), + ) + } + + adjacent = getAdjacent(hypotenuse) + + console.log('dVector : ', dVector) + + switch (dVector) { + case 45: + endXPoint = currentLine.x1 + adjacent + endYPoint = currentLine.y1 - adjacent + break + case 135: + endXPoint = currentLine.x1 + adjacent + endYPoint = currentLine.y1 + adjacent + break + case 225: + endXPoint = currentLine.x1 - adjacent + endYPoint = currentLine.y1 + adjacent + break + case 315: + endXPoint = currentLine.x1 - adjacent + endYPoint = currentLine.y1 - adjacent + break + } + + const hip = new QLine([currentLine.x1, currentLine.y1, endXPoint, endYPoint], { + fontSize: polygon.fontSize, + stroke: 'red', + strokeWidth: 1, + }) + polygon.canvas.add(hip) + polygon.hips.push(hip) + polygon.innerLines.push(hip) + } + }) + // this.canvas.renderAll() +} + +const getPointInPolygon = (polygon, point, isInclude = false) => { + let inside = false + let minX = Math.min(polygon[0].x, polygon[1].x, polygon[2].x, polygon[3].x), + maxX = Math.max(polygon[0].x, polygon[1].x, polygon[2].x, polygon[3].x), + minY = Math.min(polygon[0].y, polygon[1].y, polygon[2].y, polygon[3].y), + maxY = Math.max(polygon[0].y, polygon[1].y, polygon[2].y, polygon[3].y) + + if (!isInclude && minX < point.x && point.x < maxX && minY < point.y && point.y < maxY) { + inside = true + } + if (isInclude && minX <= point.x && point.x <= maxX && minY <= point.y && point.y <= maxY) { + inside = true + } + return inside +} + +/** + * 라인과 마주하는 다른 라인과의 가장 가까운 거리를 구한다. + * @param polygon + * @param currentLine 현재 라인 + * @param dVector 현재 라인의 방향 + * @returns {*[]|null} + */ +const getAcrossLine = (polygon, currentLine, dVector) => { + let acrossLine + + switch (dVector) { + case 45: + acrossLine = polygon.lines + .filter((line) => line.x1 > currentLine.x1 && line.y1 <= currentLine.y1) + .reduce((prev, current) => { + if (prev.length > 0) { + return Math.abs(currentLine.x1 - current.x1) < Math.abs(currentLine.x1 - prev.x1) ? current : prev + } else { + return current + } + }, []) + break + case 135: + acrossLine = polygon.lines + .filter((line) => line.x1 > currentLine.x1 && line.y1 >= currentLine.y1) + .reduce((prev, current) => { + if (prev.length > 0) { + return Math.abs(currentLine.x1 - current.x1) < Math.abs(currentLine.x1 - prev.x1) ? current : prev + } else { + return current + } + }, []) + break + case 225: + acrossLine = polygon.lines + .filter((line) => line.x1 < currentLine.x1 && line.y1 >= currentLine.y1) + .reduce((prev, current) => { + if (prev.length > 0) { + return Math.abs(currentLine.x1 - current.x1) < Math.abs(currentLine.x1 - prev.x1) ? current : prev + } else { + return current + } + }, []) + break + case 315: + acrossLine = polygon.lines + .filter((line) => line.x1 < currentLine.x1 && line.y1 <= currentLine.y1) + .reduce((prev, current) => { + if (prev.length > 0) { + return Math.abs(currentLine.x1 - current.x1) < Math.abs(currentLine.x1 - prev.x1) ? current : prev + } else { + return current + } + }, []) + break + } + return acrossLine +} + +/* + 추녀마루(hip) 중복방지를 위해 마루와 함께 그려진 추녀마루를 확인한다 + */ +const isAlreadyHip = (polygon, line) => { + let isAlreadyHip = false + polygon.hips.forEach((hip) => { + if (line.x1 === hip.x1 && line.y1 === hip.y1) { + isAlreadyHip = true + } + }) + return isAlreadyHip +} + +/* + 3개 이상 이어지지 않은 라인 포인트 계산 + 모임지붕에서 point는 3개 이상의 라인과 접해야 함. + */ +const connectLinePoint = (polygon) => { + // 연결되지 않은 모든 라인의 포인트를 구한다. + let missedPoints = [] + //마루 + polygon.ridges.forEach((ridge) => { + if (polygon.hips.filter((hip) => hip.x2 === ridge.x1 && hip.y2 === ridge.y1).length < 2) { + missedPoints.push({ x: ridge.x1, y: ridge.y1 }) + } + if (polygon.hips.filter((hip) => hip.x2 === ridge.x2 && hip.y2 === ridge.y2).length < 2) { + missedPoints.push({ x: ridge.x2, y: ridge.y2 }) + } + }) + + //추녀마루 + polygon.hips.forEach((hip) => { + let count = 0 + count += polygon.ridges.filter((ridge) => (ridge.x1 === hip.x2 && ridge.y1 === hip.y2) || (ridge.x2 === hip.x2 && ridge.y2 === hip.y2)).length + + count += polygon.hips.filter((hip2) => (hip2.x1 === hip.x2 && hip2.y1 === hip.y2) || (hip2.x2 === hip.x2 && hip2.y2 === hip.y2)).length + if (count < 3) { + missedPoints.push({ x: hip.x2, y: hip.y2 }) + } + }) + + let missedLine = [] + console.log('missedPoints : ', missedPoints) + + //중복포인트제거 + missedPoints = [...new Set(missedPoints.map((line) => JSON.stringify(line)))].map((line) => JSON.parse(line)) + + missedPoints.forEach((p1) => { + let p2 = missedPoints + .filter((p) => p.x !== p1.x && p.y !== p1.y) + .reduce((prev, current) => { + if (prev !== undefined) { + return Math.sqrt(Math.pow(Math.abs(current.x - p1.x), 2) + Math.pow(Math.abs(current.y - p1.y), 2)) < + Math.sqrt(Math.pow(Math.abs(prev.x - p1.x), 2) + Math.pow(Math.abs(prev.y - p1.y), 2)) + ? current + : prev + } else { + return current + } + }, undefined) + if (p2 !== undefined) { + if (p1.x < p2.x && p1.y < p2.y) { + missedLine.push({ x1: p1.x, y1: p1.y, x2: p2.x, y2: p2.y }) + } + if (p1.x > p2.x && p1.y < p2.y) { + missedLine.push({ x1: p2.x, y1: p2.y, x2: p1.x, y2: p1.y }) + } + if (p1.x > p2.x && p1.y > p2.y) { + missedLine.push({ x1: p2.x, y1: p2.y, x2: p1.x, y2: p1.y }) + } + if (p1.x < p2.x && p1.y > p2.y) { + missedLine.push({ x1: p1.x, y1: p1.y, x2: p2.x, y2: p2.y }) + } + } + }) + + //중복라인제거 + missedLine = [...new Set(missedLine.map((line) => JSON.stringify(line)))].map((line) => JSON.parse(line)) + + missedLine.forEach((p, index) => { + const line = new QLine([p.x1, p.y1, p.x2, p.y2], { + fontSize: polygon.fontSize, + stroke: 'purple', + strokeWidth: 1, + }) + polygon.canvas.add(line) + polygon.innerLines.push(line) + }) + + missedPoints = [] + missedLine = [] + + polygon.innerLines.forEach((line, index) => { + if ( + polygon.innerLines.filter( + (innerLine) => (line.x2 === innerLine.x1 && line.y2 === innerLine.y1) || (line.x2 === innerLine.x2 && line.y2 === innerLine.y2), + ).length < 3 + ) { + missedPoints.push({ x: line.x2, y: line.y2 }) + } + }) + + missedPoints = [...new Set(missedPoints.map((line) => JSON.stringify(line)))].map((line) => JSON.parse(line)) + + console.log(missedPoints) + + missedPoints.forEach((p1) => { + let p2 = missedPoints + .filter((p) => !(p.x === p1.x && p.y === p1.y)) + .reduce((prev, current) => { + console.log('current : ', current) + console.log('prev : ', prev) + if (prev !== undefined) { + return Math.abs(current.x - p1.x) + Math.abs(current.y - p1.y) < Math.abs(prev.x - p1.x) + Math.abs(prev.y - p1.y) ? current : prev + } else { + return current + } + }, undefined) + + if (p2 !== undefined) { + console.log(p1.x, p2.x, p1.y, p2.y) + if (p1.x === p2.x && p1.y < p2.y) { + missedLine.push({ x1: p1.x, y1: p1.y, x2: p2.x, y2: p2.y }) + } + if (p1.x === p2.x && p1.y > p2.y) { + missedLine.push({ x1: p1.x, y1: p2.y, x2: p2.x, y2: p1.y }) + } + if (p1.x < p2.x && p1.y === p2.y) { + missedLine.push({ x1: p1.x, y1: p1.y, x2: p2.x, y2: p2.y }) + } + if (p1.x > p2.x && p1.y === p2.y) { + missedLine.push({ x1: p2.x, y1: p1.y, x2: p1.x, y2: p2.y }) + } + } + }) + + //중복라인제거 + missedLine = [...new Set(missedLine.map((line) => JSON.stringify(line)))].map((line) => JSON.parse(line)) + + missedLine.forEach((p, index) => { + const line = new QLine([p.x1, p.y1, p.x2, p.y2], { + fontSize: polygon.fontSize, + stroke: 'purple', + strokeWidth: 1, + }) + polygon.canvas.add(line) + polygon.innerLines.push(line) + }) + + //마지막으로 연결되지 않고 떨어져있는 마루를 확인한다. + let missedRidge = [] + polygon.ridges.forEach((ridge) => { + let lineCheck1 = polygon.innerLines.filter((line) => { + console.log(!(line.x1 !== ridge.x1 && line.y1 !== ridge.y1 && line.x2 !== ridge.x2 && line.y2 !== ridge.y2)) + if ( + !(line.x1 === ridge.x1 && line.y1 === ridge.y1 && line.x2 === ridge.x2 && line.y2 === ridge.y2) && + ((line.x1 === ridge.x1 && line.y1 === ridge.y1) || (line.x2 === ridge.x1 && line.y2 === ridge.y1)) + ) { + return line + } + }) + + let lineCheck2 = polygon.innerLines.filter((line) => { + if ( + !(line.x1 === ridge.x1 && line.y1 === ridge.y1 && line.x2 === ridge.x2 && line.y2 === ridge.y2) && + ((line.x1 === ridge.x2 && line.y1 === ridge.y2) || (line.x2 === ridge.x2 && line.y2 === ridge.y2)) + ) { + return line + } + }) + if (lineCheck1.length === 0 || lineCheck2.length === 0) { + missedRidge.push(ridge) + } + }) + + missedRidge.forEach((ridge) => { + let missedRidge2 = missedRidge.filter( + (ridge2) => !(ridge.x1 === ridge2.x1 && ridge.y1 === ridge2.y1 && ridge.x2 === ridge2.x2 && ridge.y2 === ridge2.y2), + ) + + missedRidge2.forEach((ridge2) => { + let overlap = false + if (ridge.x1 === ridge.x2 && ridge2.x1 === ridge2.x2 && ridge2.x1 === ridge.x1) { + overlap = true + } + if (ridge.y1 === ridge.y2 && ridge2.y1 === ridge2.y2 && ridge2.y1 === ridge.y1) { + overlap = true + } + if (overlap) { + let x1 = Math.min(ridge.x1, ridge2.x1, ridge.x2, ridge2.x2) + let x2 = Math.max(ridge.x1, ridge2.x1, ridge.x2, ridge2.x2) + let y1 = Math.min(ridge.y1, ridge2.y1, ridge.y2, ridge2.y2) + let y2 = Math.max(ridge.y1, ridge2.y1, ridge.y2, ridge2.y2) + const newRidge = new QLine([x1, y1, x2, y2], { + fontSize: polygon.fontSize, + stroke: 'blue', + strokeWidth: 1, + }) + polygon.canvas.remove(ridge) + polygon.canvas.remove(ridge2) + polygon.ridges = polygon.ridges.filter((r) => !(ridge.x1 === r.x1 && ridge.y1 === r.y1 && ridge.x2 === r.x2 && ridge.y2 === r.y2)) + polygon.ridges = polygon.ridges.filter((r) => !(ridge2.x1 === r.x1 && ridge2.y1 === r.y1 && ridge2.x2 === r.x2 && ridge2.y2 === r.y2)) + polygon.innerLines = polygon.innerLines.filter((r) => !(ridge.x1 === r.x1 && ridge.y1 === r.y1 && ridge.x2 === r.x2 && ridge.y2 === r.y2)) + polygon.innerLines = polygon.innerLines.filter((r) => !(ridge2.x1 === r.x1 && ridge2.y1 === r.y1 && ridge2.x2 === r.x2 && ridge2.y2 === r.y2)) + + polygon.canvas.add(newRidge) + polygon.ridges.push(newRidge) + polygon.innerLines.push(newRidge) + } + }) + }) +} + +/* + 최대 생성 마루 갯수 + */ +const getMaxRidge = (length) => { + return (length - 4) / 2 + 1 +} + +/* + 두 라인의 사잇각 계산 + */ +const getDirectionForDegree = (line1, line2) => { + let degree = getLineDirection(line1) + getLineDirection(line2) + let vector + + switch (degree) { + case 'rb': + vector = 45 + break + case 'br': + vector = 45 + break + case 'lb': + vector = 135 + break + case 'bl': + vector = 135 + break + case 'lt': + vector = 225 + break + case 'tl': + vector = 225 + break + case 'rt': + vector = 315 + break + case 'tr': + vector = 315 + break + } + + return vector +} + +/* + 현재 라인의 방향을 계산 + */ +const getLineDirection = (line) => { + let x1, x2, y1, y2, xp, yp + x1 = Math.round(line.x1) + x2 = Math.round(line.x2) + y1 = Math.round(line.y1) + y2 = Math.round(line.y2) + + xp = x1 - x2 + yp = y1 - y2 + + if (xp === 0) { + if (yp < 0) { + return 'b' + } else { + return 't' + } + } + if (yp === 0) { + if (xp < 0) { + return 'r' + } else { + return 'l' + } + } +} + +function arePointsEqual(point1, point2) { + return point1.x === point2.x && point1.y === point2.y +} + +function arraysHaveSamePoints(array1, array2) { + if (array1.length !== array2.length) return false + + const sortedArray1 = array1.slice().sort((a, b) => a.x - b.x || a.y - b.y) + const sortedArray2 = array2.slice().sort((a, b) => a.x - b.x || a.y - b.y) + + for (let i = 0; i < sortedArray1.length; i++) { + if (!arePointsEqual(sortedArray1[i], sortedArray2[i])) { + return false + } + } + + return true +} + +export const toGeoJSON = (pointsArray) => { + // 객체 배열을 GeoJSON 형식의 좌표 배열로 변환 + const coordinates = pointsArray.map((point) => [point.x, point.y]) + + // 닫힌 다각형을 만들기 위해 첫 번째 점을 마지막에 추가 + coordinates.push([pointsArray[0].x, pointsArray[0].y]) + + return coordinates +} + +export const inPolygon = (polygonPoints, rectPoints) => { + const polygonCoordinates = toGeoJSON(polygonPoints) + const rectCoordinates = toGeoJSON(rectPoints) + + const polygonFeature = turf.polygon([polygonCoordinates]) + const rectFeature = turf.polygon([rectCoordinates]) + + // 사각형의 모든 꼭짓점이 다각형 내부에 있는지 확인 + const allPointsInsidePolygon = rectCoordinates.every((coord) => { + const point = turf.point(coord) + return turf.booleanPointInPolygon(point, polygonFeature) + }) + + // 다각형의 모든 점이 사각형 내부에 있지 않은지 확인 + const noPolygonPointsInsideRect = polygonCoordinates.every((coord) => { + const point = turf.point(coord) + return !turf.booleanPointInPolygon(point, rectFeature) + }) + + return allPointsInsidePolygon && noPolygonPointsInsideRect +} diff --git a/yarn.lock b/yarn.lock index 7c678f91..48803c01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,23 +7,220 @@ resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== -"@babel/runtime@^7.20.13": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" - integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== +"@azure/abort-controller@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.1.0.tgz#788ee78457a55af8a1ad342acb182383d2119249" + integrity sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw== + dependencies: + tslib "^2.2.0" + +"@azure/abort-controller@^2.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d" + integrity sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA== + dependencies: + tslib "^2.6.2" + +"@azure/core-auth@^1.3.0", "@azure/core-auth@^1.4.0", "@azure/core-auth@^1.5.0", "@azure/core-auth@^1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.7.2.tgz#558b7cb7dd12b00beec07ae5df5907d74df1ebd9" + integrity sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-util" "^1.1.0" + tslib "^2.6.2" + +"@azure/core-client@^1.3.0", "@azure/core-client@^1.5.0", "@azure/core-client@^1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.9.2.tgz#6fc69cee2816883ab6c5cdd653ee4f2ff9774f74" + integrity sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.4.0" + "@azure/core-rest-pipeline" "^1.9.1" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.6.1" + "@azure/logger" "^1.0.0" + tslib "^2.6.2" + +"@azure/core-http-compat@^2.0.1": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@azure/core-http-compat/-/core-http-compat-2.1.2.tgz#d1585ada24ba750dc161d816169b33b35f762f0d" + integrity sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-client" "^1.3.0" + "@azure/core-rest-pipeline" "^1.3.0" + +"@azure/core-lro@^2.2.0": + version "2.7.2" + resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.7.2.tgz#787105027a20e45c77651a98b01a4d3b01b75a08" + integrity sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-util" "^1.2.0" + "@azure/logger" "^1.0.0" + tslib "^2.6.2" + +"@azure/core-paging@^1.1.1": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.6.2.tgz#40d3860dc2df7f291d66350b2cfd9171526433e7" + integrity sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA== + dependencies: + tslib "^2.6.2" + +"@azure/core-rest-pipeline@^1.1.0", "@azure/core-rest-pipeline@^1.3.0", "@azure/core-rest-pipeline@^1.8.1", "@azure/core-rest-pipeline@^1.9.1": + version "1.16.3" + resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz#bde3bc3ebad7f885ddd9de6af5e5a8fc254b287e" + integrity sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.4.0" + "@azure/core-tracing" "^1.0.1" + "@azure/core-util" "^1.9.0" + "@azure/logger" "^1.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + tslib "^2.6.2" + +"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.1.2.tgz#065dab4e093fb61899988a1cdbc827d9ad90b4ee" + integrity sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA== + dependencies: + tslib "^2.6.2" + +"@azure/core-util@^1.0.0", "@azure/core-util@^1.1.0", "@azure/core-util@^1.2.0", "@azure/core-util@^1.3.0", "@azure/core-util@^1.6.1", "@azure/core-util@^1.9.0": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.9.2.tgz#1dc37dc5b0dae34c578be62cf98905ba7c0cafe7" + integrity sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ== + dependencies: + "@azure/abort-controller" "^2.0.0" + tslib "^2.6.2" + +"@azure/identity@^4.2.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-4.4.1.tgz#490fa2ad26786229afa36411892bb53dfa3478d3" + integrity sha512-DwnG4cKFEM7S3T+9u05NstXU/HN0dk45kPOinUyNKsn5VWwpXd9sbPKEg6kgJzGbm1lMuhx9o31PVbCtM5sfBA== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-auth" "^1.5.0" + "@azure/core-client" "^1.9.2" + "@azure/core-rest-pipeline" "^1.1.0" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.3.0" + "@azure/logger" "^1.0.0" + "@azure/msal-browser" "^3.14.0" + "@azure/msal-node" "^2.9.2" + events "^3.0.0" + jws "^4.0.0" + open "^8.0.0" + stoppable "^1.1.0" + tslib "^2.2.0" + +"@azure/keyvault-keys@^4.4.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@azure/keyvault-keys/-/keyvault-keys-4.8.0.tgz#1513b3a187bb3a9a372b5980c593962fb793b2ad" + integrity sha512-jkuYxgkw0aaRfk40OQhFqDIupqblIOIlYESWB6DKCVDxQet1pyv86Tfk9M+5uFM0+mCs6+MUHU+Hxh3joiUn4Q== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-auth" "^1.3.0" + "@azure/core-client" "^1.5.0" + "@azure/core-http-compat" "^2.0.1" + "@azure/core-lro" "^2.2.0" + "@azure/core-paging" "^1.1.1" + "@azure/core-rest-pipeline" "^1.8.1" + "@azure/core-tracing" "^1.0.0" + "@azure/core-util" "^1.0.0" + "@azure/logger" "^1.0.0" + tslib "^2.2.0" + +"@azure/logger@^1.0.0": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.1.4.tgz#223cbf2b424dfa66478ce9a4f575f59c6f379768" + integrity sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ== + dependencies: + tslib "^2.6.2" + +"@azure/msal-browser@^3.14.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@azure/msal-browser/-/msal-browser-3.20.0.tgz#12ae45d0d398dac25b2b37710277103539c23994" + integrity sha512-ErsxbfCGIwdqD8jipqdxpfAGiUEQS7MWUe39Rjhl0ZVPsb1JEe9bZCe2+0g23HDH6DGyCAtnTNN9scPtievrMQ== + dependencies: + "@azure/msal-common" "14.14.0" + +"@azure/msal-common@14.14.0": + version "14.14.0" + resolved "https://registry.yarnpkg.com/@azure/msal-common/-/msal-common-14.14.0.tgz#31a015070d5864ebcf9ebb988fcbc5c5536f22d1" + integrity sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ== + +"@azure/msal-node@^2.9.2": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@azure/msal-node/-/msal-node-2.12.0.tgz#57ee6b6011a320046d72dc0828fec46278f2ab2c" + integrity sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg== + dependencies: + "@azure/msal-common" "14.14.0" + jsonwebtoken "^9.0.0" + uuid "^8.3.0" + +"@babel/runtime@^7.20.13", "@babel/runtime@^7.24.8": + version "7.25.0" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz" + integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== dependencies: regenerator-runtime "^0.14.0" -"@babel/runtime@^7.24.7": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.8.tgz#5d958c3827b13cc6d05e038c07fb2e5e3420d82e" - integrity sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA== +"@bedrock-layout/use-forwarded-ref@^1.3.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@bedrock-layout/use-forwarded-ref/-/use-forwarded-ref-1.6.1.tgz#e0d25c35af41ccaa36df809a7de8d5ccd9c70d1e" + integrity sha512-GD9A9AFLzFNjr7k6fgerSqxfwDWl+wsPS11PErOKe1zkVz0y7RGC9gzlOiX/JrgpyB3NFHWIuGtoOQqifJQQpw== dependencies: - regenerator-runtime "^0.14.0" + "@bedrock-layout/use-stateful-ref" "^1.4.1" + +"@bedrock-layout/use-stateful-ref@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@bedrock-layout/use-stateful-ref/-/use-stateful-ref-1.4.1.tgz#c543c61d15885e19506f068618a4d6427a5bf817" + integrity sha512-4eKO2KdQEXcR5LI4QcxqlJykJUDQJWDeWYAukIn6sRQYoabcfI5kDl61PUi6FR6o8VFgQ8IEP7HleKqWlSe8SQ== + +"@floating-ui/core@^1.6.0": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.5.tgz#102335cac0d22035b04d70ca5ff092d2d1a26f2b" + integrity sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA== + dependencies: + "@floating-ui/utils" "^0.2.5" + +"@floating-ui/dom@^1.0.0": + version "1.6.8" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.8.tgz#45e20532b6d8a061b356a4fb336022cf2609754d" + integrity sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q== + dependencies: + "@floating-ui/core" "^1.6.0" + "@floating-ui/utils" "^0.2.5" + +"@floating-ui/react-dom@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.1.tgz#cca58b6b04fc92b4c39288252e285e0422291fb0" + integrity sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg== + dependencies: + "@floating-ui/dom" "^1.0.0" + +"@floating-ui/react@^0.26.2": + version "0.26.20" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.20.tgz#49ae23347666626db8671c2aa2df469bbec7db71" + integrity sha512-RixKJJG92fcIsVoqrFr4Onpzh7hlOx4U7NV4aLhMLmtvjZ5oTB/WzXaANYUZATKqXvvW7t9sCxtzejip26N5Ag== + dependencies: + "@floating-ui/react-dom" "^2.1.1" + "@floating-ui/utils" "^0.2.5" + tabbable "^6.0.0" + +"@floating-ui/utils@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.5.tgz#105c37d9d9620ce69b7f692a20c821bf1ad2cbf9" + integrity sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ== "@formatjs/ecma402-abstract@2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz#39197ab90b1c78b7342b129a56a7acdb8f512e17" + resolved "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz" integrity sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g== dependencies: "@formatjs/intl-localematcher" "0.5.4" @@ -31,14 +228,14 @@ "@formatjs/fast-memoize@2.2.0": version "2.2.0" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz#33bd616d2e486c3e8ef4e68c99648c196887802b" + resolved "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz" integrity sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA== dependencies: tslib "^2.4.0" "@formatjs/icu-messageformat-parser@2.7.8": version "2.7.8" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz#f6d7643001e9bb5930d812f1f9a9856f30fa0343" + resolved "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz" integrity sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA== dependencies: "@formatjs/ecma402-abstract" "2.0.0" @@ -47,7 +244,7 @@ "@formatjs/icu-skeleton-parser@1.8.2": version "1.8.2" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz#2252c949ae84ee66930e726130ea66731a123c9f" + resolved "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz" integrity sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q== dependencies: "@formatjs/ecma402-abstract" "2.0.0" @@ -55,21 +252,21 @@ "@formatjs/intl-localematcher@0.5.4": version "0.5.4" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz#caa71f2e40d93e37d58be35cfffe57865f2b366f" + resolved "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz" integrity sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g== dependencies: tslib "^2.4.0" -"@internationalized/date@^3.5.4": - version "3.5.4" - resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.5.4.tgz#49ba11634fd4350b7a9308e297032267b4063c44" - integrity sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw== +"@internationalized/date@^3.5.4", "@internationalized/date@^3.5.5": + version "3.5.5" + resolved "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz" + integrity sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ== dependencies: "@swc/helpers" "^0.5.0" "@internationalized/message@^3.1.4": version "3.1.4" - resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.1.4.tgz#4da041155829ffb57c9563fa7c99e2b94c8a5766" + resolved "https://registry.npmjs.org/@internationalized/message/-/message-3.1.4.tgz" integrity sha512-Dygi9hH1s7V9nha07pggCkvmRfDd3q2lWnMGvrJyrOwYMe1yj4D2T9BoH9I6MGR7xz0biQrtLPsqUkqXzIrBOw== dependencies: "@swc/helpers" "^0.5.0" @@ -77,14 +274,14 @@ "@internationalized/number@^3.5.3": version "3.5.3" - resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.5.3.tgz#9fa060c1c4809f23fb3d38dd3f3d1ae4c87e95a8" + resolved "https://registry.npmjs.org/@internationalized/number/-/number-3.5.3.tgz" integrity sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw== dependencies: "@swc/helpers" "^0.5.0" "@internationalized/string@^3.2.3": version "3.2.3" - resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.2.3.tgz#b0a8379e779a69e7874979714e27f2ae86761d3c" + resolved "https://registry.npmjs.org/@internationalized/string/-/string-3.2.3.tgz" integrity sha512-9kpfLoA8HegiWTeCbR2livhdVeKobCnVv8tlJ6M2jF+4tcMqDo94ezwlnrUANBWPgd8U7OXIHCk2Ov2qhk4KXw== dependencies: "@swc/helpers" "^0.5.0" @@ -133,9 +330,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@js-joda/core@^5.6.1": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@js-joda/core/-/core-5.6.3.tgz#41ae1c07de1ebe0f6dde1abcbc9700a09b9c6056" + integrity sha512-T1rRxzdqkEXcou0ZprN1q9yDRlvzCPLqmlNt5IIsGBzoEVgLCCYrKEwc84+TvsXuAc95VAZwtWD2zVsKPY4bcA== + "@mapbox/node-pre-gyp@^1.0.0": version "1.0.11" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" + resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz" integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== dependencies: detect-libc "^2.0.0" @@ -148,13 +350,6 @@ semver "^7.3.5" tar "^6.1.11" -"@mongodb-js/saslprep@^1.1.5": - version "1.1.8" - resolved "https://registry.yarnpkg.com/@mongodb-js/saslprep/-/saslprep-1.1.8.tgz#d39744540be8800d17749990b0da95b4271840d1" - integrity sha512-qKwC/M/nNNaKUBMQ0nuzm47b7ZYWQHN3pcXq4IIcoSBc2hOIrflAxJduIvvqmhoz3gR2TacTAs8vlsCVPkiEdQ== - dependencies: - sparse-bitfield "^3.0.3" - "@next/env@14.2.3": version "14.2.3" resolved "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz" @@ -162,7 +357,7 @@ "@next/swc-darwin-arm64@14.2.3": version "14.2.3" - resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz#db1a05eb88c0224089b815ad10ac128ec79c2cdb" integrity sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A== "@next/swc-darwin-x64@14.2.3": @@ -202,21 +397,21 @@ "@next/swc-win32-x64-msvc@14.2.3": version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz#2be4e39ee25bfbd85be78eea17c0e7751dc4323c" + resolved "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz" integrity sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA== -"@nextui-org/accordion@2.0.35": - version "2.0.35" - resolved "https://registry.yarnpkg.com/@nextui-org/accordion/-/accordion-2.0.35.tgz#381cc4b514a4ab7f06dfc8d151ebf88c000c685c" - integrity sha512-42T8DAgpICKORry5h1UCgAQ71QJ3dCzvqrnnJQco3LICeIER2JT/wEdpxHUVT893MkL6z6CFsJmWNfFJPk59kA== +"@nextui-org/accordion@2.0.38": + version "2.0.38" + resolved "https://registry.npmjs.org/@nextui-org/accordion/-/accordion-2.0.38.tgz" + integrity sha512-kFCZU1VaKkUI295Fg3NxuQR2+kZ5vTH4ftIs0oByrOs0+l14dVQGFOd9ZV402fHNykZJt7Sk6oWjTp4Qwl83JA== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/divider" "2.0.28" - "@nextui-org/framer-utils" "2.0.21" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-aria-accordion" "2.0.6" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/divider" "2.0.31" + "@nextui-org/framer-utils" "2.0.24" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-aria-accordion" "2.0.7" "@react-aria/button" "3.9.5" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" @@ -225,37 +420,37 @@ "@react-types/accordion" "3.0.0-alpha.21" "@react-types/shared" "3.23.1" -"@nextui-org/aria-utils@2.0.21": - version "2.0.21" - resolved "https://registry.yarnpkg.com/@nextui-org/aria-utils/-/aria-utils-2.0.21.tgz#9ef84dd5d6ac6b4b3bb5446af1d38a09258eb759" - integrity sha512-aQXFVm4qNrXrUAHhRtr363BgRDX+zgN3Vm+7bW1qtMbnMGOqTWApCD48FP59bka5JArd3K+85tFEhkdD+UfKbQ== +"@nextui-org/aria-utils@2.0.24": + version "2.0.24" + resolved "https://registry.npmjs.org/@nextui-org/aria-utils/-/aria-utils-2.0.24.tgz" + integrity sha512-YD+YvT01zFqN1Ey137OeFl9SEhAYf2BoZz+ykWiIJlMjl/LY1d5WE0nkzsjMHh6MV3HgS6CExxlf7TuApN6Piw== dependencies: - "@nextui-org/react-rsc-utils" "2.0.12" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/system" "2.2.2" + "@nextui-org/react-rsc-utils" "2.0.13" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/system" "2.2.5" "@react-aria/utils" "3.24.1" "@react-stately/collections" "3.10.7" "@react-stately/overlays" "3.6.7" "@react-types/overlays" "3.8.7" "@react-types/shared" "3.23.1" -"@nextui-org/autocomplete@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@nextui-org/autocomplete/-/autocomplete-2.1.2.tgz#abf71950104cc3c4cf0004e92e972e466990a61a" - integrity sha512-3mtYQDBbSRLG8wZ+gDMsOsGH/0m2VG/RcwIiXoteZMyX7yhGl2JPp7ZjX6XWyUpUbq0w2QVprZ6Ld4ck3cuMKg== +"@nextui-org/autocomplete@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nextui-org/autocomplete/-/autocomplete-2.1.5.tgz" + integrity sha512-VcSe3B/CmIvfZnAJHHYKp3r83QrqI0T8v9jjrpQ0PN8qKOc7LmQUsvnAkBRuHCLlaC1xPwZtyJp0TJyRF8tM3w== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/button" "2.0.34" - "@nextui-org/input" "2.2.2" - "@nextui-org/listbox" "2.1.22" - "@nextui-org/popover" "2.1.24" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/scroll-shadow" "2.1.17" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/spinner" "2.0.30" - "@nextui-org/use-aria-button" "2.0.9" - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/button" "2.0.37" + "@nextui-org/input" "2.2.4" + "@nextui-org/listbox" "2.1.25" + "@nextui-org/popover" "2.1.27" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/scroll-shadow" "2.1.19" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/spinner" "2.0.33" + "@nextui-org/use-aria-button" "2.0.10" + "@nextui-org/use-safe-layout-effect" "2.0.6" "@react-aria/combobox" "3.9.1" "@react-aria/focus" "3.17.1" "@react-aria/i18n" "3.11.1" @@ -266,50 +461,50 @@ "@react-types/combobox" "3.11.1" "@react-types/shared" "3.23.1" -"@nextui-org/avatar@2.0.30": - version "2.0.30" - resolved "https://registry.yarnpkg.com/@nextui-org/avatar/-/avatar-2.0.30.tgz#be8e112013dadacd45615e79af3248566adfaba2" - integrity sha512-FIrvdJE+dBkmU3YDR1AXTkcks/WXjbnQsojWBMAq+1oXDCcNiGMUvKBzsW0F5m5HVHhn+Edc+CbTzIZUTm78Bw== +"@nextui-org/avatar@2.0.32": + version "2.0.32" + resolved "https://registry.npmjs.org/@nextui-org/avatar/-/avatar-2.0.32.tgz" + integrity sha512-2dCpIKuGvbOVLJ6m2AkNhPqqamIin3FDqDLop2ILNhyAxgxPYitqE3JqsUA/hlZCzu79sZudruuubzHWzHqf0Q== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-image" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-image" "2.0.6" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/utils" "3.24.1" -"@nextui-org/badge@2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@nextui-org/badge/-/badge-2.0.29.tgz#07c69493a5829ad328facc488581789898aab80d" - integrity sha512-kd6BJ1BWkX6UuHttmySUgQBPOBJCrG1+eKwWDd1HL4YuBLayuYoTZuE5Q01HYTbXjFMqzsFX3A+jcJ3RYc0X7w== +"@nextui-org/badge@2.0.31": + version "2.0.31" + resolved "https://registry.npmjs.org/@nextui-org/badge/-/badge-2.0.31.tgz" + integrity sha512-ayOw9j6Fa/RxZjk+2AhhBzXFm2Xv2RNYMrXAqGaJ+cbhofsqu8QnP0/4W+CiVXx8C0jpPmNAgSklRXgbKHs10Q== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" -"@nextui-org/breadcrumbs@2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@nextui-org/breadcrumbs/-/breadcrumbs-2.0.10.tgz#e301a35c15f8d2e39929d9e4020b5742fc113e15" - integrity sha512-TCrOHCH/gNrPwEQyd30mu6Y9x/ojJk3vUWZJSPuVhzG6WdpUFyqen4QCoDTUTvFJBL3TwqNYwOIxooizzFSK7g== +"@nextui-org/breadcrumbs@2.0.12": + version "2.0.12" + resolved "https://registry.npmjs.org/@nextui-org/breadcrumbs/-/breadcrumbs-2.0.12.tgz" + integrity sha512-PCZI7xqu1UrjJcCkd6HwGJ+h2L5k6LMBQRVbD8/7jMKkJxpoQXC7h5uCtEeLG2CafVih4cUCBTuzUnsubtKLnQ== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" "@react-aria/breadcrumbs" "3.5.13" "@react-aria/focus" "3.17.1" "@react-aria/utils" "3.24.1" "@react-types/breadcrumbs" "3.7.5" "@react-types/shared" "3.23.1" -"@nextui-org/button@2.0.34": - version "2.0.34" - resolved "https://registry.yarnpkg.com/@nextui-org/button/-/button-2.0.34.tgz#0621aec4dec1c4ec3e8d091f71ba7b86b02f4c19" - integrity sha512-VeFpOs7trX6u6FqeGr0XCpuNqPhXTLqsmt4iaygvheZCbzrTKvWHd4QMqSh2CPsNH8UFUBSFJjr3oaf3a0SYWQ== +"@nextui-org/button@2.0.37": + version "2.0.37" + resolved "https://registry.npmjs.org/@nextui-org/button/-/button-2.0.37.tgz" + integrity sha512-dBtdO30qfu+K4YYLNmmpUy16Q82H1ucY8A4NjP4iEAJ1sPunoAYvba7h9xabrpUKW9IOyItOThSesxsfpaXYug== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/ripple" "2.0.30" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/spinner" "2.0.30" - "@nextui-org/use-aria-button" "2.0.9" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/ripple" "2.0.32" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/spinner" "2.0.33" + "@nextui-org/use-aria-button" "2.0.10" "@react-aria/button" "3.9.5" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" @@ -317,18 +512,18 @@ "@react-types/button" "3.9.4" "@react-types/shared" "3.23.1" -"@nextui-org/calendar@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@nextui-org/calendar/-/calendar-2.0.7.tgz#912abbfb099b57a1bfff8df029a1db50ea9a8cd9" - integrity sha512-6mdgKJSl6tWo68FJQB1txSTRQ6/6+c3hipDYvzqDZRc+NbOJ3VevbFaPj5673JxeI2J5SyHLY2AEVw4q6HfaNw== +"@nextui-org/calendar@2.0.11": + version "2.0.11" + resolved "https://registry.npmjs.org/@nextui-org/calendar/-/calendar-2.0.11.tgz" + integrity sha512-pgCEekJHSr5QKxpJaABIFS2ItqgK8qZ7pKrCOJjmRHBh4Y9WGfndrIW6z3IkHZiO01CKJbpjb9ytTjufsU6kIA== dependencies: "@internationalized/date" "^3.5.4" - "@nextui-org/button" "2.0.34" - "@nextui-org/framer-utils" "2.0.21" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-aria-button" "2.0.9" + "@nextui-org/button" "2.0.37" + "@nextui-org/framer-utils" "2.0.24" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-aria-button" "2.0.10" "@react-aria/calendar" "3.5.8" "@react-aria/focus" "3.17.1" "@react-aria/i18n" "3.11.1" @@ -344,30 +539,30 @@ lodash.debounce "^4.0.8" scroll-into-view-if-needed "3.0.10" -"@nextui-org/card@2.0.31": - version "2.0.31" - resolved "https://registry.yarnpkg.com/@nextui-org/card/-/card-2.0.31.tgz#562fc8e60013045bb2dc8322345eef32fa84fa0a" - integrity sha512-KXeI4xu0HVOgC2sNBxv+OGbzYy+kA6HbsDB677j3R+MhyCrqCLsE5ahkn7FRWgIJAzoDkcHSunmc+q9ApoSWig== +"@nextui-org/card@2.0.33": + version "2.0.33" + resolved "https://registry.npmjs.org/@nextui-org/card/-/card-2.0.33.tgz" + integrity sha512-iO/ThbUz75YlcFrWO9EssMhOxbc9LN0SSk181+2QnPDbKls9wbkUEfGjq/d9k3h6jb9FaR5N5XwVpT4aUt2Usw== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/ripple" "2.0.30" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-aria-button" "2.0.9" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/ripple" "2.0.32" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-aria-button" "2.0.10" "@react-aria/button" "3.9.5" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/utils" "3.24.1" "@react-types/shared" "3.23.1" -"@nextui-org/checkbox@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@nextui-org/checkbox/-/checkbox-2.1.2.tgz#e950eeed4de1f2b0f722c6c1b4430b949af38c25" - integrity sha512-0C5xcYcBMM/iAva3/fFYIvUiy91guV+mehUwRcPIxEFLA9bIOdOdGTkoAXlVcGCLIuYvlPiqSH0gShXvscOlNQ== +"@nextui-org/checkbox@2.1.4": + version "2.1.4" + resolved "https://registry.npmjs.org/@nextui-org/checkbox/-/checkbox-2.1.4.tgz" + integrity sha512-74AD4imL064mvs4trQKQj/efwIZYaBt0TmXO6jV+6xGE6S9YjCAy+OBotrgRBG9fURQVQU1qJGnwwsOIdxCXkA== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-callback-ref" "2.0.5" - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-callback-ref" "2.0.6" + "@nextui-org/use-safe-layout-effect" "2.0.6" "@react-aria/checkbox" "3.14.3" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" @@ -378,36 +573,36 @@ "@react-types/checkbox" "3.8.1" "@react-types/shared" "3.23.1" -"@nextui-org/chip@2.0.30": - version "2.0.30" - resolved "https://registry.yarnpkg.com/@nextui-org/chip/-/chip-2.0.30.tgz#4d345e9bdbd826e7ea5417c9e7c930306202ebf2" - integrity sha512-u/PbKFW8pGoPzBh8dDRvhBSdhX30lJbscQJvXzmCKHpSvK8rvBG1kHtOJEJ4fiuXbo/O0CYwZVAi03XloyOCdQ== +"@nextui-org/chip@2.0.32": + version "2.0.32" + resolved "https://registry.npmjs.org/@nextui-org/chip/-/chip-2.0.32.tgz" + integrity sha512-fGqXamG7xs+DvKPra+rJEkIAjaQwPi8FSvsJ4P4LWzQ3U+HjymEI07BW8xQmaLceHInbTLTfdbTjAYdGNzAdOQ== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/utils" "3.24.1" "@react-types/checkbox" "3.8.1" -"@nextui-org/code@2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@nextui-org/code/-/code-2.0.29.tgz#6c3bb0540f70a2b4f21cff3fdc2d6b70270bc724" - integrity sha512-+aevUjVJxSkJ4Un/O3rBdI1NfHikatzDK6iD6nqWDCDR/I+9a5m+s3N8yuNt/Mt8jGKg0KEklPh3deYfCVCXdg== +"@nextui-org/code@2.0.32": + version "2.0.32" + resolved "https://registry.npmjs.org/@nextui-org/code/-/code-2.0.32.tgz" + integrity sha512-YBLCWDgR+ebWIr+noN02/ls+PsQV9leLskgPLFUfpRzHoXdGeUUhE8IjTv14KFP3XlW3Cf9ALFy3IgPuIZ+yuQ== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/system-rsc" "2.1.2" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/system-rsc" "2.1.5" -"@nextui-org/date-input@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@nextui-org/date-input/-/date-input-2.1.1.tgz#54222fc44189f77339bd695a40119e709648f60b" - integrity sha512-fts8R058AVN8dhkBGaJ/7F68ZwM/E3Imu5uhauHoXVoJhaXNft5fA23HJYpNkFrG0k/Tk7vGcGSPistiERQuKg== +"@nextui-org/date-input@2.1.3": + version "2.1.3" + resolved "https://registry.npmjs.org/@nextui-org/date-input/-/date-input-2.1.3.tgz" + integrity sha512-Y6d+AVPnM7uYy7boSHrk+cW/pft1fKbpXh/ed5omTgFx6rKRZ/agQmP5erMcmNzpv3Bis4wCc89WNnBtCjEZMw== dependencies: "@internationalized/date" "^3.5.4" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" "@react-aria/datepicker" "3.10.1" "@react-aria/i18n" "3.11.1" "@react-aria/utils" "3.24.1" @@ -415,20 +610,20 @@ "@react-types/datepicker" "3.7.4" "@react-types/shared" "3.23.1" -"@nextui-org/date-picker@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@nextui-org/date-picker/-/date-picker-2.1.2.tgz#f4fa1f42764efbfd073dbe630e26e9418340fcf7" - integrity sha512-gNqhyA85SDtGNdr2CUBJ5FSy/wCtj2AKJGs2yEvKtA9A66khOH2H0tdfGALOWoAQdxGgOvP7c+9U5Oadogoygg== +"@nextui-org/date-picker@2.1.6": + version "2.1.6" + resolved "https://registry.npmjs.org/@nextui-org/date-picker/-/date-picker-2.1.6.tgz" + integrity sha512-PycYKAm1tmew64aQWQtZfTbV73S4GPGYJnK6hr9W0iXUCOQQH5UbzLwdWGXnVXvtrJzczFQllaXaQccwWCeTzg== dependencies: "@internationalized/date" "^3.5.4" - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/button" "2.0.34" - "@nextui-org/calendar" "2.0.7" - "@nextui-org/date-input" "2.1.1" - "@nextui-org/popover" "2.1.24" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/button" "2.0.37" + "@nextui-org/calendar" "2.0.11" + "@nextui-org/date-input" "2.1.3" + "@nextui-org/popover" "2.1.27" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" "@react-aria/datepicker" "3.10.1" "@react-aria/i18n" "3.11.1" "@react-aria/utils" "3.24.1" @@ -438,59 +633,59 @@ "@react-types/datepicker" "3.7.4" "@react-types/shared" "3.23.1" -"@nextui-org/divider@2.0.28": - version "2.0.28" - resolved "https://registry.yarnpkg.com/@nextui-org/divider/-/divider-2.0.28.tgz#e574b5d212b0e81f78d8f9a54783ce9927b65582" - integrity sha512-IskKmDOO8qwmTO2WtDmrH8fZvnV2JebP3PFfwqpToAdDRbRUs78pls2e8/T9clbLLtNxjfCFAI/Yi9C+LPPEXw== +"@nextui-org/divider@2.0.31": + version "2.0.31" + resolved "https://registry.npmjs.org/@nextui-org/divider/-/divider-2.0.31.tgz" + integrity sha512-z9GhrpmhXhJGuW0GSO1OP01mwDTSItuIRIz0VGpKOPVTqOzOMHkXN978wgNXqJ+knWZcaiF7WHvd83O05jmbkg== dependencies: - "@nextui-org/react-rsc-utils" "2.0.12" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/system-rsc" "2.1.2" - "@react-types/shared" "3.22.1" + "@nextui-org/react-rsc-utils" "2.0.13" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/system-rsc" "2.1.5" + "@react-types/shared" "3.23.1" -"@nextui-org/dropdown@2.1.26": - version "2.1.26" - resolved "https://registry.yarnpkg.com/@nextui-org/dropdown/-/dropdown-2.1.26.tgz#e805670425d0df0843fa10563e01b3a20feb6990" - integrity sha512-rPrn8hN7v2nLm9OJKagvf7AivsCAT0EWUcgWGaf5GVdwGJ65TZpjR18eAOyKBZRe5cdZ+FV6qqnavGVhD3458w== +"@nextui-org/dropdown@2.1.29": + version "2.1.29" + resolved "https://registry.npmjs.org/@nextui-org/dropdown/-/dropdown-2.1.29.tgz" + integrity sha512-ujHJVHzOcfwqNqlkt14t8YV3AAn03sME7gBxujQcwtDFGYMJeP9pvTU24L/FjBEb3Fd1XdhjwowU/sTuVTK4Yg== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/menu" "2.0.25" - "@nextui-org/popover" "2.1.24" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/menu" "2.0.28" + "@nextui-org/popover" "2.1.27" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" "@react-aria/focus" "3.17.1" "@react-aria/menu" "3.14.1" "@react-aria/utils" "3.24.1" "@react-stately/menu" "3.7.1" "@react-types/menu" "3.9.9" -"@nextui-org/framer-utils@2.0.21": - version "2.0.21" - resolved "https://registry.yarnpkg.com/@nextui-org/framer-utils/-/framer-utils-2.0.21.tgz#3117df92d75b2c6c7a1f24cfa0cb5bd9e87161dc" - integrity sha512-kZzkaAHbtuBl85mivZ1WKVCcwdk8Z2NDmJiIpaLy16yliLNV1tnhoDOzRrxhv+6cbkKftx21tRrpImB4AyeqLw== +"@nextui-org/framer-utils@2.0.24": + version "2.0.24" + resolved "https://registry.npmjs.org/@nextui-org/framer-utils/-/framer-utils-2.0.24.tgz" + integrity sha512-Fc5ugVaLsXhd3bgJg+hvw20uaaz9gAxYY2ouS/3leN7QBSRAwpy3Dl+tX8BbLeyx3ZosVrHIJ3w4bhDMzFVk9Q== dependencies: - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/system" "2.2.2" - "@nextui-org/use-measure" "2.0.1" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/system" "2.2.5" + "@nextui-org/use-measure" "2.0.2" -"@nextui-org/image@2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@nextui-org/image/-/image-2.0.29.tgz#038a72d9956421360d06236e9a16f7a4ddfdc09a" - integrity sha512-w8MneV/JNUTCJUcIZcxtUYw1ZEZqlpezcCgGLr0cH3vp5pa+BZ9SdptwAL2wFoJAG8xk+et9fMXTROvF4h5W1g== +"@nextui-org/image@2.0.31": + version "2.0.31" + resolved "https://registry.npmjs.org/@nextui-org/image/-/image-2.0.31.tgz" + integrity sha512-HxWaGUBtNaT9pLGvDo5Q2ruGxdhXYrdNcLvRhtoohiZeIKo1Y8jTbBUCVGxdxklTZAF3H7klrTcsdSwHTGfk0g== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-image" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-image" "2.0.6" -"@nextui-org/input@2.2.2": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@nextui-org/input/-/input-2.2.2.tgz#db5d4bac963a9e5f53403254570ddbefd262a0c9" - integrity sha512-mCcFsObJdlCWMuSutKTRniFIDX5+z4BAAtt/XI1uzOtUO6WXgT97BwVzMihC1l14WQsw9TCwFKAl8JWdolkNCA== +"@nextui-org/input@2.2.4": + version "2.2.4" + resolved "https://registry.npmjs.org/@nextui-org/input/-/input-2.2.4.tgz" + integrity sha512-CVeTwwUJn9pEJC+kq3Jg0nAFeYVGBbIU7U2YFSG8XJK2X75odj8RSQdVd3Dt2U/b5Mtwt5sBh9gMzCedtjffWg== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-safe-layout-effect" "2.0.6" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/textfield" "3.14.5" @@ -500,40 +695,40 @@ "@react-types/textfield" "3.9.3" react-textarea-autosize "^8.5.3" -"@nextui-org/kbd@2.0.30": - version "2.0.30" - resolved "https://registry.yarnpkg.com/@nextui-org/kbd/-/kbd-2.0.30.tgz#06dee8ecf7be6f75cd79246177fb2f919128acb3" - integrity sha512-rQw71noVUIRPf8N/Z5hdIGCtjFEVZO9xs2JVkiusKDxbGXFWKxJ3sTFzEY4VyLtORt2mEOQEWh26wbTnNjJzMw== +"@nextui-org/kbd@2.0.33": + version "2.0.33" + resolved "https://registry.npmjs.org/@nextui-org/kbd/-/kbd-2.0.33.tgz" + integrity sha512-1Q7vKKJjfn5RPMsySQEljo2clf03Ta4V4ZA4O92ktJ8YzbdNnDfUiWtfFxF64R183ZVfe869RBSpuOdzZLNuKQ== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/system-rsc" "2.1.2" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/system-rsc" "2.1.5" "@react-aria/utils" "3.24.1" -"@nextui-org/link@2.0.32": - version "2.0.32" - resolved "https://registry.yarnpkg.com/@nextui-org/link/-/link-2.0.32.tgz#30f640870508b36a1c7bc6f3181f42a7fb0c0949" - integrity sha512-NIG8Ay/WfFxwMYKB11xg0iVAzJR1jy0QrtKFGaZscyJ522beM+aMBZuourC9u7kwjucTvt5fuGRm86KBVDBXCQ== +"@nextui-org/link@2.0.34": + version "2.0.34" + resolved "https://registry.npmjs.org/@nextui-org/link/-/link-2.0.34.tgz" + integrity sha512-497AvjzckEB/TE1eJEziS2QkxwCY81RPsWoApNSeHGdYrMO1tfgUFKATgadfBQjoba6FdCcLc2QaUapOetqFaA== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-aria-link" "2.0.18" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-aria-link" "2.0.19" "@react-aria/focus" "3.17.1" "@react-aria/link" "3.7.1" "@react-aria/utils" "3.24.1" "@react-types/link" "3.5.5" -"@nextui-org/listbox@2.1.22": - version "2.1.22" - resolved "https://registry.yarnpkg.com/@nextui-org/listbox/-/listbox-2.1.22.tgz#4d8649efbc82744f494c719225aa7853398f49a4" - integrity sha512-VFULRE7BBpNnXulhySHlENRiRUP7KdpozJfKM3X2kIwWoFekO8DDUT8RiLj2PyDtGjKam74ghHhMuAFXFhVQ+g== +"@nextui-org/listbox@2.1.25": + version "2.1.25" + resolved "https://registry.npmjs.org/@nextui-org/listbox/-/listbox-2.1.25.tgz" + integrity sha512-WJqxhzPxADLIsenREaaoQ44bs3gQx5yqOvK86Jkiv/m9nXr0YuxZOJEsVa5GenkmyJBrEd6LkBV5cZ1TGNzbJw== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/divider" "2.0.28" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-is-mobile" "2.0.8" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/divider" "2.0.31" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-is-mobile" "2.0.9" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/listbox" "3.12.1" @@ -542,17 +737,17 @@ "@react-types/menu" "3.9.9" "@react-types/shared" "3.23.1" -"@nextui-org/menu@2.0.25": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@nextui-org/menu/-/menu-2.0.25.tgz#99fc2c3debeef9117465834866a3c870106541f9" - integrity sha512-VkCaaq19JKNjIgg4bmGebzHkSV1A3C1CRV5w5qRPg5AI59pdWlbMLpllm5mPqz+U0R0P5saGfCfEfcC0LrCFdQ== +"@nextui-org/menu@2.0.28": + version "2.0.28" + resolved "https://registry.npmjs.org/@nextui-org/menu/-/menu-2.0.28.tgz" + integrity sha512-/bcIeBCGpauDkdz6VZvl1YXP5xpSSSYVTvhsChkcvzWzDXLG004uVAsw4kjP2i9OGxoehrjkl9wkIzCFCEdsHw== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/divider" "2.0.28" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-aria-menu" "2.0.5" - "@nextui-org/use-is-mobile" "2.0.8" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/divider" "2.0.31" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-aria-menu" "2.0.6" + "@nextui-org/use-is-mobile" "2.0.9" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/menu" "3.14.1" @@ -562,18 +757,18 @@ "@react-types/menu" "3.9.9" "@react-types/shared" "3.23.1" -"@nextui-org/modal@2.0.36": - version "2.0.36" - resolved "https://registry.yarnpkg.com/@nextui-org/modal/-/modal-2.0.36.tgz#39f52fa39ed605c8631efb98991cf7073c2c0cc4" - integrity sha512-ucWBobeoM8BVLpgXrtZ/H5TD9eFS2YF4W7vntWC05Q13A34LSHgBjNHJkfwW/OebGjJoaDoRiIBohWaiyyliTA== +"@nextui-org/modal@2.0.39": + version "2.0.39" + resolved "https://registry.npmjs.org/@nextui-org/modal/-/modal-2.0.39.tgz" + integrity sha512-b0G5IRNrfQumx8mQQO92rn2iC2ueUuk4XKvxYYmYNpx3/qpdEP9tckozw+s0QFyZocRPY+yYa0pBtMBGC2lWGQ== dependencies: - "@nextui-org/framer-utils" "2.0.21" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-aria-button" "2.0.9" - "@nextui-org/use-aria-modal-overlay" "2.0.10" - "@nextui-org/use-disclosure" "2.0.9" + "@nextui-org/framer-utils" "2.0.24" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-aria-button" "2.0.10" + "@nextui-org/use-aria-modal-overlay" "2.0.11" + "@nextui-org/use-disclosure" "2.0.10" "@react-aria/dialog" "3.5.14" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" @@ -582,16 +777,16 @@ "@react-stately/overlays" "3.6.7" "@react-types/overlays" "3.8.7" -"@nextui-org/navbar@2.0.33": - version "2.0.33" - resolved "https://registry.yarnpkg.com/@nextui-org/navbar/-/navbar-2.0.33.tgz#2cd2d3a3b421f5ab7ecfbdf304ef10802dd8ec29" - integrity sha512-WbPLEz6yE1vxKTqZDN85YPCWR/JSvpOO604xBpaaCf+OLfEsb+herz7+GDPnvHKaPDASoxU5WaSQJR9nrJ/YHg== +"@nextui-org/navbar@2.0.36": + version "2.0.36" + resolved "https://registry.npmjs.org/@nextui-org/navbar/-/navbar-2.0.36.tgz" + integrity sha512-uobdPsh4TSPm2Us74/Vey43z0/oRqWb6x4+eHIJf9VhYP9pY733N2n17v2mvU7SvcNhkold/PWfXPYiA8kMlug== dependencies: - "@nextui-org/framer-utils" "2.0.21" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-aria-toggle-button" "2.0.9" - "@nextui-org/use-scroll-position" "2.0.6" + "@nextui-org/framer-utils" "2.0.24" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-aria-toggle-button" "2.0.10" + "@nextui-org/use-scroll-position" "2.0.8" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/overlays" "3.22.1" @@ -600,33 +795,33 @@ "@react-stately/utils" "3.10.1" react-remove-scroll "^2.5.6" -"@nextui-org/pagination@2.0.33": - version "2.0.33" - resolved "https://registry.yarnpkg.com/@nextui-org/pagination/-/pagination-2.0.33.tgz#06a76917a55b49462ae9152df0583e9f1300803f" - integrity sha512-LiDDTSTuC0Q9gSI1gc/b+lmKR8/zFiwSfYjLh7KDND3m+qE44waICWnK1U7P6Y999Nu1LwaGSGtqayd326aPrg== +"@nextui-org/pagination@2.0.35": + version "2.0.35" + resolved "https://registry.npmjs.org/@nextui-org/pagination/-/pagination-2.0.35.tgz" + integrity sha512-07KJgZcJBt2e9RY6TsiQm5qrjDLH+gT3yB7yQ4jPdCK9fkTB0r2kvTOYdPUvrtVJYRq2bwFCWOz+9mokdNfcwg== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-pagination" "2.0.7" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-pagination" "2.0.9" "@react-aria/focus" "3.17.1" "@react-aria/i18n" "3.11.1" "@react-aria/interactions" "3.21.3" "@react-aria/utils" "3.24.1" scroll-into-view-if-needed "3.0.10" -"@nextui-org/popover@2.1.24": - version "2.1.24" - resolved "https://registry.yarnpkg.com/@nextui-org/popover/-/popover-2.1.24.tgz#fd575dc0c1ab314e7d8a18a4aec3c2812ba2412b" - integrity sha512-PGbTxdcc06BMxEd/HYsL0sVa0fdGjHPYNSvcSSM0KA6Fh98pznO9DoQHjIEPAul87yEwl7cDDj7mANcdK9BVnA== +"@nextui-org/popover@2.1.27": + version "2.1.27" + resolved "https://registry.npmjs.org/@nextui-org/popover/-/popover-2.1.27.tgz" + integrity sha512-UV42nqvUR9IOy7Hgc5S2Xo+2YWzBAHCcU+C/9O9SchXL0DyU/ol+IPqxuBxdJDi5fiFYr9mTBoPZgAEGDoJjDg== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/button" "2.0.34" - "@nextui-org/framer-utils" "2.0.21" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-aria-button" "2.0.9" - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/button" "2.0.37" + "@nextui-org/framer-utils" "2.0.24" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-aria-button" "2.0.10" + "@nextui-org/use-safe-layout-effect" "2.0.6" "@react-aria/dialog" "3.5.14" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" @@ -637,26 +832,26 @@ "@react-types/overlays" "3.8.7" react-remove-scroll "^2.5.6" -"@nextui-org/progress@2.0.31": - version "2.0.31" - resolved "https://registry.yarnpkg.com/@nextui-org/progress/-/progress-2.0.31.tgz#b70c9c586dc5dff8b22ff761fc27a9049105ce1a" - integrity sha512-ZFjV4068gYPe9S4R1e/8oqwtPFKd9ag8RB0JoToq55AM5aLItOA/Q/uwBnDz7ait3C7viWawcN4leW1C8dSurQ== +"@nextui-org/progress@2.0.33": + version "2.0.33" + resolved "https://registry.npmjs.org/@nextui-org/progress/-/progress-2.0.33.tgz" + integrity sha512-rP54lZbH7BSzX9sFj7k3ylrUpk10XDWngc1dB1M+GlPsI2XRnzI3s+GE9kuZG2+N6eL/KLVG1YOg8u9eAYnwpA== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-is-mounted" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-is-mounted" "2.0.6" "@react-aria/i18n" "3.11.1" "@react-aria/progress" "3.4.13" "@react-aria/utils" "3.24.1" "@react-types/progress" "3.5.4" -"@nextui-org/radio@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@nextui-org/radio/-/radio-2.1.2.tgz#5039b098f80dd4050acbe88b247ddba25022de57" - integrity sha512-JcWKRqXXRwQtz5ABzykuu+S4/8cO9GKa21Gget1fdo/iSDcUtGDHIf6wlpvWSNekpvIERZd9UdpwhaXWbD4pOg== +"@nextui-org/radio@2.1.4": + version "2.1.4" + resolved "https://registry.npmjs.org/@nextui-org/radio/-/radio-2.1.4.tgz" + integrity sha512-Y18TXvGVz/G1E3jjYmutSSx1EdQRs5iMCVZNS/Bz4avE9QMSrHl6fOhZIndrm8LwCTqn7lbKRQngZLN4tvPinQ== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/radio" "3.10.4" @@ -666,102 +861,102 @@ "@react-types/radio" "3.8.1" "@react-types/shared" "3.23.1" -"@nextui-org/react-rsc-utils@2.0.12": - version "2.0.12" - resolved "https://registry.yarnpkg.com/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.12.tgz#a931a2e6a9523e9f11f3397a57cde0861ba9ff7a" - integrity sha512-s2IG4pM1K+kbm6A2g3UpqrS592AExpGixtZNPJ2lV5+UQi1ld3vb4EiBIOViZMoSCNCoNdaeO5Yqo6cKghwCPA== +"@nextui-org/react-rsc-utils@2.0.13": + version "2.0.13" + resolved "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.13.tgz" + integrity sha512-QewsXtoQlMsR9stThdazKEImg9oyZkPLs7wsymhrzh6/HdQCl9bTdb6tJcROg4vg5LRYKGG11USSQO2nKlfCcQ== -"@nextui-org/react-utils@2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@nextui-org/react-utils/-/react-utils-2.0.14.tgz#e075fd8af2f59804186af6dbfd64605b945c5cbc" - integrity sha512-fed97WSaHt8/sC5F4DFTVj25YQsepFGDyudommPGQsTksQ6GQkMITuHckzAyPiTTuWHSW/GZykvVVAlK9hS5Wg== +"@nextui-org/react-utils@2.0.16": + version "2.0.16" + resolved "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.0.16.tgz" + integrity sha512-QdDoqzhx+4t9cDTVmtw5iOrfyLvpqyKsq8PARHUniCiQQDQd1ao7FCpzHgvU9poYcEdRk+Lsna66zbeMkFBB6w== dependencies: - "@nextui-org/react-rsc-utils" "2.0.12" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/react-rsc-utils" "2.0.13" + "@nextui-org/shared-utils" "2.0.7" "@nextui-org/react@^2.4.2": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@nextui-org/react/-/react-2.4.2.tgz#236941ccdcb103b80d186bec23b852a40d5d513c" - integrity sha512-g7CqAX/x0DJsIUmD+Z6I4T1699uVmu5kbuY0n1PdA4IDjFSKzgkMCIogcIKu2iUV+LVlvfF1lDhs300OIpouig== + version "2.4.6" + resolved "https://registry.npmjs.org/@nextui-org/react/-/react-2.4.6.tgz" + integrity sha512-8o/k5A5g0xXj6hmV2AulkAswQnZGt2WI64Coq+toWBTumQLcW6iAqPJBDztCDiz+6yiU6Nvk/1ZuZJeRs3XMRw== dependencies: - "@nextui-org/accordion" "2.0.35" - "@nextui-org/autocomplete" "2.1.2" - "@nextui-org/avatar" "2.0.30" - "@nextui-org/badge" "2.0.29" - "@nextui-org/breadcrumbs" "2.0.10" - "@nextui-org/button" "2.0.34" - "@nextui-org/calendar" "2.0.7" - "@nextui-org/card" "2.0.31" - "@nextui-org/checkbox" "2.1.2" - "@nextui-org/chip" "2.0.30" - "@nextui-org/code" "2.0.29" - "@nextui-org/date-input" "2.1.1" - "@nextui-org/date-picker" "2.1.2" - "@nextui-org/divider" "2.0.28" - "@nextui-org/dropdown" "2.1.26" - "@nextui-org/framer-utils" "2.0.21" - "@nextui-org/image" "2.0.29" - "@nextui-org/input" "2.2.2" - "@nextui-org/kbd" "2.0.30" - "@nextui-org/link" "2.0.32" - "@nextui-org/listbox" "2.1.22" - "@nextui-org/menu" "2.0.25" - "@nextui-org/modal" "2.0.36" - "@nextui-org/navbar" "2.0.33" - "@nextui-org/pagination" "2.0.33" - "@nextui-org/popover" "2.1.24" - "@nextui-org/progress" "2.0.31" - "@nextui-org/radio" "2.1.2" - "@nextui-org/ripple" "2.0.30" - "@nextui-org/scroll-shadow" "2.1.17" - "@nextui-org/select" "2.2.2" - "@nextui-org/skeleton" "2.0.29" - "@nextui-org/slider" "2.2.12" - "@nextui-org/snippet" "2.0.38" - "@nextui-org/spacer" "2.0.29" - "@nextui-org/spinner" "2.0.30" - "@nextui-org/switch" "2.0.31" - "@nextui-org/system" "2.2.2" - "@nextui-org/table" "2.0.36" - "@nextui-org/tabs" "2.0.32" - "@nextui-org/theme" "2.2.6" - "@nextui-org/tooltip" "2.0.36" - "@nextui-org/user" "2.0.31" + "@nextui-org/accordion" "2.0.38" + "@nextui-org/autocomplete" "2.1.5" + "@nextui-org/avatar" "2.0.32" + "@nextui-org/badge" "2.0.31" + "@nextui-org/breadcrumbs" "2.0.12" + "@nextui-org/button" "2.0.37" + "@nextui-org/calendar" "2.0.11" + "@nextui-org/card" "2.0.33" + "@nextui-org/checkbox" "2.1.4" + "@nextui-org/chip" "2.0.32" + "@nextui-org/code" "2.0.32" + "@nextui-org/date-input" "2.1.3" + "@nextui-org/date-picker" "2.1.6" + "@nextui-org/divider" "2.0.31" + "@nextui-org/dropdown" "2.1.29" + "@nextui-org/framer-utils" "2.0.24" + "@nextui-org/image" "2.0.31" + "@nextui-org/input" "2.2.4" + "@nextui-org/kbd" "2.0.33" + "@nextui-org/link" "2.0.34" + "@nextui-org/listbox" "2.1.25" + "@nextui-org/menu" "2.0.28" + "@nextui-org/modal" "2.0.39" + "@nextui-org/navbar" "2.0.36" + "@nextui-org/pagination" "2.0.35" + "@nextui-org/popover" "2.1.27" + "@nextui-org/progress" "2.0.33" + "@nextui-org/radio" "2.1.4" + "@nextui-org/ripple" "2.0.32" + "@nextui-org/scroll-shadow" "2.1.19" + "@nextui-org/select" "2.2.5" + "@nextui-org/skeleton" "2.0.31" + "@nextui-org/slider" "2.2.15" + "@nextui-org/snippet" "2.0.41" + "@nextui-org/spacer" "2.0.32" + "@nextui-org/spinner" "2.0.33" + "@nextui-org/switch" "2.0.33" + "@nextui-org/system" "2.2.5" + "@nextui-org/table" "2.0.39" + "@nextui-org/tabs" "2.0.35" + "@nextui-org/theme" "2.2.9" + "@nextui-org/tooltip" "2.0.39" + "@nextui-org/user" "2.0.33" "@react-aria/visually-hidden" "3.8.12" -"@nextui-org/ripple@2.0.30": - version "2.0.30" - resolved "https://registry.yarnpkg.com/@nextui-org/ripple/-/ripple-2.0.30.tgz#abe44dc757a52e7b707284b2f57caae20ddd4c53" - integrity sha512-GmHwC+F2JIYQAeFuwtFbdE6av8lzOJVdA5yops9vhhzeBPT33dMjgazCn0HZT5TvP0gX+xxT/74ONE0ik0Kayg== +"@nextui-org/ripple@2.0.32": + version "2.0.32" + resolved "https://registry.npmjs.org/@nextui-org/ripple/-/ripple-2.0.32.tgz" + integrity sha512-xOqoHWzpvv5KRh7P8pXt3aZEmI1tyhiTNhrwjJaRME0d5xSA0gNzYhrjP5g0+Dxy4nKRDIZ1znJcd87KI07JFA== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" -"@nextui-org/scroll-shadow@2.1.17": - version "2.1.17" - resolved "https://registry.yarnpkg.com/@nextui-org/scroll-shadow/-/scroll-shadow-2.1.17.tgz#f037431c26e99dfffd0214ba132c6febaa191133" - integrity sha512-JOJc6nbdFHcMn/zpaf78AAZ8Vwo/iQO6iWJVHlN6ROjSKL7EImP/V78m14Y+kd0hkzU8CcHswdpmCefaioFlRA== +"@nextui-org/scroll-shadow@2.1.19": + version "2.1.19" + resolved "https://registry.npmjs.org/@nextui-org/scroll-shadow/-/scroll-shadow-2.1.19.tgz" + integrity sha512-od5AnhX6iO0sHoTAVReWv1O1dbNCEeOBOFdnyzFins6ZC5EnAl/oBPR/KLd8glHtgM3Jt8dvIVlBXPEPZKZwaw== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-data-scroll-overflow" "2.1.4" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-data-scroll-overflow" "2.1.6" -"@nextui-org/select@2.2.2": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@nextui-org/select/-/select-2.2.2.tgz#eb18757529aade858d32b09c69064914c8a1fb50" - integrity sha512-bCk6/LJAhhSM5VXiny7rDTH5f7ri7mGKx4V+K83kY9uW01ioWWYId1EhbP6Crd9PSvmQL42mhId/5dLRxgUimA== +"@nextui-org/select@2.2.5": + version "2.2.5" + resolved "https://registry.npmjs.org/@nextui-org/select/-/select-2.2.5.tgz" + integrity sha512-Il1eigjSXOBgJ745nhn6TDPD1jj1avrnvk9WV/DCjOsFRwfstRnDzsS1aNpZKHqJgHhFRQZ1ivz8hA4x3Zgasg== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/listbox" "2.1.22" - "@nextui-org/popover" "2.1.24" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/scroll-shadow" "2.1.17" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/spinner" "2.0.30" - "@nextui-org/use-aria-button" "2.0.9" - "@nextui-org/use-aria-multiselect" "2.2.2" - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/listbox" "2.1.25" + "@nextui-org/popover" "2.1.27" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/scroll-shadow" "2.1.19" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/spinner" "2.0.33" + "@nextui-org/use-aria-button" "2.0.10" + "@nextui-org/use-aria-multiselect" "2.2.3" + "@nextui-org/use-safe-layout-effect" "2.0.6" "@react-aria/focus" "3.17.1" "@react-aria/form" "3.0.5" "@react-aria/interactions" "3.21.3" @@ -769,32 +964,32 @@ "@react-aria/visually-hidden" "3.8.12" "@react-types/shared" "3.23.1" -"@nextui-org/shared-icons@2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@nextui-org/shared-icons/-/shared-icons-2.0.8.tgz#2dd34322503bad5ce06420940369bbc4140c9f15" - integrity sha512-siKuw+CN03cB2N1eUpIleP+lTpjM4gSmcco7RXTpXiwXJXlxjKo4N8gQYS04HCBXm9QMWgyngvUEt2II9NYyrw== +"@nextui-org/shared-icons@2.0.9": + version "2.0.9" + resolved "https://registry.npmjs.org/@nextui-org/shared-icons/-/shared-icons-2.0.9.tgz" + integrity sha512-WG3yinVY7Tk9VqJgcdF4V8Ok9+fcm5ey7S1els7kujrfqLYxtqoKywgiY/7QHwZlfQkzpykAfy+NAlHkTP5hMg== -"@nextui-org/shared-utils@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nextui-org/shared-utils/-/shared-utils-2.0.5.tgz#f04072240f35b0a5748fe38b4ec1c285231d6074" - integrity sha512-aFc/CUL8RVfBh0IotIpxkpKjyUPc/zJaMJd5pRCQA1kIpKLdSrlh3//MLYMaP/fo/NQtE3DPeXqfKhHRr1fkEw== +"@nextui-org/shared-utils@2.0.7": + version "2.0.7" + resolved "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.0.7.tgz" + integrity sha512-FxY3N0i1Al7Oz3yOQN0dSpG8UUrLIP3iYh3ubD7BhdQoZLl5xbG6++q1gqOzZXV+ZWeUFMY/or0ofzWxGHiOow== -"@nextui-org/skeleton@2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@nextui-org/skeleton/-/skeleton-2.0.29.tgz#37b1147b3b6f814f29050a41b1fee0ed994422b6" - integrity sha512-s/oQdUc1Ao7XRmUP82V2/hI3B644ZQzIYuPIgp+A6DyDLfyRUx8PLWN/EhN5Ku2M/s6WYTkwulDrKeo4dlMsrw== +"@nextui-org/skeleton@2.0.31": + version "2.0.31" + resolved "https://registry.npmjs.org/@nextui-org/skeleton/-/skeleton-2.0.31.tgz" + integrity sha512-pT0l2skPP6Nq9edLJNQxUJI/WLKu4Lx5Vvs7nlE/9NpkxyQ805l4LiYsMD30dkjjxe+WpXtIjjAXY0BQqdid0Q== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" -"@nextui-org/slider@2.2.12": - version "2.2.12" - resolved "https://registry.yarnpkg.com/@nextui-org/slider/-/slider-2.2.12.tgz#a9293980c42c21b07d4538531f3491700517555c" - integrity sha512-5+72YlWxV6bm9hGNpWN5G+6OeqU7S9N2ECwEdO4COQ1hvMiimiJ3lrTUHIS2AvKimEpw+MLkUoKIbqAV23zxuw== +"@nextui-org/slider@2.2.15": + version "2.2.15" + resolved "https://registry.npmjs.org/@nextui-org/slider/-/slider-2.2.15.tgz" + integrity sha512-ImsxvxAJ2wxRL45y4IbVWThZI/vw2Gq/6qUVZFAwyF54dlro08eJZJIOOG7bKfA5Ob63JLfroUijrlZ9kGP5cA== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/tooltip" "2.0.36" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/tooltip" "2.0.39" "@react-aria/focus" "3.17.1" "@react-aria/i18n" "3.11.1" "@react-aria/interactions" "3.21.3" @@ -803,46 +998,46 @@ "@react-aria/visually-hidden" "3.8.12" "@react-stately/slider" "3.5.4" -"@nextui-org/snippet@2.0.38": - version "2.0.38" - resolved "https://registry.yarnpkg.com/@nextui-org/snippet/-/snippet-2.0.38.tgz#a5a15bacc94e7f67a2f8804f76d6197ee24ae79c" - integrity sha512-8lMqtB1KQtMkpZFb3x/T42zdZ+QqcGr6d/yVE+zKzyEd+xqzm2g/hDpPqy0Mf5JaC1Z+lXoRzF/6XbD99FCEbw== +"@nextui-org/snippet@2.0.41": + version "2.0.41" + resolved "https://registry.npmjs.org/@nextui-org/snippet/-/snippet-2.0.41.tgz" + integrity sha512-ZZopaecAZbKJIdabwGVF3ahL2MM7L0zZII61SO3LDPAwqXOuta9ixMYk1XVCI0V2PVqTkabQgdpt1ZLgmFH+Kw== dependencies: - "@nextui-org/button" "2.0.34" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/tooltip" "2.0.36" - "@nextui-org/use-clipboard" "2.0.5" + "@nextui-org/button" "2.0.37" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/tooltip" "2.0.39" + "@nextui-org/use-clipboard" "2.0.6" "@react-aria/focus" "3.17.1" "@react-aria/utils" "3.24.1" -"@nextui-org/spacer@2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@nextui-org/spacer/-/spacer-2.0.29.tgz#2cce8bc0e69a87a91e8ee320df407fe989129e3c" - integrity sha512-lcgzHIvTXXllnM6MMjti0ub8jEx9jmtzdd5+zgFAHLTeDS3pDffNZndmU+RkzpyGSyK20PCrMkV/sB4SCDN1KA== +"@nextui-org/spacer@2.0.32": + version "2.0.32" + resolved "https://registry.npmjs.org/@nextui-org/spacer/-/spacer-2.0.32.tgz" + integrity sha512-NxqEYTig4OfkLDPlO2/jASB4gV8L9DLpsNZSqzaacIJZwk4BCTsNoBi3CuNt5ZsMoGYujtFP6QU0zH9fZbuzwA== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/system-rsc" "2.1.2" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/system-rsc" "2.1.5" -"@nextui-org/spinner@2.0.30": - version "2.0.30" - resolved "https://registry.yarnpkg.com/@nextui-org/spinner/-/spinner-2.0.30.tgz#f8f40a45da575f73f3d94a2f804041f6b71216ba" - integrity sha512-+oygL2dewHZzJiSUEIvzL0tIx+G+98mvO3ToFAMXaH0N3bOQNSiFDPwUHUx6PgAQ9pr9RKtdnb4ywstcG9j+Gg== +"@nextui-org/spinner@2.0.33": + version "2.0.33" + resolved "https://registry.npmjs.org/@nextui-org/spinner/-/spinner-2.0.33.tgz" + integrity sha512-c1wW4YEbzdn0t1MJAXhJ2W0PuNxrxtZg2DVqJeqh3180y4iQPYDzEy7oFoU0FpK53LcBPxjfsKHNL6v1pn+60A== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/system-rsc" "2.1.2" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/system-rsc" "2.1.5" -"@nextui-org/switch@2.0.31": - version "2.0.31" - resolved "https://registry.yarnpkg.com/@nextui-org/switch/-/switch-2.0.31.tgz#189846066692687ad879ad7d4b048e899e7bfe55" - integrity sha512-WPHqWQfyISA8nmQ8ihaO5rIHm/K9nyfrV0Fxm6EcnFilTMZhh4Kt+p7FfJrZw+MMyzIEGFfMDySk1KVrMubc1g== +"@nextui-org/switch@2.0.33": + version "2.0.33" + resolved "https://registry.npmjs.org/@nextui-org/switch/-/switch-2.0.33.tgz" + integrity sha512-T7w+8+ex7Pey9HVGXkNft4D11mO5J9iPfmemfLbSOYqbSydcOuINuGRQ1QWy7X+lLYhhZBHb9Ykcf4QtR4dqTQ== dependencies: - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-safe-layout-effect" "2.0.6" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/switch" "3.6.4" @@ -851,36 +1046,37 @@ "@react-stately/toggle" "3.7.4" "@react-types/shared" "3.23.1" -"@nextui-org/system-rsc@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@nextui-org/system-rsc/-/system-rsc-2.1.2.tgz#42b6568617018ec108cb60d22cb7bff96f6117b3" - integrity sha512-3F7pG68Ikh1JsMtRQqmyXAojAV4lMPCKCy0n8RiIxJkEJg11RGTXhnABHF2jP6uxMH/0q5zVzuFubQJfW++ISQ== +"@nextui-org/system-rsc@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.1.5.tgz" + integrity sha512-tkJLAyJu34Rr5KUMMqoB7cZjOVXB+7a/7N4ushZfuiLdoYijgmcXFMzLxjm+tbt9zA5AV+ivsfbHvscg77dJ6w== dependencies: + "@react-types/shared" "3.23.1" clsx "^1.2.1" -"@nextui-org/system@2.2.2": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@nextui-org/system/-/system-2.2.2.tgz#2ed5758bc7589a5e958f6ff9d08fc623be41e953" - integrity sha512-u30lWSIO4Q7DStiK5tJjDgKBQtmODeQZcC6llz973sJ9QlE4GeC1fgu0+/zXL8AZZ8o/iEXhHWXsZIJ26EquUQ== +"@nextui-org/system@2.2.5": + version "2.2.5" + resolved "https://registry.npmjs.org/@nextui-org/system/-/system-2.2.5.tgz" + integrity sha512-nrX6768aiyWtpxX3OTFBIVWR+v9nlMsC3KaBinNfek97sNm7gAfTHi7q5kylE3L5yIMpNG+DclAKpuxgDQEmvw== dependencies: "@internationalized/date" "^3.5.4" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/system-rsc" "2.1.2" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/system-rsc" "2.1.5" "@react-aria/i18n" "3.11.1" "@react-aria/overlays" "3.22.1" "@react-aria/utils" "3.24.1" "@react-stately/utils" "3.10.1" -"@nextui-org/table@2.0.36": - version "2.0.36" - resolved "https://registry.yarnpkg.com/@nextui-org/table/-/table-2.0.36.tgz#607dc9d55637e0160abf48ffe72aa52cb7142db7" - integrity sha512-vpohZo5p3XmT6FLOKKwmm8SdCA/h2QPQz6Y66sAfHuoqAfkmfVfAeyKgYTe20pVJy3Whvyix6IA8e0eWETDTEw== +"@nextui-org/table@2.0.39": + version "2.0.39" + resolved "https://registry.npmjs.org/@nextui-org/table/-/table-2.0.39.tgz" + integrity sha512-VYvmrQ6GliwmzukKLZ7Nxp3sFXdskWZp8/BjwROLFE9Zco22CC0++7VPG3ebOYAIhi4e1Je+QUTx4/eh2wZZgg== dependencies: - "@nextui-org/checkbox" "2.1.2" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-icons" "2.0.8" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/spacer" "2.0.29" + "@nextui-org/checkbox" "2.1.4" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-icons" "2.0.9" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/spacer" "2.0.32" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/table" "3.14.1" @@ -891,17 +1087,17 @@ "@react-types/grid" "3.2.6" "@react-types/table" "3.9.5" -"@nextui-org/tabs@2.0.32": - version "2.0.32" - resolved "https://registry.yarnpkg.com/@nextui-org/tabs/-/tabs-2.0.32.tgz#13fe104097664f6d627bc60e37673492b9069456" - integrity sha512-TVCwm1GI7rkf/o7+eWpklRQBTg2Y/m3eNBLU1jA+Ppqs+Mr31y7BHoNLqTZ6jpj59DA1OcpwbJH5xhGk0pOvwA== +"@nextui-org/tabs@2.0.35": + version "2.0.35" + resolved "https://registry.npmjs.org/@nextui-org/tabs/-/tabs-2.0.35.tgz" + integrity sha512-K6uDZbJwn1qLRw8XeBS2TwGQl9zKXg3Q1ShLzVG2IjTGHGNAn9lwkUzn0FNUNaU1GK2o8wOyKhX7K02J3Ev5fw== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/framer-utils" "2.0.21" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-is-mounted" "2.0.5" - "@nextui-org/use-update-effect" "2.0.5" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/framer-utils" "2.0.24" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-is-mounted" "2.0.6" + "@nextui-org/use-update-effect" "2.0.6" "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" "@react-aria/tabs" "3.9.1" @@ -911,10 +1107,10 @@ "@react-types/tabs" "3.3.7" scroll-into-view-if-needed "3.0.10" -"@nextui-org/theme@2.2.6": - version "2.2.6" - resolved "https://registry.yarnpkg.com/@nextui-org/theme/-/theme-2.2.6.tgz#57f8fca6c2fddaf72df3c92e0e9befbd4a5a3002" - integrity sha512-FyDp5edpmjbvPzRx+D2+Km1oZ73wQOzKMSBPomOgP0h9OFnnTHqKlmtbGhWSk2cEyYN9VsaGvqJTw8X35/aChQ== +"@nextui-org/theme@2.2.9": + version "2.2.9" + resolved "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.2.9.tgz" + integrity sha512-TN2I9sMriLaj00pXsIMlg19+UHeOdjzS2JV0u4gjL14mSbQl5BYNxgbvU3gbMqkZZQ6OpwT4RnT8RS+ks6TXCw== dependencies: clsx "^1.2.1" color "^4.2.3" @@ -929,16 +1125,16 @@ tailwind-merge "^1.14.0" tailwind-variants "^0.1.20" -"@nextui-org/tooltip@2.0.36": - version "2.0.36" - resolved "https://registry.yarnpkg.com/@nextui-org/tooltip/-/tooltip-2.0.36.tgz#59ca20f60f7e8268659e1ee3a9b7a7ff25ef971e" - integrity sha512-tV3BefTvmYzSC4TX+UPV7p3F5fs52sFzQ1/Try/Bkz5B1F9yXviO9dV2/pqXSfOJVvLVJS2RMi5wZkaYh1xtNw== +"@nextui-org/tooltip@2.0.39": + version "2.0.39" + resolved "https://registry.npmjs.org/@nextui-org/tooltip/-/tooltip-2.0.39.tgz" + integrity sha512-DWP3XAmVb/SlcdI4SQodtT8ZyMzYMuvRbq4+JQwm+qq1+FGs55z15+8h9DRFQEseEEaDs0hCs6+kgbieZlUitw== dependencies: - "@nextui-org/aria-utils" "2.0.21" - "@nextui-org/framer-utils" "2.0.21" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/aria-utils" "2.0.24" + "@nextui-org/framer-utils" "2.0.24" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" + "@nextui-org/use-safe-layout-effect" "2.0.6" "@react-aria/interactions" "3.21.3" "@react-aria/overlays" "3.22.1" "@react-aria/tooltip" "3.7.4" @@ -947,10 +1143,10 @@ "@react-types/overlays" "3.8.7" "@react-types/tooltip" "3.4.9" -"@nextui-org/use-aria-accordion@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.0.6.tgz#6cdad59f02a9496c505782658e3a3ce996d47e2d" - integrity sha512-47+/gO67YufQUtL0f2TIdaa8++5EBtIK7Ltq1GpUat2qjbMFvIb6Ao/Jf3KHU5NicLLRnWPSK1vNaupkYwN/ew== +"@nextui-org/use-aria-accordion@2.0.7": + version "2.0.7" + resolved "https://registry.npmjs.org/@nextui-org/use-aria-accordion/-/use-aria-accordion-2.0.7.tgz" + integrity sha512-VzGlxmsu2tWG2Pht1e0PBz40jz95v0OEKYVXq91WpDMwj8Bl1CYvxrw2Qz41/5Xi0X843Mmo4sPwrc/hk0+RHA== dependencies: "@react-aria/button" "3.9.5" "@react-aria/focus" "3.17.1" @@ -960,10 +1156,10 @@ "@react-types/accordion" "3.0.0-alpha.21" "@react-types/shared" "3.23.1" -"@nextui-org/use-aria-button@2.0.9": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-button/-/use-aria-button-2.0.9.tgz#b537c0d208ad2502c0835415b039146612c5153f" - integrity sha512-5FjDl57/1Ey3MgJn+yB0/CPABsSVgXiE+jT7ZLnSqH9kmdXV/eMiuplF7fOOvaSMCA1cE3KCetaPVDIZoJI1/w== +"@nextui-org/use-aria-button@2.0.10": + version "2.0.10" + resolved "https://registry.npmjs.org/@nextui-org/use-aria-button/-/use-aria-button-2.0.10.tgz" + integrity sha512-tUpp4QMr1zugKPevyToeRHIufTuc/g+67/r/oQLRTG0mMo3yGVmggykQuYn22fqqZPpW6nHcB9VYc+XtZZ27TQ== dependencies: "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" @@ -971,10 +1167,10 @@ "@react-types/button" "3.9.4" "@react-types/shared" "3.23.1" -"@nextui-org/use-aria-link@2.0.18": - version "2.0.18" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-link/-/use-aria-link-2.0.18.tgz#9cf8760a98faa4f4931f07172fae3e1c2bd42f7e" - integrity sha512-6ZIIOfMMGbSOF9FcJTPrsVOm2LP7OV+QwF0vYelZeEK5zFXb5f8e2J/fEbCVWKLPFDB2VyoBUDWMzRfrizixzg== +"@nextui-org/use-aria-link@2.0.19": + version "2.0.19" + resolved "https://registry.npmjs.org/@nextui-org/use-aria-link/-/use-aria-link-2.0.19.tgz" + integrity sha512-ef61cJLlwcR4zBWiaeHZy4K18juFjUup2SslfLIAiZz3kVosBCGKmkJkw1SASYY8+D/oUc2B6BFIk25YEsRKRw== dependencies: "@react-aria/focus" "3.17.1" "@react-aria/interactions" "3.21.3" @@ -982,10 +1178,10 @@ "@react-types/link" "3.5.5" "@react-types/shared" "3.23.1" -"@nextui-org/use-aria-menu@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-menu/-/use-aria-menu-2.0.5.tgz#a27cdb58179eb96770e85a0d0caaae229ec09229" - integrity sha512-7bAwISb4vIGhAuvZEHpb/28u0k2/HxNhMJUcz/UxVJTMqSkbSJR2RKdm64WfhEq2A8ZtvED0BAJbDuPf4Q4avg== +"@nextui-org/use-aria-menu@2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@nextui-org/use-aria-menu/-/use-aria-menu-2.0.6.tgz" + integrity sha512-fGDF25E99THbgeDV2r2w4BHw5ZbGW3Lu6Y+vbLUcLBBh6x8/W8cqrpYFrzSUzn1RCun1t17yOAHZEV2rbvtMzA== dependencies: "@react-aria/i18n" "3.11.1" "@react-aria/interactions" "3.21.3" @@ -997,20 +1193,20 @@ "@react-types/menu" "3.9.9" "@react-types/shared" "3.23.1" -"@nextui-org/use-aria-modal-overlay@2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.0.10.tgz#863b879cc780421c1f5d4277a60309ab444a2683" - integrity sha512-/VONX/beH4vu7SQjAtxcQoRhdAOro+QeBk9XOW+qcNvxZG4Em1vf1KFmpHRC40DtsrUk3I0cxaZezeIgfOZ41Q== +"@nextui-org/use-aria-modal-overlay@2.0.11": + version "2.0.11" + resolved "https://registry.npmjs.org/@nextui-org/use-aria-modal-overlay/-/use-aria-modal-overlay-2.0.11.tgz" + integrity sha512-crMOCHyGIiBJiihxqidJCNR3AHH62uewfImDLEwyE/SlIkhAqW5jteUhkq0QfCSH4U/ydWisQ14niWDEgtzxXg== dependencies: "@react-aria/overlays" "3.22.1" "@react-aria/utils" "3.24.1" "@react-stately/overlays" "3.6.7" "@react-types/shared" "3.23.1" -"@nextui-org/use-aria-multiselect@2.2.2": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.2.2.tgz#b253d9412d5868434137551b283d770b6db2e0e2" - integrity sha512-iFw9CVRWTKBl+c1FbbHxp4K0B6aQTXSzXiIP09TJ1NQ10fk1GQXBIhFUIyvIwRJRGvYAL+vwkgj39Ac1p1esJQ== +"@nextui-org/use-aria-multiselect@2.2.3": + version "2.2.3" + resolved "https://registry.npmjs.org/@nextui-org/use-aria-multiselect/-/use-aria-multiselect-2.2.3.tgz" + integrity sha512-VeRoyyUUVgJ7DrdfzU6onjohHxJfG7bmwpIfQyurMzvTZcmcVUGTnddAnRPVEoOro68tTAj4IuPs/4xkf1aXxg== dependencies: "@react-aria/i18n" "3.11.1" "@react-aria/interactions" "3.21.3" @@ -1027,100 +1223,100 @@ "@react-types/select" "3.9.4" "@react-types/shared" "3.23.1" -"@nextui-org/use-aria-toggle-button@2.0.9": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.9.tgz#d97751d871e65c3ce399ebfe87b14988456de3cd" - integrity sha512-JpPD97tYpPwyhgXgJbWYgMDp5ZysM1LyvvmyHmq6BtvSpyYqQKU7V3LDXuirBEN6NwHHZRfXy4/mUid/L6W0wA== +"@nextui-org/use-aria-toggle-button@2.0.10": + version "2.0.10" + resolved "https://registry.npmjs.org/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.10.tgz" + integrity sha512-U5jOmEO+nMIgYvBF0+gJtdq8C6dynGMjzAboPG4FhuHOzDoNiC12G5FIbGnRe8K1hMsKVuaI72p9986NhfqNgw== dependencies: - "@nextui-org/use-aria-button" "2.0.9" + "@nextui-org/use-aria-button" "2.0.10" "@react-aria/utils" "3.24.1" "@react-stately/toggle" "3.7.4" "@react-types/button" "3.9.4" "@react-types/shared" "3.23.1" -"@nextui-org/use-callback-ref@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nextui-org/use-callback-ref/-/use-callback-ref-2.0.5.tgz#7664dfedfb4ad35dd00b61d1d57477b805e1e8d2" - integrity sha512-lcjlV5yaDTiFSv06E5RtQNqy+O6XqH/Q/yz+ka1ZBlZF/FdzEPNRfJ0shN2D7Sh3DdbvV2lySbA2g/0d94geaw== +"@nextui-org/use-callback-ref@2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@nextui-org/use-callback-ref/-/use-callback-ref-2.0.6.tgz" + integrity sha512-2WcwWuK1L/wIpTbibnLrysmmkzWomvkVIcgWayB6n/w+bpPrPCG7Zyg2WHzmMmDhe6imV//KKBgNKRi8Xhu/VA== dependencies: - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/use-safe-layout-effect" "2.0.6" -"@nextui-org/use-clipboard@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nextui-org/use-clipboard/-/use-clipboard-2.0.5.tgz#846293369105d386ea0b6e4dfd4e776ce561ed03" - integrity sha512-1ExwXM8ENmc/kVDqKoiPGrBP/0B7rZ43iSv2MoWD1Qpc8GHg71Rv7NTIlBDoD/pfUfqkab6x66iKC7AVR8rifA== +"@nextui-org/use-clipboard@2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@nextui-org/use-clipboard/-/use-clipboard-2.0.6.tgz" + integrity sha512-UQbCoAX1vqEKYeMF8Xp2RdTqbDD8Or16+7W4f8OQc5+uaJeKaAL6LPITi5M5ipgruTvzM845XooHdiAStH322Q== -"@nextui-org/use-data-scroll-overflow@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.1.4.tgz#56cdc6b45076b56b9e1d035fb7e2d12b6c43e41b" - integrity sha512-0YqUAe/b9aZftUQOH7sWqBMJHGLyC2Q/ixFyjq8Q1TijrqEyGESGQ2tm0+FHytI04drV+mnsbf6+q2QIKyqGSg== +"@nextui-org/use-data-scroll-overflow@2.1.6": + version "2.1.6" + resolved "https://registry.npmjs.org/@nextui-org/use-data-scroll-overflow/-/use-data-scroll-overflow-2.1.6.tgz" + integrity sha512-z9XzBF64qjTSp6jTttMDEPku7Xpgci/tYTokEQHWgydRg3FZEaBqRgOOMeiXAV1Py/kQB062MjPSneUtwYlozA== dependencies: - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/shared-utils" "2.0.7" -"@nextui-org/use-disclosure@2.0.9": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@nextui-org/use-disclosure/-/use-disclosure-2.0.9.tgz#082f55998508241b8c9b008ee96d96c5df483da4" - integrity sha512-d1Pksmm6zleZAdNraD0s97E+sXHrzI0vZ8tLNzE9yGNOf/VRMBvjpfa9S4Zl7oR+StNbST3JofCqmSHtRNe7hg== +"@nextui-org/use-disclosure@2.0.10": + version "2.0.10" + resolved "https://registry.npmjs.org/@nextui-org/use-disclosure/-/use-disclosure-2.0.10.tgz" + integrity sha512-s2I58d7x2f1JRriZnNm9ZoxrGmxF+DnC9BXM1sD99Wq1VNMd0dhitmx0mUWfUB7l5HLyZgKOeiSLG+ugy1F1Yw== dependencies: - "@nextui-org/use-callback-ref" "2.0.5" + "@nextui-org/use-callback-ref" "2.0.6" "@react-aria/utils" "3.24.1" "@react-stately/utils" "3.10.1" -"@nextui-org/use-image@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nextui-org/use-image/-/use-image-2.0.5.tgz#1482fed65e152e84fe742658e6e6f42e08547608" - integrity sha512-FAMyvZS9XSNLqHEmU6xykMgwIFJj/V9/JpTiZAQziz2wqMiUONIBpYpGOlI+pPBNlhCkw62KHm/19vHW49FWhA== +"@nextui-org/use-image@2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@nextui-org/use-image/-/use-image-2.0.6.tgz" + integrity sha512-VelN9y3vzwIpPfubFMh00YRQ0f4+I5FElcAvAqoo0Kfb0K7sGrTo1lZNApHm6yBN2gJMMeccG9u7bZB+wcDGZQ== dependencies: - "@nextui-org/use-safe-layout-effect" "2.0.5" + "@nextui-org/use-safe-layout-effect" "2.0.6" -"@nextui-org/use-is-mobile@2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@nextui-org/use-is-mobile/-/use-is-mobile-2.0.8.tgz#9b77f22f68a4ce959de9a0f101ce465a33fcdcd8" - integrity sha512-fp6UgfmYTkdri3fKeFUapr0TuJGRTskrTZixh+r1aqTcEWtaeef+Nli5VKRTJb9nqYKkgJDRhC39Z5s/rgq0mA== +"@nextui-org/use-is-mobile@2.0.9": + version "2.0.9" + resolved "https://registry.npmjs.org/@nextui-org/use-is-mobile/-/use-is-mobile-2.0.9.tgz" + integrity sha512-u5pRmPV0wacdpOcAkQnWwE30yNBl2uk1WvbWkrSELxIVRN22+fTIYn8ynnHK0JbJFTA6/5zh7uIfETQu3L6KjA== dependencies: "@react-aria/ssr" "3.9.4" -"@nextui-org/use-is-mounted@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nextui-org/use-is-mounted/-/use-is-mounted-2.0.5.tgz#bdd739c23f7cc8268bfbff35a0a57080d8837332" - integrity sha512-gk698Uwmj/XhchBsnI5Ups5uzEXuZvsPK45K6goi2/ADKXSYxHOcSgwoexytqJBb/7tpi+emi2CRTAjAFZDQqA== +"@nextui-org/use-is-mounted@2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@nextui-org/use-is-mounted/-/use-is-mounted-2.0.6.tgz" + integrity sha512-/lcMdYnwBZ1EuKMLRIhHeAZG8stXWNTz7wBweAlLId23VC4VHgCp/s9K9Vbj1A5/r8FiFQeoTmXQuMAMUoPRtg== -"@nextui-org/use-measure@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nextui-org/use-measure/-/use-measure-2.0.1.tgz#05cad80847492a3399ac5b8bf7756c86c136ea32" - integrity sha512-uEtdrdBdFz4Fgbfk2vmQ+rEb+eFa5o4yI90udasvfpaIrMBfrFOlRW5+yn3uXKB8JThET4Gf2on/wlJpo567Dg== +"@nextui-org/use-measure@2.0.2": + version "2.0.2" + resolved "https://registry.npmjs.org/@nextui-org/use-measure/-/use-measure-2.0.2.tgz" + integrity sha512-H/RSPPA9B5sZ10wiXR3jLlYFEuiVnc0O/sgLLQfrb5M0hvHoaqMThnsZpm//5iyS7tD7kxPeYNLa1EhzlQKxDA== -"@nextui-org/use-pagination@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@nextui-org/use-pagination/-/use-pagination-2.0.7.tgz#164cc6f0a8b8a9811c8dc726a0bbd2cd5f2da660" - integrity sha512-a05vLp8YSk4nI+LmDUdjjKj2U1/d3Z1ZALUUrjWJVnTUckaiglHGeoYEh8nqcjDXj4sPC4OcK3ZnW+AGUXDGwA== +"@nextui-org/use-pagination@2.0.9": + version "2.0.9" + resolved "https://registry.npmjs.org/@nextui-org/use-pagination/-/use-pagination-2.0.9.tgz" + integrity sha512-p5Gssyb71/SjRezq2o1aRsYTmC9idziW3pLCJFpVwLGfgWNARf9C6NS1oQsqKgjF5lvzoa88soZRDhKKvRAt/g== dependencies: - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/shared-utils" "2.0.7" "@react-aria/i18n" "3.11.1" -"@nextui-org/use-safe-layout-effect@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.5.tgz#36c40fb2511667f3593035d995c971a29c8495f8" - integrity sha512-YQQlqz82aYxMoEq23jQNG/JBPHF1x3opzyXRHAVxgBEFo9OJqBMZTm23ukpTXm2Ev98T6mpWiTHdfyHJ7IoRog== - -"@nextui-org/use-scroll-position@2.0.6": +"@nextui-org/use-safe-layout-effect@2.0.6": version "2.0.6" - resolved "https://registry.yarnpkg.com/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.6.tgz#58bd0205708709fec8e8224d6dee019449f3aa7b" - integrity sha512-dRwew37XnJOh8d35BuyqzRfnrmKsOUHqi0Owhk0tIGyqifQ/jw65udWpBfa6rwXcd4cKOOqXXHuNGsYTclzc6w== + resolved "https://registry.npmjs.org/@nextui-org/use-safe-layout-effect/-/use-safe-layout-effect-2.0.6.tgz" + integrity sha512-xzEJXf/g9GaSqjLpQ4+Z2/pw1GPq2Fc5cWRGqEXbGauEMXuH8UboRls1BmIV1RuOpqI6FgxkEmxL1EuVIRVmvQ== -"@nextui-org/use-update-effect@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nextui-org/use-update-effect/-/use-update-effect-2.0.5.tgz#b949d5403ba05879f2a6bd78b586b8bed7839ee5" - integrity sha512-4r2CXAD598xc2ifMu97kf8V/lj+NDct2oITbxgXeV4ezWaXHy5/26r1iyVnBzRN/VBz3fwHx3hHdftzcYSZxdA== +"@nextui-org/use-scroll-position@2.0.8": + version "2.0.8" + resolved "https://registry.npmjs.org/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.8.tgz" + integrity sha512-sUuoLEPWxCNlgzayy3VZSneVA1rKSdh4kBuBbYJTp/g2yyrpZYnyYzWpeNJ4dhDQr1cpTDODehJekWPBhNN+uw== -"@nextui-org/user@2.0.31": - version "2.0.31" - resolved "https://registry.yarnpkg.com/@nextui-org/user/-/user-2.0.31.tgz#dab104787169bb46d57cb27c0a7f0bd848affcc6" - integrity sha512-PXWVLB2igKi3MwjVeI5auoK6fhBgT3nizPzabBa95m0/3dg8aex/4oexCRpjef+V5cRD/2z37VHqfelQWqOHjQ== +"@nextui-org/use-update-effect@2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@nextui-org/use-update-effect/-/use-update-effect-2.0.6.tgz" + integrity sha512-n5Qiv3ferKn+cSxU3Vv+96LdG8I/00mzc7Veoan+P9GL0aCTrsPB6RslTsiblaiAXQcqTiFXd8xwsK309DXOXA== + +"@nextui-org/user@2.0.33": + version "2.0.33" + resolved "https://registry.npmjs.org/@nextui-org/user/-/user-2.0.33.tgz" + integrity sha512-v6gGTlsaqM7Ndwtx9N/AAQFRICcIE5DuFxRZRqPfLa+jbZhJuWG2OSIATPeUOxgr8pKWpeV78nETdFKEKcsUPA== dependencies: - "@nextui-org/avatar" "2.0.30" - "@nextui-org/react-utils" "2.0.14" - "@nextui-org/shared-utils" "2.0.5" + "@nextui-org/avatar" "2.0.32" + "@nextui-org/react-utils" "2.0.16" + "@nextui-org/shared-utils" "2.0.7" "@react-aria/focus" "3.17.1" "@react-aria/utils" "3.24.1" @@ -1150,50 +1346,50 @@ resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@prisma/client@^5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.17.0.tgz#9079947bd749689c2dabfb9ecc70a24ebefb1f43" - integrity sha512-N2tnyKayT0Zf7mHjwEyE8iG7FwTmXDHFZ1GnNhQp0pJUObsuel4ZZ1XwfuAYkq5mRIiC/Kot0kt0tGCfLJ70Jw== +"@prisma/client@^5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.18.0.tgz#526e4281a448f214c0ff81d65c39243608c98294" + integrity sha512-BWivkLh+af1kqC89zCJYkHsRcyWsM8/JHpsDMM76DjP3ZdEquJhXa4IeX+HkWPnwJ5FanxEJFZZDTWiDs/Kvyw== -"@prisma/debug@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.17.0.tgz#a765105848993984535b6066f8ebc6e6ead26533" - integrity sha512-l7+AteR3P8FXiYyo496zkuoiJ5r9jLQEdUuxIxNCN1ud8rdbH3GTxm+f+dCyaSv9l9WY+29L9czaVRXz9mULfg== +"@prisma/debug@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.18.0.tgz#527799e044d2903a35945e61ac2d8916e4b61ead" + integrity sha512-f+ZvpTLidSo3LMJxQPVgAxdAjzv5OpzAo/eF8qZqbwvgi2F5cTOI9XCpdRzJYA0iGfajjwjOKKrVq64vkxEfUw== -"@prisma/engines-version@5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053": - version "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053.tgz#3c7cc1ef3ebc34cbd069e5873b9982f2aabf5acd" - integrity sha512-tUuxZZysZDcrk5oaNOdrBnnkoTtmNQPkzINFDjz7eG6vcs9AVDmA/F6K5Plsb2aQc/l5M2EnFqn3htng9FA4hg== +"@prisma/engines-version@5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169": + version "5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169.tgz#203426ebf4ec4e1acce7da4a59ec8f0df92b29e7" + integrity sha512-a/+LpJj8vYU3nmtkg+N3X51ddbt35yYrRe8wqHTJtYQt7l1f8kjIBcCs6sHJvodW/EK5XGvboOiwm47fmNrbgg== -"@prisma/engines@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.17.0.tgz#74dd1aabb22675892760b3cf69a448e3aef4616b" - integrity sha512-+r+Nf+JP210Jur+/X8SIPLtz+uW9YA4QO5IXA+KcSOBe/shT47bCcRMTYCbOESw3FFYFTwe7vU6KTWHKPiwvtg== +"@prisma/engines@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.18.0.tgz#26ea46e26498be622407cf95663d7fb4c39c895b" + integrity sha512-ofmpGLeJ2q2P0wa/XaEgTnX/IsLnvSp/gZts0zjgLNdBhfuj2lowOOPmDcfKljLQUXMvAek3lw5T01kHmCG8rg== dependencies: - "@prisma/debug" "5.17.0" - "@prisma/engines-version" "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" - "@prisma/fetch-engine" "5.17.0" - "@prisma/get-platform" "5.17.0" + "@prisma/debug" "5.18.0" + "@prisma/engines-version" "5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169" + "@prisma/fetch-engine" "5.18.0" + "@prisma/get-platform" "5.18.0" -"@prisma/fetch-engine@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.17.0.tgz#f718dc7426411d1ebeeee53e2d0d38652387f87c" - integrity sha512-ESxiOaHuC488ilLPnrv/tM2KrPhQB5TRris/IeIV4ZvUuKeaicCl4Xj/JCQeG9IlxqOgf1cCg5h5vAzlewN91Q== +"@prisma/fetch-engine@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.18.0.tgz#5b343e2b36b27e2713901ddd032ddd6932b3d55f" + integrity sha512-I/3u0x2n31rGaAuBRx2YK4eB7R/1zCuayo2DGwSpGyrJWsZesrV7QVw7ND0/Suxeo/vLkJ5OwuBqHoCxvTHpOg== dependencies: - "@prisma/debug" "5.17.0" - "@prisma/engines-version" "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" - "@prisma/get-platform" "5.17.0" + "@prisma/debug" "5.18.0" + "@prisma/engines-version" "5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169" + "@prisma/get-platform" "5.18.0" -"@prisma/get-platform@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.17.0.tgz#89fdcae2adddebbbf0e7bd0474a6c49d6023519b" - integrity sha512-UlDgbRozCP1rfJ5Tlkf3Cnftb6srGrEQ4Nm3og+1Se2gWmCZ0hmPIi+tQikGDUVLlvOWx3Gyi9LzgRP+HTXV9w== +"@prisma/get-platform@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.18.0.tgz#0dc4c82fe9a4971f4519a57cb2dd69d8e0df4b71" + integrity sha512-Tk+m7+uhqcKDgnMnFN0lRiH7Ewea0OEsZZs9pqXa7i3+7svS3FSCqDBCaM9x5fmhhkufiG0BtunJVDka+46DlA== dependencies: - "@prisma/debug" "5.17.0" + "@prisma/debug" "5.18.0" "@react-aria/breadcrumbs@3.5.13": version "3.5.13" - resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.5.13.tgz#2686f7f460f20d67fe5cdfe185e32e3e78186962" + resolved "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.13.tgz" integrity sha512-G1Gqf/P6kVdfs94ovwP18fTWuIxadIQgHsXS08JEVcFVYMjb9YjqnEBaohUxD1tq2WldMbYw53ahQblT4NTG+g== dependencies: "@react-aria/i18n" "^3.11.1" @@ -1205,7 +1401,7 @@ "@react-aria/button@3.9.5": version "3.9.5" - resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.9.5.tgz#f0082f58394394f3d16fdf45de57b382748f3345" + resolved "https://registry.npmjs.org/@react-aria/button/-/button-3.9.5.tgz" integrity sha512-dgcYR6j8WDOMLKuVrtxzx4jIC05cVKDzc+HnPO8lNkBAOfjcuN5tkGRtIjLtqjMvpZHhQT5aDbgFpIaZzxgFIg== dependencies: "@react-aria/focus" "^3.17.1" @@ -1218,7 +1414,7 @@ "@react-aria/calendar@3.5.8": version "3.5.8" - resolved "https://registry.yarnpkg.com/@react-aria/calendar/-/calendar-3.5.8.tgz#fd0858b34c8961b76957e9ac13b514f485c329a3" + resolved "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.8.tgz" integrity sha512-Whlp4CeAA5/ZkzrAHUv73kgIRYjw088eYGSc+cvSOCxfrc/2XkBm9rNrnSBv0DvhJ8AG0Fjz3vYakTmF3BgZBw== dependencies: "@internationalized/date" "^3.5.4" @@ -1234,7 +1430,7 @@ "@react-aria/checkbox@3.14.3": version "3.14.3" - resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.14.3.tgz#6e2579681008e460d2c764a03f1f1b54e0815868" + resolved "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.3.tgz" integrity sha512-EtBJL6iu0gvrw3A4R7UeVLR6diaVk/mh4kFBc7c8hQjpEJweRr4hmJT3hrNg3MBcTWLxFiMEXPGgWEwXDBygtA== dependencies: "@react-aria/form" "^3.0.5" @@ -1251,7 +1447,7 @@ "@react-aria/combobox@3.9.1": version "3.9.1" - resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.9.1.tgz#ab12b698b76fd063f386aa5516129b2c72f5bf60" + resolved "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.9.1.tgz" integrity sha512-SpK92dCmT8qn8aEcUAihRQrBb5LZUhwIbDExFII8PvUvEFy/PoQHXIo3j1V29WkutDBDpMvBv/6XRCHGXPqrhQ== dependencies: "@react-aria/i18n" "^3.11.1" @@ -1272,7 +1468,7 @@ "@react-aria/datepicker@3.10.1": version "3.10.1" - resolved "https://registry.yarnpkg.com/@react-aria/datepicker/-/datepicker-3.10.1.tgz#513a9d18e118d4c3d078fdbfc45dca76b7eeb37f" + resolved "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.10.1.tgz" integrity sha512-4HZL593nrNMa1GjBmWEN/OTvNS6d3/16G1YJWlqiUlv11ADulSbqBIjMmkgwrJVFcjrgqtXFy+yyrTA/oq94Zw== dependencies: "@internationalized/date" "^3.5.4" @@ -1296,7 +1492,7 @@ "@react-aria/dialog@3.5.14": version "3.5.14" - resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.5.14.tgz#d4b078410c00b7cc7e6f25f67dfe53fa755be769" + resolved "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.14.tgz" integrity sha512-oqDCjQ8hxe3GStf48XWBf2CliEnxlR9GgSYPHJPUc69WBj68D9rVcCW3kogJnLAnwIyf3FnzbX4wSjvUa88sAQ== dependencies: "@react-aria/focus" "^3.17.1" @@ -1308,7 +1504,7 @@ "@react-aria/focus@3.17.1", "@react-aria/focus@^3.17.1": version "3.17.1" - resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.17.1.tgz#c796a188120421e2fedf438cadacdf463c77ad29" + resolved "https://registry.npmjs.org/@react-aria/focus/-/focus-3.17.1.tgz" integrity sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ== dependencies: "@react-aria/interactions" "^3.21.3" @@ -1317,9 +1513,20 @@ "@swc/helpers" "^0.5.0" clsx "^2.0.0" +"@react-aria/focus@^3.18.1": + version "3.18.1" + resolved "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.1.tgz" + integrity sha512-N0Cy61WCIv+57mbqC7hiZAsB+3rF5n4JKabxUmg/2RTJL6lq7hJ5N4gx75ymKxkN8GnVDwt4pKZah48Wopa5jw== + dependencies: + "@react-aria/interactions" "^3.22.1" + "@react-aria/utils" "^3.25.1" + "@react-types/shared" "^3.24.1" + "@swc/helpers" "^0.5.0" + clsx "^2.0.0" + "@react-aria/form@3.0.5", "@react-aria/form@^3.0.5": version "3.0.5" - resolved "https://registry.yarnpkg.com/@react-aria/form/-/form-3.0.5.tgz#abaf6ac005dc3f98760ac74fdb6524ad189399d6" + resolved "https://registry.npmjs.org/@react-aria/form/-/form-3.0.5.tgz" integrity sha512-n290jRwrrRXO3fS82MyWR+OKN7yznVesy5Q10IclSTVYHHI3VI53xtAPr/WzNjJR1um8aLhOcDNFKwnNIUUCsQ== dependencies: "@react-aria/interactions" "^3.21.3" @@ -1329,28 +1536,27 @@ "@swc/helpers" "^0.5.0" "@react-aria/grid@^3.9.1": - version "3.9.1" - resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.9.1.tgz#7fcf7a8352ece79406caf3cd149947fb9f000009" - integrity sha512-fGEZqAEaS8mqzV/II3N4ndoNWegIcbh+L3PmKbXdpKKUP8VgMs/WY5rYl5WAF0f5RoFwXqx3ibDLeR9tKj/bOg== + version "3.10.1" + resolved "https://registry.npmjs.org/@react-aria/grid/-/grid-3.10.1.tgz" + integrity sha512-7dSgiYVQapBtPV4SIit+9fJ1qoEjtp+PXffJkWAPtGbg/jJ4b0jcVzykH7ARD4w/6jAJN/oVSfrKZqFPoLAd9w== dependencies: - "@react-aria/focus" "^3.17.1" - "@react-aria/i18n" "^3.11.1" - "@react-aria/interactions" "^3.21.3" + "@react-aria/focus" "^3.18.1" + "@react-aria/i18n" "^3.12.1" + "@react-aria/interactions" "^3.22.1" "@react-aria/live-announcer" "^3.3.4" - "@react-aria/selection" "^3.18.1" - "@react-aria/utils" "^3.24.1" - "@react-stately/collections" "^3.10.7" - "@react-stately/grid" "^3.8.7" - "@react-stately/selection" "^3.15.1" - "@react-stately/virtualizer" "^3.7.1" - "@react-types/checkbox" "^3.8.1" - "@react-types/grid" "^3.2.6" - "@react-types/shared" "^3.23.1" + "@react-aria/selection" "^3.19.1" + "@react-aria/utils" "^3.25.1" + "@react-stately/collections" "^3.10.9" + "@react-stately/grid" "^3.9.1" + "@react-stately/selection" "^3.16.1" + "@react-types/checkbox" "^3.8.3" + "@react-types/grid" "^3.2.8" + "@react-types/shared" "^3.24.1" "@swc/helpers" "^0.5.0" "@react-aria/i18n@3.11.1", "@react-aria/i18n@^3.11.1": version "3.11.1" - resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.11.1.tgz#2d238d2be30d8c691b5fa3161f5fb48066fc8e4b" + resolved "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.11.1.tgz" integrity sha512-vuiBHw1kZruNMYeKkTGGnmPyMnM5T+gT8bz97H1FqIq1hQ6OPzmtBZ6W6l6OIMjeHI5oJo4utTwfZl495GALFQ== dependencies: "@internationalized/date" "^3.5.4" @@ -1362,9 +1568,23 @@ "@react-types/shared" "^3.23.1" "@swc/helpers" "^0.5.0" +"@react-aria/i18n@^3.12.1": + version "3.12.1" + resolved "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.1.tgz" + integrity sha512-0q3gyogF9Ekah+9LOo6tcfshxsk2Ope+KdbtFHJVhznedMxn6RpHGcVur5ImbQ1dYafA5CmjBUGJW70b56+BGA== + dependencies: + "@internationalized/date" "^3.5.5" + "@internationalized/message" "^3.1.4" + "@internationalized/number" "^3.5.3" + "@internationalized/string" "^3.2.3" + "@react-aria/ssr" "^3.9.5" + "@react-aria/utils" "^3.25.1" + "@react-types/shared" "^3.24.1" + "@swc/helpers" "^0.5.0" + "@react-aria/interactions@3.21.3", "@react-aria/interactions@^3.21.3": version "3.21.3" - resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.21.3.tgz#a2a3e354a8b894bed7a46e1143453f397f2538d7" + resolved "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.3.tgz" integrity sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA== dependencies: "@react-aria/ssr" "^3.9.4" @@ -1372,9 +1592,19 @@ "@react-types/shared" "^3.23.1" "@swc/helpers" "^0.5.0" +"@react-aria/interactions@^3.22.1": + version "3.22.1" + resolved "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.1.tgz" + integrity sha512-5TLzQaDAQQ5C70yG8GInbO4wIylKY67RfTIIwQPGR/4n5OIjbUD8BOj3NuSsuZ/frUPaBXo1VEBBmSO23fxkjw== + dependencies: + "@react-aria/ssr" "^3.9.5" + "@react-aria/utils" "^3.25.1" + "@react-types/shared" "^3.24.1" + "@swc/helpers" "^0.5.0" + "@react-aria/label@3.7.8", "@react-aria/label@^3.7.8": version "3.7.8" - resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.7.8.tgz#69f1c184836b04445fcedce78db9fd939a0570ea" + resolved "https://registry.npmjs.org/@react-aria/label/-/label-3.7.8.tgz" integrity sha512-MzgTm5+suPA3KX7Ug6ZBK2NX9cin/RFLsv1BdafJ6CZpmUSpWnGE/yQfYUB7csN7j31OsZrD3/P56eShYWAQfg== dependencies: "@react-aria/utils" "^3.24.1" @@ -1383,7 +1613,7 @@ "@react-aria/link@3.7.1", "@react-aria/link@^3.7.1": version "3.7.1" - resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.7.1.tgz#ae75feebc5c6f40e1031abf57f3125d45882e976" + resolved "https://registry.npmjs.org/@react-aria/link/-/link-3.7.1.tgz" integrity sha512-a4IaV50P3fXc7DQvEIPYkJJv26JknFbRzFT5MJOMgtzuhyJoQdILEUK6XHYjcSSNCA7uLgzpojArVk5Hz3lCpw== dependencies: "@react-aria/focus" "^3.17.1" @@ -1395,7 +1625,7 @@ "@react-aria/listbox@3.12.1", "@react-aria/listbox@^3.12.1": version "3.12.1" - resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.12.1.tgz#cc4f0d23630f496273ca5c31b4dfacf6d6f37df1" + resolved "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.12.1.tgz" integrity sha512-7JiUp0NGykbv/HgSpmTY1wqhuf/RmjFxs1HZcNaTv8A+DlzgJYc7yQqFjP3ZA/z5RvJFuuIxggIYmgIFjaRYdA== dependencies: "@react-aria/interactions" "^3.21.3" @@ -1410,14 +1640,14 @@ "@react-aria/live-announcer@^3.3.4": version "3.3.4" - resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.3.4.tgz#97a5830ae7da8546b2d19311fe1606c5d5e0151c" + resolved "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.4.tgz" integrity sha512-w8lxs35QrRrn6pBNzVfyGOeqWdxeVKf9U6bXIVwhq7rrTqRULL8jqy8RJIMfIs1s8G5FpwWYjyBOjl2g5Cu1iA== dependencies: "@swc/helpers" "^0.5.0" "@react-aria/menu@3.14.1", "@react-aria/menu@^3.14.1": version "3.14.1" - resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.14.1.tgz#c9ec25bc374ee9bb02dc3d92d8260df702349133" + resolved "https://registry.npmjs.org/@react-aria/menu/-/menu-3.14.1.tgz" integrity sha512-BYliRb38uAzq05UOFcD5XkjA5foQoXRbcH3ZufBsc4kvh79BcP1PMW6KsXKGJ7dC/PJWUwCui6QL1kUg8PqMHA== dependencies: "@react-aria/focus" "^3.17.1" @@ -1436,7 +1666,7 @@ "@react-aria/overlays@3.22.1", "@react-aria/overlays@^3.22.1": version "3.22.1" - resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.22.1.tgz#7a01673317fa6517bb91b0b7504e303facdc9ccb" + resolved "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.22.1.tgz" integrity sha512-GHiFMWO4EQ6+j6b5QCnNoOYiyx1Gk8ZiwLzzglCI4q1NY5AG2EAmfU4Z1+Gtrf2S5Y0zHbumC7rs9GnPoGLUYg== dependencies: "@react-aria/focus" "^3.17.1" @@ -1453,7 +1683,7 @@ "@react-aria/progress@3.4.13": version "3.4.13" - resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.4.13.tgz#dc86c98ed0f9a164cf62140e13865235c1991548" + resolved "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.13.tgz" integrity sha512-YBV9bOO5JzKvG8QCI0IAA00o6FczMgIDiK8Q9p5gKorFMatFUdRayxlbIPoYHMi+PguLil0jHgC7eOyaUcrZ0g== dependencies: "@react-aria/i18n" "^3.11.1" @@ -1465,7 +1695,7 @@ "@react-aria/radio@3.10.4": version "3.10.4" - resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.10.4.tgz#e1b54fa7a9ee3912a5fe170fc752000eef836c06" + resolved "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.4.tgz" integrity sha512-3fmoMcQtCpgjTwJReFjnvIE/C7zOZeCeWUn4JKDqz9s1ILYsC3Rk5zZ4q66tFn6v+IQnecrKT52wH6+hlVLwTA== dependencies: "@react-aria/focus" "^3.17.1" @@ -1481,7 +1711,7 @@ "@react-aria/selection@3.18.1", "@react-aria/selection@^3.18.1": version "3.18.1" - resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.18.1.tgz#fd6a10a86be187ac2a591cbbc1f41c3aa0c09f7f" + resolved "https://registry.npmjs.org/@react-aria/selection/-/selection-3.18.1.tgz" integrity sha512-GSqN2jX6lh7v+ldqhVjAXDcrWS3N4IsKXxO6L6Ygsye86Q9q9Mq9twWDWWu5IjHD6LoVZLUBCMO+ENGbOkyqeQ== dependencies: "@react-aria/focus" "^3.17.1" @@ -1492,9 +1722,22 @@ "@react-types/shared" "^3.23.1" "@swc/helpers" "^0.5.0" +"@react-aria/selection@^3.19.1": + version "3.19.1" + resolved "https://registry.npmjs.org/@react-aria/selection/-/selection-3.19.1.tgz" + integrity sha512-mbExvq2Omi60sTWFGjwcNz1ja2P8VDsxWAqSypHRTyqXhtgqbv8V/v8Gp+7BmVPH1YHcbhztl6rvUZTDOSszzw== + dependencies: + "@react-aria/focus" "^3.18.1" + "@react-aria/i18n" "^3.12.1" + "@react-aria/interactions" "^3.22.1" + "@react-aria/utils" "^3.25.1" + "@react-stately/selection" "^3.16.1" + "@react-types/shared" "^3.24.1" + "@swc/helpers" "^0.5.0" + "@react-aria/slider@3.7.8": version "3.7.8" - resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.7.8.tgz#6f2109527e0ebfaa1aaf46fce2460549d5550e1b" + resolved "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.8.tgz" integrity sha512-MYvPcM0K8jxEJJicUK2+WxUkBIM/mquBxOTOSSIL3CszA80nXIGVnLlCUnQV3LOUzpWtabbWaZokSPtGgOgQOw== dependencies: "@react-aria/focus" "^3.17.1" @@ -1508,27 +1751,34 @@ "@swc/helpers" "^0.5.0" "@react-aria/spinbutton@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@react-aria/spinbutton/-/spinbutton-3.6.5.tgz#77a69c26dfc74381bc1f112835eb59c572d659dd" - integrity sha512-0aACBarF/Xr/7ixzjVBTQ0NBwwwsoGkf5v6AVFVMTC0uYMXHTALvRs+ULHjHMa5e/cX/aPlEvaVT7jfSs+Xy9Q== + version "3.6.7" + resolved "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.7.tgz" + integrity sha512-OCimp4yXoFIgh6WAMOls5DDDRDRO75ZFic3YA6wLWTRNHxo1Lj8S90i1A6pakY6bi4hdBCKmj4DnFSNKAw1iWg== dependencies: - "@react-aria/i18n" "^3.11.1" + "@react-aria/i18n" "^3.12.1" "@react-aria/live-announcer" "^3.3.4" - "@react-aria/utils" "^3.24.1" - "@react-types/button" "^3.9.4" - "@react-types/shared" "^3.23.1" + "@react-aria/utils" "^3.25.1" + "@react-types/button" "^3.9.6" + "@react-types/shared" "^3.24.1" "@swc/helpers" "^0.5.0" "@react-aria/ssr@3.9.4", "@react-aria/ssr@^3.9.4": version "3.9.4" - resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.4.tgz#9da8b10342c156e816dbfa4c9e713b21f274d7ab" + resolved "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.4.tgz" integrity sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ== dependencies: "@swc/helpers" "^0.5.0" +"@react-aria/ssr@^3.9.5": + version "3.9.5" + resolved "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz" + integrity sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ== + dependencies: + "@swc/helpers" "^0.5.0" + "@react-aria/switch@3.6.4": version "3.6.4" - resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.6.4.tgz#6dba901414785de23ee2f4873ea5e23973fdf58d" + resolved "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.4.tgz" integrity sha512-2nVqz4ZuJyof47IpGSt3oZRmp+EdS8wzeDYgf42WHQXrx4uEOk1mdLJ20+NnsYhj/2NHZsvXVrjBeKMjlMs+0w== dependencies: "@react-aria/toggle" "^3.10.4" @@ -1538,7 +1788,7 @@ "@react-aria/table@3.14.1": version "3.14.1" - resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.14.1.tgz#6316349e17fe6adfe9132aab75ce72c4a44c028f" + resolved "https://registry.npmjs.org/@react-aria/table/-/table-3.14.1.tgz" integrity sha512-WaPgQe4zQF5OaluO5rm+Y2nEoFR63vsLd4BT4yjK1uaFhKhDY2Zk+1SCVQvBLLKS4WK9dhP05nrNzT0vp/ZPOw== dependencies: "@react-aria/focus" "^3.17.1" @@ -1560,7 +1810,7 @@ "@react-aria/tabs@3.9.1": version "3.9.1" - resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.9.1.tgz#3cfb44648de1f896499d210b80deb1ead8ec4295" + resolved "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.9.1.tgz" integrity sha512-S5v/0sRcOaSXaJYZuuy1ZVzYc7JD4sDyseG1133GjyuNjJOFHgoWMb+b4uxNIJbZxnLgynn/ZDBZSO+qU+fIxw== dependencies: "@react-aria/focus" "^3.17.1" @@ -1574,7 +1824,7 @@ "@react-aria/textfield@3.14.5", "@react-aria/textfield@^3.14.5": version "3.14.5" - resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.14.5.tgz#afb46b4af019dc88fc7f77396cea5ec0c9701f01" + resolved "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.5.tgz" integrity sha512-hj7H+66BjB1iTKKaFXwSZBZg88YT+wZboEXZ0DNdQB2ytzoz/g045wBItUuNi4ZjXI3P+0AOZznVMYadWBAmiA== dependencies: "@react-aria/focus" "^3.17.1" @@ -1588,20 +1838,21 @@ "@swc/helpers" "^0.5.0" "@react-aria/toggle@^3.10.4": - version "3.10.4" - resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.10.4.tgz#a3673ead72c389381c6217b5bed7269300351a8e" - integrity sha512-bRk+CdB8QzrSyGNjENXiTWxfzYKRw753iwQXsEAU7agPCUdB8cZJyrhbaUoD0rwczzTp2zDbZ9rRbUPdsBE2YQ== + version "3.10.6" + resolved "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.6.tgz" + integrity sha512-AGlbtB1b8grrtjbiW5Au0LKYzxR83RHbHhaUkFwajyYRGyuEzr3Y03OiveoPB+DayA8Gz3H1ZVmW++8JZQOWHw== dependencies: - "@react-aria/focus" "^3.17.1" - "@react-aria/interactions" "^3.21.3" - "@react-aria/utils" "^3.24.1" - "@react-stately/toggle" "^3.7.4" - "@react-types/checkbox" "^3.8.1" + "@react-aria/focus" "^3.18.1" + "@react-aria/interactions" "^3.22.1" + "@react-aria/utils" "^3.25.1" + "@react-stately/toggle" "^3.7.6" + "@react-types/checkbox" "^3.8.3" + "@react-types/shared" "^3.24.1" "@swc/helpers" "^0.5.0" "@react-aria/tooltip@3.7.4": version "3.7.4" - resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.7.4.tgz#0efe8b4cc543a39395e99861ad6f0c64cd746026" + resolved "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.4.tgz" integrity sha512-+XRx4HlLYqWY3fB8Z60bQi/rbWDIGlFUtXYbtoa1J+EyRWfhpvsYImP8qeeNO/vgjUtDy1j9oKa8p6App9mBMQ== dependencies: "@react-aria/focus" "^3.17.1" @@ -1614,7 +1865,7 @@ "@react-aria/utils@3.24.1", "@react-aria/utils@^3.24.1": version "3.24.1" - resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.24.1.tgz#9d16023f07c23c41793c9030a9bd203a9c8cf0a7" + resolved "https://registry.npmjs.org/@react-aria/utils/-/utils-3.24.1.tgz" integrity sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q== dependencies: "@react-aria/ssr" "^3.9.4" @@ -1623,9 +1874,20 @@ "@swc/helpers" "^0.5.0" clsx "^2.0.0" +"@react-aria/utils@^3.25.1": + version "3.25.1" + resolved "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz" + integrity sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw== + dependencies: + "@react-aria/ssr" "^3.9.5" + "@react-stately/utils" "^3.10.2" + "@react-types/shared" "^3.24.1" + "@swc/helpers" "^0.5.0" + clsx "^2.0.0" + "@react-aria/visually-hidden@3.8.12", "@react-aria/visually-hidden@^3.8.12": version "3.8.12" - resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.8.12.tgz#89388b4773b8fbea4b5f9682e807510c14218c93" + resolved "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.12.tgz" integrity sha512-Bawm+2Cmw3Xrlr7ARzl2RLtKh0lNUdJ0eNqzWcyx4c0VHUAWtThmH5l+HRqFUGzzutFZVo89SAy40BAbd0gjVw== dependencies: "@react-aria/interactions" "^3.21.3" @@ -1635,7 +1897,7 @@ "@react-stately/calendar@3.5.1", "@react-stately/calendar@^3.5.1": version "3.5.1" - resolved "https://registry.yarnpkg.com/@react-stately/calendar/-/calendar-3.5.1.tgz#3e865d69675ba78f56e7abfadff0ef667f438a69" + resolved "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.5.1.tgz" integrity sha512-7l7QhqGUJ5AzWHfvZzbTe3J4t72Ht5BmhW4hlVI7flQXtfrmYkVtl3ZdytEZkkHmWGYZRW9b4IQTQGZxhtlElA== dependencies: "@internationalized/date" "^3.5.4" @@ -1646,7 +1908,7 @@ "@react-stately/checkbox@3.6.5", "@react-stately/checkbox@^3.6.5": version "3.6.5" - resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.6.5.tgz#0566eae3ba3a84af6f29526b3feaf124d3c3a66b" + resolved "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.5.tgz" integrity sha512-IXV3f9k+LtmfQLE+DKIN41Q5QB/YBLDCB1YVx5PEdRp52S9+EACD5683rjVm8NVRDwjMi2SP6RnFRk7fVb5Azg== dependencies: "@react-stately/form" "^3.0.3" @@ -1657,15 +1919,23 @@ "@react-stately/collections@3.10.7", "@react-stately/collections@^3.10.7": version "3.10.7" - resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.10.7.tgz#b1add46cb8e2f2a0d33938ef1b232fb2d0fd11eb" + resolved "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.7.tgz" integrity sha512-KRo5O2MWVL8n3aiqb+XR3vP6akmHLhLWYZEmPKjIv0ghQaEebBTrN3wiEjtd6dzllv0QqcWvDLM1LntNfJ2TsA== dependencies: "@react-types/shared" "^3.23.1" "@swc/helpers" "^0.5.0" +"@react-stately/collections@^3.10.9": + version "3.10.9" + resolved "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.9.tgz" + integrity sha512-plyrng6hOQMG8LrjArMA6ts/DgWyXln3g90/hFNbqe/hdVYF53sDVsj8Jb+5LtoYTpiAlV6eOvy1XR0vPZUf8w== + dependencies: + "@react-types/shared" "^3.24.1" + "@swc/helpers" "^0.5.0" + "@react-stately/combobox@3.8.4", "@react-stately/combobox@^3.8.4": version "3.8.4" - resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.8.4.tgz#6540ec4d53af210e6f3a769ba3f2615a55380984" + resolved "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.4.tgz" integrity sha512-iLVGvKRRz0TeJXZhZyK783hveHpYA6xovOSdzSD+WGYpiPXo1QrcrNoH3AE0Z2sHtorU+8nc0j58vh5PB+m2AA== dependencies: "@react-stately/collections" "^3.10.7" @@ -1680,7 +1950,7 @@ "@react-stately/datepicker@3.9.4", "@react-stately/datepicker@^3.9.4": version "3.9.4" - resolved "https://registry.yarnpkg.com/@react-stately/datepicker/-/datepicker-3.9.4.tgz#c9862cdc09da72760ed3005169223c7743b44b2d" + resolved "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.4.tgz" integrity sha512-yBdX01jn6gq4NIVvHIqdjBUPo+WN8Bujc4OnPw+ZnfA4jI0eIgq04pfZ84cp1LVXW0IB0VaCu1AlQ/kvtZjfGA== dependencies: "@internationalized/date" "^3.5.4" @@ -1694,33 +1964,41 @@ "@react-stately/flags@^3.0.3": version "3.0.3" - resolved "https://registry.yarnpkg.com/@react-stately/flags/-/flags-3.0.3.tgz#53a58c0140d61575787127a762b7901b4a7fa896" + resolved "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.3.tgz" integrity sha512-/ha7XFA0RZTQsbzSPwu3KkbNMgbvuM0GuMTYLTBWpgBrovBNTM+QqI/PfZTdHg8PwCYF4H5Y8gjdSpdulCvJFw== dependencies: "@swc/helpers" "^0.5.0" "@react-stately/form@3.0.3", "@react-stately/form@^3.0.3": version "3.0.3" - resolved "https://registry.yarnpkg.com/@react-stately/form/-/form-3.0.3.tgz#9894f9b219cc4cfbbde814d43d3f897bc43b25b3" + resolved "https://registry.npmjs.org/@react-stately/form/-/form-3.0.3.tgz" integrity sha512-92YYBvlHEWUGUpXgIaQ48J50jU9XrxfjYIN8BTvvhBHdD63oWgm8DzQnyT/NIAMzdLnhkg7vP+fjG8LjHeyIAg== dependencies: "@react-types/shared" "^3.23.1" "@swc/helpers" "^0.5.0" -"@react-stately/grid@^3.8.7": - version "3.8.7" - resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.8.7.tgz#5c8aa22c83c0cb1146edad716c218739768e72ca" - integrity sha512-he3TXCLAhF5C5z1/G4ySzcwyt7PEiWcVIupxebJQqRyFrNWemSuv+7tolnStmG8maMVIyV3P/3j4eRBbdSlOIg== +"@react-stately/form@^3.0.5": + version "3.0.5" + resolved "https://registry.npmjs.org/@react-stately/form/-/form-3.0.5.tgz" + integrity sha512-J3plwJ63HQz109OdmaTqTA8Qhvl3gcYYK7DtgKyNP6mc/Me2Q4tl2avkWoA+22NRuv5m+J8TpBk4AVHUEOwqeQ== dependencies: - "@react-stately/collections" "^3.10.7" - "@react-stately/selection" "^3.15.1" - "@react-types/grid" "^3.2.6" - "@react-types/shared" "^3.23.1" + "@react-types/shared" "^3.24.1" + "@swc/helpers" "^0.5.0" + +"@react-stately/grid@^3.8.7", "@react-stately/grid@^3.9.1": + version "3.9.1" + resolved "https://registry.npmjs.org/@react-stately/grid/-/grid-3.9.1.tgz" + integrity sha512-LSVIcXO/cqwG0IgDSk2juDbpARBS1IzGnsTp/8vSOejMxq5MXrwxL5hUcqNczL8Ss6aLpELm42tCS0kPm3cMKw== + dependencies: + "@react-stately/collections" "^3.10.9" + "@react-stately/selection" "^3.16.1" + "@react-types/grid" "^3.2.8" + "@react-types/shared" "^3.24.1" "@swc/helpers" "^0.5.0" "@react-stately/list@3.10.5", "@react-stately/list@^3.10.5": version "3.10.5" - resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.10.5.tgz#b68ebd595b5f4a51d6719cdcabd34f0780e95b85" + resolved "https://registry.npmjs.org/@react-stately/list/-/list-3.10.5.tgz" integrity sha512-fV9plO+6QDHiewsYIhboxcDhF17GO95xepC5ki0bKXo44gr14g/LSo/BMmsaMnV+1BuGdBunB05bO4QOIaigXA== dependencies: "@react-stately/collections" "^3.10.7" @@ -1729,9 +2007,20 @@ "@react-types/shared" "^3.23.1" "@swc/helpers" "^0.5.0" +"@react-stately/list@^3.10.7": + version "3.10.7" + resolved "https://registry.npmjs.org/@react-stately/list/-/list-3.10.7.tgz" + integrity sha512-W5PG7uG5GQV2Q59vXJE7QLKHZIoUNEx+JmHrBUCMKUgyngSpKIIEDR/R/C1b6ZJ9jMqqZA68Zlnd5iK1/mBi1A== + dependencies: + "@react-stately/collections" "^3.10.9" + "@react-stately/selection" "^3.16.1" + "@react-stately/utils" "^3.10.2" + "@react-types/shared" "^3.24.1" + "@swc/helpers" "^0.5.0" + "@react-stately/menu@3.7.1", "@react-stately/menu@^3.7.1": version "3.7.1" - resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.7.1.tgz#af3c259c519de036d9e80d7d8370278c7b042c6a" + resolved "https://registry.npmjs.org/@react-stately/menu/-/menu-3.7.1.tgz" integrity sha512-mX1w9HHzt+xal1WIT2xGrTQsoLvDwuB2R1Er1MBABs//MsJzccycatcgV/J/28m6tO5M9iuFQQvLV+i1dCtodg== dependencies: "@react-stately/overlays" "^3.6.7" @@ -1741,16 +2030,25 @@ "@react-stately/overlays@3.6.7", "@react-stately/overlays@^3.6.7": version "3.6.7" - resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.6.7.tgz#d4aa1b709e6e72306c33308bb031466730dd0480" + resolved "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.7.tgz" integrity sha512-6zp8v/iNUm6YQap0loaFx6PlvN8C0DgWHNlrlzMtMmNuvjhjR0wYXVaTfNoUZBWj25tlDM81ukXOjpRXg9rLrw== dependencies: "@react-stately/utils" "^3.10.1" "@react-types/overlays" "^3.8.7" "@swc/helpers" "^0.5.0" +"@react-stately/overlays@^3.6.9": + version "3.6.9" + resolved "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.9.tgz" + integrity sha512-4chfyzKw7P2UEainm0yzjUgYwG1ovBejN88eTrn+O62x5huuMCwe0cbMxmYh4y7IhRFSee3jIJd0SP0u/+i39w== + dependencies: + "@react-stately/utils" "^3.10.2" + "@react-types/overlays" "^3.8.9" + "@swc/helpers" "^0.5.0" + "@react-stately/radio@3.10.4", "@react-stately/radio@^3.10.4": version "3.10.4" - resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.10.4.tgz#499ef1e781a47b5ac89b3af571fc61054327f55b" + resolved "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.4.tgz" integrity sha512-kCIc7tAl4L7Hu4Wt9l2jaa+MzYmAJm0qmC8G8yPMbExpWbLRu6J8Un80GZu+JxvzgDlqDyrVvyv9zFifwH/NkQ== dependencies: "@react-stately/form" "^3.0.3" @@ -1760,30 +2058,30 @@ "@swc/helpers" "^0.5.0" "@react-stately/select@^3.6.4": - version "3.6.4" - resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.6.4.tgz#efd512c94545309e2373ea2f17cd97c8a1803321" - integrity sha512-whZgF1N53D0/dS8tOFdrswB0alsk5Q5620HC3z+5f2Hpi8gwgAZ8TYa+2IcmMYRiT+bxVuvEc/NirU9yPmqGbA== + version "3.6.6" + resolved "https://registry.npmjs.org/@react-stately/select/-/select-3.6.6.tgz" + integrity sha512-JEpBosWNSXRexE/iReATei1EiVdTIwOWlLcCGw6K7oC/5/f+OHMsh2Kkt/c/RzM/to3vgR+Wbbqwrb712AWgYQ== dependencies: - "@react-stately/form" "^3.0.3" - "@react-stately/list" "^3.10.5" - "@react-stately/overlays" "^3.6.7" - "@react-types/select" "^3.9.4" - "@react-types/shared" "^3.23.1" + "@react-stately/form" "^3.0.5" + "@react-stately/list" "^3.10.7" + "@react-stately/overlays" "^3.6.9" + "@react-types/select" "^3.9.6" + "@react-types/shared" "^3.24.1" "@swc/helpers" "^0.5.0" -"@react-stately/selection@^3.15.1": - version "3.15.1" - resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.15.1.tgz#853af4958e7eb02d75487c878460338bbec3f548" - integrity sha512-6TQnN9L0UY9w19B7xzb1P6mbUVBtW840Cw1SjgNXCB3NPaCf59SwqClYzoj8O2ZFzMe8F/nUJtfU1NS65/OLlw== +"@react-stately/selection@^3.15.1", "@react-stately/selection@^3.16.1": + version "3.16.1" + resolved "https://registry.npmjs.org/@react-stately/selection/-/selection-3.16.1.tgz" + integrity sha512-qmnmYaXY7IhhzmIiInec1a/yPxlPSBHka6vrWddvt0S6zN7FU5cv6sm69ONUwYwLKSoaNHgOGvZhmsTzyV0O2A== dependencies: - "@react-stately/collections" "^3.10.7" - "@react-stately/utils" "^3.10.1" - "@react-types/shared" "^3.23.1" + "@react-stately/collections" "^3.10.9" + "@react-stately/utils" "^3.10.2" + "@react-types/shared" "^3.24.1" "@swc/helpers" "^0.5.0" "@react-stately/slider@3.5.4", "@react-stately/slider@^3.5.4": version "3.5.4" - resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.5.4.tgz#f8c1b5133769380348fa1e8a7a513ebbd88a8355" + resolved "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.4.tgz" integrity sha512-Jsf7K17dr93lkNKL9ij8HUcoM1sPbq8TvmibD6DhrK9If2lje+OOL8y4n4qreUnfMT56HCAeS9wCO3fg3eMyrw== dependencies: "@react-stately/utils" "^3.10.1" @@ -1793,7 +2091,7 @@ "@react-stately/table@3.11.8", "@react-stately/table@^3.11.8": version "3.11.8" - resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.11.8.tgz#b5323b095be8937761b9c5598f38623089047cf8" + resolved "https://registry.npmjs.org/@react-stately/table/-/table-3.11.8.tgz" integrity sha512-EdyRW3lT1/kAVDp5FkEIi1BQ7tvmD2YgniGdLuW/l9LADo0T+oxZqruv60qpUS6sQap+59Riaxl91ClDxrJnpg== dependencies: "@react-stately/collections" "^3.10.7" @@ -1808,7 +2106,7 @@ "@react-stately/tabs@3.6.6", "@react-stately/tabs@^3.6.6": version "3.6.6" - resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.6.6.tgz#69f4a042406cbe284ffe4c56d3bc8d57cad693fe" + resolved "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.6.tgz" integrity sha512-sOLxorH2uqjAA+v1ppkMCc2YyjgqvSGeBDgtR/lyPSDd4CVMoTExszROX2dqG0c8il9RQvzFuufUtQWMY6PgSA== dependencies: "@react-stately/list" "^3.10.5" @@ -1818,16 +2116,25 @@ "@react-stately/toggle@3.7.4", "@react-stately/toggle@^3.7.4": version "3.7.4" - resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.7.4.tgz#3345b5c939db96305af7c22b73577db5536220ab" + resolved "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.4.tgz" integrity sha512-CoYFe9WrhLkDP4HGDpJYQKwfiYCRBAeoBQHv+JWl5eyK61S8xSwoHsveYuEZ3bowx71zyCnNAqWRrmNOxJ4CKA== dependencies: "@react-stately/utils" "^3.10.1" "@react-types/checkbox" "^3.8.1" "@swc/helpers" "^0.5.0" +"@react-stately/toggle@^3.7.6": + version "3.7.6" + resolved "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.6.tgz" + integrity sha512-xRZyrjNVu1VCd1xpg5RwmNYs9fXb+JHChoUaRcBmGCCjsPD0R5uR3iNuE17RXJtWS3/8o9IJVn90+/7NW7boOg== + dependencies: + "@react-stately/utils" "^3.10.2" + "@react-types/checkbox" "^3.8.3" + "@swc/helpers" "^0.5.0" + "@react-stately/tooltip@3.4.9", "@react-stately/tooltip@^3.4.9": version "3.4.9" - resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.4.9.tgz#a6161db77bd5ad606caa1a302622f92bc381b4ac" + resolved "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.9.tgz" integrity sha512-P7CDJsdoKarz32qFwf3VNS01lyC+63gXpDZG31pUu+EO5BeQd4WKN/AH1Beuswpr4GWzxzFc1aXQgERFGVzraA== dependencies: "@react-stately/overlays" "^3.6.7" @@ -1836,7 +2143,7 @@ "@react-stately/tree@3.8.1", "@react-stately/tree@^3.8.1": version "3.8.1" - resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.8.1.tgz#a3ea36d503a0276a860842cc8bf7c759aa7fa75f" + resolved "https://registry.npmjs.org/@react-stately/tree/-/tree-3.8.1.tgz" integrity sha512-LOdkkruJWch3W89h4B/bXhfr0t0t1aRfEp+IMrrwdRAl23NaPqwl5ILHs4Xu5XDHqqhg8co73pHrJwUyiTWEjw== dependencies: "@react-stately/collections" "^3.10.7" @@ -1847,14 +2154,21 @@ "@react-stately/utils@3.10.1", "@react-stately/utils@^3.10.1": version "3.10.1" - resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.10.1.tgz#dc8685b4994bef0dc10c37b024074be8afbfba62" + resolved "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.1.tgz" integrity sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg== dependencies: "@swc/helpers" "^0.5.0" +"@react-stately/utils@^3.10.2": + version "3.10.2" + resolved "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz" + integrity sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg== + dependencies: + "@swc/helpers" "^0.5.0" + "@react-stately/virtualizer@3.7.1", "@react-stately/virtualizer@^3.7.1": version "3.7.1" - resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.7.1.tgz#eb962d2ce700c026ce1b1d901034601db9d370c0" + resolved "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.7.1.tgz" integrity sha512-voHgE6EQ+oZaLv6u2umKxakvIKNkCQuUihqKACTjdslp7SJh4Mvs3oLBI0hf0JOh+rCcFIKDvQtFwy1fXFRYBA== dependencies: "@react-aria/utils" "^3.24.1" @@ -1863,14 +2177,14 @@ "@react-types/accordion@3.0.0-alpha.21": version "3.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@react-types/accordion/-/accordion-3.0.0-alpha.21.tgz#5e8d94c9627a0b188a21adb0cf71d180173b08ea" + resolved "https://registry.npmjs.org/@react-types/accordion/-/accordion-3.0.0-alpha.21.tgz" integrity sha512-cbE06jH/ZoI+1898xd7ocQ/A/Rtkz8wTJAVOYgc8VRY1SYNQ/XZTGH5T6dD6aERAmiDwL/kjD7xhsE80DyaEKA== dependencies: "@react-types/shared" "^3.23.1" "@react-types/breadcrumbs@3.7.5", "@react-types/breadcrumbs@^3.7.5": version "3.7.5" - resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.7.5.tgz#72bc6e8881446864d7bf786f4667a2fbdda279f8" + resolved "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.5.tgz" integrity sha512-lV9IDYsMiu2TgdMIjEmsOE0YWwjb3jhUNK1DCZZfq6uWuiHLgyx2EncazJBUWSjHJ4ta32j7xTuXch+8Ai6u/A== dependencies: "@react-types/link" "^3.5.5" @@ -1878,14 +2192,21 @@ "@react-types/button@3.9.4", "@react-types/button@^3.9.4": version "3.9.4" - resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.9.4.tgz#ec10452e870660d31db1994f6fe4abfe0c800814" + resolved "https://registry.npmjs.org/@react-types/button/-/button-3.9.4.tgz" integrity sha512-raeQBJUxBp0axNF74TXB8/H50GY8Q3eV6cEKMbZFP1+Dzr09Ngv0tJBeW0ewAxAguNH5DRoMUAUGIXtSXskVdA== dependencies: "@react-types/shared" "^3.23.1" +"@react-types/button@^3.9.6": + version "3.9.6" + resolved "https://registry.npmjs.org/@react-types/button/-/button-3.9.6.tgz" + integrity sha512-8lA+D5JLbNyQikf8M/cPP2cji91aVTcqjrGpDqI7sQnaLFikM8eFR6l1ZWGtZS5MCcbfooko77ha35SYplSQvw== + dependencies: + "@react-types/shared" "^3.24.1" + "@react-types/calendar@3.4.6", "@react-types/calendar@^3.4.6": version "3.4.6" - resolved "https://registry.yarnpkg.com/@react-types/calendar/-/calendar-3.4.6.tgz#66ddcefc3058492b3cce58a6e63b01558048b669" + resolved "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.6.tgz" integrity sha512-WSntZPwtvsIYWvBQRAPvuCn55UTJBZroTvX0vQvWykJRQnPAI20G1hMQ3dNsnAL+gLZUYxBXn66vphmjUuSYew== dependencies: "@internationalized/date" "^3.5.4" @@ -1893,21 +2214,28 @@ "@react-types/checkbox@3.8.1", "@react-types/checkbox@^3.8.1": version "3.8.1" - resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.8.1.tgz#de82c93542b2dd85c01df2e0c85c33a2e6349d14" + resolved "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.1.tgz" integrity sha512-5/oVByPw4MbR/8QSdHCaalmyWC71H/QGgd4aduTJSaNi825o+v/hsN2/CH7Fq9atkLKsC8fvKD00Bj2VGaKriQ== dependencies: "@react-types/shared" "^3.23.1" +"@react-types/checkbox@^3.8.3": + version "3.8.3" + resolved "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.8.3.tgz" + integrity sha512-f4c1mnLEt0iS1NMkyZXgT3q3AgcxzDk7w6MSONOKydcnh0xG5L2oefY14DhVDLkAuQS7jThlUFwiAs+MxiO3MA== + dependencies: + "@react-types/shared" "^3.24.1" + "@react-types/combobox@3.11.1", "@react-types/combobox@^3.11.1": version "3.11.1" - resolved "https://registry.yarnpkg.com/@react-types/combobox/-/combobox-3.11.1.tgz#d5ab2f3c12d01083a3fc7c6ed90b9a2ae9049aa0" + resolved "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.11.1.tgz" integrity sha512-UNc3OHt5cUt5gCTHqhQIqhaWwKCpaNciD8R7eQazmHiA9fq8ROlV+7l3gdNgdhJbTf5Bu/V5ISnN7Y1xwL3zqQ== dependencies: "@react-types/shared" "^3.23.1" "@react-types/datepicker@3.7.4", "@react-types/datepicker@^3.7.4": version "3.7.4" - resolved "https://registry.yarnpkg.com/@react-types/datepicker/-/datepicker-3.7.4.tgz#8b21df1041d7e51198621984920ac290b2f09744" + resolved "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.4.tgz" integrity sha512-ZfvgscvNzBJpYyVWg3nstJtA/VlWLwErwSkd1ivZYam859N30w8yH+4qoYLa6FzWLCFlrsRHyvtxlEM7lUAt5A== dependencies: "@internationalized/date" "^3.5.4" @@ -1916,37 +2244,44 @@ "@react-types/shared" "^3.23.1" "@react-types/dialog@^3.5.10": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.5.10.tgz#c0fe93c432581eb032c28632733ea80ae242b2c3" - integrity sha512-S9ga+edOLNLZw7/zVOnZdT5T40etpzUYBXEKdFPbxyPYnERvRxJAsC1/ASuBU9fQAXMRgLZzADWV+wJoGS/X9g== + version "3.5.12" + resolved "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.12.tgz" + integrity sha512-JmpQbSpXltqEyYfEwoqDolABIiojeExkqolHNdQlayIsfFuSxZxNwXZPOpz58Ri/iwv21JP7K3QF0Gb2Ohxl9w== dependencies: - "@react-types/overlays" "^3.8.7" - "@react-types/shared" "^3.23.1" + "@react-types/overlays" "^3.8.9" + "@react-types/shared" "^3.24.1" "@react-types/grid@3.2.6", "@react-types/grid@^3.2.6": version "3.2.6" - resolved "https://registry.yarnpkg.com/@react-types/grid/-/grid-3.2.6.tgz#c0aba4a748d1722bafe85acf87f8d9d5134653b3" + resolved "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.6.tgz" integrity sha512-XfHenL2jEBUYrhKiPdeM24mbLRXUn79wVzzMhrNYh24nBwhsPPpxF+gjFddT3Cy8dt6tRInfT6pMEu9nsXwaHw== dependencies: "@react-types/shared" "^3.23.1" +"@react-types/grid@^3.2.8": + version "3.2.8" + resolved "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.8.tgz" + integrity sha512-6PJrpukwMqlv3IhJSDkJuVbhHM8Oe6hd2supWqd9adMXrlSP7QHt9a8SgFcFblCCTx8JzUaA0PvY5sTudcEtOQ== + dependencies: + "@react-types/shared" "^3.24.1" + "@react-types/link@3.5.5", "@react-types/link@^3.5.5": version "3.5.5" - resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.5.5.tgz#5ed829aa32f226fe62efb0d906b1926c110daf02" + resolved "https://registry.npmjs.org/@react-types/link/-/link-3.5.5.tgz" integrity sha512-G6P5WagHDR87npN7sEuC5IIgL1GsoY4WFWKO4734i2CXRYx24G9P0Su3AX4GA3qpspz8sK1AWkaCzBMmvnunfw== dependencies: "@react-types/shared" "^3.23.1" "@react-types/listbox@^3.4.9": - version "3.4.9" - resolved "https://registry.yarnpkg.com/@react-types/listbox/-/listbox-3.4.9.tgz#92e9990f480b48c1849ffd57ad8f95f5e278df66" - integrity sha512-S5G+WmNKUIOPZxZ4svWwWQupP3C6LmVfnf8QQmPDvwYXGzVc0WovkqUWyhhjJirFDswTXRCO9p0yaTHHIlkdwQ== + version "3.5.1" + resolved "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.5.1.tgz" + integrity sha512-n5bOgD9lgfK1qaLtag9WPnu151SwXBCNn/OgGY/Br9mWRl+nPUEYtFcPX+2VCld7uThf54kwrTmzlFnaraIlcw== dependencies: - "@react-types/shared" "^3.23.1" + "@react-types/shared" "^3.24.1" "@react-types/menu@3.9.9", "@react-types/menu@^3.9.9": version "3.9.9" - resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.9.9.tgz#d7f81f6ecad7dd04fc730b4ad5c3ca39e3c0883d" + resolved "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.9.tgz" integrity sha512-FamUaPVs1Fxr4KOMI0YcR2rYZHoN7ypGtgiEiJ11v/tEPjPPGgeKDxii0McCrdOkjheatLN1yd2jmMwYj6hTDg== dependencies: "@react-types/overlays" "^3.8.7" @@ -1954,59 +2289,73 @@ "@react-types/overlays@3.8.7", "@react-types/overlays@^3.8.7": version "3.8.7" - resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.8.7.tgz#a43faf524cb3fce74acceee43898b265e8dfee05" + resolved "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.7.tgz" integrity sha512-zCOYvI4at2DkhVpviIClJ7bRrLXYhSg3Z3v9xymuPH3mkiuuP/dm8mUCtkyY4UhVeUTHmrQh1bzaOP00A+SSQA== dependencies: "@react-types/shared" "^3.23.1" +"@react-types/overlays@^3.8.9": + version "3.8.9" + resolved "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.9.tgz" + integrity sha512-9ni9upQgXPnR+K9cWmbYWvm3ll9gH8P/XsEZprqIV5zNLMF334jADK48h4jafb1X9RFnj0WbHo6BqcSObzjTig== + dependencies: + "@react-types/shared" "^3.24.1" + "@react-types/progress@3.5.4", "@react-types/progress@^3.5.4": version "3.5.4" - resolved "https://registry.yarnpkg.com/@react-types/progress/-/progress-3.5.4.tgz#22032aa0a64a3ff99fcd6e6e4f22cbc09c9725f3" + resolved "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.4.tgz" integrity sha512-JNc246sTjasPyx5Dp7/s0rp3Bz4qlu4LrZTulZlxWyb53WgBNL7axc26CCi+I20rWL9+c7JjhrRxnLl/1cLN5g== dependencies: "@react-types/shared" "^3.23.1" "@react-types/radio@3.8.1", "@react-types/radio@^3.8.1": version "3.8.1" - resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.8.1.tgz#f12ddd21d88fa278baa8ddc237b778c70b67669f" + resolved "https://registry.npmjs.org/@react-types/radio/-/radio-3.8.1.tgz" integrity sha512-bK0gio/qj1+0Ldu/3k/s9BaOZvnnRgvFtL3u5ky479+aLG5qf1CmYed3SKz8ErZ70JkpuCSrSwSCFf0t1IHovw== dependencies: "@react-types/shared" "^3.23.1" -"@react-types/select@3.9.4", "@react-types/select@^3.9.4": +"@react-types/select@3.9.4": version "3.9.4" - resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.9.4.tgz#6283cdcb0583a87d23aa00fd118365f80fe68484" + resolved "https://registry.npmjs.org/@react-types/select/-/select-3.9.4.tgz" integrity sha512-xI7dnOW2st91fPPcv6hdtrTdcfetYiqZuuVPZ5TRobY7Q10/Zqqe/KqtOw1zFKUj9xqNJe4Ov3xP5GSdcO60Eg== dependencies: "@react-types/shared" "^3.23.1" -"@react-types/shared@3.22.1": - version "3.22.1" - resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.22.1.tgz#4e5de032fcb0b7bca50f6a9f8e133fd882821930" - integrity sha512-PCpa+Vo6BKnRMuOEzy5zAZ3/H5tnQg1e80khMhK2xys0j6ZqzkgQC+fHMNZ7VDFNLqqNMj/o0eVeSBDh2POjkw== +"@react-types/select@^3.9.6": + version "3.9.6" + resolved "https://registry.npmjs.org/@react-types/select/-/select-3.9.6.tgz" + integrity sha512-cVSFR0eJLup/ht1Uto+y8uyLmHO89J6wNh65SIHb3jeVz9oLBAedP3YNI2qB+F9qFMUcA8PBSLXIIuT6gXzLgQ== + dependencies: + "@react-types/shared" "^3.24.1" "@react-types/shared@3.23.1", "@react-types/shared@^3.23.1": version "3.23.1" - resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.23.1.tgz#2f23c81d819d0ef376df3cd4c944be4d6bce84c3" + resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.23.1.tgz" integrity sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw== +"@react-types/shared@^3.24.1": + version "3.24.1" + resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz" + integrity sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw== + "@react-types/slider@^3.7.3": - version "3.7.3" - resolved "https://registry.yarnpkg.com/@react-types/slider/-/slider-3.7.3.tgz#d6de0626c6977dd10faea2dba656193106ffbdb8" - integrity sha512-F8qFQaD2mqug2D0XeWMmjGBikiwbdERFlhFzdvNGbypPLz3AZICBKp1ZLPWdl0DMuy03G/jy6Gl4mDobl7RT2g== + version "3.7.5" + resolved "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.5.tgz" + integrity sha512-bRitwQRQjQoOcKEdPMljnvm474dwrmsc6pdsVQDh/qynzr+KO9IHuYc3qPW53WVE2hMQJDohlqtCAWQXWQ5Vcg== dependencies: - "@react-types/shared" "^3.23.1" + "@react-types/shared" "^3.24.1" "@react-types/switch@^3.5.3": - version "3.5.3" - resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.5.3.tgz#2a5faaf513e03972df3077e4ff5ef21738239d7c" - integrity sha512-Nb6+J5MrPaFa8ZNFKGMzAsen/NNzl5UG/BbC65SLGPy7O0VDa/sUpn7dcu8V2xRpRwwIN/Oso4v63bt2sgdkgA== + version "3.5.5" + resolved "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.5.tgz" + integrity sha512-SZx1Bd+COhAOs/RTifbZG+uq/llwba7VAKx7XBeX4LeIz1dtguy5bigOBgFTMQi4qsIVCpybSWEEl+daj4XFPw== dependencies: - "@react-types/shared" "^3.23.1" + "@react-types/shared" "^3.24.1" "@react-types/table@3.9.5", "@react-types/table@^3.9.5": version "3.9.5" - resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.9.5.tgz#7910debd618405598583a10588a75f97c7b15eeb" + resolved "https://registry.npmjs.org/@react-types/table/-/table-3.9.5.tgz" integrity sha512-fgM2j9F/UR4Anmd28CueghCgBwOZoCVyN8fjaIFPd2MN4gCwUUfANwxLav65gZk4BpwUXGoQdsW+X50L3555mg== dependencies: "@react-types/grid" "^3.2.6" @@ -2014,21 +2363,21 @@ "@react-types/tabs@3.3.7", "@react-types/tabs@^3.3.7": version "3.3.7" - resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.3.7.tgz#8bb7a65998395bad75576f5ce32c8ce61329497f" + resolved "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.7.tgz" integrity sha512-ZdLe5xOcFX6+/ni45Dl2jO0jFATpTnoSqj6kLIS/BYv8oh0n817OjJkLf+DS3CLfNjApJWrHqAk34xNh6nRnEg== dependencies: "@react-types/shared" "^3.23.1" "@react-types/textfield@3.9.3", "@react-types/textfield@^3.9.3": version "3.9.3" - resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.9.3.tgz#23db9d87ddadc4eddff3f85406af91e442f01dc9" + resolved "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.3.tgz" integrity sha512-DoAY6cYOL0pJhgNGI1Rosni7g72GAt4OVr2ltEx2S9ARmFZ0DBvdhA9lL2nywcnKMf27PEJcKMXzXc10qaHsJw== dependencies: "@react-types/shared" "^3.23.1" "@react-types/tooltip@3.4.9", "@react-types/tooltip@^3.4.9": version "3.4.9" - resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.4.9.tgz#fb2291bd0b915f7c7f5024ce146412405843ec9b" + resolved "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.9.tgz" integrity sha512-wZ+uF1+Zc43qG+cOJzioBmLUNjRa7ApdcT0LI1VvaYvH5GdfjzUJOorLX9V/vAci0XMJ50UZ+qsh79aUlw2yqg== dependencies: "@react-types/overlays" "^3.8.7" @@ -2054,34 +2403,1364 @@ dependencies: tslib "^2.4.0" +"@tediousjs/connection-string@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@tediousjs/connection-string/-/connection-string-0.5.0.tgz#9b3d858c040aac6bdf5584bf45370cef5b6522b4" + integrity sha512-7qSgZbincDDDFyRweCIEvZULFAw5iz/DeunhvuxpL31nfntX3P4Yd4HkHBRg9H8CdqY1e5WFN1PZIz/REL9MVQ== + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@turf/along@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/along/-/along-7.0.0.tgz#5a6f5fcc0ed11ea6a64359e8af3e032a3b99e78b" + integrity sha512-OyZcvwYwsLxlqC6ksFMNAkZ1fF/0Xfg38v4jx6D9OsaQcIDgvzXnlkuUnS3w11imfulokijkLEFnvJXFZKAzRw== + dependencies: + "@turf/bearing" "^7.0.0" + "@turf/destination" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/angle@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/angle/-/angle-7.0.0.tgz#88faa9ed89d7b3b29bae391df70016f10fa58a01" + integrity sha512-3+Lp/fyJdtoS+zMu4ZGgV1PhXub7fiowvwId6w5fNtUHWaQ2e0fUgWMAv8opVSC9gRnUtOq2QuJZdIGQAL+fkQ== + dependencies: + "@turf/bearing" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/rhumb-bearing" "^7.0.0" + tslib "^2.6.2" + +"@turf/area@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/area/-/area-7.0.0.tgz#5ed4216a2dc3da92debf66cab60acca540d71512" + integrity sha512-Q/P6OGV8dJJs1BiraKFNBjtsMbz7B52mLCtgKh3syzujSREMx52RlsiOBQp8GujFMMiau+Mt25XKbVwtjHVi8Q== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/bbox-clip@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/bbox-clip/-/bbox-clip-7.0.0.tgz#95a5bb884b1c2c78f6a6146182741b6812512c9c" + integrity sha512-ZSReB14sSQpP5TE6g5SijVFijxMp8pyrM0PgEN1LR9Bm+nj7BmmGzHafV3lyteml2bmlFdQxkbTqcbvlVXS98g== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/bbox-polygon@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/bbox-polygon/-/bbox-polygon-7.0.0.tgz#048bb2243b7dc132a9aa55b75394f879c6f2c03d" + integrity sha512-RMBADOr0zOhVhTidKXCAx1TLTzgBvZwQKI6KJ1FgoCPH7GMZZnMXGMvOtdQLdsplS4Zs6+NoVtaK2x0+EXdYJQ== + dependencies: + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/bbox@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-7.0.0.tgz#1f892bb71f429aaa1d746c92d901567d5667f9b2" + integrity sha512-IyXG5HAsn6IZLdAtQo7aWYccjU5WsV+uzIzhGaXrh/qTVylSYmRiWgLdiekHZVED9nv9r7D/EJUMOT4zyA6POA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/bearing@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-7.0.0.tgz#6afc052b9a7cd98df3564ea3b3bfac0f8e9c5c4e" + integrity sha512-r6eBNqqiC8OtW+xIzu0ZyciAUfM85l2LVN2qpTeEyhnaNmnPw7hDsnqwZcbqoBFSLB66MO+BLH40X5OdaoRmmA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/bezier-spline@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/bezier-spline/-/bezier-spline-7.0.0.tgz#dd1c8a6a3dacd6592f333e91aef81e9ce94302ea" + integrity sha512-1FFVLc+oa5t9S7XWsYImfOVNLWESAJo3ztC4GRlGeAFQBi5z8kSptBaGRLkTn387lZLZ1VQXYRgAfR2mP69/VA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-clockwise@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-clockwise/-/boolean-clockwise-7.0.0.tgz#27a6d5ab14fadf50ed78d7011631e84d561c90e6" + integrity sha512-Tn+ShgMcgIll+TeIAUHW0diPpxCN1PfQ6uZrwUJXzQXfoxlns16NvJByTBWCl+E9UCA+m1QRjHpVOzyf8pSOOQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-concave@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-concave/-/boolean-concave-7.0.0.tgz#d3a0e396b5c2bdf4dd6aea186ae4b12cd5b9fff7" + integrity sha512-ybKMUriBFzqvjJMOM+YPID2h0a7ye1ur95NkXzV+GRDG16W0KOtTcSXz3LFfHIBEXtG1dqRIxPSV2uwTTKwDTQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-contains@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-contains/-/boolean-contains-7.0.0.tgz#54bfbcac20d3ef0bfe533a71a5139deac7181950" + integrity sha512-1NILJdO5OO1YrD7hYPlpahROkzd1DFA7Lcp7SxL+hTtKTp/a2iZx+K6u2qKMLUlPO1p2zhSbMfvjl1T6s/H8XQ== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/boolean-point-on-line" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-crosses@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-crosses/-/boolean-crosses-7.0.0.tgz#119b80d5dc2540b1f27fedac91db753cfbcd3e13" + integrity sha512-T8/U3fXvEaaf7NbRf42s7hnOYUarK7K1ztXOan0hESnWVzMRFwzIv9QeSW4mARAPU/oV1oOMhSITfbF/Et6W1A== + dependencies: + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/line-intersect" "^7.0.0" + "@turf/polygon-to-line" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-disjoint@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-disjoint/-/boolean-disjoint-7.0.0.tgz#254ae7ce8f90ff38764104150c6f86748ab35144" + integrity sha512-MAHKqMtdktgxFnz9XFrzyN+VTtmNSd+PgRyo/CT9ucsZ18hd3PV9Y3obGw/k0T6AglMivhBadlHiSMnTfed4Qg== + dependencies: + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/line-intersect" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/polygon-to-line" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-equal@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-equal/-/boolean-equal-7.0.0.tgz#68ba8b373611eeca4b14c7ea79466544ed06ded9" + integrity sha512-9C7xkxOyqN0/8Ze4TrysKWWYZxWB0s6zSBaADuVhaIsFzfwvC5wbEpwOL8pRop++7YRRlJ92QM8Bq53DU8+7LQ== + dependencies: + "@turf/clean-coords" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-intersects@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-intersects/-/boolean-intersects-7.0.0.tgz#5f8a319db633c1f653413f49828615c5559ab949" + integrity sha512-+jNZw/ziZ2xyeDoasuwubVu3arRS71i6tSxvnPQmsWISki6rLJF7OQEkc9LNIllYlADCZUkUTJ1OktznrEUDkA== + dependencies: + "@turf/boolean-disjoint" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-overlap@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-overlap/-/boolean-overlap-7.0.0.tgz#d358b30918abeba8810edff2e13480e14f00d2ae" + integrity sha512-mnZxjGSs8OuH/+QUuP5FGkut2bLr1FGZ63ThJ97aUuJP+lZQnYnkPdT1hQIdcyhtTQgF1yOM7EH+O//DkoROpA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/line-intersect" "^7.0.0" + "@turf/line-overlap" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-parallel@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-parallel/-/boolean-parallel-7.0.0.tgz#bdcbec10bb7703301f7566256125eed7ef437537" + integrity sha512-OTL9XLjzRulLPQ12il3my9fLhemHsoyYe/owxNYz+kYtUyDHQ6lRz6vEaI3W7MKY9fnqwuIdJQpckOL5TH2cPQ== + dependencies: + "@turf/clean-coords" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/line-segment" "^7.0.0" + "@turf/rhumb-bearing" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-point-in-polygon@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.0.0.tgz#378c0edffd016621ba330d466c56346796307f33" + integrity sha512-Z9swETfICqUJ8iVLZimvIOh8r4Wrlu9/X/c/5vIEeVvG4Lu78Ztmgu1KaobZJFC93/ntOAjMBavc9aNgw7TXgQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + point-in-polygon-hao "^1.1.0" + tslib "^2.6.2" + +"@turf/boolean-point-on-line@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-point-on-line/-/boolean-point-on-line-7.0.0.tgz#10993b2344c56a4684e4b64877249664f20937b6" + integrity sha512-9/1hj2MxcUU4fZu+MQC6rdMsdvAYNTtfxssLrZ1dGXo+NcAoWFbZSrfk62pSJBflveyKY5kXPYY+xQfLT0NeDQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-touches@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-touches/-/boolean-touches-7.0.0.tgz#7f7f7dba36467bb5b6263b1e7fb9ab6e2e721abf" + integrity sha512-eZE2uvylkQLAePHTGRjnVlr+QKnwU9gPAarz2q4YF7hi2QRDQd8kc+Ai/450C3xL9iPYO6wrbAQ7qpmB1Jsq4g== + dependencies: + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/boolean-point-on-line" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/boolean-valid@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-valid/-/boolean-valid-7.0.0.tgz#c5182492f6d92ccce67d1a099b64cbad834dce4a" + integrity sha512-TM2UBVFu59u8fAZVHsVnnnCv6486J2uCFmhsVsSCgTgTET1+Lm0TK0XTj5cyPSYR35qR/BjcU1gO3l45bdap9A== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/boolean-crosses" "^7.0.0" + "@turf/boolean-disjoint" "^7.0.0" + "@turf/boolean-overlap" "^7.0.0" + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/boolean-point-on-line" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/line-intersect" "^7.0.0" + geojson-polygon-self-intersections "^1.2.1" + tslib "^2.6.2" + +"@turf/boolean-within@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/boolean-within/-/boolean-within-7.0.0.tgz#74d34e35bdde6ae3dcb60c25355f4a004fc1eb6f" + integrity sha512-QmOX34T7z9wzuzUVsXx3KMCMsxLi71/SOcrgkcHhcWsThx+VPPmyIUtTa8XnBt1BBlx7IIrR2pAeORkUi0CdEg== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/boolean-point-on-line" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/buffer@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/buffer/-/buffer-7.0.0.tgz#de4037cfc6fe4aad19adb98c42dd992e8b57897a" + integrity sha512-viw3XjTtYVtkq5DkRDBQjXoi5QeEMhe4JHWXIfHMHs4o5F9B+lZ8+TtXWo18X5aAXknv6ib1z2syoaQdBpb5Xw== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/center" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/jsts" "^2.7.1" + "@turf/meta" "^7.0.0" + "@turf/projection" "^7.0.0" + d3-geo "1.7.1" + +"@turf/center-mean@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/center-mean/-/center-mean-7.0.0.tgz#9ab07409090a688678b7ff68bd810feeb7d851e3" + integrity sha512-pneYkH6/4a6gDDvhVL2by9OCJ4yTIANoHQ4JpYVjvB1VlQWrVI5qQd80+q3bMKCDWaACEq8UWa/5NmvKlSRT3A== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/center-median@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/center-median/-/center-median-7.0.0.tgz#04360a44abc4937854aaeea295343b9ac251e706" + integrity sha512-ppCVjwwNe3Rz86TQp+zt9uFI9ZlFwu2miQtpFVcv2ej9IN2D5PUIRnehWgVeQ+yZ+ocMjMNLMcackUnqeKR4FA== + dependencies: + "@turf/center-mean" "^7.0.0" + "@turf/centroid" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/center-of-mass@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/center-of-mass/-/center-of-mass-7.0.0.tgz#211628beddd329f16f5d9ba6a20bcf952848eac8" + integrity sha512-vnD43bX4jl1ViDjY+nxISeQd8vfPqvLw+0N1MxpweCh5S85DNqUg6J8GXC1kbZlfOBS3mS9p2CW1Rfg4ggiGHw== + dependencies: + "@turf/centroid" "^7.0.0" + "@turf/convex" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/center@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/center/-/center-7.0.0.tgz#b804e7a7e26546475509f732f34350e40f620b35" + integrity sha512-5RZia9uuWxz2oCyd1vsNkBeraBNdwCsIo4UGRQdyswBeLFVbRwIUa7M7+2z2D7B1YIgovuLIRVfk6FeWUQXDtQ== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/centroid@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/centroid/-/centroid-7.0.0.tgz#bbef6155c66b7c9bafbe8daa8ad909b1b3c7c8b2" + integrity sha512-TMKp5yadglNVRxX3xuk1qQDEy5JFHmlYVBamzXuD8DL8rYdVog2x4gQHrwn7xrUyAlKJ4fUZZPkYBWfW6TDWbw== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/circle@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/circle/-/circle-7.0.0.tgz#4b5a68c7bb6f342147032ae19fbb9fee359706c5" + integrity sha512-rRMthTL5+mhiFXQwlk4jUuf0pkqDAhry/El03VNYNyDGOx4N6p0XMmgbIdJmG6ZooinHpHfMU4N8ZQ9Xo6vVPA== + dependencies: + "@turf/destination" "^7.0.0" + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/clean-coords@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/clean-coords/-/clean-coords-7.0.0.tgz#fb9bc1988f84d0dfd8271fd4bbc83d743958cb2b" + integrity sha512-kaKR4/NnhZpgC+hWY3MfPqV2KwzG4Vr66WH59GbT5B2tvAOJqAYUmq+rgyMsG6xA3fTBL3neDW0bY1DHFVcvHQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/clone@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/clone/-/clone-7.0.0.tgz#e7bd51047f92182e5fcfbfe08b89c68bd2e61d4c" + integrity sha512-bQBx/wbQoGNtZzuHetLt44NMqOCnjSXcvTWm+LJ7YTmwrqZVAjISDhFxgawY/L+G3p+ya5WoxQwZWak80uYg3A== + dependencies: + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/clusters-dbscan@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/clusters-dbscan/-/clusters-dbscan-7.0.0.tgz#4fe2ee3c712f4fb2d5b9d1d771f5360ee9c6fb14" + integrity sha512-q8P7MjD0jGhNOzE+I6Cj8UiVaqkuDV27nGA8fLZWNxLW27+X2QJzU+NFLkx0suV9ApmCWRiaIyWUHWG9uZntxA== + dependencies: + "@turf/clone" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + rbush "^3.0.1" + tslib "^2.6.2" + +"@turf/clusters-kmeans@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/clusters-kmeans/-/clusters-kmeans-7.0.0.tgz#a1a70b930a83f7aa29be7608192e8fe4a7530f35" + integrity sha512-ZwN4sLcTgeD7meryarJZunLXISHM7ZLc0S7Lgwv64fYsYU2ea64BMst5mRFCZsrrlFdYmrwUo4DlihL8k9XLKw== + dependencies: + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + skmeans "0.9.7" + tslib "^2.6.2" + +"@turf/clusters@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/clusters/-/clusters-7.0.0.tgz#7d0dba859bc3cb30b344d595143cabc9302f8e77" + integrity sha512-s96uAedbT+9JX6Cg11TsjyZRZIOYABBplA7vKlFgfEKitscCRFUP+pVgiRXy8wBgyKsXqG28DJr96kXQaJKSeg== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/collect@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/collect/-/collect-7.0.0.tgz#3a1cfa9706a817fe3514a0e748afff9142209b93" + integrity sha512-zgKPVVmNr/5OJiHLnQAzDCMv1xDxwuNw8PfCPYkek8s2dvr9LFlEMfPxnp9hY+/oHJx8+1mC01c9qgb7hF8yPQ== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/helpers" "^7.0.0" + rbush "^3.0.1" + tslib "^2.6.2" + +"@turf/combine@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/combine/-/combine-7.0.0.tgz#89aca004106fe3f7f035d5137aed929de88ceea9" + integrity sha512-xNg6XGAwEWmpjYImJ3+vie+ASKQ7dzUrwUDJ5DOOS8XonLkVAIGus+qDoXdIzAcb9jqSaSFC4sGmQFdTM1Sj1w== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/concave@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/concave/-/concave-7.0.0.tgz#7c863e1ac197b21d331be41d75dbe7ab7ba46690" + integrity sha512-iwrLBgCUgsquvLSCnzppPVDWGLoCjVDV9xgg7jncbi9aURuGPfhHd5eaC9fyxtIlSbcfrSDXSHJLoeC6bpmlOw== + dependencies: + "@turf/clone" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/tin" "^7.0.0" + topojson-client "3.x" + topojson-server "3.x" + tslib "^2.6.2" + +"@turf/convex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/convex/-/convex-7.0.0.tgz#0251c7801d606dac05380240750e7102396fddf8" + integrity sha512-iAAwC1FPB4aiA7djUU/pk7lMgWjACbQOB2oX6cH39P5M7W6GXhrTEvYAx+thBtNq+M6BPk/gk3bU1BjZFrQ4+g== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + concaveman "^1.2.1" + tslib "^2.6.2" + +"@turf/destination@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-7.0.0.tgz#8ab9eecfc95363ef64761a5241a51c80f8f8ae0d" + integrity sha512-wXfLd37ul7xuFvv4L7dtNQOZnmYepnrsMZrxbmxvy2SCnF+Rzf1C7D1NQ6+Nx5SInB/SbTfi6SCDgyfB8MOawQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/difference@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/difference/-/difference-7.0.0.tgz#d68464fce33585a93ae36519a6b84304016b6eaf" + integrity sha512-JCPRuGcOkT+Hq5PJcEUhkCheTyJcwB5dS1SIJGhDDNOJp8m8REHFJCmvxA3K40demovbyDLk85AojYpJ3jlALQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + polygon-clipping "^0.15.3" + tslib "^2.6.2" + +"@turf/dissolve@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/dissolve/-/dissolve-7.0.0.tgz#0d992cf1fec68727459bf28cecd325973724ad91" + integrity sha512-WUapSrl4nTpKGQ9uacfefPNI8mEl0PYrCN6vDTs2W4k6UT9NdeJYNPaR6275nAoOUEL9t9K+adPgdMltm/EG3g== + dependencies: + "@turf/flatten" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + polygon-clipping "^0.15.3" + tslib "^2.6.2" + +"@turf/distance-weight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/distance-weight/-/distance-weight-7.0.0.tgz#3a055ba06114434049d062f0074a6fa0fb352006" + integrity sha512-BFftfC1QdtcJNMx4TOYxkHX/xsy4FjiG4tdEgdx99DBZ4L1RS/qqgC1O943WuqbfvJTn15E6ka0Rkep2/90IMA== + dependencies: + "@turf/centroid" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/distance@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-7.0.0.tgz#e2e1fdfd1b577dbb1a6dd05ab15efaa3d494508c" + integrity sha512-DBPKhHABpPZ0KRduRpEaoi8MB6r1DVuyyps68VFH2Qi5H0ZnFtJFj7nQxBPZR3bVpbUq4zzu7I+MiNAd3ujFWQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/ellipse@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/ellipse/-/ellipse-7.0.0.tgz#443f86131edbe48118fa041234be6a60b37630c2" + integrity sha512-bdHzKPfxIWVz3p7jlsyi89BAxvjIhxCgLzDXKYp4tSf2LYGpkfWpSJA2bRnj7TuEq5zYQR8L5LJhn7jg0hehlg== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/rhumb-destination" "^7.0.0" + "@turf/transform-rotate" "^7.0.0" + tslib "^2.6.2" + +"@turf/envelope@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/envelope/-/envelope-7.0.0.tgz#5d6e889417bb0dd676388bc7d6a96bf88af435db" + integrity sha512-110YN+9PmhRYE7co+4ewB/IY3SL9q90mw5FoXrv97VRYVlf8jQCa2mwSalMiuAGnhvfG+Yq1k+ibjjLJcS3gWA== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/bbox-polygon" "^7.0.0" + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/explode@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/explode/-/explode-7.0.0.tgz#1afc5b45c7b99bc2a65886d21a59d31d21ca8141" + integrity sha512-q7KZ/PxY9zHN4UGXaADUpsHGkj8lbexVZxdBnp0nEfTHm/ziLTAfpI15CdAknoz4Ee8k8tx7ldosVjjg7YJ3/g== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/flatten@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/flatten/-/flatten-7.0.0.tgz#3bc17e26be4908b2feff79b168df045cf2703326" + integrity sha512-QVTPgE9PdulQiQPglQ+mXpThBfp3v5RhCSupBCAoqOkqo/KfnliHqJXmVTaZotUZnMgc3wbAMJtSJvDRhTnFFA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/flip@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/flip/-/flip-7.0.0.tgz#fbad5239e93b13ac8d4446e9786e09a32822a791" + integrity sha512-8yqhjXhqKF9fqN4ZfLgVNKCX0AVDaOY9KzD3AGQ+UiRHgmnY/F/T8Np9hSgEVQl1E9N6GXWF/7d8fOTVKCFCbQ== + dependencies: + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/geojson-rbush@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/geojson-rbush/-/geojson-rbush-7.0.0.tgz#090229d06b95b0fcc0d21a7d8a2a941aaf9ba266" + integrity sha512-h0fJPWHkpGEHkVvQ/tv4FwYkWuEbhbSF0rrQEUyXwvZtlZPRBYJ7WQ5qRsvE7QdQK81B7jWxZiM/qWeayALu1g== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + "@types/geojson" "7946.0.8" + rbush "^3.0.1" + +"@turf/great-circle@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/great-circle/-/great-circle-7.0.0.tgz#298424c41616ded05d319e7d89bcff51248737a8" + integrity sha512-onZYQ4ZiN2sIff8j648k+eaeavC+W2wG9L+7wSZjWgeaM4t40r3ZhcJLwqmMUSHxccACNlnINukQodulsflFDg== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + +"@turf/helpers@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-7.0.0.tgz#22dc2335e8b82db2a21b8c873ea10b3fb3dc5158" + integrity sha512-vwZvxRuyjGpGXvhXSbT9mX6FK92dBMLWbMbDJ/MXQUPx17ReVPFc+6N6IcxAzZfkiCnqy7vpuq0c+/TTrQxIiA== + dependencies: + deep-equal "^2.2.3" + tslib "^2.6.2" + +"@turf/hex-grid@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/hex-grid/-/hex-grid-7.0.0.tgz#1d99795759111188794023a9b183faece0d50e88" + integrity sha512-6vWO/eVyCvk9mUOj7wxCRUSFpZ0Rlqo4fLvAWX+WsNlOn7xnYs8TFXyiVuWcJdWiMX/LzjOF2OTI6HXF3BhEAQ== + dependencies: + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/intersect" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/interpolate@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/interpolate/-/interpolate-7.0.0.tgz#70cfd77fc1c4561c2e7defd8b63c07450511ffe0" + integrity sha512-ERorrpqItp/qrVtkCkFhB0i4fgjb27cCObTucWdSVUMEitH2ieEQzysmghtyq2F6zq1DW3tC33Jjr79IDj+X6A== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/centroid" "^7.0.0" + "@turf/clone" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/hex-grid" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/point-grid" "^7.0.0" + "@turf/square-grid" "^7.0.0" + "@turf/triangle-grid" "^7.0.0" + +"@turf/intersect@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/intersect/-/intersect-7.0.0.tgz#0f623e63e190c371b6edec7f959c48c716638972" + integrity sha512-2GL9yAPwmzkec5UiuPbVdLpPVsJIRVl8obPu4oMzhOMKVqw3UGsFGCjWNOY2cKg2cN8E7ijfAEoFNztLyNPY+g== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + polygon-clipping "^0.15.3" + tslib "^2.6.2" + +"@turf/invariant@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-7.0.0.tgz#489334f8fad643ae9e7c08c982df55ac25fdb432" + integrity sha512-Kayszfz3W8yJ1/cIA3/aNSzAuw7QgSp+IwsSmhLAfp4DbjV0o6sjxRZXRY2gRstZHqkNHSSEeir8V/icdO8sjA== + dependencies: + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/isobands@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/isobands/-/isobands-7.0.0.tgz#0883b1d7a53b7268e5a844c6664bee79150430b8" + integrity sha512-2l+FIbywYPCsus8+H6eSyyf3Xsrbe+Zi0NbgpVDScvR9TVu55ta0KMvQdS4aMEtg9ADlQa/C81hZhmYsBtvLug== + dependencies: + "@turf/area" "^7.0.0" + "@turf/bbox" "^7.0.0" + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/explode" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + marchingsquares "^1.3.3" + tslib "^2.6.2" + +"@turf/isolines@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/isolines/-/isolines-7.0.0.tgz#d209620bd6fdab95b483f7b3204c5e7f0d727475" + integrity sha512-3LqwbzHnZ19gca5VC08XnHK36iRw2tEKjVtrI87iq6QEN9rR4FYcZOCmkPznYKwMKr44KkZKOlfNq/s72s1t3w== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + marchingsquares "^1.3.3" + tslib "^2.6.2" + +"@turf/jsts@^2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@turf/jsts/-/jsts-2.7.1.tgz#c039569fcef704bef2bb7367c7ddada5008d9628" + integrity sha512-+nwOKme/aUprsxnLSfr2LylV6eL6T1Tuln+4Hl92uwZ8FrmjDRCH5Bi1LJNVfWCiYgk8+5K+t2zDphWNTsIFDA== + dependencies: + jsts "2.7.1" + +"@turf/kinks@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/kinks/-/kinks-7.0.0.tgz#a7ed00a62cd9d1b835616a14f9f863e00000acc8" + integrity sha512-rUzx2G4NSb7f+SMjuBZBakrK4BrS3pfb67vYH8XQA28C9NBRQcZqJBCjXqA079q16GXiDpjCLianQMewtd6ksw== + dependencies: + "@turf/helpers" "^7.0.0" + sweepline-intersections "^1.5.0" + tslib "^2.6.2" + +"@turf/length@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/length/-/length-7.0.0.tgz#d2b3c16d83c0a77f5e5689a85328d9f0dd24bc8d" + integrity sha512-B+ABesWLtQc8W310LJ8kmUn//NfpUUhsm4Gwt9ZHNYxBVV+FNolY965F7DYm/tvLMZP9bGMomTlczFWV7O4YIA== + dependencies: + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/line-arc@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-arc/-/line-arc-7.0.0.tgz#f4d31aac2f55fb51ecc367df6a47df065f45839e" + integrity sha512-kxZJlbQHR5F7toJ7QR+qF4eWX74RydGavCr2/IPOjcFK1mcSkTfyiSli3pciavD4eH3tHx0flTqH2poqTQxtyg== + dependencies: + "@turf/circle" "^7.0.0" + "@turf/destination" "^7.0.0" + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/line-chunk@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-chunk/-/line-chunk-7.0.0.tgz#920d639b9354da11d2f2857223b135ac3d10a52d" + integrity sha512-oA4GuUSxof3o0JOhNyS+CdzpqJ0VFro8RlGkTtymMhEMly4T7xjbMdffIrJ9o8hpnNKdwkJs4bcB98UD8sSPeA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/length" "^7.0.0" + "@turf/line-slice-along" "^7.0.0" + "@turf/meta" "^7.0.0" + +"@turf/line-intersect@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-7.0.0.tgz#d76c5521b8c15973772dea1e3e51b71d30eb0ecd" + integrity sha512-vxCwzxCbTyKXO3GsEFQ8hyH1nLQShBhvFobRM2bLrbBlP2fWY9LDGixBcmWuOwV/G/wpQJxAjBJ6IYHjKIJqyA== + dependencies: + "@turf/helpers" "^7.0.0" + sweepline-intersections "^1.5.0" + tslib "^2.6.2" + +"@turf/line-offset@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-offset/-/line-offset-7.0.0.tgz#d2e1986e5fa9531b69281a297ff928745ea95b36" + integrity sha512-ZQHAuR2y0ktG8uYAbaxGsJh931oCBwrxzOjiRtOcMifc/Hty37WFVaE9rCDrYrMLut7Ye9JQ36c6DMOljOLkMA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + +"@turf/line-overlap@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-overlap/-/line-overlap-7.0.0.tgz#8107a8d5c0ee6c409643696c0e8ae835168ea805" + integrity sha512-yYjT0Qe2WIvf3InuSzobmEkD4XguoimdzXt23eHFF/RKNubAwwdFDeLbmyA7fNZFGrMLNEl/zYvgBVXiQ7tihg== + dependencies: + "@turf/boolean-point-on-line" "^7.0.0" + "@turf/geojson-rbush" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/line-segment" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/nearest-point-on-line" "^7.0.0" + deep-equal "^2.2.3" + tslib "^2.6.2" + +"@turf/line-segment@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-7.0.0.tgz#a47ce4b22972a3aa8398859c34f7eac6638a69d9" + integrity sha512-Fn8IPEMGQyDAJjjrEOrF0VUCdRosjdvd9x38gq73Qg5oSsZ4p9DdMdgydK27XL74/ivM4+CtDqQkHcj5Aec/yw== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/line-slice-along@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-slice-along/-/line-slice-along-7.0.0.tgz#a54e24f289fe084985a58390e15e1b4eadee0417" + integrity sha512-+HNcI8ilm7ma/oKm23f2ca+xaNe4IjDYAjtl2Peap3b39Y9UAgw6lXhIh/L+m/XQXKkdWOfmqf4J2ar0bgG9DQ== + dependencies: + "@turf/bearing" "^7.0.0" + "@turf/destination" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + +"@turf/line-slice@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-slice/-/line-slice-7.0.0.tgz#668a9908f5910b5f25456135fa3f432773f9eaaa" + integrity sha512-De+j4QTdoHguYu4S3UqOdU8GEg7VrVqQ67SkGzgFWL/SFh3V98+KDhxFIMA1OmzOc5/ox3yUQ8a/BOYslAV4DA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/nearest-point-on-line" "^7.0.0" + +"@turf/line-split@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-split/-/line-split-7.0.0.tgz#4ea1324d318c4df44774e00b284bee920837e17d" + integrity sha512-LuJuO1bY++PJEQ7gqbkzdL8RP1pZRQdgoqaZTsMy5AhxfjMCSL4Bx3o8SYAtsQt6CTx17dMCqBcjmjZwqNJJ6w== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/geojson-rbush" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/line-intersect" "^7.0.0" + "@turf/line-segment" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/nearest-point-on-line" "^7.0.0" + "@turf/square" "^7.0.0" + "@turf/truncate" "^7.0.0" + +"@turf/line-to-polygon@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/line-to-polygon/-/line-to-polygon-7.0.0.tgz#55f31af50076e7ea044b3af2a131792022dc75a0" + integrity sha512-NmrY1jFj4oW30TW2LNoL00/uNmF1bGeTU8W1EtCunoCUUOVD9XSCj0kdSuq+MJLBH06PzOL+2f1jKTFf0X7Kqg== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/mask@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/mask/-/mask-7.0.0.tgz#cfe4ad3055edcc4612f8a319cf0dff53f339d22d" + integrity sha512-5vSNpN4rCRhEsS69d9u8USlFGdlf5rySCD701gzALNGpvTN4ViXoUUH9ysdqOdvp/IdC8thRP72Hget9fJKcfQ== + dependencies: + "@turf/helpers" "^7.0.0" + polygon-clipping "^0.15.3" + +"@turf/meta@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-7.0.0.tgz#85f91ad874cccd2c2c3d361917e200912597c11b" + integrity sha512-cEXr13uFwhXq5mFBy0IK1U/QepE5qgk3zXpBYsla3lYV7cB83Vh+NNUR+r0/w/QoJqest1TG4H20F9tGYWPi/g== + dependencies: + "@turf/helpers" "^7.0.0" + +"@turf/midpoint@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/midpoint/-/midpoint-7.0.0.tgz#6e679baa2bcbfbc2e07cdb8fe00b2548b60ac72f" + integrity sha512-Zt0OgtByf5rTKT86WssAzNN2D7eqjay9ZlRb2rutynMyJDdLgbGPurTZIOXOP7ztGaS/WIMYlvPEveIp8ao1zQ== + dependencies: + "@turf/bearing" "^7.0.0" + "@turf/destination" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + +"@turf/moran-index@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/moran-index/-/moran-index-7.0.0.tgz#0811749e63c6603b550ce9329178d2202b827187" + integrity sha512-Vl3PD8wn8aBYZpQ7Kq+dWosiQP2HTeZmzEyQh7WGAUK7OunODFPIdObj6jLwKYj9ZW2XVxaGmogjVEmQ2/2FQQ== + dependencies: + "@turf/distance-weight" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/nearest-neighbor-analysis@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/nearest-neighbor-analysis/-/nearest-neighbor-analysis-7.0.0.tgz#77de00171a1ebe55b6e238b204f28674f6f25309" + integrity sha512-wz+2U271niT7l18SIctAo5Muh5kqyZl4bqFUWTQhhhzXkcP2hCYT9gYWkrZN0gfyp9sCWUe7mgoU6/wGDsiENQ== + dependencies: + "@turf/area" "^7.0.0" + "@turf/bbox" "^7.0.0" + "@turf/bbox-polygon" "^7.0.0" + "@turf/centroid" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/nearest-point" "^7.0.0" + tslib "^2.6.2" + +"@turf/nearest-point-on-line@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-7.0.0.tgz#60d376da911dd4f73f44a130a1277e54928cfab6" + integrity sha512-ADf+oytqY3EVT/9JApoRr5H0f8wzkzeXhJUfTDEcWZoJqT/8lOX2HCo87b6+oEb1QIavlSogoku1+M5xMIcJLw== + dependencies: + "@turf/bearing" "^7.0.0" + "@turf/destination" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/line-intersect" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/nearest-point-to-line@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/nearest-point-to-line/-/nearest-point-to-line-7.0.0.tgz#1ea07578393561751797148c5fbd3fa3f9103346" + integrity sha512-DmbQ88nChkVD6pe9dbFZEBVtmcgrRFKSv1n3Y1Kka+BeDFzCfie2VJuhsrqrecRmLMIEf1tdVJL/MdpinnZZTQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/point-to-line-distance" "^7.0.0" + tslib "^2.6.2" + +"@turf/nearest-point@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/nearest-point/-/nearest-point-7.0.0.tgz#391dcc6b59f4411bc388f48611b877f0d4ec850c" + integrity sha512-h3uLUoeo6JWTirpI499SRooqEoDxia2C/kDqAwAeXFqwxzGqGprtNA/C0bMgHfxE1M2rxORGzvgywKirpLu1dA== + dependencies: + "@turf/clone" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/planepoint@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/planepoint/-/planepoint-7.0.0.tgz#8da2169cca9042a4906d94c5a3fc28c774200ec5" + integrity sha512-+/Sqk1I8QwlKsd0rfjwOac3BAdIBeyjN8Irgk2vYbxUADn6QWcxyYLro8DHUVrTu9jZfllc8QNpy9/6iUykm0A== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + +"@turf/point-grid@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/point-grid/-/point-grid-7.0.0.tgz#fa77996d7d1c7e0ee1e60cc407aec1e40ca88f45" + integrity sha512-vXtFeWFC0i9T71AVX5VdlqD2mlKhk649OF/pEJB9wtCGDHYax9kkObNDSz4mFAz4UqQ67P5Lipg8YYaawgmDZg== + dependencies: + "@turf/boolean-within" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/point-on-feature@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/point-on-feature/-/point-on-feature-7.0.0.tgz#11fc32cf0f56022d3c93f46b344937af02a17645" + integrity sha512-KTvYrQJEw62GLivd5LfCRt9z/4ZFdz29+3HxW9/RHhb8nrjLU8M8j7fJTQ+/Q+pPunWPK0Fvjv8LZAh0c30/oA== + dependencies: + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/center" "^7.0.0" + "@turf/explode" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/nearest-point" "^7.0.0" + tslib "^2.6.2" + +"@turf/point-to-line-distance@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/point-to-line-distance/-/point-to-line-distance-7.0.0.tgz#402abbad4a2e862a2599b4944a7dbe8c3fbccde4" + integrity sha512-BMNy/vbvm9NjrgJq6MA3xhruy+cp/Wj+ff3fiu8Rdl5QX/dMwCeyCZuuvzCftup6GTPUhRbpe0YRFUBInGzx/g== + dependencies: + "@turf/bearing" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/projection" "^7.0.0" + "@turf/rhumb-bearing" "^7.0.0" + "@turf/rhumb-distance" "^7.0.0" + tslib "^2.6.2" + +"@turf/points-within-polygon@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/points-within-polygon/-/points-within-polygon-7.0.0.tgz#3d0104572cdea3e9dfaefbfa9784c2406cac1507" + integrity sha512-Nz4kLSitsfZH0jwgCA5PCVcCocMWNM5+0LZo13j2JoXP980zTwL5t6jiwS2qFoofNE0Q6RfjrfQ3kVm5/g1/bQ== + dependencies: + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/polygon-smooth@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/polygon-smooth/-/polygon-smooth-7.0.0.tgz#af402dd7c490eb7674a92b5f23fccc0e5ea10b9d" + integrity sha512-1pY81xZivsToG8zFGvX/1NjrYCNOWm+fdtciWyF+tt0rGE/xvMwE4yiX1chDrKiV2X8W+Ip/ZLry3MIBcSUx0Q== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/polygon-tangents@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/polygon-tangents/-/polygon-tangents-7.0.0.tgz#db6df6c48d40d403156784dab4a0405460beb3f2" + integrity sha512-BNSKWqOTiCvVSj5CuLmkcHkagFsBSbUuSSffEGxC3cFY2tb0vP71nFE9qM+h9FpApkR6F/bWxRu5AxQ4oVHySQ== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/boolean-within" "^7.0.0" + "@turf/explode" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/nearest-point" "^7.0.0" + tslib "^2.6.2" + +"@turf/polygon-to-line@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/polygon-to-line/-/polygon-to-line-7.0.0.tgz#775b9784b1048151f1371eb9ec0a641fdab9c203" + integrity sha512-FkbxgABNzULN//WiSWiBqkbePbQANMmYKFgD6tUnVGldTFa1RuUjt/bgbvPjVHZfUdJieyxBszzl1dP0z8czDQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/polygonize@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/polygonize/-/polygonize-7.0.0.tgz#ed965ff359962c09a0a5d7591547f7cbba09f803" + integrity sha512-aTVANRcWHVFZIgUwH5H5BMn9OoGk8KI+mGe4H8cXQWUvarKUz86t8BkdkbWnsAfdOTrEwK4WFWtxfmeWwJUH7Q== + dependencies: + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/envelope" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/projection@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/projection/-/projection-7.0.0.tgz#d03daf040d0ead1c4e5f00718ef5c65d73d273e7" + integrity sha512-EoPbZPZSDv0AJMfYhqnS455CVMYwPU78kHyQHeOnMR1Tc5z+TiImvyq55umhfecgpETzuDsjFkmeQ2phDKTmbA== + dependencies: + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/quadrat-analysis@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/quadrat-analysis/-/quadrat-analysis-7.0.0.tgz#8cf06f90a11f88b07c9f55242a0cf138030eeb54" + integrity sha512-JaCARFLS7mFIGORpRFcqrrCWVgTi+Vw5prSgQdaMVMcXo5+wsPh0fJUno4PGHt++R6AE3ZgxtDq2gS/1RZfhOA== + dependencies: + "@turf/area" "^7.0.0" + "@turf/bbox" "^7.0.0" + "@turf/bbox-polygon" "^7.0.0" + "@turf/centroid" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/point-grid" "^7.0.0" + "@turf/random" "^7.0.0" + "@turf/square-grid" "^7.0.0" + tslib "^2.6.2" + +"@turf/random@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/random/-/random-7.0.0.tgz#8df157c25d876f29e08db0f42ccd6b0be69af68b" + integrity sha512-l3+FW0pk6MUQx2lyMvzps2YQS7ovP6YoV0tVvuNaQq0UICB1P4EHJIKLMTe5pXk73Z3p0wTgnEPk0Z2lqWaeGQ== + dependencies: + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/rectangle-grid@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/rectangle-grid/-/rectangle-grid-7.0.0.tgz#a15646792308e6515b3bdd745a863fccf6123d09" + integrity sha512-iLMRfaWs9+BlGaDP5ka7J9bTGFPGim1Tl38uNTPagIVxk6bNfB8156S9up+/7scpjuQGxY0ky3tlR9aVYlWNdw== + dependencies: + "@turf/boolean-intersects" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/rewind@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/rewind/-/rewind-7.0.0.tgz#c543c69cf0677b763e4c19e1c8244ecb30e1fc69" + integrity sha512-kZwqJ4enmTZPDrI0rCf+zE9HChCuKKvD0kqZJo50XvfypfKVz5CI751Dgs/cslMIENyKFiHHHM4OMgouJ/lR1Q== + dependencies: + "@turf/boolean-clockwise" "^7.0.0" + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/rhumb-bearing@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/rhumb-bearing/-/rhumb-bearing-7.0.0.tgz#11c2e811de7057756d497de43a0ffbcefe3a4804" + integrity sha512-4qDggFDNBbWdD+o3H+vna5eiKCAsmqAueP3T5rSEB1ier77wVgjg7cs7eTrEBbpuCbPAho7NDNdyAjgItydgLQ== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/rhumb-destination@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/rhumb-destination/-/rhumb-destination-7.0.0.tgz#0c132579f17b2830a917b8e2ce8a88e6b1321416" + integrity sha512-uYgqP8BGo8DBs6ZgjBo9SNCXc6BY+iA6OG7yPYSe4Lur2vu+LkbBXV6P3IodkeHyPex+X5ATea8QHutYQX6HUg== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/rhumb-distance@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/rhumb-distance/-/rhumb-distance-7.0.0.tgz#50c16e13d968fdf9dee9c06ef5956c4ecb319987" + integrity sha512-VAZnZcHbHHUU/Li0sj50/T6bBGRWvJ6eOZmw2aZFxxnC+AkHv4LTKDf0wNsxR03ZwGEh4uJM8OuirNugLIhAyA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + tslib "^2.6.2" + +"@turf/sample@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/sample/-/sample-7.0.0.tgz#9a90c83f4a4beb3f8a5c28580150a512078ab76e" + integrity sha512-yCeITDVT3vWMaK/X1JF6jxEipgBCi2Foj87lVO7rcVg5pp/6c2S8BnFB5NoI0+HKXEpulG4eH57khUVND9VCGA== + dependencies: + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/sector@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/sector/-/sector-7.0.0.tgz#3b176f121df200a623518368cd246cdafb8add31" + integrity sha512-HXT8vbCYoIbomcyT0D/0Ap4p3bSmb3EFC7C5BBv3Gr9oWiMf5cFgwwA/inbGorU5fcRap7/Yt4hWWTGLO5MDTw== + dependencies: + "@turf/circle" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/line-arc" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/shortest-path@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/shortest-path/-/shortest-path-7.0.0.tgz#e9c451dcccb4a31aeb6e46a72272591941ca9de3" + integrity sha512-nEtL6qA3Po6uXZsLnfbFCD+Nng3GIRBX2Okyva3PYCJvuD27qYJFvXk423Z0qA+09zZHhi2Ct1IGuXBBYmdkaw== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/bbox-polygon" "^7.0.0" + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/clean-coords" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/transform-scale" "^7.0.0" + tslib "^2.6.2" + +"@turf/simplify@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/simplify/-/simplify-7.0.0.tgz#cfe03b6467b5274324feede82ece6ebfda506bcf" + integrity sha512-EizgFBv7LiLTfqk0BlzuKXmGj7owHksI7Q0mur+yOFGFhEmP5pWm+jYxq+pYfUZA3eki4J7kyN4Mhg5c+jhLTw== + dependencies: + "@turf/clean-coords" "^7.0.0" + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/square-grid@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/square-grid/-/square-grid-7.0.0.tgz#24b2a7cfff40fe3c76774442cd0212ae0ef2e22c" + integrity sha512-Dz7GyFRbcf0aek5nm7gW5gVYq/dJdn+JkVFgSIimysRl1tBtQiE0LvjZRdS97JvPs6m6hcZT+sDEXW1fLDPYFA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/rectangle-grid" "^7.0.0" + tslib "^2.6.2" + +"@turf/square@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/square/-/square-7.0.0.tgz#78a7821ca55af9cf823408f773be37502dbf918c" + integrity sha512-HnY2fESbGGzMeb19qZ0HKpsGRZv4f4e8oHH+gdCr6cs03z/TO6JslJdRA65zHNkdReSVEOQWIMF5IB+Cq20jCg== + dependencies: + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + +"@turf/standard-deviational-ellipse@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-7.0.0.tgz#0f844573b0240b32011bee8ad496a565b2afc433" + integrity sha512-rr4T48aAfu2E/V6fStE8Jq1VD2a/zztS1LGu1PSK3pbk7Eq9HTEE9jzjBIONhDI6ljoLBYy4Qib+L3DaNCfmUQ== + dependencies: + "@turf/center-mean" "^7.0.0" + "@turf/ellipse" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/points-within-polygon" "^7.0.0" + +"@turf/tag@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/tag/-/tag-7.0.0.tgz#873114237e3e06facc1dd5d628a5275b3292aa97" + integrity sha512-/QVKwYq9C7BkHrVtwLXwKSrEZcZT+/JQeNpGsOFhCBnDgXUMtLpj2obkMt+v7wXXtUgTsFAnSh7ClNgS6eB2Sg== + dependencies: + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/tesselate@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/tesselate/-/tesselate-7.0.0.tgz#d086fb558146202bd011eb49c3d17e022a8510d4" + integrity sha512-AWdFrBuLh4RFEBLWVaY9Z3/8jrXFv9WDvO3SyVUCQYFFcQP9aVieHyEEwebRaKb578il/o3rNHyRBuL6xSOcAA== + dependencies: + "@turf/helpers" "^7.0.0" + earcut "^2.2.4" + +"@turf/tin@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/tin/-/tin-7.0.0.tgz#fc3ba2d204b329ff9c536a4d7a3cd659c57c09c2" + integrity sha512-KuzXnoetCqu5RC6wcUWOvotxZMcgZptqz3gJZAuhqa1CF3DKUKFEJ851+f/9KzZ+woalUB8anFr9dMKJjcM6RA== + dependencies: + "@turf/helpers" "^7.0.0" + tslib "^2.6.2" + +"@turf/transform-rotate@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/transform-rotate/-/transform-rotate-7.0.0.tgz#cf357f02cfbbe558f38558eb09bdb9ebb34c2562" + integrity sha512-zU6ypVOdVtXaJvy2LEVjx4o7y/vR9kIL6Iu/VkzXIvGCYICDdHnrpeEVJOFZPqdq4GI4C1xAQ4ARPTwtGrpPBg== + dependencies: + "@turf/centroid" "^7.0.0" + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/rhumb-bearing" "^7.0.0" + "@turf/rhumb-destination" "^7.0.0" + "@turf/rhumb-distance" "^7.0.0" + +"@turf/transform-scale@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/transform-scale/-/transform-scale-7.0.0.tgz#8d55d3f37ce158c86114f551f89bc4b06994262c" + integrity sha512-G94nxT5TyP8TSNRDkoevFoGlUw0H2Az5IG1JKFTT5nRqpbML17IQblV33gaA1Hm197rekQo3CDVWEbgpOV0jAw== + dependencies: + "@turf/bbox" "^7.0.0" + "@turf/center" "^7.0.0" + "@turf/centroid" "^7.0.0" + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/rhumb-bearing" "^7.0.0" + "@turf/rhumb-destination" "^7.0.0" + "@turf/rhumb-distance" "^7.0.0" + +"@turf/transform-translate@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/transform-translate/-/transform-translate-7.0.0.tgz#006985e6ae1a02aa76ddb6349707aa7e53e2bd2e" + integrity sha512-sdZl29CqHoBo/Mxwos6Hvb6LXtHJYYTIjlWqphnu1kislbJwWUJpYjwD8yqTljfW4QHgDzGpnRLGzjDVZ7KHQQ== + dependencies: + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/rhumb-destination" "^7.0.0" + +"@turf/triangle-grid@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/triangle-grid/-/triangle-grid-7.0.0.tgz#a86a468e04287e0da3c7f0c01bf82ef12f9f55d8" + integrity sha512-LKBMgkGGfZxZclRzalIYHGG50eMBOHNihBZLagK/f8RAMrvG2rS/S4n/CQbqU9OXenDgYErSm3SCVXC1dTXVPA== + dependencies: + "@turf/distance" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/intersect" "^7.0.0" + tslib "^2.6.2" + +"@turf/truncate@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/truncate/-/truncate-7.0.0.tgz#1e84c6cf0db2bd63d0b4346722af61daa78ca038" + integrity sha512-G0cKlvONexzRIHRMkzhIA9UsOHiHbVW+iFBlAyDxXKK9Cr9USp/JjETAo8zqCnTQna40xdjt4bcHtsZxqyRQZw== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + tslib "^2.6.2" + +"@turf/turf@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/turf/-/turf-7.0.0.tgz#043c1c6c3ce6c3f17dda0754c1a1291aebbfc3c2" + integrity sha512-oKtvIoP9nCBT7HCUn0/QP62QwTj8eDxfS810ZGJO0aDPDg2x94tSqwbvmu5WcvcxOBB/6L6rF55UJjL+OjcHxw== + dependencies: + "@turf/along" "^7.0.0" + "@turf/angle" "^7.0.0" + "@turf/area" "^7.0.0" + "@turf/bbox" "^7.0.0" + "@turf/bbox-clip" "^7.0.0" + "@turf/bbox-polygon" "^7.0.0" + "@turf/bearing" "^7.0.0" + "@turf/bezier-spline" "^7.0.0" + "@turf/boolean-clockwise" "^7.0.0" + "@turf/boolean-concave" "^7.0.0" + "@turf/boolean-contains" "^7.0.0" + "@turf/boolean-crosses" "^7.0.0" + "@turf/boolean-disjoint" "^7.0.0" + "@turf/boolean-equal" "^7.0.0" + "@turf/boolean-intersects" "^7.0.0" + "@turf/boolean-overlap" "^7.0.0" + "@turf/boolean-parallel" "^7.0.0" + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/boolean-point-on-line" "^7.0.0" + "@turf/boolean-touches" "^7.0.0" + "@turf/boolean-valid" "^7.0.0" + "@turf/boolean-within" "^7.0.0" + "@turf/buffer" "^7.0.0" + "@turf/center" "^7.0.0" + "@turf/center-mean" "^7.0.0" + "@turf/center-median" "^7.0.0" + "@turf/center-of-mass" "^7.0.0" + "@turf/centroid" "^7.0.0" + "@turf/circle" "^7.0.0" + "@turf/clean-coords" "^7.0.0" + "@turf/clone" "^7.0.0" + "@turf/clusters" "^7.0.0" + "@turf/clusters-dbscan" "^7.0.0" + "@turf/clusters-kmeans" "^7.0.0" + "@turf/collect" "^7.0.0" + "@turf/combine" "^7.0.0" + "@turf/concave" "^7.0.0" + "@turf/convex" "^7.0.0" + "@turf/destination" "^7.0.0" + "@turf/difference" "^7.0.0" + "@turf/dissolve" "^7.0.0" + "@turf/distance" "^7.0.0" + "@turf/distance-weight" "^7.0.0" + "@turf/ellipse" "^7.0.0" + "@turf/envelope" "^7.0.0" + "@turf/explode" "^7.0.0" + "@turf/flatten" "^7.0.0" + "@turf/flip" "^7.0.0" + "@turf/geojson-rbush" "^7.0.0" + "@turf/great-circle" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/hex-grid" "^7.0.0" + "@turf/interpolate" "^7.0.0" + "@turf/intersect" "^7.0.0" + "@turf/invariant" "^7.0.0" + "@turf/isobands" "^7.0.0" + "@turf/isolines" "^7.0.0" + "@turf/kinks" "^7.0.0" + "@turf/length" "^7.0.0" + "@turf/line-arc" "^7.0.0" + "@turf/line-chunk" "^7.0.0" + "@turf/line-intersect" "^7.0.0" + "@turf/line-offset" "^7.0.0" + "@turf/line-overlap" "^7.0.0" + "@turf/line-segment" "^7.0.0" + "@turf/line-slice" "^7.0.0" + "@turf/line-slice-along" "^7.0.0" + "@turf/line-split" "^7.0.0" + "@turf/line-to-polygon" "^7.0.0" + "@turf/mask" "^7.0.0" + "@turf/meta" "^7.0.0" + "@turf/midpoint" "^7.0.0" + "@turf/moran-index" "^7.0.0" + "@turf/nearest-neighbor-analysis" "^7.0.0" + "@turf/nearest-point" "^7.0.0" + "@turf/nearest-point-on-line" "^7.0.0" + "@turf/nearest-point-to-line" "^7.0.0" + "@turf/planepoint" "^7.0.0" + "@turf/point-grid" "^7.0.0" + "@turf/point-on-feature" "^7.0.0" + "@turf/point-to-line-distance" "^7.0.0" + "@turf/points-within-polygon" "^7.0.0" + "@turf/polygon-smooth" "^7.0.0" + "@turf/polygon-tangents" "^7.0.0" + "@turf/polygon-to-line" "^7.0.0" + "@turf/polygonize" "^7.0.0" + "@turf/projection" "^7.0.0" + "@turf/quadrat-analysis" "^7.0.0" + "@turf/random" "^7.0.0" + "@turf/rectangle-grid" "^7.0.0" + "@turf/rewind" "^7.0.0" + "@turf/rhumb-bearing" "^7.0.0" + "@turf/rhumb-destination" "^7.0.0" + "@turf/rhumb-distance" "^7.0.0" + "@turf/sample" "^7.0.0" + "@turf/sector" "^7.0.0" + "@turf/shortest-path" "^7.0.0" + "@turf/simplify" "^7.0.0" + "@turf/square" "^7.0.0" + "@turf/square-grid" "^7.0.0" + "@turf/standard-deviational-ellipse" "^7.0.0" + "@turf/tag" "^7.0.0" + "@turf/tesselate" "^7.0.0" + "@turf/tin" "^7.0.0" + "@turf/transform-rotate" "^7.0.0" + "@turf/transform-scale" "^7.0.0" + "@turf/transform-translate" "^7.0.0" + "@turf/triangle-grid" "^7.0.0" + "@turf/truncate" "^7.0.0" + "@turf/union" "^7.0.0" + "@turf/unkink-polygon" "^7.0.0" + "@turf/voronoi" "^7.0.0" + tslib "^2.6.2" + +"@turf/union@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/union/-/union-7.0.0.tgz#03abbb05dadcd14ebb4982e7cee153d0970b28e9" + integrity sha512-NRnP0GJ3guzVh6D2KNZvqNLMkbZtPQ6X1U4czK9ETicLROzqq6wM/S8gHZJVoh0KxxK1RYDsKu0RGFVobVT2vA== + dependencies: + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + polygon-clipping "^0.15.3" + tslib "^2.6.2" + +"@turf/unkink-polygon@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/unkink-polygon/-/unkink-polygon-7.0.0.tgz#daed9b606f4b77014aae34089e9fcd1311f46193" + integrity sha512-mkwC7+KgINIAkRYSx0iRp8BjGtw8bijvtzC9Da5CRTSg13WH2IrvksFtasTo58xMdqyt6oO2NdMEDX3JUwRCeg== + dependencies: + "@turf/area" "^7.0.0" + "@turf/boolean-point-in-polygon" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/meta" "^7.0.0" + rbush "^3.0.1" + +"@turf/voronoi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@turf/voronoi/-/voronoi-7.0.0.tgz#b55e1073fef14ddf0594ba83d6595f464e1890f6" + integrity sha512-AJMrtd9eV+nVA+su1GIp96E5ENzKUepPFr9wWHqqWedj92W2KbdAwfwJVMyl0vBmiMYeTSnfzC7HenIMXePfhA== + dependencies: + "@turf/clone" "^7.0.0" + "@turf/helpers" "^7.0.0" + "@turf/invariant" "^7.0.0" + d3-voronoi "1.1.2" + +"@types/geojson@7946.0.8": + version "7946.0.8" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.8.tgz#30744afdb385e2945e22f3b033f897f76b1f12ca" + integrity sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA== + "@types/lodash.debounce@^4.0.7": version "4.0.9" - resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz#0f5f21c507bce7521b5e30e7a24440975ac860a5" + resolved "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz" integrity sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ== dependencies: "@types/lodash" "*" "@types/lodash@*": - version "4.17.6" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.6.tgz#193ced6a40c8006cfc1ca3f4553444fb38f0e543" - integrity sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA== + version "4.17.7" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== -"@types/webidl-conversions@*": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859" - integrity sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA== - -"@types/whatwg-url@^11.0.2": - version "11.0.5" - resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-11.0.5.tgz#aaa2546e60f0c99209ca13360c32c78caf2c409f" - integrity sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ== +"@types/node@*", "@types/node@>=18": + version "22.1.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b" + integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw== dependencies: - "@types/webidl-conversions" "*" + undici-types "~6.13.0" + +"@types/readable-stream@^4.0.0": + version "4.0.15" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-4.0.15.tgz#e6ec26fe5b02f578c60baf1fa9452e90957d2bfb" + integrity sha512-oAZ3kw+kJFkEqyh7xORZOku1YAKvsFTogRY8kVl4vHpEKiDkfnSA/My8haRE7fvmix5Zyy+1pwzOi7yycGLBJw== + dependencies: + "@types/node" "*" + safe-buffer "~5.1.1" abab@^2.0.5, abab@^2.0.6: version "2.0.6" @@ -2090,9 +3769,16 @@ abab@^2.0.5, abab@^2.0.6: abbrev@1: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + acorn-globals@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" @@ -2116,6 +3802,26 @@ acorn@^8.5.0: resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz" integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== +ag-charts-types@10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/ag-charts-types/-/ag-charts-types-10.0.2.tgz#fe4d7aa3cdc4ba6f354d7b4bbf65818e242f2fd6" + integrity sha512-Nxo5slHOXlaeg0gRIsVnovAosQzzlYfWJtdDy0Aq/VvpJru/PJ+5i2c9aCyEhgRxhBjImsoegwkgRj7gNOWV6Q== + +ag-grid-community@32.0.2: + version "32.0.2" + resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-32.0.2.tgz#a69d99ee944fa07ab5faa103f6f930fbd2d4b432" + integrity sha512-vLJJUjnsG9hNK41GNuW2EHu1W264kxA/poOpcX4kmyrjU5Uzvelsbj3HdKAO9POV28iqyRdKGYfAWdn8QzA7KA== + dependencies: + ag-charts-types "10.0.2" + +ag-grid-react@^32.0.2: + version "32.0.2" + resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-32.0.2.tgz#675b477f23f1f1338af0c15f174f9da3c68baec9" + integrity sha512-IWYsoyJ/Z763rWbE5/9SaT1n5xwIKrm/QzOG14l7i8z5J6JdJwfV0aQFATmEE8Xws2H48vlLcLdW1cv4hwV3eg== + dependencies: + ag-grid-community "32.0.2" + prop-types "^15.8.1" + agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" @@ -2123,6 +3829,13 @@ agent-base@6: dependencies: debug "4" +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== + dependencies: + debug "^4.3.4" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" @@ -2160,12 +3873,12 @@ anymatch@~3.1.2: "aproba@^1.0.3 || ^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== are-we-there-yet@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== dependencies: delegates "^1.0.0" @@ -2176,14 +3889,29 @@ arg@^5.0.2: resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== +array-buffer-byte-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + axios@^1.7.3: version "1.7.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.3.tgz#a1125f2faf702bc8e8f2104ec3a76fab40257d85" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz" integrity sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw== dependencies: follow-redirects "^1.15.6" @@ -2195,14 +3923,34 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + binary-extensions@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== +bl@^6.0.11: + version "6.0.14" + resolved "https://registry.yarnpkg.com/bl/-/bl-6.0.14.tgz#b9ae9862118a3d2ebec999c5318466012314f96c" + integrity sha512-TJfbvGdL7KFGxTsEbsED7avqpFdY56q9IW0/aiytyheJzxST/+Io6cx/4Qx0K2/u0BPRDs65mjaQzYvMZeNocQ== + dependencies: + "@types/readable-stream" "^4.0.0" + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^4.2.0" + +body-scroll-lock@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" + integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== + brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -2227,10 +3975,18 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -bson@^6.7.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/bson/-/bson-6.8.0.tgz#5063c41ba2437c2b8ff851b50d9e36cb7aaa7525" - integrity sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ== +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" busboy@1.6.0: version "1.6.0" @@ -2239,6 +3995,17 @@ busboy@1.6.0: dependencies: streamsearch "^1.1.0" +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + camelcase-css@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" @@ -2251,7 +4018,7 @@ caniuse-lite@^1.0.30001579: canvas@^2.8.0: version "2.11.2" - resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.11.2.tgz#553d87b1e0228c7ac0fc72887c3adbac4abbd860" + resolved "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz" integrity sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw== dependencies: "@mapbox/node-pre-gyp" "^1.0.0" @@ -2275,22 +4042,27 @@ canvas@^2.8.0: chownr@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -client-only@0.0.1: +classnames@^2.3.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +client-only@0.0.1, client-only@^0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== clsx@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== -clsx@^2.0.0: +clsx@^2.0.0, clsx@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== color-convert@^2.0.1: @@ -2307,7 +4079,7 @@ color-name@^1.0.0, color-name@~1.1.4: color-string@^1.9.0: version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== dependencies: color-name "^1.0.0" @@ -2315,17 +4087,17 @@ color-string@^1.9.0: color-support@^1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== color2k@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/color2k/-/color2k-2.0.3.tgz#a771244f6b6285541c82aa65ff0a0c624046e533" + resolved "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz" integrity sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog== color@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz" integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== dependencies: color-convert "^2.0.1" @@ -2338,6 +4110,16 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@2: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + commander@^4.0.0: version "4.1.1" resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" @@ -2345,24 +4127,39 @@ commander@^4.0.0: complex.js@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/complex.js/-/complex.js-2.1.1.tgz#0675dac8e464ec431fb2ab7d30f41d889fb25c31" + resolved "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz" integrity sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg== compute-scroll-into-view@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87" + resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz" integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +concaveman@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/concaveman/-/concaveman-1.2.1.tgz#47d20b4521125c15fabf453653c2696d9ee41e0b" + integrity sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw== + dependencies: + point-in-polygon "^1.1.0" + rbush "^3.0.1" + robust-predicates "^2.0.4" + tinyqueue "^2.0.3" + console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + cross-spawn@^7.0.0: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -2394,6 +4191,23 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +d3-array@1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +d3-geo@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.7.1.tgz#44bbc7a218b1fd859f3d8fd7c443ca836569ce99" + integrity sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw== + dependencies: + d3-array "1" + +d3-voronoi@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz#1687667e8f13a2d158c80c1480c5a29cb0d8973c" + integrity sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw== + data-urls@^3.0.1: version "3.0.2" resolved "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz" @@ -2403,6 +4217,11 @@ data-urls@^3.0.1: whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" +date-fns@^3.3.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz#f20ca4fe94f8b754951b24240676e8618c0206bf" + integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww== + debug@4: version "4.3.5" resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz" @@ -2410,6 +4229,13 @@ debug@4: dependencies: ms "2.1.2" +debug@^4.3.3, debug@^4.3.4: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + decimal.js@^10.3.1, decimal.js@^10.4.3: version "10.4.3" resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz" @@ -2417,16 +4243,63 @@ decimal.js@^10.3.1, decimal.js@^10.4.3: decompress-response@^4.2.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz" integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== dependencies: mimic-response "^2.0.0" +deep-equal@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.5" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.2" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.13" + deepmerge@4.3.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -2434,17 +4307,17 @@ delayed-stream@~1.0.0: delegates@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== detect-libc@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== detect-node-es@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" + resolved "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz" integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== didyoumean@^1.2.2: @@ -2464,11 +4337,23 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" +earcut@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" + integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" @@ -2479,9 +4364,36 @@ emoji-regex@^9.2.2: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + escape-latex@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1" + resolved "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz" integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== escodegen@^2.0.0: @@ -2510,6 +4422,16 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@^3.0.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + fabric@^5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/fabric/-/fabric-5.3.0.tgz" @@ -2545,14 +4467,21 @@ fill-range@^7.1.1: flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== follow-redirects@^1.15.6: version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + foreground-child@^3.1.0: version "3.2.1" resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz" @@ -2572,31 +4501,31 @@ form-data@^4.0.0: fraction.js@^4.3.7: version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== framer-motion@^11.2.13: - version "11.2.13" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-11.2.13.tgz#ab23fbc386233b1a1548757d840190054e5e1f1d" - integrity sha512-AyIeegfkXlkX1lWEudRYsJlC+0A59cE8oFK9IsN9bUQzxLwcvN3AEaYaznkELiWlHC7a0eD7pxsYQo7BC05S5A== + version "11.3.21" + resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-11.3.21.tgz" + integrity sha512-D+hfIsvzV8eL/iycld4K+tKlg2Q2LdwnrcBEohtGw3cG1AIuNYATbT5RUqIM1ndsAk+EfGhoSGf0UaiFodc5Tw== dependencies: tslib "^2.4.0" fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: @@ -2604,9 +4533,14 @@ function-bind@^1.1.2: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + gauge@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== dependencies: aproba "^1.0.3 || ^2.0.0" @@ -2619,9 +4553,27 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" +geojson-polygon-self-intersections@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/geojson-polygon-self-intersections/-/geojson-polygon-self-intersections-1.2.1.tgz#7018edabe58e9262f20821a7334953708c78bbb7" + integrity sha512-/QM1b5u2d172qQVO//9CGRa49jEmclKEsYOQmWP9ooEjj63tBM51m2805xsbxkzlEELQ2REgTf700gUhhlegxA== + dependencies: + rbush "^2.0.1" + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-nonce@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + resolved "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz" integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== glob-parent@^5.1.2, glob-parent@~5.1.2: @@ -2651,7 +4603,7 @@ glob@^10.3.10: glob@^7.1.3: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -2661,6 +4613,13 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + graceful-fs@^4.2.11: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" @@ -2668,12 +4627,41 @@ graceful-fs@^4.2.11: hamt_plus@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/hamt_plus/-/hamt_plus-1.0.2.tgz#e21c252968c7e33b20f6a1b094cd85787a265601" + resolved "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz" integrity sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA== +has-bigints@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + has-unicode@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== hasown@^2.0.0: @@ -2699,6 +4687,14 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" @@ -2707,34 +4703,61 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -iconv-lite@0.6.3: +https-proxy-agent@^7.0.0: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + dependencies: + agent-base "^7.0.2" + debug "4" + +iconv-lite@0.6.3, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + immutable@^4.0.0: version "4.3.7" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz" integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3: +inherits@2, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +internal-slot@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +international-types@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/international-types/-/international-types-0.8.1.tgz#c0e593d9911c1a23f64bbd6eb1abb2941fe2353f" + integrity sha512-tajBCAHo4I0LIFlmQ9ZWfjMWVyRffzuvfbXCd6ssFt5u1Zw15DN0UBpVTItXdNa1ls+cpQt3Yw8+TxsfGF8JcA== + intl-messageformat@^10.1.0: version "10.5.14" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.14.tgz#e5bb373f8a37b88fbe647d7b941f3ab2a37ed00a" + resolved "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz" integrity sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w== dependencies: "@formatjs/ecma402-abstract" "2.0.0" @@ -2744,16 +4767,53 @@ intl-messageformat@^10.1.0: invariant@^2.2.4: version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" +iron-session@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/iron-session/-/iron-session-8.0.2.tgz#9802e080206a8ba41911b53d29ff7de11161d036" + integrity sha512-p4Yf1moQr6gnCcXu5vCaxVKRKDmR9PZcQDfp7ZOgbsSHUsgaNti6OgDB2BdgxC2aS6V/6Hu4O0wYlj92sbdIJg== + dependencies: + cookie "0.6.0" + iron-webcrypto "1.2.1" + uncrypto "0.1.3" + +iron-webcrypto@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz#aa60ff2aa10550630f4c0b11fd2442becdb35a6f" + integrity sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg== + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -2761,6 +4821,19 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + is-core-module@^2.13.0: version "2.13.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" @@ -2768,6 +4841,18 @@ is-core-module@^2.13.0: dependencies: hasown "^2.0.0" +is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -2785,6 +4870,18 @@ is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-map@^2.0.2, is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" @@ -2795,6 +4892,65 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.2, is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -2811,7 +4967,7 @@ jackspeak@^3.1.2: javascript-natural-sort@^0.7.1: version "0.7.1" - resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" + resolved "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz" integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== jiti@^1.21.0: @@ -2819,6 +4975,11 @@ jiti@^1.21.0: resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz" integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== +js-md4@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/js-md4/-/js-md4-0.3.2.tgz#cd3b3dc045b0c404556c81ddb5756c23e59d7cf5" + integrity sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA== + "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" @@ -2857,6 +5018,61 @@ jsdom@^19.0.0: ws "^8.2.3" xml-name-validator "^4.0.0" +jsonwebtoken@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + +jsts@2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/jsts/-/jsts-2.7.1.tgz#a921c0cc9eefeef588bd53e952e0a7782d812d52" + integrity sha512-x2wSZHEBK20CY+Wy+BPE7MrFQHW6sIsdaGUMEqmGAio+3gFzQaBYPwLRonUfQf9Ak8pBieqj9tUofX1+WtAEIg== + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" @@ -2874,35 +5090,70 @@ lines-and-columns@^1.1.6: lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.foreach@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz" integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + lodash.kebabcase@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== lodash.mapkeys@^4.6.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz#df2cfa231d7c57c7a8ad003abdad5d73d3ea5195" + resolved "https://registry.npmjs.org/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz" integrity sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA== lodash.omit@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + resolved "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz" integrity sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg== -loose-envify@^1.0.0, loose-envify@^1.1.0: +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -2916,17 +5167,22 @@ lru-cache@^10.2.0: make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +marchingsquares@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/marchingsquares/-/marchingsquares-1.3.3.tgz#67404af4b883ade3a589221f4e9dd010a1f706fc" + integrity sha512-gz6nNQoVK7Lkh2pZulrT4qd4347S/toG9RXH2pyzhLgkL5mLkBoqgv4EvAGXcV0ikDW72n/OQb3Xe8bGagQZCg== + mathjs@^13.0.2: - version "13.0.2" - resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-13.0.2.tgz#eb87e31a21d9ffc57e26ce98ddb14a4a07b13d91" - integrity sha512-8vK/+InU4FTphRTWsrnvRsgSjbyNupRQYDDIXLuEGDZtJsGdbA9dVV4HZ0amBQb+RXplRjVJNGZZfB0WoHWFWA== + version "13.0.3" + resolved "https://registry.npmjs.org/mathjs/-/mathjs-13.0.3.tgz" + integrity sha512-GpP9OW6swA5POZXvgpc/1FYkAr8lKgV04QHS1tIU60klFfplVCYaNzn6qy0vSp0hAQQN7shcx9CeB507dlLujA== dependencies: - "@babel/runtime" "^7.24.7" + "@babel/runtime" "^7.24.8" complex.js "^2.1.1" decimal.js "^10.4.3" escape-latex "^1.2.0" @@ -2936,11 +5192,6 @@ mathjs@^13.0.2: tiny-emitter "^2.1.0" typed-function "^4.2.1" -memory-pager@^1.0.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" - integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== - merge2@^1.3.0: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" @@ -2968,12 +5219,12 @@ mime-types@^2.1.12: mimic-response@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== minimatch@^3.1.1: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" @@ -2987,14 +5238,14 @@ minimatch@^9.0.4: minipass@^3.0.0: version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" minipass@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: @@ -3004,7 +5255,7 @@ minipass@^5.0.0: minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -3012,31 +5263,31 @@ minizlib@^2.1.1: mkdirp@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mongodb-connection-string-url@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz#c13e6ac284ae401752ebafdb8cd7f16c6723b141" - integrity sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg== - dependencies: - "@types/whatwg-url" "^11.0.2" - whatwg-url "^13.0.0" - -mongodb@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-6.8.0.tgz#680450f113cdea6d2d9f7121fe57cd29111fd2ce" - integrity sha512-HGQ9NWDle5WvwMnrvUxsFYPd3JEbqD3RgABHBQRuoCEND0qzhsd0iH5ypHsf1eJ+sXmvmyKpP+FLOKY8Il7jMw== - dependencies: - "@mongodb-js/saslprep" "^1.1.5" - bson "^6.7.0" - mongodb-connection-string-url "^3.0.0" - ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mssql@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/mssql/-/mssql-11.0.1.tgz#a32ab7763bfbb3f5d970e47563df3911fc04e21d" + integrity sha512-KlGNsugoT90enKlR8/G36H0kTxPthDhmtNUCwEHvgRza5Cjpjoj+P2X6eMpFUDN7pFrJZsKadL4x990G8RBE1w== + dependencies: + "@tediousjs/connection-string" "^0.5.0" + commander "^11.0.0" + debug "^4.3.3" + rfdc "^1.3.0" + tarn "^3.0.2" + tedious "^18.2.1" + mz@^2.7.0: version "2.7.0" resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" @@ -3048,7 +5299,7 @@ mz@^2.7.0: nan@^2.17.0: version "2.20.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" + resolved "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz" integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== nanoid@^3.3.6, nanoid@^3.3.7: @@ -3056,6 +5307,20 @@ nanoid@^3.3.6, nanoid@^3.3.7: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +native-duplexpair@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/native-duplexpair/-/native-duplexpair-1.0.0.tgz#7899078e64bf3c8a3d732601b3d40ff05db58fa0" + integrity sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA== + +next-international@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/next-international/-/next-international-1.2.4.tgz#abe50b2aa3ba7ecf92d41f87537796a4b2dd0ba3" + integrity sha512-JQvp+h2iSgA/t8hu5S/Lwow1ZErJutQRdpnplxjv4VTlCiND8T95fYih8BjkHcVhQbtM+Wu9Mb1CM32wD9hlWQ== + dependencies: + client-only "^0.0.1" + international-types "^0.8.1" + server-only "^0.0.1" + next@14.2.3: version "14.2.3" resolved "https://registry.npmjs.org/next/-/next-14.2.3.tgz" @@ -3081,14 +5346,14 @@ next@14.2.3: node-fetch@^2.6.7: version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" nopt@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: abbrev "1" @@ -3100,7 +5365,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: npmlog@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== dependencies: are-we-there-yet "^2.0.0" @@ -3115,7 +5380,7 @@ nwsapi@^2.2.0: object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^3.0.0: @@ -3123,13 +5388,50 @@ object-hash@^3.0.0: resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + once@^1.3.0, once@^1.3.1: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" +open@^8.0.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + parse5@6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" @@ -3137,7 +5439,7 @@ parse5@6.0.1: path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: @@ -3178,6 +5480,29 @@ pirates@^4.0.1: resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== +point-in-polygon-hao@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/point-in-polygon-hao/-/point-in-polygon-hao-1.1.0.tgz#37f5f4fbe14e89fa8a3bb7f67c9158079d2ede7c" + integrity sha512-3hTIM2j/v9Lio+wOyur3kckD4NxruZhpowUbEgmyikW+a2Kppjtu1eN+AhnMQtoHW46zld88JiYWv6fxpsDrTQ== + +point-in-polygon@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/point-in-polygon/-/point-in-polygon-1.1.0.tgz#b0af2616c01bdee341cbf2894df643387ca03357" + integrity sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw== + +polygon-clipping@^0.15.3: + version "0.15.7" + resolved "https://registry.yarnpkg.com/polygon-clipping/-/polygon-clipping-0.15.7.tgz#3823ca1e372566f350795ce9dd9a7b19e97bdaad" + integrity sha512-nhfdr83ECBg6xtqOAJab1tbksbBAOMUltN60bU+llHVOL0e5Onm1WpAXXWXVB39L8AJFssoIhEVuy/S90MmotA== + dependencies: + robust-predicates "^3.0.2" + splaytree "^3.1.0" + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + postcss-import@^15.1.0: version "15.1.0" resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" @@ -3242,19 +5567,33 @@ postcss@^8, postcss@^8.4.23: prettier@^3.3.3: version "3.3.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz" integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== -prisma@^5.17.0: - version "5.17.0" - resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.17.0.tgz#267b43921ab94805b010537cffa5ccaf530fa066" - integrity sha512-m4UWkN5lBE6yevqeOxEvmepnL5cNPEjzMw2IqDB59AcEV6w7D8vGljDLd1gPFH+W6gUxw9x7/RmN5dCS/WTPxA== +prisma@^5.18.0: + version "5.18.0" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.18.0.tgz#5ef69c802a075b7596231ea57003496873610b9e" + integrity sha512-+TrSIxZsh64OPOmaSgVPH7ALL9dfU0jceYaMJXsNrTkFHO7/3RANi5K2ZiPB1De9+KDxCWn7jvRq8y8pvk+o9g== dependencies: - "@prisma/engines" "5.17.0" + "@prisma/engines" "5.18.0" + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== psl@^1.1.33: @@ -3262,7 +5601,7 @@ psl@^1.1.33: resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -punycode@^2.1.1, punycode@^2.3.0: +punycode@^2.1.1: version "2.3.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== @@ -3277,6 +5616,41 @@ queue-microtask@^1.2.2: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quickselect@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-1.1.1.tgz#852e412ce418f237ad5b660d70cffac647ae94c2" + integrity sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ== + +quickselect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" + integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw== + +rbush@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/rbush/-/rbush-2.0.2.tgz#bb6005c2731b7ba1d5a9a035772927d16a614605" + integrity sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA== + dependencies: + quickselect "^1.0.1" + +rbush@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf" + integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w== + dependencies: + quickselect "^2.0.0" + +react-datepicker@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-7.3.0.tgz#666664a609d4b57b095083fe29d080943fa7b3ed" + integrity sha512-EqRKLAtLZUTztiq6a+tjSjQX9ES0Xd229JPckAtyZZ4GoY3rtvNWAzkYZnQUf6zTWT50Ki0+t+W9VRQIkSJLfg== + dependencies: + "@floating-ui/react" "^0.26.2" + clsx "^2.1.0" + date-fns "^3.3.1" + prop-types "^15.7.2" + react-onclickoutside "^6.13.0" + react-dom@^18: version "18.3.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" @@ -3285,9 +5659,19 @@ react-dom@^18: loose-envify "^1.1.0" scheduler "^0.23.2" +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-onclickoutside@^6.13.0: + version "6.13.1" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.13.1.tgz#1f5e0241c08784b6e65745d91aca0d700c548a89" + integrity sha512-LdrrxK/Yh9zbBQdFbMTXPp3dTSN9B+9YJQucdDu3JNKRrbdU+H+/TVONJoWtOwy4II8Sqf1y/DTI6w/vGPYW0w== + react-remove-scroll-bar@^2.3.6: version "2.3.6" - resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz#3e585e9d163be84a010180b18721e851ac81a29c" + resolved "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz" integrity sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g== dependencies: react-style-singleton "^2.2.1" @@ -3295,7 +5679,7 @@ react-remove-scroll-bar@^2.3.6: react-remove-scroll@^2.5.6: version "2.5.10" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.10.tgz#5fae456a23962af6d3c38ca1978bcfe0806c4061" + resolved "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.10.tgz" integrity sha512-m3zvBRANPBw3qxVVjEIPEQinkcwlFZ4qyomuWVpNJdv4c6MvHfXV0C3L9Jx5rr3HeBHKNRX+1jreB5QloDIJjA== dependencies: react-remove-scroll-bar "^2.3.6" @@ -3304,9 +5688,18 @@ react-remove-scroll@^2.5.6: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" +react-responsive-modal@^6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/react-responsive-modal/-/react-responsive-modal-6.4.2.tgz#666b5c35b232cec617981006c9fe59414531a5a0" + integrity sha512-ARjGEKE5Gu5CSvyA8U9ARVbtK4SMAtdXsjtzwtxRlQIHC99RQTnOUctLpl7+/sp1Kg1OJZ6yqvp6ivd4TBueEw== + dependencies: + "@bedrock-layout/use-forwarded-ref" "^1.3.1" + body-scroll-lock "^3.1.5" + classnames "^2.3.1" + react-style-singleton@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" + resolved "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz" integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== dependencies: get-nonce "^1.0.0" @@ -3315,13 +5708,20 @@ react-style-singleton@^2.2.1: react-textarea-autosize@^8.5.3: version "8.5.3" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" + resolved "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz" integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== dependencies: "@babel/runtime" "^7.20.13" use-composed-ref "^1.3.0" use-latest "^1.2.1" +react-toastify@^10.0.5: + version "10.0.5" + resolved "https://registry.npmjs.org/react-toastify/-/react-toastify-10.0.5.tgz" + integrity sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw== + dependencies: + clsx "^2.1.0" + react@^18: version "18.3.1" resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" @@ -3338,13 +5738,24 @@ read-cache@^1.0.0: readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.2.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -3354,16 +5765,26 @@ readdirp@~3.6.0: recoil@^0.7.7: version "0.7.7" - resolved "https://registry.yarnpkg.com/recoil/-/recoil-0.7.7.tgz#c5f2c843224384c9c09e4a62c060fb4c1454dc8e" + resolved "https://registry.npmjs.org/recoil/-/recoil-0.7.7.tgz" integrity sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ== dependencies: hamt_plus "1.0.2" regenerator-runtime@^0.14.0: version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== +regexp.prototype.flags@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" @@ -3383,13 +5804,28 @@ reusify@^1.0.4: resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +robust-predicates@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-2.0.4.tgz#0a2367a93abd99676d075981707f29cfb402248b" + integrity sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg== + +robust-predicates@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" @@ -3397,11 +5833,16 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" @@ -3409,7 +5850,7 @@ safe-buffer@~5.2.0: sass@^1.77.8: version "1.77.8" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.8.tgz#9f18b449ea401759ef7ec1752a16373e296b52bd" + resolved "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz" integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -3432,31 +5873,63 @@ scheduler@^0.23.2: scroll-into-view-if-needed@3.0.10: version "3.0.10" - resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz#38fbfe770d490baff0fb2ba34ae3539f6ec44e13" + resolved "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz" integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg== dependencies: compute-scroll-into-view "^3.0.2" seedrandom@^3.0.5: version "3.0.5" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" + resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz" integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== semver@^6.0.0: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.5: version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== +semver@^7.5.4: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +server-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz#0f366bb6afb618c37c9255a314535dc412cd1c9e" + integrity sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA== + set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -3469,9 +5942,19 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + signal-exit@^3.0.0: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: @@ -3481,12 +5964,12 @@ signal-exit@^4.0.1: simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^3.0.3: version "3.1.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz" integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== dependencies: decompress-response "^4.2.0" @@ -3495,11 +5978,16 @@ simple-get@^3.0.3: simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== dependencies: is-arrayish "^0.3.1" +skmeans@0.9.7: + version "0.9.7" + resolved "https://registry.yarnpkg.com/skmeans/-/skmeans-0.9.7.tgz#72670cebb728508f56e29c0e10d11e623529ce5d" + integrity sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg== + "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" @@ -3510,12 +5998,27 @@ source-map@~0.6.1: resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sparse-bitfield@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" - integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== +splaytree@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/splaytree/-/splaytree-3.1.2.tgz#d1db2691665a3c69d630de98d55145a6546dc166" + integrity sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A== + +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== dependencies: - memory-pager "^1.0.2" + internal-slot "^1.0.4" + +stoppable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== streamsearch@^1.1.0: version "1.1.0" @@ -3533,7 +6036,7 @@ streamsearch@^1.1.0: "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -3549,9 +6052,9 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string_decoder@^1.1.1: +string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" @@ -3602,19 +6105,31 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +sweepline-intersections@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sweepline-intersections/-/sweepline-intersections-1.5.0.tgz#85ab3629a291875926fae0acd508496430d8a647" + integrity sha512-AoVmx72QHpKtItPu72TzFL+kcYjd67BPLDoR0LarIk+xyaRg+pDTMFXndIEvZf9xEKnJv6JdhgRMnocoG0D3AQ== + dependencies: + tinyqueue "^2.0.0" + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +tabbable@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + tailwind-merge@^1.14.0: version "1.14.0" - resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-1.14.0.tgz#e677f55d864edc6794562c63f5001f45093cdb8b" + resolved "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz" integrity sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ== tailwind-variants@^0.1.20: version "0.1.20" - resolved "https://registry.yarnpkg.com/tailwind-variants/-/tailwind-variants-0.1.20.tgz#8aaed9094be0379a438641a42d588943e44c5fcd" + resolved "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.1.20.tgz" integrity sha512-AMh7x313t/V+eTySKB0Dal08RHY7ggYK0MSn/ad8wKWOrDUIzyiWNayRUm2PIJ4VRkvRnfNuyRuKbLV3EN+ewQ== dependencies: tailwind-merge "^1.14.0" @@ -3649,7 +6164,7 @@ tailwindcss@^3.4.1: tar@^6.1.11: version "6.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" @@ -3659,6 +6174,27 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" +tarn@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" + integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== + +tedious@^18.2.1: + version "18.3.0" + resolved "https://registry.yarnpkg.com/tedious/-/tedious-18.3.0.tgz#49ef1a26b090d71e4d2b87c7fde6170db07fa6d0" + integrity sha512-/aVCX2VLu9Ihf5UyxifRXfmWQ1P8HNJvapk1as+LMzSdw9AmbNtEHllrffZpNrzBCptcK0Z4m06k+tutL2wowA== + dependencies: + "@azure/core-auth" "^1.7.2" + "@azure/identity" "^4.2.1" + "@azure/keyvault-keys" "^4.4.0" + "@js-joda/core" "^5.6.1" + "@types/node" ">=18" + bl "^6.0.11" + iconv-lite "^0.6.3" + js-md4 "^0.3.2" + native-duplexpair "^1.0.0" + sprintf-js "^1.1.3" + thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" @@ -3675,9 +6211,14 @@ thenify-all@^1.0.0: tiny-emitter@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== +tinyqueue@^2.0.0, tinyqueue@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-2.0.3.tgz#64d8492ebf39e7801d7bd34062e29b45b2035f08" + integrity sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -3685,6 +6226,20 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +topojson-client@3.x: + version "3.1.0" + resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99" + integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw== + dependencies: + commander "2" + +topojson-server@3.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/topojson-server/-/topojson-server-3.0.1.tgz#d2b3ec095b6732299be76a48406111b3201a34f5" + integrity sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw== + dependencies: + commander "2" + tough-cookie@^4.0.0: version "4.1.4" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz" @@ -3702,16 +6257,9 @@ tr46@^3.0.0: dependencies: punycode "^2.1.1" -tr46@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" - integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== - dependencies: - punycode "^2.3.0" - tr46@~0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== ts-interface-checker@^0.1.9: @@ -3719,16 +6267,26 @@ ts-interface-checker@^0.1.9: resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0: +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.4.0, tslib@^2.6.2: version "2.6.3" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== typed-function@^4.2.1: version "4.2.1" - resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-4.2.1.tgz#19aa51847aa2dea9ef5e7fb7641c060179a74426" + resolved "https://registry.npmjs.org/typed-function/-/typed-function-4.2.1.tgz" integrity sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA== +uncrypto@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== + +undici-types@~6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5" + integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg== + universalify@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" @@ -3744,31 +6302,31 @@ url-parse@^1.5.3: use-callback-ref@^1.3.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.2.tgz#6134c7f6ff76e2be0b56c809b17a650c942b1693" + resolved "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz" integrity sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA== dependencies: tslib "^2.0.0" use-composed-ref@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + resolved "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz" integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== use-isomorphic-layout-effect@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + resolved "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz" integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== use-latest@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + resolved "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz" integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== dependencies: use-isomorphic-layout-effect "^1.1.1" use-sidecar@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" + resolved "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz" integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== dependencies: detect-node-es "^1.1.0" @@ -3776,9 +6334,14 @@ use-sidecar@^1.1.2: util-deprecate@^1.0.1, util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + uuid@^9.0.1: version "9.0.1" resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" @@ -3800,7 +6363,7 @@ w3c-xmlserializer@^3.0.0: webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^7.0.0: @@ -3836,22 +6399,46 @@ whatwg-url@^11.0.0: tr46 "^3.0.0" webidl-conversions "^7.0.0" -whatwg-url@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-13.0.0.tgz#b7b536aca48306394a34e44bda8e99f332410f8f" - integrity sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig== - dependencies: - tr46 "^4.1.1" - webidl-conversions "^7.0.0" - whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.13: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -3861,7 +6448,7 @@ which@^2.0.1: wide-align@^1.1.2: version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" @@ -3886,7 +6473,7 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.2.3: @@ -3906,7 +6493,7 @@ xmlchars@^2.2.0: yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.3.4: