From aca4998da762a51d13b07cc443bb6b9f12b7fb46 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Sun, 19 Apr 2026 18:54:31 +0200 Subject: [PATCH 01/15] AI scaffolded NodeJS version of the App. --- .gitignore | 4 + Dockerfile | 32 + app-new/backend/package-lock.json | 3244 +++++++++++++++++ app-new/backend/package.json | 30 + app-new/backend/src/azure-service.ts | 117 + app-new/backend/src/cache.ts | 29 + app-new/backend/src/server.ts | 149 + app-new/backend/src/template-service.ts | 41 + app-new/backend/src/types.ts | 18 + app-new/backend/src/version.ts | 22 + app-new/backend/test/version.test.ts | 14 + app-new/backend/tsconfig.json | 16 + app-new/frontend/index.html | 12 + app-new/frontend/package-lock.json | 4355 +++++++++++++++++++++++ app-new/frontend/package.json | 31 + app-new/frontend/src/App.tsx | 267 ++ app-new/frontend/src/api.ts | 46 + app-new/frontend/src/main.tsx | 33 + app-new/frontend/src/types.ts | 18 + app-new/frontend/test/app.test.tsx | 48 + app-new/frontend/test/setup.ts | 1 + app-new/frontend/tsconfig.json | 15 + app-new/frontend/vite.config.ts | 19 + app-new/frontend/vitest.config.ts | 8 + entrypoint.sh | 4 + migration-plan/plan.md | 103 + migration-plan/version-manifest.md | 57 + 27 files changed, 8733 insertions(+) create mode 100644 Dockerfile create mode 100644 app-new/backend/package-lock.json create mode 100644 app-new/backend/package.json create mode 100644 app-new/backend/src/azure-service.ts create mode 100644 app-new/backend/src/cache.ts create mode 100644 app-new/backend/src/server.ts create mode 100644 app-new/backend/src/template-service.ts create mode 100644 app-new/backend/src/types.ts create mode 100644 app-new/backend/src/version.ts create mode 100644 app-new/backend/test/version.test.ts create mode 100644 app-new/backend/tsconfig.json create mode 100644 app-new/frontend/index.html create mode 100644 app-new/frontend/package-lock.json create mode 100644 app-new/frontend/package.json create mode 100644 app-new/frontend/src/App.tsx create mode 100644 app-new/frontend/src/api.ts create mode 100644 app-new/frontend/src/main.tsx create mode 100644 app-new/frontend/src/types.ts create mode 100644 app-new/frontend/test/app.test.tsx create mode 100644 app-new/frontend/test/setup.ts create mode 100644 app-new/frontend/tsconfig.json create mode 100644 app-new/frontend/vite.config.ts create mode 100644 app-new/frontend/vitest.config.ts create mode 100755 entrypoint.sh create mode 100644 migration-plan/plan.md create mode 100644 migration-plan/version-manifest.md diff --git a/.gitignore b/.gitignore index 2e98a60..d76ec62 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,7 @@ # MacOS Finder files **/.DS_Store + +# Node/React rewrite outputs +**/node_modules +/dist diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..12860bb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +FROM node:24-trixie-slim AS build + +WORKDIR /workspace + +COPY app-new/backend/package*.json app-new/backend/ +COPY app-new/frontend/package*.json app-new/frontend/ +RUN cd app-new/backend && npm install +RUN cd app-new/frontend && npm install + +COPY app-new app-new +COPY app/templates app/templates +COPY app/templates.json app/templates.json + +RUN cd app-new/backend && npm run build +RUN cd app-new/frontend && npm run build + +FROM node:24-trixie-slim AS runtime + +WORKDIR /workspace +ENV NODE_ENV=production +ENV PORT=3000 + +COPY app-new/backend/package*.json app-new/backend/ +RUN cd app-new/backend && npm install --omit=dev + +COPY --from=build /workspace/dist dist +COPY --from=build /workspace/app app +COPY entrypoint.sh entrypoint.sh +RUN chmod +x entrypoint.sh + +EXPOSE 3000 +CMD ["./entrypoint.sh"] diff --git a/app-new/backend/package-lock.json b/app-new/backend/package-lock.json new file mode 100644 index 0000000..7fe80cd --- /dev/null +++ b/app-new/backend/package-lock.json @@ -0,0 +1,3244 @@ +{ + "name": "azure-image-chooser-backend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "azure-image-chooser-backend", + "version": "0.1.0", + "dependencies": { + "@azure/arm-compute": "^23.3.0", + "@azure/identity": "^4.13.1", + "cors": "^2.8.5", + "dotenv": "^17.2.3", + "express": "^5.2.1", + "nunjucks": "^3.2.4", + "zod": "^4.3.6" + }, + "devDependencies": { + "@types/cors": "^2.8.19", + "@types/express": "^5.0.3", + "@types/node": "^24.9.1", + "@types/nunjucks": "^3.2.6", + "tsx": "^4.20.6", + "typescript": "^6.0.3", + "vitest": "^3.2.4" + } + }, + "node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/arm-compute": { + "version": "23.3.0", + "resolved": "https://registry.npmjs.org/@azure/arm-compute/-/arm-compute-23.3.0.tgz", + "integrity": "sha512-shWghknI8LhhQhiGDcz89WSbuXogRALmiZ0TOUD6Ezv6t1UhAu4ess+q7O/EMsaErAHqiqBpFpLS/aTc6GNqxA==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.3", + "@azure/core-lro": "^2.5.4", + "@azure/core-paging": "^1.6.2", + "@azure/core-rest-pipeline": "^1.19.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.1.tgz", + "integrity": "sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.10.1.tgz", + "integrity": "sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-lro": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.2.tgz", + "integrity": "sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.2.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-paging": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz", + "integrity": "sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.23.0.tgz", + "integrity": "sha512-Evs1INHo+jUjwHi1T6SG6Ua/LHOQBCLuKEEE6efIpt4ZOoNonaT1kP32GoOcdNDbfqsD2445CPri3MubBy5DEQ==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.3.1.tgz", + "integrity": "sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.1.tgz", + "integrity": "sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.1.tgz", + "integrity": "sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.2", + "@azure/core-rest-pipeline": "^1.17.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^5.5.0", + "@azure/msal-node": "^5.1.0", + "open": "^10.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.3.0.tgz", + "integrity": "sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==", + "license": "MIT", + "dependencies": { + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.7.0.tgz", + "integrity": "sha512-uYbJ0YarxkVGWEq814BysJry/IPvpDNkVKmc2bMZp4G+igUQkJ5nlFirycwPGUeA9ICLQqCxqExCA1Z1E07bPA==", + "license": "MIT", + "dependencies": { + "@azure/msal-common": "16.5.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.5.0.tgz", + "integrity": "sha512-i3eS/5pmxDbIU/mLMENs88Qg3k6XxqJytJy6PpB7L1tCBjdXHJDadCD3Hu1TyTooe7iQo7CYqbocgL/l/8u90g==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-5.1.3.tgz", + "integrity": "sha512-LqT8mRZpEils9zGR9eW+Ljqifh2aMA99UF/X0jxIKDYZeHr6onlHwhVP4xHCeLhh55BI63JCbdf1iWJbMh1mPw==", + "license": "MIT", + "dependencies": { + "@azure/msal-common": "16.5.0", + "jsonwebtoken": "^9.0.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", + "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz", + "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/nunjucks": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.2.6.tgz", + "integrity": "sha512-pHiGtf83na1nCzliuAdq8GowYiXvH5l931xZ0YEHaLMNFgynpEqx+IPStlu7UaDkehfvl01e4x/9Tpwhy7Ue3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*" + } + }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.5.tgz", + "integrity": "sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==", + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "license": "MIT" + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fsevents": { + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "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" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "license": "BSD-2-Clause", + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/rollup": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", + "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/app-new/backend/package.json b/app-new/backend/package.json new file mode 100644 index 0000000..b06512a --- /dev/null +++ b/app-new/backend/package.json @@ -0,0 +1,30 @@ +{ + "name": "azure-image-chooser-backend", + "version": "0.1.0", + "private": true, + "type": "commonjs", + "scripts": { + "build": "tsc -p tsconfig.json", + "dev": "tsx watch src/server.ts", + "start": "node ../../dist/backend/server.js", + "test": "vitest run" + }, + "dependencies": { + "@azure/arm-compute": "^23.3.0", + "@azure/identity": "^4.13.1", + "cors": "^2.8.5", + "dotenv": "^17.2.3", + "express": "^5.2.1", + "nunjucks": "^3.2.4", + "zod": "^4.3.6" + }, + "devDependencies": { + "@types/cors": "^2.8.19", + "@types/express": "^5.0.3", + "@types/nunjucks": "^3.2.6", + "@types/node": "^24.9.1", + "typescript": "^6.0.3", + "tsx": "^4.20.6", + "vitest": "^3.2.4" + } +} \ No newline at end of file diff --git a/app-new/backend/src/azure-service.ts b/app-new/backend/src/azure-service.ts new file mode 100644 index 0000000..eca68ab --- /dev/null +++ b/app-new/backend/src/azure-service.ts @@ -0,0 +1,117 @@ +import { ComputeManagementClient } from "@azure/arm-compute"; +import { DefaultAzureCredential } from "@azure/identity"; +import { MemoryCache } from "./cache"; +import { sortImageVersionsIfSemantic } from "./version"; +import type { LocationOption } from "./types"; + +const CACHE_TTL_MS = 5 * 60 * 1000; + +export class AzureImageService { + private readonly credential = new DefaultAzureCredential(); + + private readonly computeClient: ComputeManagementClient; + + private readonly cache = new MemoryCache(); + + public constructor(private readonly subscriptionId: string) { + this.computeClient = new ComputeManagementClient(this.credential, subscriptionId); + } + + public async getLocations(): Promise { + const cacheKey = "locations"; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + + const token = await this.credential.getToken("https://management.azure.com/.default"); + const url = `https://management.azure.com/subscriptions/${this.subscriptionId}/locations?api-version=2022-12-01`; + const response = await fetch(url, { + headers: { + Authorization: `Bearer ${token?.token ?? ""}` + } + }); + + const payload = (await response.json()) as { value?: Array<{ name?: string; displayName?: string; metadata?: { regionType?: string } }> }; + + const locations = (payload.value ?? []) + .filter((loc) => loc.metadata?.regionType === "Physical" && Boolean(loc.name)) + .map((loc) => ({ + name: loc.name as string, + displayName: loc.displayName ?? (loc.name as string) + })); + + locations.sort((a, b) => a.name.localeCompare(b.name)); + this.cache.set(cacheKey, locations, CACHE_TTL_MS); + return locations; + } + + public async getPublishers(location: string): Promise { + const cacheKey = `publishers:${location}`; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + + const response = await this.computeClient.virtualMachineImages.listPublishers(location); + const publishers = this.extractNames(response); + + this.cache.set(cacheKey, publishers, CACHE_TTL_MS); + return publishers; + } + + public async getOffers(location: string, publisher: string): Promise { + const cacheKey = `offers:${location}:${publisher}`; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + + const response = await this.computeClient.virtualMachineImages.listOffers(location, publisher); + const offers = this.extractNames(response); + + this.cache.set(cacheKey, offers, CACHE_TTL_MS); + return offers; + } + + public async getSkus(location: string, publisher: string, offer: string): Promise { + const cacheKey = `skus:${location}:${publisher}:${offer}`; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + + const response = await this.computeClient.virtualMachineImages.listSkus(location, publisher, offer); + const skus = this.extractNames(response); + + this.cache.set(cacheKey, skus, CACHE_TTL_MS); + return skus; + } + + public async getVersions(location: string, publisher: string, offer: string, sku: string): Promise { + const cacheKey = `versions:${location}:${publisher}:${offer}:${sku}`; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + + const response = await this.computeClient.virtualMachineImages.list(location, publisher, offer, sku); + const versions = this.extractNames(response); + + const sorted = sortImageVersionsIfSemantic(versions); + this.cache.set(cacheKey, sorted, CACHE_TTL_MS); + return sorted; + } + + private extractNames(source: unknown): string[] { + const items = Array.isArray(source) + ? source + : typeof source === "object" && source !== null && "value" in source && Array.isArray((source as { value?: unknown }).value) + ? ((source as { value: unknown[] }).value as unknown[]) + : []; + + return items + .map((item) => (typeof item === "object" && item !== null && "name" in item ? (item as { name?: string }).name : undefined)) + .filter((value): value is string => Boolean(value)); + } +} diff --git a/app-new/backend/src/cache.ts b/app-new/backend/src/cache.ts new file mode 100644 index 0000000..e00a1d6 --- /dev/null +++ b/app-new/backend/src/cache.ts @@ -0,0 +1,29 @@ +type CacheEntry = { + value: T; + expiresAt: number; +}; + +export class MemoryCache { + private readonly store = new Map>(); + + public get(key: string): T | undefined { + const hit = this.store.get(key); + if (!hit) { + return undefined; + } + + if (Date.now() >= hit.expiresAt) { + this.store.delete(key); + return undefined; + } + + return hit.value as T; + } + + public set(key: string, value: T, ttlMs: number): void { + this.store.set(key, { + value, + expiresAt: Date.now() + ttlMs + }); + } +} diff --git a/app-new/backend/src/server.ts b/app-new/backend/src/server.ts new file mode 100644 index 0000000..48c9701 --- /dev/null +++ b/app-new/backend/src/server.ts @@ -0,0 +1,149 @@ +import { existsSync } from "node:fs"; +import { join } from "node:path"; +import cors from "cors"; +import "dotenv/config"; +import express from "express"; +import { z } from "zod"; +import { AzureImageService } from "./azure-service"; +import { TemplateService } from "./template-service"; + +const queryLocation = z.object({ location: z.string().min(1) }); +const queryOffer = z.object({ location: z.string().min(1), publisher: z.string().min(1) }); +const querySku = z.object({ location: z.string().min(1), publisher: z.string().min(1), offer: z.string().min(1) }); +const queryVersion = z.object({ location: z.string().min(1), publisher: z.string().min(1), offer: z.string().min(1), sku: z.string().min(1) }); + +const renderBody = z.object({ + templateFile: z.string().min(1), + selection: z.object({ + location: z.string().min(1), + publisher: z.string().min(1), + offer: z.string().min(1), + sku: z.string().min(1), + version: z.string().min(1) + }) +}); + +const makeApp = () => { + const app = express(); + const port = Number.parseInt(process.env.PORT ?? "3000", 10); + const subscriptionId = process.env.AZURE_SUBSCRIPTION_ID; + + app.use(cors()); + app.use(express.json()); + + if (!subscriptionId) { + app.get("/api/health", (_req, res) => { + res.status(500).json({ + status: "error", + message: "Missing AZURE_SUBSCRIPTION_ID" + }); + }); + + return { app, port }; + } + + const azure = new AzureImageService(subscriptionId); + const templates = new TemplateService(); + + app.get("/api/health", (_req, res) => { + res.json({ status: "ok" }); + }); + + app.get("/api/locations", async (_req, res, next) => { + try { + res.json(await azure.getLocations()); + } catch (error) { + next(error); + } + }); + + app.get("/api/publishers", async (req, res, next) => { + try { + const { location } = queryLocation.parse(req.query); + res.json(await azure.getPublishers(location)); + } catch (error) { + next(error); + } + }); + + app.get("/api/offers", async (req, res, next) => { + try { + const { location, publisher } = queryOffer.parse(req.query); + res.json(await azure.getOffers(location, publisher)); + } catch (error) { + next(error); + } + }); + + app.get("/api/skus", async (req, res, next) => { + try { + const { location, publisher, offer } = querySku.parse(req.query); + res.json(await azure.getSkus(location, publisher, offer)); + } catch (error) { + next(error); + } + }); + + app.get("/api/versions", async (req, res, next) => { + try { + const { location, publisher, offer, sku } = queryVersion.parse(req.query); + res.json(await azure.getVersions(location, publisher, offer, sku)); + } catch (error) { + next(error); + } + }); + + app.get("/api/templates", (_req, res) => { + res.json(templates.getTemplates()); + }); + + app.post("/api/render", (req, res, next) => { + try { + const payload = renderBody.parse(req.body); + const rendered = templates.render(payload.templateFile, payload.selection); + res.json({ rendered }); + } catch (error) { + next(error); + } + }); + + app.get("/api/sku-export", async (req, res, next) => { + try { + const { location, publisher, offer } = querySku.parse(req.query); + const skus = await azure.getSkus(location, publisher, offer); + res.json({ rendered: templates.buildSkuExport(skus) }); + } catch (error) { + next(error); + } + }); + + app.use((err: unknown, _req: express.Request, res: express.Response, _next: express.NextFunction) => { + if (err instanceof z.ZodError) { + res.status(400).json({ message: "Invalid request", issues: err.issues }); + return; + } + + const message = err instanceof Error ? err.message : "Unexpected error"; + res.status(500).json({ message }); + }); + + const frontendRoot = join(process.cwd(), "dist/frontend"); + if (existsSync(frontendRoot)) { + app.use(express.static(frontendRoot)); + app.get(/^(?!\/api).*/, (_req, res) => { + res.sendFile(join(frontendRoot, "index.html")); + }); + } + + return { app, port }; +}; + +if (require.main === module) { + const { app, port } = makeApp(); + app.listen(port, () => { + // eslint-disable-next-line no-console + console.log(`azure-image-chooser listening on ${port}`); + }); +} + +export { makeApp }; diff --git a/app-new/backend/src/template-service.ts b/app-new/backend/src/template-service.ts new file mode 100644 index 0000000..abeca3f --- /dev/null +++ b/app-new/backend/src/template-service.ts @@ -0,0 +1,41 @@ +import { readFileSync } from "node:fs"; +import { join } from "node:path"; +import nunjucks from "nunjucks"; +import type { ImageSelection, UsageTemplate } from "./types"; + +const findAppRoot = (): string => { + // Supports running from src/backend (dev) and dist/backend (compiled). + const devPath = join(__dirname, "../../../app"); + const buildPath = join(__dirname, "../../app"); + try { + readFileSync(join(devPath, "templates.json"), "utf8"); + return devPath; + } catch { + return buildPath; + } +}; + +export class TemplateService { + private readonly appRoot = findAppRoot(); + + private readonly env = nunjucks.configure(join(this.appRoot, "templates"), { + autoescape: false, + noCache: true + }); + + private readonly templates: UsageTemplate[] = JSON.parse( + readFileSync(join(this.appRoot, "templates.json"), "utf8") + ) as UsageTemplate[]; + + public getTemplates(): UsageTemplate[] { + return this.templates; + } + + public render(templateFile: string, selection: ImageSelection): string { + return this.env.render(templateFile, selection); + } + + public buildSkuExport(skus: string[]): string { + return `[\n${skus.map((sku) => `\t\"${sku}\"`).join(",\n")}\n]`; + } +} diff --git a/app-new/backend/src/types.ts b/app-new/backend/src/types.ts new file mode 100644 index 0000000..0950e9c --- /dev/null +++ b/app-new/backend/src/types.ts @@ -0,0 +1,18 @@ +export type LocationOption = { + name: string; + displayName: string; +}; + +export type UsageTemplate = { + label: string; + language: string; + file: string; +}; + +export type ImageSelection = { + location: string; + publisher: string; + offer: string; + sku: string; + version: string; +}; diff --git a/app-new/backend/src/version.ts b/app-new/backend/src/version.ts new file mode 100644 index 0000000..959b34f --- /dev/null +++ b/app-new/backend/src/version.ts @@ -0,0 +1,22 @@ +const SEMVER_PATTERN = /^[0-9]+\.[0-9]+\.[0-9]+$/; + +const semverSortKey = (value: string): number[] => value.split(".").map((part) => Number.parseInt(part, 10)); + +export const sortImageVersionsIfSemantic = (versions: string[]): string[] => { + if (!versions.every((value) => SEMVER_PATTERN.test(value))) { + return versions; + } + + return [...versions].sort((a, b) => { + const aParts = semverSortKey(a); + const bParts = semverSortKey(b); + + for (let i = 0; i < aParts.length; i += 1) { + if (aParts[i] !== bParts[i]) { + return aParts[i] - bParts[i]; + } + } + + return 0; + }); +}; diff --git a/app-new/backend/test/version.test.ts b/app-new/backend/test/version.test.ts new file mode 100644 index 0000000..4ddf2d0 --- /dev/null +++ b/app-new/backend/test/version.test.ts @@ -0,0 +1,14 @@ +import { describe, expect, it } from "vitest"; +import { sortImageVersionsIfSemantic } from "../src/version"; + +describe("sortImageVersionsIfSemantic", () => { + it("sorts only semantic versions", () => { + const sorted = sortImageVersionsIfSemantic(["1.10.0", "1.2.0", "2.0.0"]); + expect(sorted).toEqual(["1.2.0", "1.10.0", "2.0.0"]); + }); + + it("returns source order for non-semantic versions", () => { + const original = ["latest", "1.0.0", "beta"]; + expect(sortImageVersionsIfSemantic(original)).toEqual(original); + }); +}); diff --git a/app-new/backend/tsconfig.json b/app-new/backend/tsconfig.json new file mode 100644 index 0000000..5095695 --- /dev/null +++ b/app-new/backend/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "Node16", + "moduleResolution": "Node16", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "rootDir": "src", + "outDir": "../../dist/backend", + "types": ["node", "vitest/globals"] + }, + "include": ["src"] +} \ No newline at end of file diff --git a/app-new/frontend/index.html b/app-new/frontend/index.html new file mode 100644 index 0000000..376cab3 --- /dev/null +++ b/app-new/frontend/index.html @@ -0,0 +1,12 @@ + + + + + + Azure Image Chooser + + +
+ + + diff --git a/app-new/frontend/package-lock.json b/app-new/frontend/package-lock.json new file mode 100644 index 0000000..7daf14e --- /dev/null +++ b/app-new/frontend/package-lock.json @@ -0,0 +1,4355 @@ +{ + "name": "azure-image-chooser-frontend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "azure-image-chooser-frontend", + "version": "0.1.0", + "dependencies": { + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@mui/material": "^9.0.0", + "@tanstack/react-query": "^5.99.2", + "react": "^19.2.5", + "react-dom": "^19.2.5" + }, + "devDependencies": { + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.0", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.1", + "jsdom": "^27.0.1", + "typescript": "^6.0.3", + "vite": "^8.0.8", + "vitest": "^3.2.4" + } + }, + "node_modules/@acemir/cssom": { + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", + "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@asamuzakjp/css-color": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", + "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^3.0.0", + "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0", + "lru-cache": "^11.2.5" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", + "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.1.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.2.6" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", + "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@csstools/css-calc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.0.tgz", + "integrity": "sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.0.tgz", + "integrity": "sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^6.0.2", + "@csstools/css-calc": "^3.2.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.3.tgz", + "integrity": "sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.1", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", + "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@exodus/bytes": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.0.tgz", + "integrity": "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@noble/hashes": "^1.8.0 || ^2.0.0" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-9.0.0.tgz", + "integrity": "sha512-uwQNGkhv0lf7ufxw6QXev77BW6pWbW+7uxYjU5+rfp4lBkFtMEgJCsarTM3Tn+i0lGx6+Ol2u88JdGXr0GDskA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/material": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-9.0.0.tgz", + "integrity": "sha512-+VP/oQCDhDR87NQQgXnNBG8dwy6GNuQLnenS1pZvkbn2dKFSxRSRMybTpH9xUxXP+316mlYDy5CSbYtusnCWtw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2", + "@mui/core-downloads-tracker": "^9.0.0", + "@mui/system": "^9.0.0", + "@mui/types": "^9.0.0", + "@mui/utils": "^9.0.0", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", + "csstype": "^3.2.3", + "prop-types": "^15.8.1", + "react-is": "^19.2.4", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@mui/material-pigment-css": "^9.0.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@mui/material-pigment-css": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-9.0.0.tgz", + "integrity": "sha512-JtuZoaiCqwD6vjgYu6Xp3T7DZkrxJlgtDz5yESzhI34fEX5hHMh2VJUbuL9UOg8xrfIFMrq6dcYoH/7Zi4G0RA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2", + "@mui/utils": "^9.0.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-9.0.0.tgz", + "integrity": "sha512-9RLGdX4Jg0aQPRuvqh/OLzYSPlgd5zyEw5/1HIRfdavSiOd03WtUaGZH9/w1RoTYuRKwpgy0hpIFaMHIqPVIWg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "csstype": "^3.2.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-9.0.0.tgz", + "integrity": "sha512-YnC5Zg6j04IxiLc/boAKs0464jfZlLFVa7mf5E8lF0XOtZVUvG6R6gJK50lgUYdaaLdyLfxF6xR7LaPuEpeT/g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2", + "@mui/private-theming": "^9.0.0", + "@mui/styled-engine": "^9.0.0", + "@mui/types": "^9.0.0", + "@mui/utils": "^9.0.0", + "clsx": "^2.1.1", + "csstype": "^3.2.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-9.0.0.tgz", + "integrity": "sha512-i1cuFCAWN44b3AJWO7mh7tuh1sqbQSeVr/94oG0TX5uXivac8XalgE4/6fQZcmGZigzbQ35IXxj/4jLpRIBYZg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-9.0.0.tgz", + "integrity": "sha512-bQcqyg/gjULUqTuyUjSAFr6LQGLvtkNtDbJerAtoUn9kGZ0hg5QJiN1PLHMLbeFpe3te1831uq7GFl2ITokGdg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2", + "@mui/types": "^9.0.0", + "@types/prop-types": "^15.7.15", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.2.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.124.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", + "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", + "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tanstack/query-core": { + "version": "5.99.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.99.2.tgz", + "integrity": "sha512-1HunU0bXVsR1ZJMZbcOPE6VtaBJxsW809RE9xPe4Gz7MlB0GWwQvuTPhMoEmQ/hIzFKJ/DWAuttIe7BOaWx0tA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.99.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.99.2.tgz", + "integrity": "sha512-vM91UEe45QUS9ED6OklsVL15i8qKcRqNwpWzPTVWvRPRSEgDudDgHpvyTjcdlwHcrKNa80T+xXYcchT2noPnZA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.99.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz", + "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-rc.7" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "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/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", + "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^4.1.1", + "@csstools/css-syntax-patches-for-csstree": "^1.0.21", + "css-tree": "^3.1.0", + "lru-cache": "^11.2.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/data-urls": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", + "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^15.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-urls/node_modules/whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/fsevents": { + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/html-encoding-sniffer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "^1.6.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsdom": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", + "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@acemir/cssom": "^0.9.28", + "@asamuzakjp/dom-selector": "^6.7.6", + "@exodus/bytes": "^1.6.0", + "cssstyle": "^5.3.4", + "data-urls": "^6.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^6.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "parse5": "^8.0.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.0", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.1.0", + "ws": "^8.18.3", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", + "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.5" + } + }, + "node_modules/react-is": { + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.5.tgz", + "integrity": "sha512-Dn0t8IQhCmeIT3wu+Apm1/YVsJXsGWi6k4sPdnBIdqMVtHtv0IGi6dcpNpNkNac0zB2uUAqNX3MHzN8c+z2rwQ==", + "license": "MIT" + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.124.0", + "@rolldown/pluginutils": "1.0.0-rc.15" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" + } + }, + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", + "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/supports-preserve-symlinks-flag": { + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "7.0.28", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.28.tgz", + "integrity": "sha512-+Zg3vWhRUv8B1maGSTFdev9mjoo8Etn2Ayfs4cnjlD3CsGkxXX4QyW3j2WJ0wdjYcYmy7Lx2RDsZMhgCWafKIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.28" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.0.28", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.28.tgz", + "integrity": "sha512-7W5Efjhsc3chVdFhqtaU0KtK32J37Zcr9RKtID54nG+tIpcY79CQK/veYPODxtD/LJ4Lue66jvrQzIX2Z2/pUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", + "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vite": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.8", + "rolldown": "1.0.0-rc.15", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/vite": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ws": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "extraneous": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + } + } +} diff --git a/app-new/frontend/package.json b/app-new/frontend/package.json new file mode 100644 index 0000000..667f69d --- /dev/null +++ b/app-new/frontend/package.json @@ -0,0 +1,31 @@ +{ + "name": "azure-image-chooser-frontend", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -p tsconfig.json && vite build", + "preview": "vite preview", + "test": "vitest run" + }, + "dependencies": { + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@mui/material": "^9.0.0", + "@tanstack/react-query": "^5.99.2", + "react": "^19.2.5", + "react-dom": "^19.2.5" + }, + "devDependencies": { + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.0", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.1", + "jsdom": "^27.0.1", + "typescript": "^6.0.3", + "vite": "^8.0.8", + "vitest": "^3.2.4" + } +} \ No newline at end of file diff --git a/app-new/frontend/src/App.tsx b/app-new/frontend/src/App.tsx new file mode 100644 index 0000000..b011efa --- /dev/null +++ b/app-new/frontend/src/App.tsx @@ -0,0 +1,267 @@ +import { useEffect, useMemo, useState } from "react"; +import { + Alert, + Box, + Button, + Card, + CardContent, + CircularProgress, + Container, + FormControl, + Grid, + InputLabel, + MenuItem, + Select, + Stack, + Typography +} from "@mui/material"; +import { useQuery } from "@tanstack/react-query"; +import { api } from "./api"; +import type { SelectionState } from "./types"; + +const EMPTY_SELECTION: SelectionState = { + location: "", + publisher: "", + offer: "", + sku: "", + version: "" +}; + +const App = () => { + const [selection, setSelection] = useState(EMPTY_SELECTION); + const [templateFile, setTemplateFile] = useState(""); + const [renderedUsage, setRenderedUsage] = useState(""); + const [skuExport, setSkuExport] = useState(""); + const [renderError, setRenderError] = useState(""); + + const locationsQuery = useQuery({ queryKey: ["locations"], queryFn: api.locations }); + const publishersQuery = useQuery({ + queryKey: ["publishers", selection.location], + queryFn: () => api.publishers(selection.location), + enabled: Boolean(selection.location) + }); + const offersQuery = useQuery({ + queryKey: ["offers", selection.location, selection.publisher], + queryFn: () => api.offers(selection.location, selection.publisher), + enabled: Boolean(selection.location && selection.publisher) + }); + const skusQuery = useQuery({ + queryKey: ["skus", selection.location, selection.publisher, selection.offer], + queryFn: () => api.skus(selection.location, selection.publisher, selection.offer), + enabled: Boolean(selection.location && selection.publisher && selection.offer) + }); + const versionsQuery = useQuery({ + queryKey: ["versions", selection.location, selection.publisher, selection.offer, selection.sku], + queryFn: () => api.versions(selection.location, selection.publisher, selection.offer, selection.sku), + enabled: Boolean(selection.location && selection.publisher && selection.offer && selection.sku) + }); + const templatesQuery = useQuery({ queryKey: ["templates"], queryFn: api.templates }); + + useEffect(() => { + setSelection((previous) => ({ ...previous, publisher: "", offer: "", sku: "", version: "" })); + setRenderedUsage(""); + setSkuExport(""); + }, [selection.location]); + + useEffect(() => { + setSelection((previous) => ({ ...previous, offer: "", sku: "", version: "" })); + setRenderedUsage(""); + setSkuExport(""); + }, [selection.publisher]); + + useEffect(() => { + setSelection((previous) => ({ ...previous, sku: "", version: "" })); + setRenderedUsage(""); + }, [selection.offer]); + + useEffect(() => { + setSelection((previous) => ({ ...previous, version: "" })); + setRenderedUsage(""); + }, [selection.sku]); + + const canRender = useMemo( + () => Boolean(selection.location && selection.publisher && selection.offer && selection.sku && selection.version && templateFile), + [selection, templateFile] + ); + + const onRender = async () => { + setRenderError(""); + try { + const [usage, skuBlock] = await Promise.all([ + api.render(templateFile, selection), + api.skuExport(selection.location, selection.publisher, selection.offer) + ]); + setRenderedUsage(usage); + setSkuExport(skuBlock); + } catch (error) { + setRenderError(error instanceof Error ? error.message : "Unexpected render error"); + } + }; + + const loading = locationsQuery.isLoading || templatesQuery.isLoading; + + return ( + + + + + Azure Image Chooser + + + Select a marketplace image and generate reusable snippets. + + + {loading ? ( + + ) : ( + + + + + + Location + + + + + + + Publisher + + + + + + + Offer + + + + + + + SKU + + + + + + + Version + + + + + + + Usage scenario + + + + + + + + + + + )} + + {renderError ? {renderError} : null} + + {renderedUsage ? ( + + + Usage snippet + + {renderedUsage} + + + + ) : null} + + {skuExport ? ( + + + Available SKUs + + {skuExport} + + + + ) : null} + + + + ); +}; + +export default App; diff --git a/app-new/frontend/src/api.ts b/app-new/frontend/src/api.ts new file mode 100644 index 0000000..fbff585 --- /dev/null +++ b/app-new/frontend/src/api.ts @@ -0,0 +1,46 @@ +import type { LocationOption, SelectionState, UsageTemplate } from "./types"; + +const json = async (path: string): Promise => { + const response = await fetch(path); + if (!response.ok) { + throw new Error(`Request failed for ${path}`); + } + + return (await response.json()) as T; +}; + +export const api = { + locations: () => json("/api/locations"), + publishers: (location: string) => json(`/api/publishers?location=${encodeURIComponent(location)}`), + offers: (location: string, publisher: string) => + json(`/api/offers?location=${encodeURIComponent(location)}&publisher=${encodeURIComponent(publisher)}`), + skus: (location: string, publisher: string, offer: string) => + json( + `/api/skus?location=${encodeURIComponent(location)}&publisher=${encodeURIComponent(publisher)}&offer=${encodeURIComponent(offer)}` + ), + versions: (location: string, publisher: string, offer: string, sku: string) => + json( + `/api/versions?location=${encodeURIComponent(location)}&publisher=${encodeURIComponent(publisher)}&offer=${encodeURIComponent(offer)}&sku=${encodeURIComponent(sku)}` + ), + templates: () => json("/api/templates"), + render: async (templateFile: string, selection: SelectionState): Promise => { + const response = await fetch("/api/render", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ templateFile, selection }) + }); + + if (!response.ok) { + throw new Error("Failed to render template"); + } + + const payload = (await response.json()) as { rendered: string }; + return payload.rendered; + }, + skuExport: async (location: string, publisher: string, offer: string): Promise => { + const payload = await json<{ rendered: string }>( + `/api/sku-export?location=${encodeURIComponent(location)}&publisher=${encodeURIComponent(publisher)}&offer=${encodeURIComponent(offer)}` + ); + return payload.rendered; + } +}; diff --git a/app-new/frontend/src/main.tsx b/app-new/frontend/src/main.tsx new file mode 100644 index 0000000..fcf2e97 --- /dev/null +++ b/app-new/frontend/src/main.tsx @@ -0,0 +1,33 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { CssBaseline, ThemeProvider, createTheme } from "@mui/material"; +import App from "./App"; + +const queryClient = new QueryClient(); + +const theme = createTheme({ + palette: { + mode: "light", + primary: { main: "#00695f" }, + secondary: { main: "#0d47a1" }, + background: { + default: "#f4f8f7", + paper: "#ffffff" + } + }, + shape: { + borderRadius: 12 + } +}); + +createRoot(document.getElementById("root")!).render( + + + + + + + + +); diff --git a/app-new/frontend/src/types.ts b/app-new/frontend/src/types.ts new file mode 100644 index 0000000..8c575f7 --- /dev/null +++ b/app-new/frontend/src/types.ts @@ -0,0 +1,18 @@ +export type LocationOption = { + name: string; + displayName: string; +}; + +export type UsageTemplate = { + label: string; + language: string; + file: string; +}; + +export type SelectionState = { + location: string; + publisher: string; + offer: string; + sku: string; + version: string; +}; diff --git a/app-new/frontend/test/app.test.tsx b/app-new/frontend/test/app.test.tsx new file mode 100644 index 0000000..0ee919d --- /dev/null +++ b/app-new/frontend/test/app.test.tsx @@ -0,0 +1,48 @@ +import { render, screen } from "@testing-library/react"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { ThemeProvider, createTheme } from "@mui/material"; +import { beforeEach, afterEach, describe, expect, it, vi } from "vitest"; +import App from "../src/App"; + +const originalFetch = globalThis.fetch; + +const createResponse = (payload: unknown) => + new Response(JSON.stringify(payload), { + status: 200, + headers: { "Content-Type": "application/json" } + }); + +describe("App", () => { + beforeEach(() => { + globalThis.fetch = vi.fn((url: string) => { + if (url === "/api/locations") { + return Promise.resolve(createResponse([{ name: "westeurope", displayName: "West Europe" }])); + } + + if (url === "/api/templates") { + return Promise.resolve(createResponse([{ label: "Azure CLI", language: "shell", file: "shell.tpl" }])); + } + + return Promise.resolve(createResponse([])); + }) as typeof fetch; + }); + + afterEach(() => { + globalThis.fetch = originalFetch; + }); + + it("renders application heading", async () => { + const client = new QueryClient(); + const theme = createTheme(); + + render( + + + + + + ); + + expect(await screen.findByText("Azure Image Chooser")).toBeInTheDocument(); + }); +}); diff --git a/app-new/frontend/test/setup.ts b/app-new/frontend/test/setup.ts new file mode 100644 index 0000000..f149f27 --- /dev/null +++ b/app-new/frontend/test/setup.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest"; diff --git a/app-new/frontend/tsconfig.json b/app-new/frontend/tsconfig.json new file mode 100644 index 0000000..82a9f48 --- /dev/null +++ b/app-new/frontend/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "module": "ESNext", + "moduleResolution": "Bundler", + "jsx": "react-jsx", + "strict": true, + "skipLibCheck": true, + "noEmit": true, + "resolveJsonModule": true, + "types": ["vite/client", "vitest/globals"] + }, + "include": ["src", "test", "vite.config.ts"] +} \ No newline at end of file diff --git a/app-new/frontend/vite.config.ts b/app-new/frontend/vite.config.ts new file mode 100644 index 0000000..3b06763 --- /dev/null +++ b/app-new/frontend/vite.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +export default defineConfig({ + plugins: [react()], + build: { + outDir: "../../dist/frontend", + emptyOutDir: true + }, + server: { + port: 5173, + proxy: { + "/api": { + target: "http://localhost:3000", + changeOrigin: true + } + } + } +}); diff --git a/app-new/frontend/vitest.config.ts b/app-new/frontend/vitest.config.ts new file mode 100644 index 0000000..2e5a549 --- /dev/null +++ b/app-new/frontend/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + environment: "jsdom", + setupFiles: ["./test/setup.ts"] + } +}); diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..19cc1b1 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +set -eu + +exec node dist/backend/server.js diff --git a/migration-plan/plan.md b/migration-plan/plan.md new file mode 100644 index 0000000..8400914 --- /dev/null +++ b/migration-plan/plan.md @@ -0,0 +1,103 @@ +## Plan: React + Vite Rewrite of Azure Image Chooser + +Rewrite the current Streamlit application into a two-tier web app (React + Vite frontend and Node.js backend) while preserving core image-discovery behavior (location -> publisher -> offer -> SKU -> version) and generated usage outputs, and redesigning UX and template architecture, with strict non-destructive workspace constraints. + +**Hard constraints** +1. Existing workspace files must remain untouched, except .gitignore. +2. All new application source must live under src/. +3. Build artifacts must be emitted only to dist/. +4. A new Dockerfile and entrypoint.sh must be added at the workspace root. +5. The container runtime must use Node.js 24 LTS on Debian trixie-slim (node:24-trixie-slim). +6. All new source code must be TypeScript and use the TypeScript 6 transpiler (latest revision). +7. Frontend UI must use plain Material UI v9.x.x. +8. All MUI-related questions and implementation decisions must be resolved using mui-mcp as the primary source/tool. +9. Frontend must use the latest stable React line (React 19.2.x), with no legacy compatibility or migration work included. +10. Docker is not available in the target environment; container lifecycle operations must use Apple-sponsored container CLI only. + +**Steps** +1. Phase 0 - Planning artifact handoff +1. After plan mode is turned off, copy plan artifacts to workspace directory migration-plan/ for future reference: + - migration-plan/plan.md + - migration-plan/version-manifest.md +2. Keep session/repo memory files as source-of-truth backups. + +1. Phase 1 - Baseline and migration contract +1. Capture current functional contract from existing app behavior in app/image-chooser.py: cascading selectors, semantic version sorting, empty-state behavior, and SKU export format. +2. Define backend API contract for frontend consumption: locations, publishers, offers, skus, versions, templates, rendered output, and SKU export endpoints, including error payloads. +3. Lock frontend framework prerequisites from current MUI status before scaffolding: Material UI v9.x.x, React 19.2.x (latest stable), Emotion styling engine defaults, and required companion packages. +4. Explicitly exclude legacy React compatibility paths and migration workarounds from scope (no legacy shims, no backward-compat migration tracks). +5. Define target repository layout under src/ for frontend and backend packages, with dist/ as the fixed artifact directory. +6. Define non-destructive execution guardrails: no edits to legacy files except .gitignore updates for node_modules and artifact outputs. + +1. Phase 2 - Node backend in src +1. Scaffold backend under src/backend in TypeScript (mandatory) with modules for Azure compute discovery, template catalog, rendering, and validation, compiled with TypeScript 6. +2. Implement Azure integration equivalent to current data loaders, including region_type=Physical filtering and conditional semantic version sorting when all versions match X.Y.Z. +3. Implement endpoint caching (TTL by endpoint+params) and structured logging. +4. Implement redesigned template subsystem with metadata model and render endpoint. +5. Add backend tests under src/backend aligned to the API contract. + +1. Phase 3 - React + Vite frontend in src +1. Scaffold frontend under src/frontend using Vite with TypeScript (mandatory), configure output directory to dist/, compile with TypeScript 6, use React 19.2.x (latest stable), and use plain Material UI v9.x.x as the UI component library. +2. Build cascading async selectors with deterministic reset behavior (location -> publisher -> offer -> sku -> version). +3. Implement API-driven state management (for example TanStack Query) with loading, empty, and error states. +4. Implement usage output UI with template selection, rendered snippet display, copy action, and SKU export display, using plain Material UI v9.x.x components and styling primitives (Emotion-based engine). +5. Add frontend tests under src/frontend for cascade behavior and output rendering. + +1. Phase 4 - Root runtime wrapper and cutover +1. Add new root Dockerfile that builds/runs the new src-based application stack on Node.js 24 LTS with Debian trixie-slim (node:24-trixie-slim), and ensure runtime commands are documented/executed via Apple container CLI (not Docker). +2. Add new root entrypoint.sh that starts the new runtime components. +3. Update .gitignore for node_modules, dist artifacts, and any new temporary outputs. +4. Validate core behavior parity against Streamlit baseline using representative selections and generated outputs. +5. Keep legacy assets in place (untouched) during and after migration unless separately approved for cleanup. + +**Parallelism and dependencies** +1. Phase 0 runs first and gates execution handoff artifacts in workspace. +2. Phase 1 blocks implementation. +3. After API contract freeze, backend (Phase 2) and frontend scaffold (Phase 3) can run in parallel. +4. Phase 4 depends on stable frontend/backend run commands and artifact paths. + +**Relevant files** +- /Users/slawek/src/azure-image-chooser/app/image-chooser.py - source-of-truth behavior reference only; do not modify. +- /Users/slawek/src/azure-image-chooser/app/templates.json - current template catalog reference only; do not modify. +- /Users/slawek/src/azure-image-chooser/app/templates/arm_vm.jsonc - output reference only; do not modify. +- /Users/slawek/src/azure-image-chooser/app/templates/azurerm_hcl.tpl - output reference only; do not modify. +- /Users/slawek/src/azure-image-chooser/app/templates/shell.tpl - output reference only; do not modify. +- /Users/slawek/src/azure-image-chooser/.gitignore - only existing file allowed to be changed. +- /Users/slawek/src/azure-image-chooser/src/ - new source tree for rewritten application. +- /Users/slawek/src/azure-image-chooser/dist/ - artifact output directory. +- /Users/slawek/src/azure-image-chooser/Dockerfile - new root runtime image definition. +- /Users/slawek/src/azure-image-chooser/entrypoint.sh - new root runtime entrypoint. + +**Verification** +1. Workspace contains migration-plan/plan.md and migration-plan/version-manifest.md after plan mode is off. +2. Git diff check confirms only new files plus .gitignore modifications; no edits in legacy files. +3. Backend tests pass for API contract, validation, filtering, sorting, and rendering. +4. Type-check/transpile verification passes with TypeScript 6 for both backend and frontend packages. +5. Frontend tests pass for selector cascade and output rendering. +6. Frontend dependency and implementation checks confirm plain Material UI v9.x.x is used (no alternate UI framework). +7. Verification confirms MUI installation prerequisites are met for React 19.2.x and Emotion packages. +8. Verification confirms there are no legacy compatibility layers or migration-specific workarounds in frontend dependencies/configuration. +9. Local run verifies UI flow and generated outputs match baseline behavior for representative scenarios. +10. Image build inspection via Apple container CLI confirms the runtime base image is Node.js 24 LTS on Debian trixie-slim (node:24-trixie-slim). +11. Artifact generation confirms outputs land only in dist/ directory. + +**Decisions** +- Use Node.js backend (confirmed). +- Keep only core functionality unchanged; UX and architecture can be redesigned (confirmed). +- Redesign template system now (confirmed). +- Enforce non-destructive migration: existing files untouched except .gitignore (confirmed). +- Place all new application code in src/ and add new root Dockerfile + entrypoint.sh (confirmed). +- Use Node.js 24 LTS on Debian trixie-slim as container runtime base image (confirmed). +- Use TypeScript-only source with TypeScript 6 transpiler across backend and frontend (confirmed). +- Use plain Material UI v9.x.x for frontend UI implementation (confirmed). +- Use mui-mcp as the primary tool/source for all MUI-related implementation questions (confirmed). +- Use latest stable React (19.2.x at planning time) and exclude legacy compatibility/migration paths (confirmed). +- Use Apple container CLI (macOS 26, Apple silicon) for container operations; no Docker dependency (confirmed). + +**Scope boundaries** +- In scope: functional core parity for image lookup and output generation, new frontend/backend architecture in src/, root runtime wrappers, and .gitignore updates. +- Out of scope: modifying existing legacy app/ and terraform/ files, removing legacy code, or altering old deployment definitions. + +**Further Considerations** +1. Artifact output is fixed to dist/ for consistency with the chosen convention. +2. If backend and frontend are separate runtime processes, define entrypoint process model early (single-process with static serve vs process manager). diff --git a/migration-plan/version-manifest.md b/migration-plan/version-manifest.md new file mode 100644 index 0000000..6ed2ee3 --- /dev/null +++ b/migration-plan/version-manifest.md @@ -0,0 +1,57 @@ +## Version Manifest: React + Vite + MUI Rewrite + +### Environment and container tooling +- macOS: 26 (host requirement) +- Container CLI: apple/container (latest release observed: 0.11.0) +- Container runtime command: container (Docker unavailable by constraint) +- Base image: node:24-trixie-slim (Node 24 LTS on Debian trixie-slim; OCI-compatible) + +### Frontend stack +- Node.js runtime: 24.x LTS +- React: 19.2.5 +- React DOM: 19.2.5 +- TypeScript: 6.0.3 +- Vite: 8.0.8 +- @vitejs/plugin-react: 6.0.1 +- @types/react: 19.2.14 +- @types/react-dom: 19.2.3 +- Material UI core: @mui/material 9.0.0 +- Material UI styling engine: @emotion/react 11.14.0, @emotion/styled 11.14.1 +- Optional state-fetching utility selected in plan: @tanstack/react-query 5.99.2 + +### Backend stack (planned) +- Node.js runtime: 24.x LTS +- Express: 5.2.1 +- Zod: 4.3.6 +- TypeScript: 6.0.3 + +### MUI knowledge/tooling +- MUI docs index for LLM consumption: https://mui.com/material-ui/llms.txt +- MUI MCP package invocation model: npx -y @mui/mcp@latest + +## Compatibility Audit + +### Hard compatibility checks +1. Node 24 vs Vite 8: compatible (Vite requires Node 20.19+ or 22.12+). +2. React 19.2.x vs MUI 9: compatible (MUI supports React ^17 || ^18 || ^19). +3. React 19.2.x vs react-dom 19.2.5: compatible (same major/minor line). +4. TypeScript 6 vs MUI 9: compatible (MUI requires TS >=4.9). +5. Node 24 vs Express 5.2.1: compatible (Express requires Node >=18). +6. Apple container vs Dockerfile workflow: compatible (container build supports Dockerfile and Containerfile). + +### Environment-specific incompatibilities / risks +1. Docker command compatibility: incompatible by environment constraint. + - Any script that assumes docker build/run must be translated to container build/run. +2. Apple container stability: medium risk. + - Project is pre-1.0 and may introduce breaking changes in minor releases. + - Mitigation: pin CLI release during execution and document upgrade policy. +3. Slim Debian runtime package availability: low-to-medium operational risk. + - trixie-slim is smaller than full images and may omit convenience packages. + - Mitigation: install only required OS packages explicitly and validate build/runtime dependencies. +4. @mui/mcp@latest floating version: reproducibility risk. + - Mitigation: pin exact MCP package version for CI/repeatable local behavior once selected. + +### Migration-policy compatibility with user constraints +1. Latest stable React only: satisfied by React 19.2.x. +2. No legacy/migration support tracks: satisfied; no React 18 fallback assumptions included. +3. MUI usage policy: satisfied with plain Material UI v9.x.x and mui-mcp-first guidance. -- 2.49.1 From 176fa5ead20bf4367fd0831aba7b129087536189 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Sun, 19 Apr 2026 20:47:47 +0200 Subject: [PATCH 02/15] Fixes to NodeJS version. --- Dockerfile | 29 ++-- app-new/backend/package.json | 2 +- app-new/backend/src/azure-service.ts | 27 +++- app-new/backend/src/server.ts | 15 +- app-new/backend/src/template-service.ts | 26 +-- app-new/backend/src/version.ts | 2 +- app-new/backend/test/version.test.ts | 4 +- app-new/backend/tsconfig.json | 2 +- app-new/dist/backend/azure-service.js | 107 +++++++++++++ app-new/dist/backend/cache.js | 24 +++ app-new/dist/backend/server.js | 148 ++++++++++++++++++ app-new/dist/backend/template-service.js | 36 +++++ app-new/dist/backend/types.js | 2 + app-new/dist/backend/version.js | 21 +++ .../dist/frontend/assets/index-DPvVOxFj.js | 119 ++++++++++++++ app-new/dist/frontend/index.html | 12 ++ app-new/frontend/package-lock.json | 16 -- app-new/frontend/src/App.tsx | 118 ++++++++------ app-new/frontend/src/api.ts | 10 +- app-new/frontend/src/main.tsx | 23 +-- app-new/frontend/test/app.test.tsx | 13 +- app-new/frontend/vite.config.ts | 2 +- app-new/templates.json | 22 +++ app-new/templates/arm_vm.jsonc | 17 ++ app-new/templates/azurerm_hcl.tpl | 6 + app-new/templates/bicep_vm.tpl | 14 ++ app-new/templates/shell.tpl | 1 + entrypoint.sh | 2 +- 28 files changed, 686 insertions(+), 134 deletions(-) create mode 100644 app-new/dist/backend/azure-service.js create mode 100644 app-new/dist/backend/cache.js create mode 100644 app-new/dist/backend/server.js create mode 100644 app-new/dist/backend/template-service.js create mode 100644 app-new/dist/backend/types.js create mode 100644 app-new/dist/backend/version.js create mode 100644 app-new/dist/frontend/assets/index-DPvVOxFj.js create mode 100644 app-new/dist/frontend/index.html create mode 100644 app-new/templates.json create mode 100644 app-new/templates/arm_vm.jsonc create mode 100644 app-new/templates/azurerm_hcl.tpl create mode 100644 app-new/templates/bicep_vm.tpl create mode 100644 app-new/templates/shell.tpl diff --git a/Dockerfile b/Dockerfile index 12860bb..cd2abf6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,30 +1,29 @@ FROM node:24-trixie-slim AS build -WORKDIR /workspace +WORKDIR /app-new -COPY app-new/backend/package*.json app-new/backend/ -COPY app-new/frontend/package*.json app-new/frontend/ -RUN cd app-new/backend && npm install -RUN cd app-new/frontend && npm install +COPY app-new/backend/package*.json backend/ +COPY app-new/frontend/package*.json frontend/ +RUN cd backend && npm install +RUN cd frontend && npm install -COPY app-new app-new -COPY app/templates app/templates -COPY app/templates.json app/templates.json +COPY app-new . -RUN cd app-new/backend && npm run build -RUN cd app-new/frontend && npm run build +RUN cd backend && npm run build +RUN cd frontend && npm run build FROM node:24-trixie-slim AS runtime -WORKDIR /workspace +WORKDIR /app-new ENV NODE_ENV=production ENV PORT=3000 -COPY app-new/backend/package*.json app-new/backend/ -RUN cd app-new/backend && npm install --omit=dev +COPY app-new/backend/package*.json backend/ +RUN cd backend && npm install --omit=dev -COPY --from=build /workspace/dist dist -COPY --from=build /workspace/app app +COPY --from=build /app-new/dist dist +COPY --from=build /app-new/templates templates +COPY --from=build /app-new/templates.json templates.json COPY entrypoint.sh entrypoint.sh RUN chmod +x entrypoint.sh diff --git a/app-new/backend/package.json b/app-new/backend/package.json index b06512a..8d7b712 100644 --- a/app-new/backend/package.json +++ b/app-new/backend/package.json @@ -6,7 +6,7 @@ "scripts": { "build": "tsc -p tsconfig.json", "dev": "tsx watch src/server.ts", - "start": "node ../../dist/backend/server.js", + "start": "node ../dist/backend/server.js", "test": "vitest run" }, "dependencies": { diff --git a/app-new/backend/src/azure-service.ts b/app-new/backend/src/azure-service.ts index eca68ab..e364648 100644 --- a/app-new/backend/src/azure-service.ts +++ b/app-new/backend/src/azure-service.ts @@ -32,15 +32,28 @@ export class AzureImageService { } }); - const payload = (await response.json()) as { value?: Array<{ name?: string; displayName?: string; metadata?: { regionType?: string } }> }; + if (!response.ok) { + throw new Error(`Failed to fetch Azure locations: ${response.status} ${response.statusText}`); + } - const locations = (payload.value ?? []) - .filter((loc) => loc.metadata?.regionType === "Physical" && Boolean(loc.name)) + const payload = (await response.json()) as { + value?: Array<{ name?: string; displayName?: string; metadata?: { regionType?: string } }>; + }; + + const allLocations = (payload.value ?? []) + .filter((loc) => Boolean(loc.name)) .map((loc) => ({ name: loc.name as string, - displayName: loc.displayName ?? (loc.name as string) + displayName: loc.displayName ?? (loc.name as string), + regionType: loc.metadata?.regionType })); + const physical = allLocations.filter((loc) => loc.regionType?.toLowerCase() === "physical"); + const locations = (physical.length > 0 ? physical : allLocations).map((loc) => ({ + name: loc.name, + displayName: loc.displayName + })); + locations.sort((a, b) => a.name.localeCompare(b.name)); this.cache.set(cacheKey, locations, CACHE_TTL_MS); return locations; @@ -54,7 +67,7 @@ export class AzureImageService { } const response = await this.computeClient.virtualMachineImages.listPublishers(location); - const publishers = this.extractNames(response); + const publishers = this.extractNames(response).sort((a, b) => a.localeCompare(b)); this.cache.set(cacheKey, publishers, CACHE_TTL_MS); return publishers; @@ -68,7 +81,7 @@ export class AzureImageService { } const response = await this.computeClient.virtualMachineImages.listOffers(location, publisher); - const offers = this.extractNames(response); + const offers = this.extractNames(response).sort((a, b) => a.localeCompare(b)); this.cache.set(cacheKey, offers, CACHE_TTL_MS); return offers; @@ -82,7 +95,7 @@ export class AzureImageService { } const response = await this.computeClient.virtualMachineImages.listSkus(location, publisher, offer); - const skus = this.extractNames(response); + const skus = this.extractNames(response).sort((a, b) => a.localeCompare(b)); this.cache.set(cacheKey, skus, CACHE_TTL_MS); return skus; diff --git a/app-new/backend/src/server.ts b/app-new/backend/src/server.ts index 48c9701..b02c034 100644 --- a/app-new/backend/src/server.ts +++ b/app-new/backend/src/server.ts @@ -1,12 +1,23 @@ import { existsSync } from "node:fs"; import { join } from "node:path"; import cors from "cors"; -import "dotenv/config"; import express from "express"; import { z } from "zod"; import { AzureImageService } from "./azure-service"; import { TemplateService } from "./template-service"; +const findAppNewRoot = (): string => { + const candidates = [join(__dirname, "../../.."), join(__dirname, "../..")]; + + for (const candidate of candidates) { + if (existsSync(join(candidate, "templates.json"))) { + return candidate; + } + } + + throw new Error("Unable to resolve app-new root"); +}; + const queryLocation = z.object({ location: z.string().min(1) }); const queryOffer = z.object({ location: z.string().min(1), publisher: z.string().min(1) }); const querySku = z.object({ location: z.string().min(1), publisher: z.string().min(1), offer: z.string().min(1) }); @@ -127,7 +138,7 @@ const makeApp = () => { res.status(500).json({ message }); }); - const frontendRoot = join(process.cwd(), "dist/frontend"); + const frontendRoot = join(findAppNewRoot(), "dist/frontend"); if (existsSync(frontendRoot)) { app.use(express.static(frontendRoot)); app.get(/^(?!\/api).*/, (_req, res) => { diff --git a/app-new/backend/src/template-service.ts b/app-new/backend/src/template-service.ts index abeca3f..28434a4 100644 --- a/app-new/backend/src/template-service.ts +++ b/app-new/backend/src/template-service.ts @@ -1,30 +1,30 @@ -import { readFileSync } from "node:fs"; +import { existsSync, readFileSync } from "node:fs"; import { join } from "node:path"; import nunjucks from "nunjucks"; import type { ImageSelection, UsageTemplate } from "./types"; -const findAppRoot = (): string => { - // Supports running from src/backend (dev) and dist/backend (compiled). - const devPath = join(__dirname, "../../../app"); - const buildPath = join(__dirname, "../../app"); - try { - readFileSync(join(devPath, "templates.json"), "utf8"); - return devPath; - } catch { - return buildPath; +const findAppNewRoot = (): string => { + const candidates = [join(__dirname, "../../.."), join(__dirname, "../..")]; + + for (const candidate of candidates) { + if (existsSync(join(candidate, "templates.json"))) { + return candidate; + } } + + throw new Error("Unable to resolve app-new template root"); }; export class TemplateService { - private readonly appRoot = findAppRoot(); + private readonly appNewRoot = findAppNewRoot(); - private readonly env = nunjucks.configure(join(this.appRoot, "templates"), { + private readonly env = nunjucks.configure(join(this.appNewRoot, "templates"), { autoescape: false, noCache: true }); private readonly templates: UsageTemplate[] = JSON.parse( - readFileSync(join(this.appRoot, "templates.json"), "utf8") + readFileSync(join(this.appNewRoot, "templates.json"), "utf8") ) as UsageTemplate[]; public getTemplates(): UsageTemplate[] { diff --git a/app-new/backend/src/version.ts b/app-new/backend/src/version.ts index 959b34f..bed2858 100644 --- a/app-new/backend/src/version.ts +++ b/app-new/backend/src/version.ts @@ -4,7 +4,7 @@ const semverSortKey = (value: string): number[] => value.split(".").map((part) = export const sortImageVersionsIfSemantic = (versions: string[]): string[] => { if (!versions.every((value) => SEMVER_PATTERN.test(value))) { - return versions; + return [...versions].sort((a, b) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" })); } return [...versions].sort((a, b) => { diff --git a/app-new/backend/test/version.test.ts b/app-new/backend/test/version.test.ts index 4ddf2d0..80879c6 100644 --- a/app-new/backend/test/version.test.ts +++ b/app-new/backend/test/version.test.ts @@ -7,8 +7,8 @@ describe("sortImageVersionsIfSemantic", () => { expect(sorted).toEqual(["1.2.0", "1.10.0", "2.0.0"]); }); - it("returns source order for non-semantic versions", () => { + it("sorts non-semantic versions naturally", () => { const original = ["latest", "1.0.0", "beta"]; - expect(sortImageVersionsIfSemantic(original)).toEqual(original); + expect(sortImageVersionsIfSemantic(original)).toEqual(["1.0.0", "beta", "latest"]); }); }); diff --git a/app-new/backend/tsconfig.json b/app-new/backend/tsconfig.json index 5095695..1a0f763 100644 --- a/app-new/backend/tsconfig.json +++ b/app-new/backend/tsconfig.json @@ -9,7 +9,7 @@ "forceConsistentCasingInFileNames": true, "resolveJsonModule": true, "rootDir": "src", - "outDir": "../../dist/backend", + "outDir": "../dist/backend", "types": ["node", "vitest/globals"] }, "include": ["src"] diff --git a/app-new/dist/backend/azure-service.js b/app-new/dist/backend/azure-service.js new file mode 100644 index 0000000..adff2a4 --- /dev/null +++ b/app-new/dist/backend/azure-service.js @@ -0,0 +1,107 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AzureImageService = void 0; +const arm_compute_1 = require("@azure/arm-compute"); +const identity_1 = require("@azure/identity"); +const cache_1 = require("./cache"); +const version_1 = require("./version"); +const CACHE_TTL_MS = 5 * 60 * 1000; +class AzureImageService { + subscriptionId; + credential = new identity_1.DefaultAzureCredential(); + computeClient; + cache = new cache_1.MemoryCache(); + constructor(subscriptionId) { + this.subscriptionId = subscriptionId; + this.computeClient = new arm_compute_1.ComputeManagementClient(this.credential, subscriptionId); + } + async getLocations() { + const cacheKey = "locations"; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + const token = await this.credential.getToken("https://management.azure.com/.default"); + const url = `https://management.azure.com/subscriptions/${this.subscriptionId}/locations?api-version=2022-12-01`; + const response = await fetch(url, { + headers: { + Authorization: `Bearer ${token?.token ?? ""}` + } + }); + if (!response.ok) { + throw new Error(`Failed to fetch Azure locations: ${response.status} ${response.statusText}`); + } + const payload = (await response.json()); + const allLocations = (payload.value ?? []) + .filter((loc) => Boolean(loc.name)) + .map((loc) => ({ + name: loc.name, + displayName: loc.displayName ?? loc.name, + regionType: loc.metadata?.regionType + })); + const physical = allLocations.filter((loc) => loc.regionType?.toLowerCase() === "physical"); + const locations = (physical.length > 0 ? physical : allLocations).map((loc) => ({ + name: loc.name, + displayName: loc.displayName + })); + locations.sort((a, b) => a.name.localeCompare(b.name)); + this.cache.set(cacheKey, locations, CACHE_TTL_MS); + return locations; + } + async getPublishers(location) { + const cacheKey = `publishers:${location}`; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + const response = await this.computeClient.virtualMachineImages.listPublishers(location); + const publishers = this.extractNames(response).sort((a, b) => a.localeCompare(b)); + this.cache.set(cacheKey, publishers, CACHE_TTL_MS); + return publishers; + } + async getOffers(location, publisher) { + const cacheKey = `offers:${location}:${publisher}`; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + const response = await this.computeClient.virtualMachineImages.listOffers(location, publisher); + const offers = this.extractNames(response).sort((a, b) => a.localeCompare(b)); + this.cache.set(cacheKey, offers, CACHE_TTL_MS); + return offers; + } + async getSkus(location, publisher, offer) { + const cacheKey = `skus:${location}:${publisher}:${offer}`; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + const response = await this.computeClient.virtualMachineImages.listSkus(location, publisher, offer); + const skus = this.extractNames(response).sort((a, b) => a.localeCompare(b)); + this.cache.set(cacheKey, skus, CACHE_TTL_MS); + return skus; + } + async getVersions(location, publisher, offer, sku) { + const cacheKey = `versions:${location}:${publisher}:${offer}:${sku}`; + const cached = this.cache.get(cacheKey); + if (cached) { + return cached; + } + const response = await this.computeClient.virtualMachineImages.list(location, publisher, offer, sku); + const versions = this.extractNames(response); + const sorted = (0, version_1.sortImageVersionsIfSemantic)(versions); + this.cache.set(cacheKey, sorted, CACHE_TTL_MS); + return sorted; + } + extractNames(source) { + const items = Array.isArray(source) + ? source + : typeof source === "object" && source !== null && "value" in source && Array.isArray(source.value) + ? source.value + : []; + return items + .map((item) => (typeof item === "object" && item !== null && "name" in item ? item.name : undefined)) + .filter((value) => Boolean(value)); + } +} +exports.AzureImageService = AzureImageService; diff --git a/app-new/dist/backend/cache.js b/app-new/dist/backend/cache.js new file mode 100644 index 0000000..f80ec0b --- /dev/null +++ b/app-new/dist/backend/cache.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MemoryCache = void 0; +class MemoryCache { + store = new Map(); + get(key) { + const hit = this.store.get(key); + if (!hit) { + return undefined; + } + if (Date.now() >= hit.expiresAt) { + this.store.delete(key); + return undefined; + } + return hit.value; + } + set(key, value, ttlMs) { + this.store.set(key, { + value, + expiresAt: Date.now() + ttlMs + }); + } +} +exports.MemoryCache = MemoryCache; diff --git a/app-new/dist/backend/server.js b/app-new/dist/backend/server.js new file mode 100644 index 0000000..7afb55f --- /dev/null +++ b/app-new/dist/backend/server.js @@ -0,0 +1,148 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.makeApp = void 0; +const node_fs_1 = require("node:fs"); +const node_path_1 = require("node:path"); +const cors_1 = __importDefault(require("cors")); +const express_1 = __importDefault(require("express")); +const zod_1 = require("zod"); +const azure_service_1 = require("./azure-service"); +const template_service_1 = require("./template-service"); +const findAppNewRoot = () => { + const candidates = [(0, node_path_1.join)(__dirname, "../../.."), (0, node_path_1.join)(__dirname, "../..")]; + for (const candidate of candidates) { + if ((0, node_fs_1.existsSync)((0, node_path_1.join)(candidate, "templates.json"))) { + return candidate; + } + } + throw new Error("Unable to resolve app-new root"); +}; +const queryLocation = zod_1.z.object({ location: zod_1.z.string().min(1) }); +const queryOffer = zod_1.z.object({ location: zod_1.z.string().min(1), publisher: zod_1.z.string().min(1) }); +const querySku = zod_1.z.object({ location: zod_1.z.string().min(1), publisher: zod_1.z.string().min(1), offer: zod_1.z.string().min(1) }); +const queryVersion = zod_1.z.object({ location: zod_1.z.string().min(1), publisher: zod_1.z.string().min(1), offer: zod_1.z.string().min(1), sku: zod_1.z.string().min(1) }); +const renderBody = zod_1.z.object({ + templateFile: zod_1.z.string().min(1), + selection: zod_1.z.object({ + location: zod_1.z.string().min(1), + publisher: zod_1.z.string().min(1), + offer: zod_1.z.string().min(1), + sku: zod_1.z.string().min(1), + version: zod_1.z.string().min(1) + }) +}); +const makeApp = () => { + const app = (0, express_1.default)(); + const port = Number.parseInt(process.env.PORT ?? "3000", 10); + const subscriptionId = process.env.AZURE_SUBSCRIPTION_ID; + app.use((0, cors_1.default)()); + app.use(express_1.default.json()); + if (!subscriptionId) { + app.get("/api/health", (_req, res) => { + res.status(500).json({ + status: "error", + message: "Missing AZURE_SUBSCRIPTION_ID" + }); + }); + return { app, port }; + } + const azure = new azure_service_1.AzureImageService(subscriptionId); + const templates = new template_service_1.TemplateService(); + app.get("/api/health", (_req, res) => { + res.json({ status: "ok" }); + }); + app.get("/api/locations", async (_req, res, next) => { + try { + res.json(await azure.getLocations()); + } + catch (error) { + next(error); + } + }); + app.get("/api/publishers", async (req, res, next) => { + try { + const { location } = queryLocation.parse(req.query); + res.json(await azure.getPublishers(location)); + } + catch (error) { + next(error); + } + }); + app.get("/api/offers", async (req, res, next) => { + try { + const { location, publisher } = queryOffer.parse(req.query); + res.json(await azure.getOffers(location, publisher)); + } + catch (error) { + next(error); + } + }); + app.get("/api/skus", async (req, res, next) => { + try { + const { location, publisher, offer } = querySku.parse(req.query); + res.json(await azure.getSkus(location, publisher, offer)); + } + catch (error) { + next(error); + } + }); + app.get("/api/versions", async (req, res, next) => { + try { + const { location, publisher, offer, sku } = queryVersion.parse(req.query); + res.json(await azure.getVersions(location, publisher, offer, sku)); + } + catch (error) { + next(error); + } + }); + app.get("/api/templates", (_req, res) => { + res.json(templates.getTemplates()); + }); + app.post("/api/render", (req, res, next) => { + try { + const payload = renderBody.parse(req.body); + const rendered = templates.render(payload.templateFile, payload.selection); + res.json({ rendered }); + } + catch (error) { + next(error); + } + }); + app.get("/api/sku-export", async (req, res, next) => { + try { + const { location, publisher, offer } = querySku.parse(req.query); + const skus = await azure.getSkus(location, publisher, offer); + res.json({ rendered: templates.buildSkuExport(skus) }); + } + catch (error) { + next(error); + } + }); + app.use((err, _req, res, _next) => { + if (err instanceof zod_1.z.ZodError) { + res.status(400).json({ message: "Invalid request", issues: err.issues }); + return; + } + const message = err instanceof Error ? err.message : "Unexpected error"; + res.status(500).json({ message }); + }); + const frontendRoot = (0, node_path_1.join)(findAppNewRoot(), "dist/frontend"); + if ((0, node_fs_1.existsSync)(frontendRoot)) { + app.use(express_1.default.static(frontendRoot)); + app.get(/^(?!\/api).*/, (_req, res) => { + res.sendFile((0, node_path_1.join)(frontendRoot, "index.html")); + }); + } + return { app, port }; +}; +exports.makeApp = makeApp; +if (require.main === module) { + const { app, port } = makeApp(); + app.listen(port, () => { + // eslint-disable-next-line no-console + console.log(`azure-image-chooser listening on ${port}`); + }); +} diff --git a/app-new/dist/backend/template-service.js b/app-new/dist/backend/template-service.js new file mode 100644 index 0000000..112f561 --- /dev/null +++ b/app-new/dist/backend/template-service.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TemplateService = void 0; +const node_fs_1 = require("node:fs"); +const node_path_1 = require("node:path"); +const nunjucks_1 = __importDefault(require("nunjucks")); +const findAppNewRoot = () => { + const candidates = [(0, node_path_1.join)(__dirname, "../../.."), (0, node_path_1.join)(__dirname, "../..")]; + for (const candidate of candidates) { + if ((0, node_fs_1.existsSync)((0, node_path_1.join)(candidate, "templates.json"))) { + return candidate; + } + } + throw new Error("Unable to resolve app-new template root"); +}; +class TemplateService { + appNewRoot = findAppNewRoot(); + env = nunjucks_1.default.configure((0, node_path_1.join)(this.appNewRoot, "templates"), { + autoescape: false, + noCache: true + }); + templates = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(this.appNewRoot, "templates.json"), "utf8")); + getTemplates() { + return this.templates; + } + render(templateFile, selection) { + return this.env.render(templateFile, selection); + } + buildSkuExport(skus) { + return `[\n${skus.map((sku) => `\t\"${sku}\"`).join(",\n")}\n]`; + } +} +exports.TemplateService = TemplateService; diff --git a/app-new/dist/backend/types.js b/app-new/dist/backend/types.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/app-new/dist/backend/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/app-new/dist/backend/version.js b/app-new/dist/backend/version.js new file mode 100644 index 0000000..d3fc59f --- /dev/null +++ b/app-new/dist/backend/version.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.sortImageVersionsIfSemantic = void 0; +const SEMVER_PATTERN = /^[0-9]+\.[0-9]+\.[0-9]+$/; +const semverSortKey = (value) => value.split(".").map((part) => Number.parseInt(part, 10)); +const sortImageVersionsIfSemantic = (versions) => { + if (!versions.every((value) => SEMVER_PATTERN.test(value))) { + return [...versions].sort((a, b) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" })); + } + return [...versions].sort((a, b) => { + const aParts = semverSortKey(a); + const bParts = semverSortKey(b); + for (let i = 0; i < aParts.length; i += 1) { + if (aParts[i] !== bParts[i]) { + return aParts[i] - bParts[i]; + } + } + return 0; + }); +}; +exports.sortImageVersionsIfSemantic = sortImageVersionsIfSemantic; diff --git a/app-new/dist/frontend/assets/index-DPvVOxFj.js b/app-new/dist/frontend/assets/index-DPvVOxFj.js new file mode 100644 index 0000000..8ae6de5 --- /dev/null +++ b/app-new/dist/frontend/assets/index-DPvVOxFj.js @@ -0,0 +1,119 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function te(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,te(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),te(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&A(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&A(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,ee=k.port2;k.port1.onmessage=D,O=function(){ee.postMessage(null)}}else O=function(){_(D,0)};function A(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,A(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1oe||(e.current=ae[oe],ae[oe]=null,oe--)}function I(e,t){oe++,ae[oe]=e.current,e.current=t}var se=P(null),ce=P(null),le=P(null),ue=P(null);function de(e,t){switch(I(le,t),I(ce,e),I(se,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hd(t),e=Ud(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}F(se),I(se,e)}function fe(){F(se),F(ce),F(le)}function pe(e){e.memoizedState!==null&&I(ue,e);var t=se.current,n=Ud(t,e.type);t!==n&&(I(ce,e),I(se,n))}function me(e){ce.current===e&&(F(se),F(ce)),ue.current===e&&(F(ue),$f._currentValue=ie)}var he,ge;function _e(e){if(he===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);he=t&&t[1]||``,ge=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{L=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?_e(n):``}function R(e,t){switch(e.tag){case 26:case 27:case 5:return _e(e.type);case 16:return _e(`Lazy`);case 13:return e.child!==t&&t!==null?_e(`Suspense Fallback`):_e(`Suspense`);case 19:return _e(`SuspenseList`);case 0:case 15:return ve(e.type,!1);case 11:return ve(e.type.render,!1);case 1:return ve(e.type,!0);case 31:return _e(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=R(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Fe=null;function Ie(e){if(typeof Me==`function`&&Ne(e),Fe&&typeof Fe.setStrictMode==`function`)try{Fe.setStrictMode(Pe,e)}catch{}}var Le=Math.clz32?Math.clz32:Be,Re=Math.log,ze=Math.LN2;function Be(e){return e>>>=0,e===0?32:31-(Re(e)/ze|0)|0}var Ve=256,z=262144,B=4194304;function He(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ue(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=He(n))):i=He(o):i=He(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=He(n))):i=He(o)):i=He(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function We(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ge(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ke(){var e=B;return B<<=1,!(B&62914560)&&(B=4194304),e}function qe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Je(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ye(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),cn=!1;if(sn)try{var ln={};Object.defineProperty(ln,`passive`,{get:function(){cn=!0}}),window.addEventListener(`test`,ln,ln),window.removeEventListener(`test`,ln,ln)}catch{cn=!1}var un=null,dn=null,fn=null;function pn(){if(fn)return fn;var e,t=dn,n=t.length,r,i=`value`in un?un.value:un.textContent,a=i.length;for(e=0;e=Gn),Jn=` `,Yn=!1;function Xn(e,t){switch(e){case`keyup`:return Un.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Zn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Qn=!1;function $n(e,t){switch(e){case`compositionend`:return Zn(t);case`keypress`:return t.which===32?(Yn=!0,Jn):null;case`textInput`:return e=t.data,e===Jn&&Yn?null:e;default:return null}}function er(e,t){if(Qn)return e===`compositionend`||!Wn&&Xn(e,t)?(e=pn(),fn=dn=un=null,Qn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Sr(n)}}function wr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Pt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Pt(e.document)}return t}function Er(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Dr=sn&&`documentMode`in document&&11>=document.documentMode,Or=null,kr=null,Ar=null,jr=!1;function Mr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jr||Or==null||Or!==Pt(r)||(r=Or,`selectionStart`in r&&Er(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ar&&xr(Ar,r)||(Ar=r,r=Ed(kr,`onSelect`),0>=o,i-=o,wi=1<<32-Le(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),V&&Ei(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),V&&Ei(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return V&&Ei(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),V&&Ei(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Ea(l)===r.type){n(e,r.sibling),c=a(r,o.props),Aa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=di(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ui(o.type,o.key,o.props,null,e.mode,c),Aa(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=mi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Ea(o),b(e,r,o,c)}if(re(o))return h(e,r,o,c);if(j(o)){if(l=j(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,ka(o),c);if(o.$$typeof===C)return b(e,r,ea(e,o),c);ja(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=fi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{W=0;var i=b(e,t,n,r);return U=null,i}catch(t){if(t===ba||t===Sa)throw t;var a=oi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Na=Ma(!0),Pa=Ma(!1),Fa=!1;function Ia(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function La(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ra(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function za(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Pl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ri(e),ni(e,null,n),t}return $r(e,r,t,n),ri(e)}function Ba(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ze(e,n)}}function Va(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ha=!1;function Ua(){if(Ha){var e=da;if(e!==null)throw e}}function Wa(e,t,n,r){Ha=!1;var i=e.updateQueue;Fa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Ll&f)===f:(r&f)===f){f!==0&&f===ua&&(Ha=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Fa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Wl|=o,e.lanes=o,e.memoizedState=d}}function Ga(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Ka(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=M.T,s={};M.T=s,As(e,!1,t,n);try{var c=i(),l=M.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?ks(e,t,ma(c,r),fu(e)):ks(e,t,r,fu(e))}catch(n){ks(e,t,{then:function(){},status:`rejected`,reason:n},fu())}finally{N.p=a,o!==null&&s.types!==null&&(o.types=s.types),M.T=o}}function ys(){}function bs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=xs(e).queue;vs(e,a,t,ie,n===null?ys:function(){return Ss(e),n(r)})}function xs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ie,baseState:ie,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:jo,lastRenderedState:ie},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:jo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ss(e){var t=xs(e);t.next===null&&(t=e.alternate.memoizedState),ks(e,t.next.queue,{},fu())}function Cs(){return $i($f)}function ws(){return Eo().memoizedState}function Ts(){return Eo().memoizedState}function Es(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=fu();e=Ra(n);var r=za(t,e,n);r!==null&&(mu(r,t,n),Ba(r,t,n)),t={cache:oa()},e.payload=t;return}t=t.return}}function Ds(e,t,n){var r=fu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},js(e)?Ms(t,n):(n=ei(e,t,n,r),n!==null&&(mu(n,e,r),Ns(n,t,r)))}function Os(e,t,n){ks(e,t,n,fu())}function ks(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(js(e))Ms(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,br(s,o))return $r(e,t,i,0),Fl===null&&Qr(),!1}catch{}if(n=ei(e,t,i,r),n!==null)return mu(n,e,r),Ns(n,t,r),!0}return!1}function As(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},js(e)){if(t)throw Error(i(479))}else t=ei(e,n,r,2),t!==null&&mu(t,e,2)}function js(e){var t=e.alternate;return e===K||t!==null&&t===K}function Ms(e,t){uo=lo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ns(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ze(e,n)}}var Ps={readContext:$i,use:ko,useCallback:_o,useContext:_o,useEffect:_o,useImperativeHandle:_o,useLayoutEffect:_o,useInsertionEffect:_o,useMemo:_o,useReducer:_o,useRef:_o,useState:_o,useDebugValue:_o,useDeferredValue:_o,useTransition:_o,useSyncExternalStore:_o,useId:_o,useHostTransitionStatus:_o,useFormState:_o,useActionState:_o,useOptimistic:_o,useMemoCache:_o,useCacheRefresh:_o};Ps.useEffectEvent=_o;var Fs={readContext:$i,use:ko,useCallback:function(e,t){return q().memoizedState=[e,t===void 0?null:t],e},useContext:$i,useEffect:as,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),rs(4194308,4,ds.bind(null,t,e),n)},useLayoutEffect:function(e,t){return rs(4194308,4,e,t)},useInsertionEffect:function(e,t){rs(4,2,e,t)},useMemo:function(e,t){var n=q();t=t===void 0?null:t;var r=e();if(fo){Ie(!0);try{e()}finally{Ie(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=q();if(n!==void 0){var i=n(t);if(fo){Ie(!0);try{n(t)}finally{Ie(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ds.bind(null,K,e),[r.memoizedState,e]},useRef:function(e){var t=q();return e={current:e},t.memoizedState=e},useState:function(e){e=Vo(e);var t=e.queue,n=Os.bind(null,K,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ps,useDeferredValue:function(e,t){return gs(q(),e,t)},useTransition:function(){var e=Vo(!1);return e=vs.bind(null,K,e.queue,!0,!1),q().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=K,a=q();if(V){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Fl===null)throw Error(i(349));Ll&127||Io(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,as(Ro.bind(null,r,o,e),[e]),r.flags|=2048,ts(9,{destroy:void 0},Lo.bind(null,r,o,n,t),null),n},useId:function(){var e=q(),t=Fl.identifierPrefix;if(V){var n=Ti,r=wi;n=(r&~(1<<32-Le(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=po++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[it]=t,o[at]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Fd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Ec(t)}}return jc(t),Dc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ec(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=le.current,zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ji,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[it]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ii(t,!0)}else e=Vd(e).createTextNode(r),e[it]=t,t.stateNode=e}return jc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=zi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[it]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;jc(t),e=!1}else n=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(G(t),t):(G(t),null);if(t.flags&128)throw Error(i(558))}return jc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[it]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;jc(t),a=!1}else a=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(G(t),t):(G(t),null)}return G(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),kc(t,t.updateQueue),jc(t),null);case 4:return fe(),e===null&&Sd(t.stateNode.containerInfo),jc(t),null;case 10:return qi(t.type),jc(t),null;case 19:if(F(io),r=t.memoizedState,r===null)return jc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Ac(r,!1);else{if(Ul!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=ao(e),o!==null){for(t.flags|=128,Ac(r,!1),e=o.updateQueue,t.updateQueue=e,kc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)li(n,e),n=n.sibling;return I(io,io.current&1|2),V&&Ei(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>eu&&(t.flags|=128,a=!0,Ac(r,!1),t.lanes=4194304)}else{if(!a)if(e=ao(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,kc(t,e),Ac(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!V)return jc(t),null}else 2*Te()-r.renderingStartTime>eu&&n!==536870912&&(t.flags|=128,a=!0,Ac(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(jc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=io.current,I(io,a?n&1|2:n&1),V&&Ei(t,r.treeForkCount),e);case 22:case 23:return G(t),Za(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(jc(t),t.subtreeFlags&6&&(t.flags|=8192)):jc(t),n=t.updateQueue,n!==null&&kc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&F(ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),qi(aa),jc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Nc(e,t){switch(ki(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qi(aa),fe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return me(t),null;case 31:if(t.memoizedState!==null){if(G(t),t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(G(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return F(io),null;case 4:return fe(),null;case 10:return qi(t.type),null;case 22:case 23:return G(t),Za(),e!==null&&F(ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return qi(aa),null;case 25:return null;default:return null}}function Pc(e,t){switch(ki(t),t.tag){case 3:qi(aa),fe();break;case 26:case 27:case 5:me(t);break;case 4:fe();break;case 31:t.memoizedState!==null&&G(t);break;case 13:G(t);break;case 19:F(io);break;case 10:qi(t.type);break;case 22:case 23:G(t),Za(),e!==null&&F(ga);break;case 24:qi(aa)}}function Fc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Wu(t,t.return,e)}}function Ic(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Wu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Wu(t,t.return,e)}}function Lc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Ka(t,n)}catch(t){Wu(e,e.return,t)}}}function Rc(e,t,n){n.props=Hs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Wu(e,t,n)}}function zc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Wu(e,t,n)}}function Bc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Wu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Wu(e,t,n)}else n.current=null}function Vc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Wu(e,e.return,t)}}function Hc(e,t,n){try{var r=e.stateNode;Id(r,e.type,n,t),r[at]=t}catch(t){Wu(e,e.return,t)}}function Uc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Qd(e.type)||e.tag===4}function Wc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Uc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Qd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Gc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zt));else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Gc(e,t,n),e=e.sibling;e!==null;)Gc(e,t,n),e=e.sibling}function Kc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Kc(e,t,n),e=e.sibling;e!==null;)Kc(e,t,n),e=e.sibling}function qc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Fd(t,r,n),t[it]=e,t[at]=n}catch(t){Wu(e,e.return,t)}}var Jc=!1,Yc=!1,Xc=!1,Zc=typeof WeakSet==`function`?WeakSet:Set,Qc=null;function $c(e,t){if(e=e.containerInfo,zd=cp,e=Tr(e),Er(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Bd={focusedElem:e,selectionRange:n},cp=!1,Qc=t;Qc!==null;)if(t=Qc,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Qc=e;else for(;Qc!==null;){switch(t=Qc,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Fd(o,r,n),o[it]=e,_t(o),r=o;break a;case`link`:var s=Hf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Cr(s,h),v=Cr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,M.T=null,n=cu,cu=null;var o=iu,s=ou;if(ru=0,au=iu=null,ou=0,Pl&6)throw Error(i(331));var c=Pl;if(Pl|=4,kl(o.current),xl(o,o.current,s,n),Pl=c,id(0,!1),Fe&&typeof Fe.onPostCommitFiberRoot==`function`)try{Fe.onPostCommitFiberRoot(Pe,o)}catch{}return!0}finally{N.p=a,M.T=r,Bu(e,t)}}function Uu(e,t,n){t=gi(n,t),t=Js(e.stateNode,t,2),e=za(e,t,2),e!==null&&(Je(e,2),rd(e))}function Wu(e,t,n){if(e.tag===3)Uu(e,e,n);else for(;t!==null;){if(t.tag===3){Uu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(nu===null||!nu.has(r))){e=gi(n,e),n=Ys(2),r=za(t,n,2),r!==null&&(Xs(n,r,t,e),Je(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Nl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Vl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Fl===e&&(Ll&n)===n&&(Ul===4||Ul===3&&(Ll&62914560)===Ll&&300>Te()-Ql?!(Pl&2)&&xu(e,0):Kl|=n,Jl===Ll&&(Jl=0)),rd(e)}function qu(e,t){t===0&&(t=Ke()),e=ti(e,t),e!==null&&(Je(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return xe(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Le(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=Ll,a=Ue(r,r===Fl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||We(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Kd()&&(e=nd);for(var t=Te(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}ru!==0&&ru!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Ld(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Sf(e,t,n){var r=xf;if(r&&typeof t==`string`&&t){var i=It(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),gf.has(i)||(gf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Fd(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Cf(e){vf.D(e),Sf(`dns-prefetch`,e,null)}function wf(e,t){vf.C(e,t),Sf(`preconnect`,e,t)}function Tf(e,t,n){vf.L(e,t,n);var r=xf;if(r&&e&&t){var i=`link[rel="preload"][as="`+It(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+It(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+It(n.imageSizes)+`"]`)):i+=`[href="`+It(e)+`"]`;var a=i;switch(t){case`style`:a=jf(e);break;case`script`:a=Ff(e)}hf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),hf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Mf(a))||t===`script`&&r.querySelector(If(a))||(t=r.createElement(`link`),Fd(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Ef(e,t){vf.m(e,t);var n=xf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+It(r)+`"][href="`+It(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Ff(e)}if(!hf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),hf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(If(a)))return}r=n.createElement(`link`),Fd(r,`link`,e),_t(r),n.head.appendChild(r)}}}function Df(e,t,n){vf.S(e,t,n);var r=xf;if(r&&e){var i=gt(r).hoistableStyles,a=jf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Mf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=hf.get(a))&&zf(e,n);var c=o=r.createElement(`link`);_t(c),Fd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Rf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Of(e,t){vf.X(e,t);var n=xf;if(n&&e){var r=gt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=h({src:e,async:!0},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),_t(a),Fd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t){vf.M(e,t);var n=xf;if(n&&e){var r=gt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),_t(a),Fd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Af(e,t,n,r){var a=(a=le.current)?_f(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=jf(n.href),n=gt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=jf(n.href);var o=gt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Mf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),hf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},hf.set(e,n),o||Pf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Ff(n),n=gt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function jf(e){return`href="`+It(e)+`"`}function Mf(e){return`link[rel="stylesheet"][`+e+`]`}function Nf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Pf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Fd(t,`link`,n),_t(t),e.head.appendChild(t))}function Ff(e){return`[src="`+It(e)+`"]`}function If(e){return`script[async]`+e}function Lf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+It(n.href)+`"]`);if(r)return t.instance=r,_t(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),_t(r),Fd(r,`style`,a),Rf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=jf(n.href);var o=e.querySelector(Mf(a));if(o)return t.state.loading|=4,t.instance=o,_t(o),o;r=Nf(n),(a=hf.get(a))&&zf(r,a),o=(e.ownerDocument||e).createElement(`link`),_t(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Fd(o,`link`,r),t.state.loading|=4,Rf(o,n.precedence,e),t.instance=o;case`script`:return o=Ff(n.src),(a=e.querySelector(If(o)))?(t.instance=a,_t(a),a):(r=n,(a=hf.get(o))&&(r=h({},n),Bf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),_t(a),Fd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Rf(r,n.precedence,e));return t.instance}function Rf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Wf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Gf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Kf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=jf(r.href),a=t.querySelector(Mf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Yf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,_t(a);return}a=t.ownerDocument||t,r=Nf(r),(i=hf.get(i))&&zf(r,i),a=a.createElement(`link`),_t(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Fd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Yf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var qf=0;function Jf(e,t){return e.stylesheets&&e.count===0&&Zf(e,e.stylesheets),0qf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Yf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Zf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Xf=null;function Zf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Xf=new Map,t.forEach(Qf,e),Xf=null,Yf.call(e))}function Qf(e,t){if(!(t.state.loading&4)){var n=Xf.get(e);if(n)var r=n.get(null);else{n=new Map,Xf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},v=new class extends _{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},y={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},b=new class{#e=y;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function x(e){setTimeout(e,0)}var S=typeof window>`u`||`Deno`in globalThis;function C(){}function w(e,t){return typeof e==`function`?e(t):e}function T(e){return typeof e==`number`&&e>=0&&e!==1/0}function E(e,t){return Math.max(e+(t||0)-Date.now(),0)}function D(e,t){return typeof e==`function`?e(t):e}function O(e,t){return typeof e==`function`?e(t):e}function k(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==A(o,t.options))return!1}else if(!te(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function ee(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(j(t.options.mutationKey)!==j(a))return!1}else if(!te(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function A(e,t){return(t?.queryKeyHashFn||j)(e)}function j(e){return JSON.stringify(e,(e,t)=>ie(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function te(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>te(e[n],t[n])):!1}var ne=Object.prototype.hasOwnProperty;function re(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=N(e)&&N(t);if(!r&&!(ie(e)&&ie(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{b.setTimeout(t,e)})}function P(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:re(e,t)}function F(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function I(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var se=Symbol();function ce(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===se?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function le(e,t){return typeof e==`function`?e(...t):!!e}function ue(e,t,n){let r=!1,i;return Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var de=(()=>{let e=()=>S;return{isServer(){return e()},setIsServer(t){e=t}}})();function fe(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var pe=x;function me(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=pe,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var he=me(),ge=new class extends _{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function _e(e){return Math.min(1e3*2**e,3e4)}function L(e){return(e??`online`)===`online`?ge.isOnline():!0}var ve=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function R(e){let t=!1,n=0,r,i=fe(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new ve(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>v.isFocused()&&(e.networkMode===`always`||ge.isOnline())&&e.canRun(),u=()=>L(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(de.isServer()?0:3),o=e.retryDelay??_e,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&nl()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var ye=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),T(this.gcTime)&&(this.#e=b.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(de.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(b.clearTimeout(this.#e),this.#e=void 0)}},be=class extends ye{#e;#t;#n;#r;#i;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#n=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=Ce(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Ce(this.options);e.data!==void 0&&(this.setState(Se(e.data,e.dataUpdatedAt)),this.#e=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#n.remove(this)}setData(e,t){let n=P(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#c({type:`setState`,state:e,setStateOptions:t})}cancel(e){let t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#e}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>O(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===se||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>D(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!E(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#i&&(this.#o||this.#s()?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#s(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#i?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},i=()=>{let e=ce(this.options,t),n=(()=>{let e={client:this.#r,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#o=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:i};return r(e),e})();this.options.behavior?.onFetch(a,this),this.#t=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta}),this.#i=R({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof ve&&e.revert&&this.setState({...this.#t,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#i.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#n.config.onSuccess?.(e,this),this.#n.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof ve){if(e.silent)return this.#i.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#n.config.onError?.(e,this),this.#n.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#c(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...xe(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Se(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#t=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}})(this.state),he.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#n.notify({query:this,type:`updated`,action:e})})}};function xe(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:L(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Se(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Ce(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var we=class extends _{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=fe(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Ee(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return De(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return De(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof O(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!M(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&Oe(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||O(this.options.enabled,this.#t)!==O(t.enabled,this.#t)||D(this.options.staleTime,this.#t)!==D(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||O(this.options.enabled,this.#t)!==O(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return Ae(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(C)),t}#g(){this.#b();let e=D(this.options.staleTime,this.#t);if(de.isServer()||this.#r.isStale||!T(e))return;let t=E(this.#r.dataUpdatedAt,e)+1;this.#d=b.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(de.isServer()||O(this.options.enabled,this.#t)===!1||!T(this.#p)||this.#p===0)&&(this.#f=b.setInterval(()=>{(this.options.refetchIntervalInBackground||v.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(b.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(b.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&Ee(e,t),o=i&&Oe(e,n,t,r);(a||o)&&(l={...l,...xe(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=P(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=P(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:ke(e,t),refetch:this.refetch,promise:this.#o,isEnabled:O(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{i(this.#o=x.promise=fe())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a();break}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!M(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){he.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function Te(e,t){return O(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function Ee(e,t){return Te(e,t)||e.state.data!==void 0&&De(e,t,t.refetchOnMount)}function De(e,t,n){if(O(t.enabled,e)!==!1&&D(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&ke(e,t)}return!1}function Oe(e,t,n,r){return(e!==t||O(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&ke(e,n)}function ke(e,t){return O(t.enabled,e)!==!1&&e.isStaleByTime(D(t.staleTime,e))}function Ae(e,t){return!M(e.getCurrentResult(),t)}function je(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{ue(e,()=>t.signal,()=>n=!0)},u=ce(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?I:F;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?Ne:Me,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Me(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function Me(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ne(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var Pe=class extends ye{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Fe(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=R({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),he.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Fe(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Ie=class extends _{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new Pe({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=Le(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=Le(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=Le(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=Le(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){he.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ee(t,e))}findAll(e={}){return this.getAll().filter(t=>ee(e,t))}notify(e){he.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return he.batch(()=>Promise.all(e.map(e=>e.continue().catch(C))))}};function Le(e){return e.options.scope?.id}var Re=class extends _{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??A(r,t),a=this.get(i);return a||(a=new be({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){he.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>k(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>k(e,t)):t}notify(e){he.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){he.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){he.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ze=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Re,this.#t=e.mutationCache||new Ie,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=v.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=ge.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(D(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=w(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return he.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;he.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return he.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=he.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(C).catch(C)}invalidateQueries(e,t={}){return he.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=he.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(C)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(C)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(D(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(C).catch(C)}fetchInfiniteQuery(e){return e.behavior=je(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(C).catch(C)}ensureInfiniteQueryData(e){return e.behavior=je(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return ge.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(j(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{te(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(j(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{te(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=A(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===se&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Be=o((e=>{var t=Symbol.for(`react.transitional.element`);function n(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.jsx=n,e.jsxs=n})),Ve=o(((e,t)=>{t.exports=Be()})),z=c(u(),1),B=Ve(),He=z.createContext(void 0),Ue=e=>{let t=z.useContext(He);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},We=({client:e,children:t})=>(z.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,B.jsx)(He.Provider,{value:e,children:t})),Ge=z.createContext(!1),Ke=()=>z.useContext(Ge);Ge.Provider;function qe(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Je=z.createContext(qe()),Ye=()=>z.useContext(Je),Xe=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?le(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},Ze=e=>{z.useEffect(()=>{e.clearReset()},[e])},Qe=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||le(n,[e.error,r])),$e=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},et=(e,t)=>e.isLoading&&e.isFetching&&!t,tt=(e,t)=>e?.suspense&&t.isPending,nt=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function rt(e,t,n){let r=Ke(),i=Ye(),a=Ue(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash);o._optimisticResults=r?`isRestoring`:`optimistic`,$e(o),Xe(o,i,s),Ze(i);let c=!a.getQueryCache().get(o.queryHash),[l]=z.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&e.subscribed!==!1;if(z.useSyncExternalStore(z.useCallback(e=>{let t=d?l.subscribe(he.batchCalls(e)):C;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),z.useEffect(()=>{l.setOptions(o)},[o,l]),tt(o,u))throw nt(o,l,i);if(Qe({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,u),o.experimental_prefetchInRender&&!de.isServer()&&et(u,r)&&(c?nt(o,l,i):s?.promise)?.catch(C).finally(()=>{l.updateResult()}),o.notifyOnChangeProps?u:l.trackResult(u)}function it(e,t){return rt(e,we,t)}var at={black:`#000`,white:`#fff`},ot={50:`#ffebee`,100:`#ffcdd2`,200:`#ef9a9a`,300:`#e57373`,400:`#ef5350`,500:`#f44336`,600:`#e53935`,700:`#d32f2f`,800:`#c62828`,900:`#b71c1c`,A100:`#ff8a80`,A200:`#ff5252`,A400:`#ff1744`,A700:`#d50000`},st={50:`#f3e5f5`,100:`#e1bee7`,200:`#ce93d8`,300:`#ba68c8`,400:`#ab47bc`,500:`#9c27b0`,600:`#8e24aa`,700:`#7b1fa2`,800:`#6a1b9a`,900:`#4a148c`,A100:`#ea80fc`,A200:`#e040fb`,A400:`#d500f9`,A700:`#aa00ff`},ct={50:`#e3f2fd`,100:`#bbdefb`,200:`#90caf9`,300:`#64b5f6`,400:`#42a5f5`,500:`#2196f3`,600:`#1e88e5`,700:`#1976d2`,800:`#1565c0`,900:`#0d47a1`,A100:`#82b1ff`,A200:`#448aff`,A400:`#2979ff`,A700:`#2962ff`},lt={50:`#e1f5fe`,100:`#b3e5fc`,200:`#81d4fa`,300:`#4fc3f7`,400:`#29b6f6`,500:`#03a9f4`,600:`#039be5`,700:`#0288d1`,800:`#0277bd`,900:`#01579b`,A100:`#80d8ff`,A200:`#40c4ff`,A400:`#00b0ff`,A700:`#0091ea`},ut={50:`#e8f5e9`,100:`#c8e6c9`,200:`#a5d6a7`,300:`#81c784`,400:`#66bb6a`,500:`#4caf50`,600:`#43a047`,700:`#388e3c`,800:`#2e7d32`,900:`#1b5e20`,A100:`#b9f6ca`,A200:`#69f0ae`,A400:`#00e676`,A700:`#00c853`},dt={50:`#fff3e0`,100:`#ffe0b2`,200:`#ffcc80`,300:`#ffb74d`,400:`#ffa726`,500:`#ff9800`,600:`#fb8c00`,700:`#f57c00`,800:`#ef6c00`,900:`#e65100`,A100:`#ffd180`,A200:`#ffab40`,A400:`#ff9100`,A700:`#ff6d00`},ft={50:`#fafafa`,100:`#f5f5f5`,200:`#eeeeee`,300:`#e0e0e0`,400:`#bdbdbd`,500:`#9e9e9e`,600:`#757575`,700:`#616161`,800:`#424242`,900:`#212121`,A100:`#f5f5f5`,A200:`#eeeeee`,A400:`#bdbdbd`,A700:`#616161`};function pt(e,...t){let n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(e=>n.searchParams.append(`args[]`,e)),`Minified MUI error #${e}; visit ${n} for the full message.`}var mt=`$$material`;function ht(){return ht=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?Lt(Jt,--Kt):0,Wt--,qt===10&&(Wt=1,Ut--),qt}function $t(){return qt=Kt2||rn(qt)>3?``:` `}function ln(e,t){for(;--t&&$t()&&!(qt<48||qt>102||qt>57&&qt<65||qt>70&&qt<97););return nn(e,tn()+(t<6&&en()==32&&$t()==32))}function un(e){for(;$t();)switch(qt){case e:return Kt;case 34:case 39:e!==34&&e!==39&&un(qt);break;case 40:e===41&&un(e);break;case 92:$t();break}return Kt}function dn(e,t){for(;$t()&&e+qt!==57&&!(e+qt===84&&en()===47););return`/*`+nn(t,Kt-1)+`*`+At(e===47?e:$t())}function fn(e){for(;!rn(en());)$t();return nn(e,Kt)}function pn(e){return on(mn(``,null,null,null,[``],e=an(e),0,[0],e))}function mn(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,y=``,b=i,x=a,S=r,C=y;g;)switch(m=v,v=$t()){case 40:if(m!=108&&Lt(C,d-1)==58){It(C+=Ft(sn(v),`&`,`&\f`),`&\f`)!=-1&&(_=-1);break}case 34:case 39:case 91:C+=sn(v);break;case 9:case 10:case 13:case 32:C+=cn(m);break;case 92:C+=ln(tn()-1,7);continue;case 47:switch(en()){case 42:case 47:Vt(gn(dn($t(),tn()),t,n),c);break;default:C+=`/`}break;case 123*h:s[l++]=zt(C)*_;case 125*h:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:_==-1&&(C=Ft(C,/\f/g,``)),p>0&&zt(C)-d&&Vt(p>32?_n(C+`;`,r,n,d-1):_n(Ft(C,` `,``)+`;`,r,n,d-2),c);break;case 59:C+=`;`;default:if(Vt(S=hn(C,t,n,l,u,i,s,y,b=[],x=[],d),a),v===123)if(u===0)mn(C,t,S,S,b,a,d,s,x);else switch(f===99&&Lt(C,3)===110?100:f){case 100:case 108:case 109:case 115:mn(e,S,S,r&&Vt(hn(e,S,S,0,0,i,s,y,i,b=[],d),x),i,x,d,s,r?b:x);break;default:mn(C,S,S,S,[``],x,0,s,x)}}l=u=p=0,h=_=1,y=C=``,d=o;break;case 58:d=1+zt(C),p=m;default:if(h<1){if(v==123)--h;else if(v==125&&h++==0&&Qt()==125)continue}switch(C+=At(v),v*h){case 38:_=u>0?1:(C+=`\f`,-1);break;case 44:s[l++]=(zt(C)-1)*_,_=1;break;case 64:en()===45&&(C+=sn($t())),f=en(),u=d=zt(y=C+=fn(tn())),v++;break;case 45:m===45&&zt(C)==2&&(h=0)}}return a}function hn(e,t,n,r,i,a,o,s,c,l,u){for(var d=i-1,f=i===0?a:[``],p=Bt(f),m=0,h=0,g=0;m0?f[_]+` `+v:Ft(v,/&\f/g,f[_])))&&(c[g++]=y);return Yt(e,t,n,i===0?wt:s,c,l,u)}function gn(e,t,n){return Yt(e,t,n,Ct,At(Zt()),Rt(e,2,-2),0)}function _n(e,t,n,r){return Yt(e,t,n,Tt,Rt(e,0,r),Rt(e,r+1,-1),r)}function vn(e,t){for(var n=``,r=Bt(e),i=0;i6)switch(Lt(e,t+1)){case 109:if(Lt(e,t+4)!==45)break;case 102:return Ft(e,/(.+:)(.+)-([^]+)/,`$1`+St+`$2-$3$1`+xt+(Lt(e,t+3)==108?`$3`:`$2-$3`))+e;case 115:return~It(e,`stretch`)?kn(Ft(e,`stretch`,`fill-available`),t)+e:e}break;case 4949:if(Lt(e,t+1)!==115)break;case 6444:switch(Lt(e,zt(e)-3-(~It(e,`!important`)&&10))){case 107:return Ft(e,`:`,`:`+St)+e;case 101:return Ft(e,/(.+:)([^;!]+)(;|!.+)?/,`$1`+St+(Lt(e,14)===45?`inline-`:``)+`box$3$1`+St+`$2$3$1`+bt+`$2box$3`)+e}break;case 5936:switch(Lt(e,t+11)){case 114:return St+e+bt+Ft(e,/[svh]\w+-[tblr]{2}/,`tb`)+e;case 108:return St+e+bt+Ft(e,/[svh]\w+-[tblr]{2}/,`tb-rl`)+e;case 45:return St+e+bt+Ft(e,/[svh]\w+-[tblr]{2}/,`lr`)+e}return St+e+bt+e+e}return e}var An=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Tt:e.return=kn(e.value,e.length);break;case Dt:return vn([Xt(e,{value:Ft(e.value,`@`,`@`+St)})],r);case wt:if(e.length)return Ht(e.props,function(t){switch(Pt(t,/(::plac\w+|:read-\w+)/)){case`:read-only`:case`:read-write`:return vn([Xt(e,{props:[Ft(t,/:(read-\w+)/,`:`+xt+`$1`)]})],r);case`::placeholder`:return vn([Xt(e,{props:[Ft(t,/:(plac\w+)/,`:`+St+`input-$1`)]}),Xt(e,{props:[Ft(t,/:(plac\w+)/,`:`+xt+`$1`)]}),Xt(e,{props:[Ft(t,/:(plac\w+)/,bt+`input-$1`)]})],r)}return``})}}],jn=function(e){var t=e.key;if(t===`css`){var n=document.querySelectorAll(`style[data-emotion]:not([data-s])`);Array.prototype.forEach.call(n,function(e){e.getAttribute(`data-emotion`).indexOf(` `)!==-1&&(document.head.appendChild(e),e.setAttribute(`data-s`,``))})}var r=e.stylisPlugins||An,i={},a,o=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll(`style[data-emotion^="`+t+` "]`),function(e){for(var t=e.getAttribute(`data-emotion`).split(` `),n=1;n{var t=typeof Symbol==`function`&&Symbol.for,n=t?Symbol.for(`react.element`):60103,r=t?Symbol.for(`react.portal`):60106,i=t?Symbol.for(`react.fragment`):60107,a=t?Symbol.for(`react.strict_mode`):60108,o=t?Symbol.for(`react.profiler`):60114,s=t?Symbol.for(`react.provider`):60109,c=t?Symbol.for(`react.context`):60110,l=t?Symbol.for(`react.async_mode`):60111,u=t?Symbol.for(`react.concurrent_mode`):60111,d=t?Symbol.for(`react.forward_ref`):60112,f=t?Symbol.for(`react.suspense`):60113,p=t?Symbol.for(`react.suspense_list`):60120,m=t?Symbol.for(`react.memo`):60115,h=t?Symbol.for(`react.lazy`):60116,g=t?Symbol.for(`react.block`):60121,_=t?Symbol.for(`react.fundamental`):60117,v=t?Symbol.for(`react.responder`):60118,y=t?Symbol.for(`react.scope`):60119;function b(e){if(typeof e==`object`&&e){var t=e.$$typeof;switch(t){case n:switch(e=e.type,e){case l:case u:case i:case o:case a:case f:return e;default:switch(e&&=e.$$typeof,e){case c:case d:case h:case m:case s:return e;default:return t}}case r:return t}}}function x(e){return b(e)===u}e.AsyncMode=l,e.ConcurrentMode=u,e.ContextConsumer=c,e.ContextProvider=s,e.Element=n,e.ForwardRef=d,e.Fragment=i,e.Lazy=h,e.Memo=m,e.Portal=r,e.Profiler=o,e.StrictMode=a,e.Suspense=f,e.isAsyncMode=function(e){return x(e)||b(e)===l},e.isConcurrentMode=x,e.isContextConsumer=function(e){return b(e)===c},e.isContextProvider=function(e){return b(e)===s},e.isElement=function(e){return typeof e==`object`&&!!e&&e.$$typeof===n},e.isForwardRef=function(e){return b(e)===d},e.isFragment=function(e){return b(e)===i},e.isLazy=function(e){return b(e)===h},e.isMemo=function(e){return b(e)===m},e.isPortal=function(e){return b(e)===r},e.isProfiler=function(e){return b(e)===o},e.isStrictMode=function(e){return b(e)===a},e.isSuspense=function(e){return b(e)===f},e.isValidElementType=function(e){return typeof e==`string`||typeof e==`function`||e===i||e===u||e===o||e===a||e===f||e===p||typeof e==`object`&&!!e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===d||e.$$typeof===_||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)},e.typeOf=b})),Nn=o(((e,t)=>{t.exports=Mn()})),Pn=o(((e,t)=>{var n=Nn(),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};s[n.ForwardRef]=a,s[n.Memo]=o;function c(e){return n.isMemo(e)?o:s[e.$$typeof]||r}var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;function h(e,t,n){if(typeof t!=`string`){if(m){var r=p(t);r&&r!==m&&h(e,r,n)}var a=u(t);d&&(a=a.concat(d(t)));for(var o=c(e),s=c(t),g=0;g=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var Bn={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Vn=!1,Hn=/[A-Z]|^ms/g,Un=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Wn=function(e){return e.charCodeAt(1)===45},Gn=function(e){return e!=null&&typeof e!=`boolean`},Kn=Sn(function(e){return Wn(e)?e:e.replace(Hn,`-$&`).toLowerCase()}),qn=function(e,t){switch(e){case`animation`:case`animationName`:if(typeof t==`string`)return t.replace(Un,function(e,t,n){return Qn={name:t,styles:n,next:Qn},t})}return Bn[e]!==1&&!Wn(e)&&typeof t==`number`&&t!==0?t+`px`:t},Jn=`Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.`;function Yn(e,t,n){if(n==null)return``;var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case`boolean`:return``;case`object`:var i=n;if(i.anim===1)return Qn={name:i.name,styles:i.styles,next:Qn},i.name;var a=n;if(a.styles!==void 0){var o=a.next;if(o!==void 0)for(;o!==void 0;)Qn={name:o.name,styles:o.styles,next:Qn},o=o.next;return a.styles+`;`}return Xn(e,t,n);case`function`:if(e!==void 0){var s=Qn,c=n(e);return Qn=s,Yn(e,t,c)}break}var l=n;if(t==null)return l;var u=t[l];return u===void 0?l:u}function Xn(e,t,n){var r=``;if(Array.isArray(n))for(var i=0;i96?yr:br},Sr=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return typeof r!=`function`&&n&&(r=e.__emotion_forwardProp),r},Cr=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return Ln(t,n,r),nr(function(){return Rn(t,n,r)}),null},wr=function e(t,n){var r=t.__emotion_real===t,i=r&&t.__emotion_base||t,a,o;n!==void 0&&(a=n.label,o=n.target);var s=Sr(t,n,r),c=s||xr(i),l=!c(`as`);return function(){var u=arguments,d=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(a!==void 0&&d.push(`label:`+a+`;`),u[0]==null||u[0].raw===void 0)d.push.apply(d,u);else{var f=u[0];d.push(f[0]);for(var p=u.length,m=1;mt(Dr(e)?n:e):t})}function kr(e,t){return Er(e,t)}function Ar(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}var jr=[];function Mr(e){return jr[0]=e,$n(jr)}var Nr=o((e=>{var t=Symbol.for(`react.fragment`),n=Symbol.for(`react.strict_mode`),r=Symbol.for(`react.profiler`),i=Symbol.for(`react.consumer`),a=Symbol.for(`react.context`),o=Symbol.for(`react.forward_ref`),s=Symbol.for(`react.suspense`),c=Symbol.for(`react.suspense_list`),l=Symbol.for(`react.memo`),u=Symbol.for(`react.lazy`),d=Symbol.for(`react.client.reference`);e.isValidElementType=function(e){return!!(typeof e==`string`||typeof e==`function`||e===t||e===r||e===n||e===s||e===c||typeof e==`object`&&e&&(e.$$typeof===u||e.$$typeof===l||e.$$typeof===a||e.$$typeof===i||e.$$typeof===o||e.$$typeof===d||e.getModuleId!==void 0))}})),Pr=o(((e,t)=>{t.exports=Nr()}))();function Fr(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Ir(e){if(z.isValidElement(e)||(0,Pr.isValidElementType)(e)||!Fr(e))return e;let t={};return Object.keys(e).forEach(n=>{t[n]=Ir(e[n])}),t}function Lr(e,t,n={clone:!0}){let r=n.clone?{...e}:e;return Fr(e)&&Fr(t)&&Object.keys(t).forEach(i=>{z.isValidElement(t[i])||(0,Pr.isValidElementType)(t[i])?r[i]=t[i]:Fr(t[i])&&Object.prototype.hasOwnProperty.call(e,i)&&Fr(e[i])?r[i]=Lr(e[i],t[i],n):n.clone?r[i]=Fr(t[i])?Ir(t[i]):t[i]:r[i]=t[i]}),r}var Rr=e=>{let t=Object.keys(e).map(t=>({key:t,val:e[t]}))||[];return t.sort((e,t)=>e.val-t.val),t.reduce((e,t)=>({...e,[t.key]:t.val}),{})};function zr(e){let{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n=`px`,step:r=5,...i}=e,a=Rr(t),o=Object.keys(a);function s(e){return`@media (min-width:${typeof t[e]==`number`?t[e]:e}${n})`}function c(e){return`@media (max-width:${(typeof t[e]==`number`?t[e]:e)-r/100}${n})`}function l(e,i){let a=o.indexOf(i);return`@media (min-width:${typeof t[e]==`number`?t[e]:e}${n}) and (max-width:${(a!==-1&&typeof t[o[a]]==`number`?t[o[a]]:i)-r/100}${n})`}function u(e){return o.indexOf(e)+1(e.match(Br)?.[1]||0)-+(t.match(Br)?.[1]||0));let r=t;for(let e=0;et.startsWith(`@${e}`))||!!t.match(/^@\d/))}function Wr(e,t){let n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;let[,r,i]=n,a=Number.isNaN(+r)?r||0:+r;return e.containerQueries(i).up(a)}function Gr(e){let t=(e,t)=>e.replace(`@media`,t?`@container ${t}`:`@container`);function n(n,r){n.up=(...n)=>t(e.breakpoints.up(...n),r),n.down=(...n)=>t(e.breakpoints.down(...n),r),n.between=(...n)=>t(e.breakpoints.between(...n),r),n.only=(...n)=>t(e.breakpoints.only(...n),r),n.not=(...n)=>{let i=t(e.breakpoints.not(...n),r);return i.includes(`not all and`)?i.replace(`not all and `,``).replace(`min-width:`,`width<`).replace(`max-width:`,`width>`).replace(`and`,`or`):i}}let r={},i=e=>(n(r,e),r);return n(i),{...e,containerQueries:i}}var Kr={borderRadius:4};function qr(e){if(e==null)return!0;for(let t in e)return!1;return!0}function Jr(e,t){let n=Array.isArray(t),r=Array.isArray(e);return $r(t)?t:ei(e)?ti(t):n&&r?Zr(e,t):n===r?ni(e,t):ti(t)}function Yr(e){let t=0,n=e.length,r=Array(n);for(t=0;t({up:t=>{let n=typeof t==`number`?t:ii[t]||t;return typeof n==`number`&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function si(e,t,n){let r={};return ci(r,e.theme,t,(e,t,i)=>{let a=n(t,i);e?r[e]=a:Jr(r,a)})}function ci(e,t,n,r){if(t??=ri,Array.isArray(n)){let i=t.breakpoints??ai;for(let t=0;tLr(e,t),{}))}function pi(e,t){if(typeof e!=`object`)return{};let n={},r=Object.keys(t);return Array.isArray(e)?r.forEach((t,r)=>{r{e[t]!=null&&(n[t]=!0)}),n}function mi({values:e,breakpoints:t,base:n}){let r=n||pi(e,t),i=Object.keys(r);if(i.length===0)return e;let a;return i.reduce((t,n,r)=>(Array.isArray(e)?(t[n]=e[r]==null?e[a]:e[r],a=r):typeof e==`object`?(t[n]=e[n]==null?e[a]:e[n],a=n):t[n]=e,t),{})}function hi(e,t){if(Array.isArray(t))return!0;if(typeof t==`object`&&t){for(let n=0;n{if(e[t]==null)return null;let a=e[t],o=e.theme,s=vi(o,r)||{};return si(e,a,e=>{let r=_i(s,i,e,t);return n===!1?r:{[n]:r}})};return a.propTypes={},a.filterProps=[t],a}var xi={internal_cache:{}},Si={m:`margin`,p:`padding`},Ci={t:`Top`,r:`Right`,b:`Bottom`,l:`Left`,x:[`Left`,`Right`],y:[`Top`,`Bottom`]},wi={marginX:`mx`,marginY:`my`,paddingX:`px`,paddingY:`py`},Ti={};for(let e in Si)Ti[e]=[Si[e]];for(let e in Si)for(let t in Ci){let n=Si[e],r=Ci[t],i=Array.isArray(r)?r.map(e=>n+e):[n+r];Ti[e+t]=i}for(let e in wi)Ti[e]=Ti[wi[e]];var Ei=new Set([`m`,`mt`,`mr`,`mb`,`ml`,`mx`,`my`,`margin`,`marginTop`,`marginRight`,`marginBottom`,`marginLeft`,`marginX`,`marginY`,`marginInline`,`marginInlineStart`,`marginInlineEnd`,`marginBlock`,`marginBlockStart`,`marginBlockEnd`]),Di=new Set([`p`,`pt`,`pr`,`pb`,`pl`,`px`,`py`,`padding`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`paddingX`,`paddingY`,`paddingInline`,`paddingInlineStart`,`paddingInlineEnd`,`paddingBlock`,`paddingBlockStart`,`paddingBlockEnd`]),Oi=new Set([...Ei,...Di]);function ki(e,t,n,r){let i=vi(e,t,!0)??n;return typeof i==`number`||typeof i==`string`?e=>typeof e==`string`?e:typeof i==`string`?i.startsWith(`var(`)&&e===0?0:i.startsWith(`var(`)&&e===1?i:`calc(${e} * ${i})`:i*e:Array.isArray(i)?e=>{if(typeof e==`string`)return e;let t=i[Math.abs(e)];return e>=0?t:typeof t==`number`?-t:typeof t==`string`&&t.startsWith(`var(`)?`calc(-1 * ${t})`:`-${t}`}:typeof i==`function`?i:()=>void 0}function Ai(e){return ki(e,`spacing`,8,`spacing`)}function ji(e,t){return typeof t==`string`||t==null?t:e(t)}var Mi=[``];function V(e,t){let n=e.theme??xi,r=n?.internal_cache?.unarySpacing??Ai(n),i={};for(let n in e){if(!t.has(n))continue;let a=Ti[n]??(Mi[0]=n,Mi),o=e[n];ci(i,e.theme,o,(e,t)=>{let n=e?i[e]:i;for(let e=0;e(e.length===0?[1]:e).map(e=>{let n=t(e);return typeof n==`number`?`${n}px`:n}).join(` `);return n.mui=!0,n}function Li(...e){let t=e.reduce((e,t)=>(t.filterProps.forEach(n=>{e[n]=t}),e),{}),n=e=>{let n={};for(let r in e)t[r]&&Jr(n,t[r](e));return n};return n.propTypes={},n.filterProps=e.reduce((e,t)=>e.concat(t.filterProps),[]),n}function Ri(e){return typeof e==`number`?`${e}px solid`:e}function zi(e,t){return bi({prop:e,themeKey:`borders`,transform:t})}var Bi=zi(`border`,Ri),Vi=zi(`borderTop`,Ri),Hi=zi(`borderRight`,Ri),Ui=zi(`borderBottom`,Ri),Wi=zi(`borderLeft`,Ri),Gi=zi(`borderColor`),Ki=zi(`borderTopColor`),qi=zi(`borderRightColor`),Ji=zi(`borderBottomColor`),Yi=zi(`borderLeftColor`),Xi=zi(`outline`,Ri),Zi=zi(`outlineColor`),Qi=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){let t=ki(e.theme,`shape.borderRadius`,4,`borderRadius`);return si(e,e.borderRadius,e=>({borderRadius:ji(t,e)}))}return null};Qi.propTypes={},Qi.filterProps=[`borderRadius`],Li(Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Qi,Xi,Zi);var $i=e=>{if(e.gap!==void 0&&e.gap!==null){let t=ki(e.theme,`spacing`,8,`gap`);return si(e,e.gap,e=>({gap:ji(t,e)}))}return null};$i.propTypes={},$i.filterProps=[`gap`];var ea=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){let t=ki(e.theme,`spacing`,8,`columnGap`);return si(e,e.columnGap,e=>({columnGap:ji(t,e)}))}return null};ea.propTypes={},ea.filterProps=[`columnGap`];var ta=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){let t=ki(e.theme,`spacing`,8,`rowGap`);return si(e,e.rowGap,e=>({rowGap:ji(t,e)}))}return null};ta.propTypes={},ta.filterProps=[`rowGap`],Li($i,ea,ta,bi({prop:`gridColumn`}),bi({prop:`gridRow`}),bi({prop:`gridAutoFlow`}),bi({prop:`gridAutoColumns`}),bi({prop:`gridAutoRows`}),bi({prop:`gridTemplateColumns`}),bi({prop:`gridTemplateRows`}),bi({prop:`gridTemplateAreas`}),bi({prop:`gridArea`}));function na(e,t){return t===`grey`?t:e}Li(bi({prop:`color`,themeKey:`palette`,transform:na}),bi({prop:`bgcolor`,cssProperty:`backgroundColor`,themeKey:`palette`,transform:na}),bi({prop:`backgroundColor`,themeKey:`palette`,transform:na}));function ra(e){return e<=1&&e!==0?`${e*100}%`:e}var ia=bi({prop:`width`,transform:ra}),aa=e=>e.maxWidth!==void 0&&e.maxWidth!==null?si(e,e.maxWidth,t=>{let n=e.theme?.breakpoints?.values?.[t]||ii[t];return n?e.theme?.breakpoints?.unit===`px`?{maxWidth:n}:{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:ra(t)}}):null;aa.filterProps=[`maxWidth`];var oa=bi({prop:`minWidth`,transform:ra}),sa=bi({prop:`height`,transform:ra}),ca=bi({prop:`maxHeight`,transform:ra}),la=bi({prop:`minHeight`,transform:ra});bi({prop:`size`,cssProperty:`width`,transform:ra}),bi({prop:`size`,cssProperty:`height`,transform:ra}),Li(ia,aa,oa,sa,ca,la,bi({prop:`boxSizing`}));var ua={border:{themeKey:`borders`,transform:Ri},borderTop:{themeKey:`borders`,transform:Ri},borderRight:{themeKey:`borders`,transform:Ri},borderBottom:{themeKey:`borders`,transform:Ri},borderLeft:{themeKey:`borders`,transform:Ri},borderColor:{themeKey:`palette`},borderTopColor:{themeKey:`palette`},borderRightColor:{themeKey:`palette`},borderBottomColor:{themeKey:`palette`},borderLeftColor:{themeKey:`palette`},outline:{themeKey:`borders`,transform:Ri},outlineColor:{themeKey:`palette`},borderRadius:{themeKey:`shape.borderRadius`,style:Qi},color:{themeKey:`palette`,transform:na},bgcolor:{themeKey:`palette`,cssProperty:`backgroundColor`,transform:na},backgroundColor:{themeKey:`palette`,transform:na},p:{style:Pi},pt:{style:Pi},pr:{style:Pi},pb:{style:Pi},pl:{style:Pi},px:{style:Pi},py:{style:Pi},padding:{style:Pi},paddingTop:{style:Pi},paddingRight:{style:Pi},paddingBottom:{style:Pi},paddingLeft:{style:Pi},paddingX:{style:Pi},paddingY:{style:Pi},paddingInline:{style:Pi},paddingInlineStart:{style:Pi},paddingInlineEnd:{style:Pi},paddingBlock:{style:Pi},paddingBlockStart:{style:Pi},paddingBlockEnd:{style:Pi},m:{style:Ni},mt:{style:Ni},mr:{style:Ni},mb:{style:Ni},ml:{style:Ni},mx:{style:Ni},my:{style:Ni},margin:{style:Ni},marginTop:{style:Ni},marginRight:{style:Ni},marginBottom:{style:Ni},marginLeft:{style:Ni},marginX:{style:Ni},marginY:{style:Ni},marginInline:{style:Ni},marginInlineStart:{style:Ni},marginInlineEnd:{style:Ni},marginBlock:{style:Ni},marginBlockStart:{style:Ni},marginBlockEnd:{style:Ni},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:$i},rowGap:{style:ta},columnGap:{style:ea},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:`zIndex`},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:`shadows`},width:{transform:ra},maxWidth:{style:aa},minWidth:{transform:ra},height:{transform:ra},maxHeight:{transform:ra},minHeight:{transform:ra},boxSizing:{},font:{themeKey:`font`},fontFamily:{themeKey:`typography`},fontSize:{themeKey:`typography`},fontStyle:{themeKey:`typography`},fontWeight:{themeKey:`typography`},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:`typography`}},da={};function fa(){function e(t){if(!t.sx)return null;let{sx:n,theme:r=da,nested:i}=t,a=r.unstable_sxConfig??ua,o={sx:null,theme:r,nested:!0};function s(n){let s=n;if(typeof n==`function`)s=n(r);else if(typeof n!=`object`)return n;if(!s)return null;let c=r.breakpoints??ai,l=ui(c);for(let n in s){let i=ha(s[n],r);if(i!=null){if(typeof i!=`object`){ma(l,n,i,r,a);continue}if(a[n]){ma(l,n,i,r,a);continue}hi(c,i)?ci(l,t.theme,i,(e,t)=>{l[e][n]=t}):(o.sx=i,l[n]=e(o))}}return!i&&r.modularCssLayers?{"@layer sx":Vr(r,di(c,l))}:Vr(r,di(c,l))}return Array.isArray(n)?n.map(s):s(n)}return e.filterProps=[`sx`],e}var pa=fa();function ma(e,t,n,r,i){let a=i[t];if(!a){e[t]=n;return}if(n==null)return;let{themeKey:o}=a;if(o===`typography`&&n===`inherit`){e[t]=n;return}let{style:s}=a;if(s){Jr(e,s({[t]:n,theme:r}));return}let{cssProperty:c=t,transform:l}=a,u=vi(r,o);ci(e,r,n,(n,r)=>{let i=_i(u,l,r,t);c===!1?n?e[n]=i:Jr(e,i):n?e[n][c]=i:e[c]=i})}function ha(e,t){return typeof e==`function`?e(t):e}function ga(e,t){let n=this;if(n.vars){if(!n.colorSchemes?.[e]||typeof n.getColorSchemeSelector!=`function`)return{};let r=n.getColorSchemeSelector(e);return r===`&`?t:((r.includes(`data-`)||r.includes(`.`))&&(r=`*:where(${r.replace(/\s*&$/,``)}) &`),{[r]:t})}return n.palette.mode===e?t:{}}function _a(e={},...t){let{breakpoints:n={},palette:r={},spacing:i,shape:a={},...o}=e,s=zr(n),c=Ii(i),l=Lr({breakpoints:s,direction:`ltr`,components:{},palette:{mode:`light`,...r},spacing:c,shape:{...Kr,...a}},o);return l=Gr(l),l.applyStyles=ga,l=t.reduce((e,t)=>Lr(e,t),l),l.unstable_sxConfig={...ua,...o?.unstable_sxConfig},l.unstable_sx=function(e){return pa({sx:e,theme:this})},l.internal_cache={},l}function va(e){return Object.keys(e).length===0}function ya(e=null){let t=z.useContext(or);return!t||va(t)?e:t}var ba=_a();function xa(e=ba){return ya(e)}function Sa(e){let t=Mr(e);return e!==t&&t.styles?(t.styles.match(/^@layer\s+[^{]*$/)||(t.styles=`@layer global{${t.styles}}`),t):e}function Ca({styles:e,themeId:t,defaultTheme:n={}}){let r=xa(n),i=t&&r[t]||r,a=typeof e==`function`?e(i):e;return i.modularCssLayers&&(a=Array.isArray(a)?a.map(e=>Sa(typeof e==`function`?e(i):e)):Sa(a)),(0,B.jsx)(Or,{styles:a})}var wa=e=>e,Ta=(()=>{let e=wa;return{configure(t){e=t},generate(t){return e(t)},reset(){e=wa}}})();function Ea(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;te!==`theme`&&e!==`sx`&&e!==`as`})(pa);return z.forwardRef(function(e,o){let s=xa(n),{className:c,component:l=`div`,...u}=e;return(0,B.jsx)(a,{as:l,ref:o,className:H(c,i?i(r):r),theme:t&&s[t]||s,...u})})}var Oa={active:`active`,checked:`checked`,completed:`completed`,disabled:`disabled`,error:`error`,expanded:`expanded`,focused:`focused`,focusVisible:`focusVisible`,open:`open`,readOnly:`readOnly`,required:`required`,selected:`selected`};function U(e,t,n=`Mui`){let r=Oa[t];return r?`${n}-${r}`:`${Ta.generate(e)}-${t}`}function W(e,t,n=`Mui`){let r={};return t.forEach(t=>{r[t]=U(e,t,n)}),r}function ka(e){let{variants:t,...n}=e,r={variants:t,style:Mr(n),isProcessed:!0};return r.style===n||t&&t.forEach(e=>{typeof e.style!=`function`&&(e.style=Mr(e.style))}),r}var Aa=_a();function ja(e){return e!==`ownerState`&&e!==`theme`&&e!==`sx`&&e!==`as`}function Ma(e,t){return t&&e&&typeof e==`object`&&e.styles&&!e.styles.startsWith(`@layer`)&&(e.styles=`@layer ${t}{${String(e.styles)}}`),e}function Na(e){return e?(t,n)=>n[e]:null}function Pa(e,t,n){e.theme=qr(e.theme)?n:e.theme[t]||e.theme}function Fa(e,t,n){let r=typeof t==`function`?t(e):t;if(Array.isArray(r))return r.flatMap(t=>Fa(e,t,n));if(Array.isArray(r?.variants)){let t;if(r.isProcessed)t=n?Ma(r.style,n):r.style;else{let{variants:e,...i}=r;t=n?Ma(Mr(i),n):i}return Ia(e,r.variants,[t],n)}return r?.isProcessed?n?Ma(Mr(r.style),n):r.style:n?Ma(Mr(r),n):r}function Ia(e,t,n=[],r=void 0){let i;variantLoop:for(let a=0;a{Ar(e,e=>e.filter(e=>e!==pa));let{name:n,slot:o,skipVariantsResolver:s,skipSx:c,overridesResolver:l=Na(za(o)),...u}=t,d=n&&n.startsWith(`Mui`)||o?`components`:`custom`,f=s===void 0?o&&o!==`Root`&&o!==`root`||!1:s,p=c||!1,m=ja;o===`Root`||o===`root`?m=r:o?m=i:Ra(e)&&(m=void 0);let h=kr(e,{shouldForwardProp:m,label:void 0,...u}),g=e=>{if(e.__emotion_real===e)return e;if(typeof e==`function`)return function(t){return Fa(t,e,t.theme.modularCssLayers?d:void 0)};if(Fr(e)){let t=ka(e);return function(e){return t.variants?Fa(e,t,e.theme.modularCssLayers?d:void 0):e.theme.modularCssLayers?Ma(t.style,d):t.style}}return e},_=(...t)=>{let r=[],i=t.map(g),o=[];if(r.push(a),n&&l&&o.push(function(e){let t=e.theme.components?.[n]?.styleOverrides;if(!t)return null;let r={};for(let n in t)r[n]=Fa(e,t[n],e.theme.modularCssLayers?`theme`:void 0);return l(e,r)}),n&&!f&&o.push(function(e){let t=e.theme?.components?.[n]?.variants;return t?Ia(e,t,[],e.theme.modularCssLayers?`theme`:void 0):null}),p||o.push(pa),Array.isArray(i[0])){let e=i.shift(),t=Array(r.length).fill(``),n=Array(o.length).fill(``),a;a=[...t,...e,...n],a.raw=[...t,...e.raw,...n],r.unshift(a)}let s=h(...r,...i,...o);return e.muiName&&(s.muiName=e.muiName),s};return h.withConfig&&(_.withConfig=h.withConfig),_}}function Ra(e){return typeof e==`string`&&e.charCodeAt(0)>96}function za(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}var Ba=La();function Va(e,t,n=!1){let r={...t};for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let a=i;if(a===`components`||a===`slots`)r[a]={...e[a],...r[a]};else if(a===`componentsProps`||a===`slotProps`){let i=e[a],o=t[a];if(!o)r[a]=i||{};else if(!i)r[a]=o;else{r[a]={...o};for(let e in i)if(Object.prototype.hasOwnProperty.call(i,e)){let t=e;r[a][t]=Va(i[t],o[t],n)}}}else a===`className`&&n&&t.className?r.className=H(e?.className,t?.className):a===`style`&&n&&t.style?r.style={...e?.style,...t?.style}:r[a]===void 0&&(r[a]=e[a])}return r}function Ha(e){let{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Va(t.components[n].defaultProps,r)}function Ua({props:e,name:t,defaultTheme:n,themeId:r}){let i=xa(n);return r&&(i=i[r]||i),Ha({theme:i,name:t,props:e})}var Wa=typeof window<`u`?z.useLayoutEffect:z.useEffect;function Ga(e,t=-(2**53-1),n=2**53-1){return Math.max(t,Math.min(e,n))}function Ka(e,t=0,n=1){return Ga(e,t,n)}function qa(e){e=e.slice(1);let t=RegExp(`.{1,${e.length>=6?2:1}}`,`g`),n=e.match(t);return n&&n[0].length===1&&(n=n.map(e=>e+e)),n?`rgb${n.length===4?`a`:``}(${n.map((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3).join(`, `)})`:``}function Ja(e){if(e.type)return e;if(e.charAt(0)===`#`)return Ja(qa(e));let t=e.indexOf(`(`),n=e.substring(0,t);if(![`rgb`,`rgba`,`hsl`,`hsla`,`color`].includes(n))throw Error(pt(9,e));let r=e.substring(t+1,e.length-1),i;if(n===`color`){if(r=r.split(` `),i=r.shift(),r.length===4&&r[3].charAt(0)===`/`&&(r[3]=r[3].slice(1)),![`srgb`,`display-p3`,`a98-rgb`,`prophoto-rgb`,`rec-2020`].includes(i))throw Error(pt(10,i))}else r=r.split(`,`);return r=r.map(e=>parseFloat(e)),{type:n,values:r,colorSpace:i}}var Ya=e=>{let t=Ja(e);return t.values.slice(0,3).map((e,n)=>t.type.includes(`hsl`)&&n!==0?`${e}%`:e).join(` `)},Xa=(e,t)=>{try{return Ya(e)}catch{return e}};function Za(e){let{type:t,colorSpace:n}=e,{values:r}=e;return t.includes(`rgb`)?r=r.map((e,t)=>t<3?parseInt(e,10):e):t.includes(`hsl`)&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),r=t.includes(`color`)?`${n} ${r.join(` `)}`:`${r.join(`, `)}`,`${t}(${r})`}function Qa(e){e=Ja(e);let{values:t}=e,n=t[0],r=t[1]/100,i=t[2]/100,a=r*Math.min(i,1-i),o=(e,t=(e+n/30)%12)=>i-a*Math.max(Math.min(t-3,9-t,1),-1),s=`rgb`,c=[Math.round(o(0)*255),Math.round(o(8)*255),Math.round(o(4)*255)];return e.type===`hsla`&&(s+=`a`,c.push(t[3])),Za({type:s,values:c})}function $a(e){e=Ja(e);let t=e.type===`hsl`||e.type===`hsla`?Ja(Qa(e)).values:e.values;return t=t.map(t=>(e.type!==`color`&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function eo(e,t){let n=$a(e),r=$a(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function to(e,t){return e=Ja(e),t=Ka(t),(e.type===`rgb`||e.type===`hsl`)&&(e.type+=`a`),e.type===`color`?e.values[3]=`/${t}`:e.values[3]=t,Za(e)}function no(e,t,n){try{return to(e,t)}catch{return e}}function ro(e,t){if(e=Ja(e),t=Ka(t),e.type.includes(`hsl`))e.values[2]*=1-t;else if(e.type.includes(`rgb`)||e.type.includes(`color`))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return Za(e)}function G(e,t,n){try{return ro(e,t)}catch{return e}}function io(e,t){if(e=Ja(e),t=Ka(t),e.type.includes(`hsl`))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes(`rgb`))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes(`color`))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return Za(e)}function ao(e,t,n){try{return io(e,t)}catch{return e}}function oo(e,t=.15){return $a(e)>.5?ro(e,t):io(e,t)}function K(e,t,n){try{return oo(e,t)}catch{return e}}var so=z.createContext(),co=()=>z.useContext(so)??!1,lo=z.createContext(void 0);function uo(e){let{theme:t,name:n,props:r}=e;if(!t||!t.components||!t.components[n])return r;let i=t.components[n];return i.defaultProps?Va(i.defaultProps,r,t.components.mergeClassNameAndStyle):!i.styleOverrides&&!i.variants?Va(i,r,t.components.mergeClassNameAndStyle):r}function fo({props:e,name:t}){return uo({props:e,name:t,theme:{components:z.useContext(lo)}})}var po=0;function mo(e){let[t,n]=z.useState(e),r=e||t;return z.useEffect(()=>{t??(po+=1,n(`mui-${po}`))},[t]),r}var ho={...z}.useId;function go(e){if(ho!==void 0){let t=ho();return e??t}return mo(e)}var _o={theme:void 0};function vo(e){let t,n;return function(r){let i=t;return(i===void 0||r.theme!==n)&&(_o.theme=r.theme,i=ka(e(_o)),t=i,n=r.theme),i}}function yo(e=``){function t(...n){if(!n.length)return``;let r=n[0];return typeof r==`string`&&!r.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:``}${r}${t(...n.slice(1))})`:`, ${r}`}return(n,...r)=>`var(--${e?`${e}-`:``}${n}${t(...r)})`}var bo=(e,t,n,r=[])=>{let i=e;t.forEach((e,a)=>{a===t.length-1?Array.isArray(i)?i[Number(e)]=n:i&&typeof i==`object`&&(i[e]=n):i&&typeof i==`object`&&(i[e]||(i[e]=r.includes(e)?[]:{}),i=i[e])})},xo=(e,t,n)=>{function r(e,i=[],a=[]){Object.entries(e).forEach(([e,o])=>{(!n||n&&!n([...i,e]))&&o!=null&&(typeof o==`object`&&Object.keys(o).length>0?r(o,[...i,e],Array.isArray(o)?[...a,e]:a):t([...i,e],o,a))})}r(e)},So=(e,t)=>typeof t==`number`?[`lineHeight`,`fontWeight`,`opacity`,`zIndex`].some(t=>e.includes(t))||e[e.length-1].toLowerCase().includes(`opacity`)?t:`${t}px`:t;function Co(e,t){let{prefix:n,shouldSkipGeneratingVar:r}=t||{},i={},a={},o={};return xo(e,(e,t,s)=>{if((typeof t==`string`||typeof t==`number`)&&(!r||!r(e,t))){let r=`--${n?`${n}-`:``}${e.join(`-`)}`,c=So(e,t);Object.assign(i,{[r]:c}),bo(a,e,`var(${r})`,s),bo(o,e,`var(${r}, ${c})`,s)}},e=>e[0]===`vars`),{css:i,vars:a,varsWithDefaults:o}}function wo(e,t={}){let{getSelector:n=_,disableCssColorScheme:r,colorSchemeSelector:i,enableContrastVars:a}=t,{colorSchemes:o={},components:s,defaultColorScheme:c=`light`,...l}=e,{vars:u,css:d,varsWithDefaults:f}=Co(l,t),p=f,m={},{[c]:h,...g}=o;if(Object.entries(g||{}).forEach(([e,n])=>{let{vars:r,css:i,varsWithDefaults:a}=Co(n,t);p=Lr(p,a),m[e]={css:i,vars:r}}),h){let{css:e,vars:n,varsWithDefaults:r}=Co(h,t);p=Lr(p,r),m[c]={css:e,vars:n}}function _(t,n){let r=i;if(i===`class`&&(r=`.%s`),i===`data`&&(r=`[data-%s]`),i?.startsWith(`data-`)&&!i.includes(`%s`)&&(r=`[${i}="%s"]`),t){if(r===`media`)return e.defaultColorScheme===t?`:root`:{[`@media (prefers-color-scheme: ${o[t]?.palette?.mode||t})`]:{":root":n}};if(r)return e.defaultColorScheme===t?`:root, ${r.replace(`%s`,String(t))}`:r.replace(`%s`,String(t))}return`:root`}return{vars:p,generateThemeVars:()=>{let e={...u};return Object.entries(m).forEach(([,{vars:t}])=>{e=Lr(e,t)}),e},generateStyleSheets:()=>{let t=[],i=e.defaultColorScheme||`light`;function s(e,n){Object.keys(n).length&&t.push(typeof e==`string`?{[e]:{...n}}:e)}s(n(void 0,{...d}),d);let{[i]:c,...l}=m;if(c){let{css:e}=c,t=o[i]?.palette?.mode,a=!r&&t?{colorScheme:t,...e}:{...e};s(n(i,{...a}),a)}return Object.entries(l).forEach(([e,{css:t}])=>{let i=o[e]?.palette?.mode,a=!r&&i?{colorScheme:i,...t}:{...t};s(n(e,{...a}),a)}),a&&t.push({":root":{"--__l-threshold":`0.7`,"--__l":`clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)`,"--__a":`clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)`}}),t}}}function To(e){return function(t){return e===`media`?`@media (prefers-color-scheme: ${t})`:e?e.startsWith(`data-`)&&!e.includes(`%s`)?`[${e}="${t}"] &`:e===`class`?`.${t} &`:e===`data`?`[data-${t}] &`:`${e.replace(`%s`,t)} &`:`&`}}function q(e,t,n=void 0){let r={};for(let i in e){let a=e[i],o=``,s=!0;for(let e=0;e{let{ownerState:n}=e;return[t.root,t[`maxWidth${gi(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),Oo=e=>Ua({props:e,name:`MuiContainer`,defaultTheme:Eo}),ko=(e,t)=>{let n=e=>U(t,e),{classes:r,fixed:i,disableGutters:a,maxWidth:o}=e;return q({root:[`root`,o&&`maxWidth${gi(String(o))}`,i&&`fixed`,a&&`disableGutters`]},n,r)};function Ao(e={}){let{createStyledComponent:t=Do,useThemeProps:n=Oo,componentName:r=`MuiContainer`}=e,i=t(({theme:e,ownerState:t})=>({width:`100%`,marginLeft:`auto`,boxSizing:`border-box`,marginRight:`auto`,...!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up(`sm`)]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}}),({theme:e,ownerState:t})=>t.fixed&&Object.keys(e.breakpoints.values).reduce((t,n)=>{let r=n,i=e.breakpoints.values[r];return i!==0&&(t[e.breakpoints.up(r)]={maxWidth:`${i}${e.breakpoints.unit}`}),t},{}),({theme:e,ownerState:t})=>({...t.maxWidth===`xs`&&{[e.breakpoints.up(`xs`)]:{maxWidth:Math.max(e.breakpoints.values.xs,444)}},...t.maxWidth&&t.maxWidth!==`xs`&&{[e.breakpoints.up(t.maxWidth)]:{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`}}}));return z.forwardRef(function(e,t){let a=n(e),{className:o,component:s=`div`,disableGutters:c=!1,fixed:l=!1,maxWidth:u=`lg`,classes:d,...f}=a,p={...a,component:s,disableGutters:c,fixed:l,maxWidth:u};return(0,B.jsx)(i,{as:s,ownerState:p,className:H(ko(p,r).root,o),ref:t,...f})})}function jo(e,t){return z.isValidElement(e)&&t.indexOf(e.type.muiName??e.type?._payload?.value?.muiName)!==-1}var Mo=(e,t)=>e.filter(e=>t.includes(e)),No=(e,t,n)=>{let r=e.keys[0];Array.isArray(t)?t.forEach((t,r)=>{n((t,n)=>{r<=e.keys.length-1&&(r===0?Object.assign(t,n):t[e.up(e.keys[r])]=n)},t)}):t&&typeof t==`object`?(Object.keys(t).length>e.keys.length?e.keys:Mo(e.keys,Object.keys(t))).forEach(i=>{if(e.keys.includes(i)){let a=t[i];a!==void 0&&n((t,n)=>{r===i?Object.assign(t,n):t[e.up(i)]=n},a)}}):(typeof t==`number`||typeof t==`string`)&&n((e,t)=>{Object.assign(e,t)},t)};function Po(e){return`--Grid-${e}Spacing`}function Fo(e){return`--Grid-parent-${e}Spacing`}var Io=`--Grid-columns`,Lo=`--Grid-parent-columns`,Ro=({theme:e,ownerState:t})=>{let n={};return No(e.breakpoints,t.size,(e,t)=>{let r={};t===`grow`&&(r={flexBasis:0,flexGrow:1,maxWidth:`100%`}),t===`auto`&&(r={flexBasis:`auto`,flexGrow:0,flexShrink:0,maxWidth:`none`,width:`auto`}),typeof t==`number`&&(r={flexGrow:0,flexBasis:`auto`,width:`calc(100% * ${t} / var(${Lo}) - (var(${Lo}) - ${t}) * (var(${Fo(`column`)}) / var(${Lo})))`}),e(n,r)}),n},zo=({theme:e,ownerState:t})=>{let n={};return No(e.breakpoints,t.offset,(e,t)=>{let r={};t===`auto`&&(r={marginLeft:`auto`}),typeof t==`number`&&(r={marginLeft:t===0?`0px`:`calc(100% * ${t} / var(${Lo}) + var(${Fo(`column`)}) * ${t} / var(${Lo}))`}),e(n,r)}),n},Bo=({theme:e,ownerState:t})=>{if(!t.container)return{};let n={[Io]:12};return No(e.breakpoints,t.columns,(e,t)=>{let r=t??12;e(n,{[Io]:r,"> *":{[Lo]:r}})}),n},Vo=({theme:e,ownerState:t})=>{if(!t.container)return{};let n={};return No(e.breakpoints,t.rowSpacing,(t,r)=>{let i=typeof r==`string`?r:e.spacing?.(r);t(n,{[Po(`row`)]:i,"> *":{[Fo(`row`)]:i}})}),n},Ho=({theme:e,ownerState:t})=>{if(!t.container)return{};let n={};return No(e.breakpoints,t.columnSpacing,(t,r)=>{let i=typeof r==`string`?r:e.spacing?.(r);t(n,{[Po(`column`)]:i,"> *":{[Fo(`column`)]:i}})}),n},Uo=({theme:e,ownerState:t})=>{if(!t.container)return{};let n={};return No(e.breakpoints,t.direction,(e,t)=>{e(n,{flexDirection:t})}),n},Wo=({ownerState:e})=>({minWidth:0,boxSizing:`border-box`,...e.container&&{display:`flex`,flexWrap:`wrap`,...e.wrap&&e.wrap!==`wrap`&&{flexWrap:e.wrap},gap:`var(${Po(`row`)}) var(${Po(`column`)})`}}),Go=e=>{let t=[];return Object.entries(e).forEach(([e,n])=>{n!==!1&&n!==void 0&&t.push(`grid-${e}-${String(n)}`)}),t},Ko=(e,t=`xs`)=>{function n(e){return e===void 0?!1:typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`&&e>0}if(n(e))return[`spacing-${t}-${String(e)}`];if(typeof e==`object`&&!Array.isArray(e)){let t=[];return Object.entries(e).forEach(([e,r])=>{n(r)&&t.push(`spacing-${e}-${String(r)}`)}),t}return[]},qo=e=>e===void 0?[]:typeof e==`object`?Object.entries(e).map(([e,t])=>`direction-${e}-${t}`):[`direction-xs-${String(e)}`],Jo=_a(),Yo=Ba(`div`,{name:`MuiGrid`,slot:`Root`});function Xo(e){return Ua({props:e,name:`MuiGrid`,defaultTheme:Jo})}function Zo(e={}){let{createStyledComponent:t=Yo,useThemeProps:n=Xo,useTheme:r=xa,componentName:i=`MuiGrid`}=e,a=(e,t)=>{let{container:n,direction:r,spacing:a,wrap:o,size:s}=e;return q({root:[`root`,n&&`container`,o!==`wrap`&&`wrap-xs-${String(o)}`,...qo(r),...Go(s),...n?Ko(a,t.breakpoints.keys[0]):[]]},e=>U(i,e),{})};function o(e,t,n=()=>!0){let r={};return e===null||(Array.isArray(e)?e.forEach((e,i)=>{e!==null&&n(e)&&t.keys[i]&&(r[t.keys[i]]=e)}):typeof e==`object`?Object.keys(e).forEach(t=>{let i=e[t];i!=null&&n(i)&&(r[t]=i)}):r[t.keys[0]]=e),r}let s=t(Bo,Ho,Vo,Ro,Uo,Wo,zo),c=z.forwardRef(function(e,t){let i=r(),c=n(e),{className:l,children:u,columns:d=12,container:f=!1,component:p=`div`,direction:m=`row`,wrap:h=`wrap`,size:g={},offset:_={},spacing:v=0,rowSpacing:y=v,columnSpacing:b=v,unstable_level:x=0,...S}=c,C=o(g,i.breakpoints,e=>e!==!1),w=o(_,i.breakpoints),T=e.columns??(x?void 0:d),E=e.spacing??(x?void 0:v),D=e.rowSpacing??e.spacing??(x?void 0:y),O=e.columnSpacing??e.spacing??(x?void 0:b),k={...c,level:x,columns:T,container:f,direction:m,wrap:h,spacing:E,rowSpacing:D,columnSpacing:O,size:C,offset:w};return(0,B.jsx)(s,{ref:t,as:p,ownerState:k,className:H(a(k,i).root,l),...S,children:z.Children.map(u,e=>z.isValidElement(e)&&jo(e,[`Grid`])&&f&&e.props.container?z.cloneElement(e,{unstable_level:e.props?.unstable_level??x+1}):e)})});return c.muiName=`Grid`,c}var Qo=_a(),$o=Ba(`div`,{name:`MuiStack`,slot:`Root`});function es(e){return Ua({props:e,name:`MuiStack`,defaultTheme:Qo})}function ts(e,t){let n=z.Children.toArray(e).filter(Boolean);return n.reduce((e,r,i)=>(e.push(r),i({row:`Left`,"row-reverse":`Right`,column:`Top`,"column-reverse":`Bottom`})[e],rs=({ownerState:e,theme:t})=>{let n={display:`flex`,flexDirection:`column`,...si({theme:t},mi({values:e.direction,breakpoints:t.breakpoints.values}),e=>({flexDirection:e}))};if(e.spacing){let r=Ai(t),i=Object.keys(t.breakpoints.values).reduce((t,n)=>((typeof e.spacing==`object`&&e.spacing[n]!=null||typeof e.direction==`object`&&e.direction[n]!=null)&&(t[n]=!0),t),{}),a=mi({values:e.direction,base:i}),o=mi({values:e.spacing,base:i});typeof a==`object`&&Object.keys(a).forEach((e,t,n)=>{a[e]||(a[e]=t>0?a[n[t-1]]:`column`)}),n=Lr(n,si({theme:t},o,(t,n)=>e.useFlexGap?{gap:ji(r,t)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${ns(n?a[n]:e.direction)}`]:ji(r,t)}}))}return n=fi(t.breakpoints,n),n};function is(e={}){let{createStyledComponent:t=$o,useThemeProps:n=es,componentName:r=`MuiStack`}=e,i=()=>q({root:[`root`]},e=>U(r,e),{}),a=t(rs);return z.forwardRef(function(e,t){let{component:r=`div`,direction:o=`column`,spacing:s=0,divider:c,children:l,className:u,useFlexGap:d=!1,...f}=n(e);return(0,B.jsx)(a,{as:r,ownerState:{direction:o,spacing:s,useFlexGap:d},ref:t,className:H(i().root,u),...f,children:c?ts(l,c):l})})}function as(){return{text:{primary:`rgba(0, 0, 0, 0.87)`,secondary:`rgba(0, 0, 0, 0.6)`,disabled:`rgba(0, 0, 0, 0.38)`},divider:`rgba(0, 0, 0, 0.12)`,background:{paper:at.white,default:at.white},action:{active:`rgba(0, 0, 0, 0.54)`,hover:`rgba(0, 0, 0, 0.04)`,hoverOpacity:.04,selected:`rgba(0, 0, 0, 0.08)`,selectedOpacity:.08,disabled:`rgba(0, 0, 0, 0.26)`,disabledBackground:`rgba(0, 0, 0, 0.12)`,disabledOpacity:.38,focus:`rgba(0, 0, 0, 0.12)`,focusOpacity:.12,activatedOpacity:.12}}}var os=as();function ss(){return{text:{primary:at.white,secondary:`rgba(255, 255, 255, 0.7)`,disabled:`rgba(255, 255, 255, 0.5)`,icon:`rgba(255, 255, 255, 0.5)`},divider:`rgba(255, 255, 255, 0.12)`,background:{paper:`#121212`,default:`#121212`},action:{active:at.white,hover:`rgba(255, 255, 255, 0.08)`,hoverOpacity:.08,selected:`rgba(255, 255, 255, 0.16)`,selectedOpacity:.16,disabled:`rgba(255, 255, 255, 0.3)`,disabledBackground:`rgba(255, 255, 255, 0.12)`,disabledOpacity:.38,focus:`rgba(255, 255, 255, 0.12)`,focusOpacity:.12,activatedOpacity:.24}}}var cs=ss();function ls(e,t,n,r){let i=r.light||r,a=r.dark||r*1.5;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:t===`light`?e.light=io(e.main,i):t===`dark`&&(e.dark=ro(e.main,a)))}function us(e,t,n,r,i){let a=i.light||i,o=i.dark||i*1.5;t[n]||(t.hasOwnProperty(r)?t[n]=t[r]:n===`light`?t.light=`color-mix(in ${e}, ${t.main}, #fff ${(a*100).toFixed(0)}%)`:n===`dark`&&(t.dark=`color-mix(in ${e}, ${t.main}, #000 ${(o*100).toFixed(0)}%)`))}function ds(e=`light`){return e===`dark`?{main:ct[200],light:ct[50],dark:ct[400]}:{main:ct[700],light:ct[400],dark:ct[800]}}function fs(e=`light`){return e===`dark`?{main:st[200],light:st[50],dark:st[400]}:{main:st[500],light:st[300],dark:st[700]}}function ps(e=`light`){return e===`dark`?{main:ot[500],light:ot[300],dark:ot[700]}:{main:ot[700],light:ot[400],dark:ot[800]}}function ms(e=`light`){return e===`dark`?{main:lt[400],light:lt[300],dark:lt[700]}:{main:lt[700],light:lt[500],dark:lt[900]}}function hs(e=`light`){return e===`dark`?{main:ut[400],light:ut[300],dark:ut[700]}:{main:ut[800],light:ut[500],dark:ut[900]}}function gs(e=`light`){return e===`dark`?{main:dt[400],light:dt[300],dark:dt[700]}:{main:`#ed6c02`,light:dt[500],dark:dt[900]}}function _s(e){return`oklch(from ${e} var(--__l) 0 h / var(--__a))`}function vs(e){let{mode:t=`light`,contrastThreshold:n=3,tonalOffset:r=.2,colorSpace:i,...a}=e,o=e.primary||ds(t),s=e.secondary||fs(t),c=e.error||ps(t),l=e.info||ms(t),u=e.success||hs(t),d=e.warning||gs(t);function f(e){return i?_s(e):eo(e,cs.text.primary)>=n?cs.text.primary:os.text.primary}let p=({color:e,name:t,mainShade:n=500,lightShade:a=300,darkShade:o=700})=>{if(e={...e},!e.main&&e[n]&&(e.main=e[n]),!e.hasOwnProperty(`main`))throw Error(pt(11,t?` (${t})`:``,n));if(typeof e.main!=`string`)throw Error(pt(12,t?` (${t})`:``,JSON.stringify(e.main)));return i?(us(i,e,`light`,a,r),us(i,e,`dark`,o,r)):(ls(e,`light`,a,r),ls(e,`dark`,o,r)),e.contrastText||=f(e.main),e},m;return t===`light`?m=as():t===`dark`&&(m=ss()),Lr({common:{...at},mode:t,primary:p({color:o,name:`primary`}),secondary:p({color:s,name:`secondary`,mainShade:`A400`,lightShade:`A200`,darkShade:`A700`}),error:p({color:c,name:`error`}),warning:p({color:d,name:`warning`}),info:p({color:l,name:`info`}),success:p({color:u,name:`success`}),grey:ft,contrastThreshold:n,getContrastText:f,augmentColor:p,tonalOffset:r,...m},a)}function ys(e){let t={};return Object.entries(e).forEach(e=>{let[n,r]=e;typeof r==`object`&&(t[n]=`${r.fontStyle?`${r.fontStyle} `:``}${r.fontVariant?`${r.fontVariant} `:``}${r.fontWeight?`${r.fontWeight} `:``}${r.fontStretch?`${r.fontStretch} `:``}${r.fontSize||``}${r.lineHeight?`/${r.lineHeight} `:``}${r.fontFamily||``}`)}),t}function bs(e,t){return{toolbar:{minHeight:56,[e.up(`xs`)]:{"@media (orientation: landscape)":{minHeight:48}},[e.up(`sm`)]:{minHeight:64}},...t}}function xs(e){return Math.round(e*1e5)/1e5}var Ss={textTransform:`uppercase`},Cs=`"Roboto", "Helvetica", "Arial", sans-serif`;function ws(e,t){let{fontFamily:n=Cs,fontSize:r=14,fontWeightLight:i=300,fontWeightRegular:a=400,fontWeightMedium:o=500,fontWeightBold:s=700,htmlFontSize:c=16,allVariants:l,pxToRem:u,...d}=typeof t==`function`?t(e):t,f=r/14,p=u||(e=>`${e/c*f}rem`),m=(e,t,r,i,a)=>({fontFamily:n,fontWeight:e,fontSize:p(t),lineHeight:r,...n===Cs?{letterSpacing:`${xs(i/t)}em`}:{},...a,...l});return Lr({htmlFontSize:c,pxToRem:p,fontFamily:n,fontSize:r,fontWeightLight:i,fontWeightRegular:a,fontWeightMedium:o,fontWeightBold:s,h1:m(i,96,1.167,-1.5),h2:m(i,60,1.2,-.5),h3:m(a,48,1.167,0),h4:m(a,34,1.235,.25),h5:m(a,24,1.334,0),h6:m(o,20,1.6,.15),subtitle1:m(a,16,1.75,.15),subtitle2:m(o,14,1.57,.1),body1:m(a,16,1.5,.15),body2:m(a,14,1.43,.15),button:m(o,14,1.75,.4,Ss),caption:m(a,12,1.66,.4),overline:m(a,12,2.66,1,Ss),inherit:{fontFamily:`inherit`,fontWeight:`inherit`,fontSize:`inherit`,lineHeight:`inherit`,letterSpacing:`inherit`}},d,{clone:!1})}var Ts=.2,Es=.14,Ds=.12;function Os(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${Ts})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${Es})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${Ds})`].join(`,`)}var ks=[`none`,Os(0,2,1,-1,0,1,1,0,0,1,3,0),Os(0,3,1,-2,0,2,2,0,0,1,5,0),Os(0,3,3,-2,0,3,4,0,0,1,8,0),Os(0,2,4,-1,0,4,5,0,0,1,10,0),Os(0,3,5,-1,0,5,8,0,0,1,14,0),Os(0,3,5,-1,0,6,10,0,0,1,18,0),Os(0,4,5,-2,0,7,10,1,0,2,16,1),Os(0,5,5,-3,0,8,10,1,0,3,14,2),Os(0,5,6,-3,0,9,12,1,0,3,16,2),Os(0,6,6,-3,0,10,14,1,0,4,18,3),Os(0,6,7,-4,0,11,15,1,0,4,20,3),Os(0,7,8,-4,0,12,17,2,0,5,22,4),Os(0,7,8,-4,0,13,19,2,0,5,24,4),Os(0,7,9,-4,0,14,21,2,0,5,26,4),Os(0,8,9,-5,0,15,22,2,0,6,28,5),Os(0,8,10,-5,0,16,24,2,0,6,30,5),Os(0,8,11,-5,0,17,26,2,0,6,32,5),Os(0,9,11,-5,0,18,28,2,0,7,34,6),Os(0,9,12,-6,0,19,29,2,0,7,36,6),Os(0,10,13,-6,0,20,31,3,0,8,38,7),Os(0,10,13,-6,0,21,33,3,0,8,40,7),Os(0,10,14,-6,0,22,35,3,0,8,42,7),Os(0,11,14,-7,0,23,36,3,0,9,44,8),Os(0,11,15,-7,0,24,38,3,0,9,46,8)],As={easeInOut:`cubic-bezier(0.4, 0, 0.2, 1)`,easeOut:`cubic-bezier(0.0, 0, 0.2, 1)`,easeIn:`cubic-bezier(0.4, 0, 1, 1)`,sharp:`cubic-bezier(0.4, 0, 0.6, 1)`},js={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Ms(e){return`${Math.round(e)}ms`}function Ns(e){if(!e)return 0;let t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function Ps(e){let t={...As,...e.easing},n={...js,...e.duration};return{getAutoHeightDuration:Ns,create:(e=[`all`],r={})=>{let{duration:i=n.standard,easing:a=t.easeInOut,delay:o=0,...s}=r;return(Array.isArray(e)?e:[e]).map(e=>`${e} ${typeof i==`string`?i:Ms(i)} ${a} ${typeof o==`string`?o:Ms(o)}`).join(`,`)},...e,easing:t,duration:n}}var Fs={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function Is(e){return Fr(e)||e===void 0||typeof e==`string`||typeof e==`boolean`||typeof e==`number`||Array.isArray(e)}function Ls(e={}){let t={...e};function n(e){let t=Object.entries(e);for(let r=0;r{if(!Number.isNaN(+e))return+e;let t=e.match(/\d*\.?\d+/g);if(!t)return 0;let n=0;for(let e=0;eLr(e,t),p),p.unstable_sxConfig={...ua,...u?.unstable_sxConfig},p.unstable_sx=function(e){return pa({sx:e,theme:this})},p.toRuntimeSource=Ls,Bs(p),p}function Hs(e){let t;return t=e<1?5.11916*e**2:4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}var Us=[...Array(25)].map((e,t)=>{if(t===0)return`none`;let n=Hs(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function Ws(e){return{inputPlaceholder:e===`dark`?.5:.42,inputUnderline:e===`dark`?.7:.42,switchTrackDisabled:e===`dark`?.2:.12,switchTrack:e===`dark`?.3:.38}}function Gs(e){return e===`dark`?Us:[]}function Ks(e){let{palette:t={mode:`light`},opacity:n,overlays:r,colorSpace:i,...a}=e,o=vs({...t,colorSpace:i});return{palette:o,opacity:{...Ws(o.mode),...n},overlays:r||Gs(o.mode),...a}}function qs(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]===`palette`&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}var Js=e=>[...[...Array(25)].map((t,n)=>`--${e?`${e}-`:``}overlays-${n}`),`--${e?`${e}-`:``}palette-AppBar-darkBg`,`--${e?`${e}-`:``}palette-AppBar-darkColor`],Ys=e=>(t,n)=>{let r=e.rootSelector||`:root`,i=e.colorSchemeSelector,a=i;if(i===`class`&&(a=`.%s`),i===`data`&&(a=`[data-%s]`),i?.startsWith(`data-`)&&!i.includes(`%s`)&&(a=`[${i}="%s"]`),e.defaultColorScheme===t){if(t===`dark`){let i={};return Js(e.cssVarPrefix).forEach(e=>{i[e]=n[e],delete n[e]}),a===`media`?{[r]:n,"@media (prefers-color-scheme: dark)":{[r]:i}}:a?{[a.replace(`%s`,t)]:i,[`${r}, ${a.replace(`%s`,t)}`]:n}:{[r]:{...n,...i}}}if(a&&a!==`media`)return`${r}, ${a.replace(`%s`,String(t))}`}else if(t){if(a===`media`)return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:n}};if(a)return a.replace(`%s`,String(t))}return r};function Xs(e,t){t.forEach(t=>{e[t]||(e[t]={})})}function J(e,t,n){!e[t]&&n&&(e[t]=n)}function Zs(e){return typeof e!=`string`||!e.startsWith(`hsl`)?e:Qa(e)}function Qs(e,t){`${t}Channel`in e||(e[`${t}Channel`]=Xa(Zs(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color(). +To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function $s(e){return typeof e==`number`?`${e}px`:typeof e==`string`||typeof e==`function`||Array.isArray(e)?e:`8px`}var ec=e=>{try{return e()}catch{}},tc=(e=`mui`)=>yo(e);function nc(e,t,n,r,i){if(!n)return;n=n===!0?{}:n;let a=i===`dark`?`dark`:`light`;if(!r){t[i]=Ks({...n,palette:{mode:a,...n?.palette},colorSpace:e});return}let{palette:o,...s}=Vs({...r,palette:{mode:a,...n?.palette},colorSpace:e});return t[i]={...n,palette:o,opacity:{...Ws(a),...n?.opacity},overlays:n?.overlays||Gs(a)},s}function rc(e={},...t){let{colorSchemes:n={light:!0},defaultColorScheme:r,disableCssColorScheme:i=!1,cssVarPrefix:a=`mui`,nativeColor:o=!1,shouldSkipGeneratingVar:s=qs,colorSchemeSelector:c=n.light&&n.dark?`media`:void 0,rootSelector:l=`:root`,...u}=e,d=Object.keys(n)[0],f=r||(n.light&&d!==`light`?`light`:d),p=tc(a),{[f]:m,light:h,dark:g,..._}=n,v={..._},y=m;if((f===`dark`&&!(`dark`in n)||f===`light`&&!(`light`in n))&&(y=!0),!y)throw Error(pt(21,f));let b;o&&(b=`oklch`);let x=nc(b,v,y,u,f);h&&!v.light&&nc(b,v,h,void 0,`light`),g&&!v.dark&&nc(b,v,g,void 0,`dark`);let S={defaultColorScheme:f,...x,cssVarPrefix:a,colorSchemeSelector:c,rootSelector:l,getCssVar:p,colorSchemes:v,font:{...ys(x.typography),...x.font},spacing:$s(u.spacing)};Object.keys(S.colorSchemes).forEach(e=>{let t=S.colorSchemes[e].palette,n=e=>{let n=e.split(`-`),r=n[1],i=n[2];return p(e,t[r][i])};t.mode===`light`&&(J(t.common,`background`,`#fff`),J(t.common,`onBackground`,`#000`)),t.mode===`dark`&&(J(t.common,`background`,`#000`),J(t.common,`onBackground`,`#fff`));function r(e,t,n){if(b){let r;return e===no&&(r=`transparent ${((1-n)*100).toFixed(0)}%`),e===G&&(r=`#000 ${(n*100).toFixed(0)}%`),e===ao&&(r=`#fff ${(n*100).toFixed(0)}%`),`color-mix(in ${b}, ${t}, ${r})`}return e(t,n)}if(Xs(t,[`Alert`,`AppBar`,`Avatar`,`Button`,`Chip`,`FilledInput`,`LinearProgress`,`Skeleton`,`Slider`,`SnackbarContent`,`SpeedDialAction`,`StepConnector`,`StepContent`,`Switch`,`TableCell`,`Tooltip`]),t.mode===`light`){J(t.Alert,`errorColor`,r(G,o?p(`palette-error-light`):t.error.light,.6)),J(t.Alert,`infoColor`,r(G,o?p(`palette-info-light`):t.info.light,.6)),J(t.Alert,`successColor`,r(G,o?p(`palette-success-light`):t.success.light,.6)),J(t.Alert,`warningColor`,r(G,o?p(`palette-warning-light`):t.warning.light,.6)),J(t.Alert,`errorFilledBg`,n(`palette-error-main`)),J(t.Alert,`infoFilledBg`,n(`palette-info-main`)),J(t.Alert,`successFilledBg`,n(`palette-success-main`)),J(t.Alert,`warningFilledBg`,n(`palette-warning-main`)),J(t.Alert,`errorFilledColor`,ec(()=>t.getContrastText(t.error.main))),J(t.Alert,`infoFilledColor`,ec(()=>t.getContrastText(t.info.main))),J(t.Alert,`successFilledColor`,ec(()=>t.getContrastText(t.success.main))),J(t.Alert,`warningFilledColor`,ec(()=>t.getContrastText(t.warning.main))),J(t.Alert,`errorStandardBg`,r(ao,o?p(`palette-error-light`):t.error.light,.9)),J(t.Alert,`infoStandardBg`,r(ao,o?p(`palette-info-light`):t.info.light,.9)),J(t.Alert,`successStandardBg`,r(ao,o?p(`palette-success-light`):t.success.light,.9)),J(t.Alert,`warningStandardBg`,r(ao,o?p(`palette-warning-light`):t.warning.light,.9)),J(t.Alert,`errorIconColor`,n(`palette-error-main`)),J(t.Alert,`infoIconColor`,n(`palette-info-main`)),J(t.Alert,`successIconColor`,n(`palette-success-main`)),J(t.Alert,`warningIconColor`,n(`palette-warning-main`)),J(t.AppBar,`defaultBg`,n(`palette-grey-100`)),J(t.Avatar,`defaultBg`,n(`palette-grey-400`)),J(t.Button,`inheritContainedBg`,n(`palette-grey-300`)),J(t.Button,`inheritContainedHoverBg`,n(`palette-grey-A100`)),J(t.Chip,`defaultBorder`,n(`palette-grey-400`)),J(t.Chip,`defaultAvatarColor`,n(`palette-grey-700`)),J(t.Chip,`defaultIconColor`,n(`palette-grey-700`)),J(t.FilledInput,`bg`,`rgba(0, 0, 0, 0.06)`),J(t.FilledInput,`hoverBg`,`rgba(0, 0, 0, 0.09)`),J(t.FilledInput,`disabledBg`,`rgba(0, 0, 0, 0.12)`),J(t.LinearProgress,`primaryBg`,r(ao,o?p(`palette-primary-main`):t.primary.main,.62)),J(t.LinearProgress,`secondaryBg`,r(ao,o?p(`palette-secondary-main`):t.secondary.main,.62)),J(t.LinearProgress,`errorBg`,r(ao,o?p(`palette-error-main`):t.error.main,.62)),J(t.LinearProgress,`infoBg`,r(ao,o?p(`palette-info-main`):t.info.main,.62)),J(t.LinearProgress,`successBg`,r(ao,o?p(`palette-success-main`):t.success.main,.62)),J(t.LinearProgress,`warningBg`,r(ao,o?p(`palette-warning-light`):t.warning.main,.62)),J(t.Skeleton,`bg`,b?r(no,o?p(`palette-text-primary`):t.text.primary,.11):`rgba(${n(`palette-text-primaryChannel`)} / 0.11)`),J(t.Slider,`primaryTrack`,r(ao,o?p(`palette-primary-main`):t.primary.main,.62)),J(t.Slider,`secondaryTrack`,r(ao,o?p(`palette-secondary-main`):t.secondary.main,.62)),J(t.Slider,`errorTrack`,r(ao,o?p(`palette-error-main`):t.error.main,.62)),J(t.Slider,`infoTrack`,r(ao,o?p(`palette-info-main`):t.info.main,.62)),J(t.Slider,`successTrack`,r(ao,o?p(`palette-success-main`):t.success.main,.62)),J(t.Slider,`warningTrack`,r(ao,o?p(`palette-warning-main`):t.warning.main,.62));let e=b?r(G,o?p(`palette-background-default`):t.background.default,.6825):K(t.background.default,.8);J(t.SnackbarContent,`bg`,e),J(t.SnackbarContent,`color`,ec(()=>b?cs.text.primary:t.getContrastText(e))),J(t.SpeedDialAction,`fabHoverBg`,K(t.background.paper,.15)),J(t.StepConnector,`border`,n(`palette-grey-400`)),J(t.StepContent,`border`,n(`palette-grey-400`)),J(t.Switch,`defaultColor`,n(`palette-common-white`)),J(t.Switch,`defaultDisabledColor`,n(`palette-grey-100`)),J(t.Switch,`primaryDisabledColor`,r(ao,o?p(`palette-primary-main`):t.primary.main,.62)),J(t.Switch,`secondaryDisabledColor`,r(ao,o?p(`palette-secondary-main`):t.secondary.main,.62)),J(t.Switch,`errorDisabledColor`,r(ao,o?p(`palette-error-main`):t.error.main,.62)),J(t.Switch,`infoDisabledColor`,r(ao,o?p(`palette-info-main`):t.info.main,.62)),J(t.Switch,`successDisabledColor`,r(ao,o?p(`palette-success-main`):t.success.main,.62)),J(t.Switch,`warningDisabledColor`,r(ao,o?p(`palette-warning-main`):t.warning.main,.62)),J(t.TableCell,`border`,r(ao,no(o?p(`palette-divider`):t.divider,1),.88)),J(t.Tooltip,`bg`,r(no,o?p(`palette-grey-700`):t.grey[700],.92))}if(t.mode===`dark`){J(t.Alert,`errorColor`,r(ao,o?p(`palette-error-light`):t.error.light,.6)),J(t.Alert,`infoColor`,r(ao,o?p(`palette-info-light`):t.info.light,.6)),J(t.Alert,`successColor`,r(ao,o?p(`palette-success-light`):t.success.light,.6)),J(t.Alert,`warningColor`,r(ao,o?p(`palette-warning-light`):t.warning.light,.6)),J(t.Alert,`errorFilledBg`,n(`palette-error-dark`)),J(t.Alert,`infoFilledBg`,n(`palette-info-dark`)),J(t.Alert,`successFilledBg`,n(`palette-success-dark`)),J(t.Alert,`warningFilledBg`,n(`palette-warning-dark`)),J(t.Alert,`errorFilledColor`,ec(()=>t.getContrastText(t.error.dark))),J(t.Alert,`infoFilledColor`,ec(()=>t.getContrastText(t.info.dark))),J(t.Alert,`successFilledColor`,ec(()=>t.getContrastText(t.success.dark))),J(t.Alert,`warningFilledColor`,ec(()=>t.getContrastText(t.warning.dark))),J(t.Alert,`errorStandardBg`,r(G,o?p(`palette-error-light`):t.error.light,.9)),J(t.Alert,`infoStandardBg`,r(G,o?p(`palette-info-light`):t.info.light,.9)),J(t.Alert,`successStandardBg`,r(G,o?p(`palette-success-light`):t.success.light,.9)),J(t.Alert,`warningStandardBg`,r(G,o?p(`palette-warning-light`):t.warning.light,.9)),J(t.Alert,`errorIconColor`,n(`palette-error-main`)),J(t.Alert,`infoIconColor`,n(`palette-info-main`)),J(t.Alert,`successIconColor`,n(`palette-success-main`)),J(t.Alert,`warningIconColor`,n(`palette-warning-main`)),J(t.AppBar,`defaultBg`,n(`palette-grey-900`)),J(t.AppBar,`darkBg`,n(`palette-background-paper`)),J(t.AppBar,`darkColor`,n(`palette-text-primary`)),J(t.Avatar,`defaultBg`,n(`palette-grey-600`)),J(t.Button,`inheritContainedBg`,n(`palette-grey-800`)),J(t.Button,`inheritContainedHoverBg`,n(`palette-grey-700`)),J(t.Chip,`defaultBorder`,n(`palette-grey-700`)),J(t.Chip,`defaultAvatarColor`,n(`palette-grey-300`)),J(t.Chip,`defaultIconColor`,n(`palette-grey-300`)),J(t.FilledInput,`bg`,`rgba(255, 255, 255, 0.09)`),J(t.FilledInput,`hoverBg`,`rgba(255, 255, 255, 0.13)`),J(t.FilledInput,`disabledBg`,`rgba(255, 255, 255, 0.12)`),J(t.LinearProgress,`primaryBg`,r(G,o?p(`palette-primary-main`):t.primary.main,.5)),J(t.LinearProgress,`secondaryBg`,r(G,o?p(`palette-secondary-main`):t.secondary.main,.5)),J(t.LinearProgress,`errorBg`,r(G,o?p(`palette-error-main`):t.error.main,.5)),J(t.LinearProgress,`infoBg`,r(G,o?p(`palette-info-main`):t.info.main,.5)),J(t.LinearProgress,`successBg`,r(G,o?p(`palette-success-main`):t.success.main,.5)),J(t.LinearProgress,`warningBg`,r(G,o?p(`palette-warning-main`):t.warning.main,.5)),J(t.Skeleton,`bg`,b?r(no,o?p(`palette-text-primary`):t.text.primary,.13):`rgba(${n(`palette-text-primaryChannel`)} / 0.13)`),J(t.Slider,`primaryTrack`,r(G,o?p(`palette-primary-main`):t.primary.main,.5)),J(t.Slider,`secondaryTrack`,r(G,o?p(`palette-secondary-main`):t.secondary.main,.5)),J(t.Slider,`errorTrack`,r(G,o?p(`palette-error-main`):t.error.main,.5)),J(t.Slider,`infoTrack`,r(G,o?p(`palette-info-main`):t.info.main,.5)),J(t.Slider,`successTrack`,r(G,o?p(`palette-success-main`):t.success.main,.5)),J(t.Slider,`warningTrack`,r(G,o?p(`palette-warning-light`):t.warning.main,.5));let e=b?r(ao,o?p(`palette-background-default`):t.background.default,.985):K(t.background.default,.98);J(t.SnackbarContent,`bg`,e),J(t.SnackbarContent,`color`,ec(()=>b?os.text.primary:t.getContrastText(e))),J(t.SpeedDialAction,`fabHoverBg`,K(t.background.paper,.15)),J(t.StepConnector,`border`,n(`palette-grey-600`)),J(t.StepContent,`border`,n(`palette-grey-600`)),J(t.Switch,`defaultColor`,n(`palette-grey-300`)),J(t.Switch,`defaultDisabledColor`,n(`palette-grey-600`)),J(t.Switch,`primaryDisabledColor`,r(G,o?p(`palette-primary-main`):t.primary.main,.55)),J(t.Switch,`secondaryDisabledColor`,r(G,o?p(`palette-secondary-main`):t.secondary.main,.55)),J(t.Switch,`errorDisabledColor`,r(G,o?p(`palette-error-main`):t.error.main,.55)),J(t.Switch,`infoDisabledColor`,r(G,o?p(`palette-info-main`):t.info.main,.55)),J(t.Switch,`successDisabledColor`,r(G,o?p(`palette-success-main`):t.success.main,.55)),J(t.Switch,`warningDisabledColor`,r(G,o?p(`palette-warning-light`):t.warning.main,.55)),J(t.TableCell,`border`,r(G,no(o?p(`palette-divider`):t.divider,1),.68)),J(t.Tooltip,`bg`,r(no,o?p(`palette-grey-700`):t.grey[700],.92))}o||(Qs(t.background,`default`),Qs(t.background,`paper`),Qs(t.common,`background`),Qs(t.common,`onBackground`),Qs(t,`divider`)),Object.keys(t).forEach(e=>{let n=t[e];e!==`tonalOffset`&&!o&&n&&typeof n==`object`&&(n.main&&J(t[e],`mainChannel`,Xa(Zs(n.main))),n.light&&J(t[e],`lightChannel`,Xa(Zs(n.light))),n.dark&&J(t[e],`darkChannel`,Xa(Zs(n.dark))),n.contrastText&&J(t[e],`contrastTextChannel`,Xa(Zs(n.contrastText))),e===`text`&&(Qs(t[e],`primary`),Qs(t[e],`secondary`)),e===`action`&&(n.active&&Qs(t[e],`active`),n.selected&&Qs(t[e],`selected`)))})}),S=t.reduce((e,t)=>Lr(e,t),S);let C={prefix:a,disableCssColorScheme:i,shouldSkipGeneratingVar:s,getSelector:Ys(S),enableContrastVars:o},{vars:w,generateThemeVars:T,generateStyleSheets:E}=wo(S,C);return S.vars=w,Object.entries(S.colorSchemes[S.defaultColorScheme]).forEach(([e,t])=>{S[e]=t}),S.generateThemeVars=T,S.generateStyleSheets=E,S.generateSpacing=function(){return Ii(u.spacing,Ai(this))},S.getColorSchemeSelector=To(c),S.spacing=S.generateSpacing(),S.shouldSkipGeneratingVar=s,S.unstable_sxConfig={...ua,...u?.unstable_sxConfig},S.unstable_sx=function(e){return pa({sx:e,theme:this})},S.internal_cache={},S.toRuntimeSource=Ls,S}function ic(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...n!==!0&&n,palette:vs({...n===!0?{}:n.palette,mode:t})})}function ac(e={},...t){let{palette:n,cssVariables:r=!1,colorSchemes:i=n?void 0:{light:!0},defaultColorScheme:a=n?.mode,...o}=e,s=a||`light`,c=i?.[s],l={...i,...n?{[s]:{...typeof c!=`boolean`&&c,palette:n}}:void 0};if(r===!1){if(!(`colorSchemes`in e))return Vs(e,...t);let r=n;`palette`in e||l[s]&&(l[s]===!0?s===`dark`&&(r={mode:`dark`}):r=l[s].palette);let i=Vs({...e,palette:r},...t);return i.defaultColorScheme=s,i.colorSchemes=l,i.palette.mode===`light`&&(i.colorSchemes.light={...l.light!==!0&&l.light,palette:i.palette},ic(i,`dark`,l.dark)),i.palette.mode===`dark`&&(i.colorSchemes.dark={...l.dark!==!0&&l.dark,palette:i.palette},ic(i,`light`,l.light)),i}return!n&&!(`light`in l)&&s===`light`&&(l.light=!0),rc({...o,colorSchemes:l,defaultColorScheme:s,...typeof r!=`boolean`&&r},...t)}var oc=ac();function sc(){let e=xa(oc);return e.$$material||e}function cc(e){return e!==`ownerState`&&e!==`theme`&&e!==`sx`&&e!==`as`}var lc=e=>cc(e)&&e!==`classes`,Y=La({themeId:mt,defaultTheme:oc,rootShouldForwardProp:lc}),X=gi;function uc(...e){return e.reduce((e,t)=>t==null?e:function(...n){e.apply(this,n),t.apply(this,n)},()=>{})}function dc(e){return(0,B.jsx)(Ca,{...e,defaultTheme:oc,themeId:mt})}function fc(e){return function(t){return(0,B.jsx)(dc,{styles:typeof e==`function`?n=>e({theme:n,...t}):e})}}var pc=vo;function mc(e){return fo(e)}function hc(e){return U(`MuiSvgIcon`,e)}W(`MuiSvgIcon`,[`root`,`colorPrimary`,`colorSecondary`,`colorAction`,`colorError`,`colorDisabled`,`fontSizeInherit`,`fontSizeSmall`,`fontSizeMedium`,`fontSizeLarge`]);var gc=e=>{let{color:t,fontSize:n,classes:r}=e;return q({root:[`root`,t!==`inherit`&&`color${X(t)}`,`fontSize${X(n)}`]},hc,r)},_c=Y(`svg`,{name:`MuiSvgIcon`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.color!==`inherit`&&t[`color${X(n.color)}`],t[`fontSize${X(n.fontSize)}`]]}})(pc(({theme:e})=>({userSelect:`none`,width:`1em`,height:`1em`,display:`inline-block`,flexShrink:0,transition:e.transitions?.create?.(`fill`,{duration:(e.vars??e).transitions?.duration?.shorter}),variants:[{props:e=>!e.hasSvgAsChild,style:{fill:`currentColor`}},{props:{fontSize:`inherit`},style:{fontSize:`inherit`}},{props:{fontSize:`small`},style:{fontSize:e.typography?.pxToRem?.(20)||`1.25rem`}},{props:{fontSize:`medium`},style:{fontSize:e.typography?.pxToRem?.(24)||`1.5rem`}},{props:{fontSize:`large`},style:{fontSize:e.typography?.pxToRem?.(35)||`2.1875rem`}},...Object.entries((e.vars??e).palette).filter(([,e])=>e&&e.main).map(([t])=>({props:{color:t},style:{color:(e.vars??e).palette?.[t]?.main}})),{props:{color:`action`},style:{color:(e.vars??e).palette?.action?.active}},{props:{color:`disabled`},style:{color:(e.vars??e).palette?.action?.disabled}},{props:{color:`inherit`},style:{color:void 0}}]}))),vc=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiSvgIcon`}),{children:r,className:i,color:a=`inherit`,component:o=`svg`,fontSize:s=`medium`,htmlColor:c,inheritViewBox:l=!1,titleAccess:u,viewBox:d=`0 0 24 24`,...f}=n,p=z.isValidElement(r)&&r.type===`svg`,m={...n,color:a,component:o,fontSize:s,instanceFontSize:e.fontSize,inheritViewBox:l,viewBox:d,hasSvgAsChild:p},h={};return l||(h.viewBox=d),(0,B.jsxs)(_c,{as:o,className:H(gc(m).root,i),focusable:`false`,color:c,"aria-hidden":u?void 0:!0,role:u?`img`:void 0,ref:t,...h,...f,...p&&r.props,ownerState:m,children:[p?r.props.children:r,u?(0,B.jsx)(`title`,{children:u}):null]})});vc.muiName=`SvgIcon`;function yc(e,t){function n(t,n){return(0,B.jsx)(vc,{"data-testid":void 0,ref:n,...t,children:e})}return n.muiName=vc.muiName,z.memo(z.forwardRef(n))}function bc(e,t=166){let n;function r(...r){clearTimeout(n),n=setTimeout(()=>{e.apply(this,r)},t)}return r.clear=()=>{clearTimeout(n)},r}var xc=bc,Sc=jo;function Cc(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}var wc=Cc;function Tc(e){return e&&e.ownerDocument||document}var Ec=Tc;function Dc(e){return Tc(e).defaultView||window}var Oc=Dc;function kc(e,t){typeof e==`function`?e(t):e&&(e.current=t)}var Ac=Wa,jc=go;function Mc(e){let{controlled:t,default:n,name:r,state:i=`value`}=e,{current:a}=z.useRef(t!==void 0),[o,s]=z.useState(n);return[a?t:o,z.useCallback(e=>{a||s(e)},[])]}var Nc=Mc;function Pc(e){let t=z.useRef(e);return Wa(()=>{t.current=e}),z.useRef((...e)=>(0,t.current)(...e)).current}var Fc=Pc;function Ic(...e){let t=z.useRef(void 0),n=z.useCallback(t=>{let n=e.map(e=>{if(e==null)return null;if(typeof e==`function`){let n=e,r=n(t);return typeof r==`function`?r:()=>{n(null)}}return e.current=t,()=>{e.current=null}});return()=>{n.forEach(e=>e?.())}},e);return z.useMemo(()=>e.every(e=>e==null)?null:e=>{t.current&&=(t.current(),void 0),e!=null&&(t.current=n(e))},e)}var Lc=Ic;function Rc(e,t){let n=e.charCodeAt(2);return e[0]===`o`&&e[1]===`n`&&n>=65&&n<=90&&typeof t==`function`}function zc(e,t){if(!e)return t;function n(e,t){let n={};return Object.keys(t).forEach(r=>{Rc(r,t[r])&&typeof e[r]==`function`&&(n[r]=(...n)=>{e[r](...n),t[r](...n)})}),n}if(typeof e==`function`||typeof t==`function`)return r=>{let i=typeof t==`function`?t(r):t,a=typeof e==`function`?e({...r,...i}):e,o=H(r?.className,i?.className,a?.className),s=n(a,i);return{...i,...a,...s,...!!o&&{className:o},...i?.style&&a?.style&&{style:{...i.style,...a.style}},...i?.sx&&a?.sx&&{sx:[...Array.isArray(i.sx)?i.sx:[i.sx],...Array.isArray(a.sx)?a.sx:[a.sx]]}}};let r=t,i=n(e,r),a=H(r?.className,e?.className);return{...t,...e,...i,...!!a&&{className:a},...r?.style&&e?.style&&{style:{...r.style,...e.style}},...r?.sx&&e?.sx&&{sx:[...Array.isArray(r.sx)?r.sx:[r.sx],...Array.isArray(e.sx)?e.sx:[e.sx]]}}}function Bc(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Vc(e,t){return Vc=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Vc(e,t)}function Hc(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Vc(e,t)}var Uc={disabled:!1},Wc=z.createContext(null),Gc=function(e){return e.scrollTop},Kc=c(m()),qc=`unmounted`,Jc=`exited`,Yc=`entering`,Xc=`entered`,Zc=`exiting`,Qc=function(e){Hc(t,e);function t(t,n){var r=e.call(this,t,n)||this,i=n,a=i&&!i.isMounting?t.enter:t.appear,o;return r.appearStatus=null,t.in?a?(o=Jc,r.appearStatus=Yc):o=Xc:o=t.unmountOnExit||t.mountOnEnter?qc:Jc,r.state={status:o},r.nextCallback=null,r}t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===`unmounted`?{status:Jc}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==`entering`&&n!==`entered`&&(t=Yc):(n===`entering`||n===`entered`)&&(t=Zc)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e=this.props.timeout,t=n=r=e,n,r;return e!=null&&typeof e!=`number`&&(t=e.exit,n=e.enter,r=e.appear===void 0?n:e.appear),{exit:t,enter:n,appear:r}},n.updateStatus=function(e,t){if(e===void 0&&(e=!1),t!==null)if(this.cancelNextCallback(),t===`entering`){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:Kc.default.findDOMNode(this);n&&Gc(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===`exited`&&this.setState({status:qc})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,i=this.props.nodeRef?[r]:[Kc.default.findDOMNode(this),r],a=i[0],o=i[1],s=this.getTimeouts(),c=r?s.appear:s.enter;if(!e&&!n||Uc.disabled){this.safeSetState({status:Xc},function(){t.props.onEntered(a)});return}this.props.onEnter(a,o),this.safeSetState({status:Yc},function(){t.props.onEntering(a,o),t.onTransitionEnd(c,function(){t.safeSetState({status:Xc},function(){t.props.onEntered(a,o)})})})},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:Kc.default.findDOMNode(this);if(!t||Uc.disabled){this.safeSetState({status:Jc},function(){e.props.onExited(r)});return}this.props.onExit(r),this.safeSetState({status:Zc},function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,function(){e.safeSetState({status:Jc},function(){e.props.onExited(r)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:Kc.default.findDOMNode(this),r=e==null&&!this.props.addEndListener;if(!n||r){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var i=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],a=i[0],o=i[1];this.props.addEndListener(a,o)}e!=null&&setTimeout(this.nextCallback,e)},n.render=function(){var e=this.state.status;if(e===`unmounted`)return null;var t=this.props,n=t.children;t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef;var r=Bc(t,[`children`,`in`,`mountOnEnter`,`unmountOnExit`,`appear`,`enter`,`exit`,`timeout`,`addEndListener`,`onEnter`,`onEntering`,`onEntered`,`onExit`,`onExiting`,`onExited`,`nodeRef`]);return z.createElement(Wc.Provider,{value:null},typeof n==`function`?n(e,r):z.cloneElement(z.Children.only(n),r))},t}(z.Component);Qc.contextType=Wc,Qc.propTypes={};function $c(){}Qc.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:$c,onEntering:$c,onEntered:$c,onExit:$c,onExiting:$c,onExited:$c},Qc.UNMOUNTED=qc,Qc.EXITED=Jc,Qc.ENTERING=Yc,Qc.ENTERED=Xc,Qc.EXITING=Zc;function el(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function tl(e,t){var n=function(e){return t&&(0,z.isValidElement)(e)?t(e):e},r=Object.create(null);return e&&z.Children.map(e,function(e){return e}).forEach(function(e){r[e.key]=n(e)}),r}function nl(e,t){e||={},t||={};function n(n){return n in t?t[n]:e[n]}var r=Object.create(null),i=[];for(var a in e)a in t?i.length&&(r[a]=i,i=[]):i.push(a);var o,s={};for(var c in t){if(r[c])for(o=0;o{this.currentId=null,t()},e)}clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)};disposeEffect=()=>this.clear};function ml(){let e=ul(pl.create).current;return fl(e.disposeEffect),e}var hl=e=>e.scrollTop;function gl(e,t){return n=>{if(t){let r=e.current;n===void 0?t(r):t(r,n)}}}function _l(e,t,n,r,i,a){let o=e===`exited`&&!t?r:n[e]||n.exited;return i||a?{...o,...i,...a}:o}function vl(e,t){let{timeout:n,easing:r,style:i={}}=e;return{duration:i.transitionDuration??(typeof n==`number`?n:n[t.mode]||0),easing:i.transitionTimingFunction??(typeof r==`object`?r[t.mode]:r),delay:i.transitionDelay}}function yl(e){return typeof e==`string`}function bl(e,t,n){return e===void 0||yl(e)?t:{...t,ownerState:{...t.ownerState,...n}}}function xl(e,t,n){return typeof e==`function`?e(t,n):e}function Sl(e,t=[]){if(e===void 0)return{};let n={};return Object.keys(e).filter(n=>n.match(/^on[A-Z]/)&&typeof e[n]==`function`&&!t.includes(n)).forEach(t=>{n[t]=e[t]}),n}function Cl(e){if(e===void 0)return{};let t={};return Object.keys(e).filter(t=>!(t.match(/^on[A-Z]/)&&typeof e[t]==`function`)).forEach(n=>{t[n]=e[n]}),t}function wl(e){let{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:i,className:a}=e;if(!t){let e=H(n?.className,a,i?.className,r?.className),t={...n?.style,...i?.style,...r?.style},o={...n,...i,...r};return e.length>0&&(o.className=e),Object.keys(t).length>0&&(o.style=t),{props:o,internalRef:void 0}}let o=Sl({...i,...r}),s=Cl(r),c=Cl(i),l=t(o),u=H(l?.className,n?.className,a,i?.className,r?.className),d={...l?.style,...n?.style,...i?.style,...r?.style},f={...l,...n,...c,...s};return u.length>0&&(f.className=u),Object.keys(d).length>0&&(f.style=d),{props:f,internalRef:l.ref}}function Tl(e,t){let{className:n,elementType:r,ownerState:i,externalForwardedProps:a,internalForwardedProps:o,shouldForwardComponentProp:s=!1,...c}=t,{component:l,slots:u={[e]:void 0},slotProps:d={[e]:void 0},...f}=a,p=u[e]||r,m=xl(d[e],i),{props:{component:h,...g},internalRef:_}=wl({className:n,...c,externalForwardedProps:e===`root`?f:void 0,externalSlotProps:m}),v=Ic(_,m?.ref,t.ref),y=e===`root`?h||l:h;return[p,bl(p,{...e===`root`&&!l&&!u[e]&&o,...e!==`root`&&!u[e]&&o,...g,...y&&!s&&{as:y},...y&&s&&{component:y},ref:v},i)]}function El(e){return U(`MuiPaper`,e)}W(`MuiPaper`,`root.rounded.outlined.elevation.elevation0.elevation1.elevation2.elevation3.elevation4.elevation5.elevation6.elevation7.elevation8.elevation9.elevation10.elevation11.elevation12.elevation13.elevation14.elevation15.elevation16.elevation17.elevation18.elevation19.elevation20.elevation21.elevation22.elevation23.elevation24`.split(`.`));var Dl=e=>{let{square:t,elevation:n,variant:r,classes:i}=e;return q({root:[`root`,r,!t&&`rounded`,r===`elevation`&&`elevation${n}`]},El,i)},Ol=Y(`div`,{name:`MuiPaper`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,n.variant===`elevation`&&t[`elevation${n.elevation}`]]}})(pc(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create(`box-shadow`),variants:[{props:({ownerState:e})=>!e.square,style:{borderRadius:e.shape.borderRadius}},{props:{variant:`outlined`},style:{border:`1px solid ${(e.vars||e).palette.divider}`}},{props:{variant:`elevation`},style:{boxShadow:`var(--Paper-shadow)`,backgroundImage:`var(--Paper-overlay)`}}]}))),kl=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiPaper`}),r=sc(),{className:i,component:a=`div`,elevation:o=1,square:s=!1,variant:c=`elevation`,...l}=n,u={...n,component:a,elevation:o,square:s,variant:c};return(0,B.jsx)(Ol,{as:a,ownerState:u,className:H(Dl(u).root,i),ref:t,...l,style:{...c===`elevation`&&{"--Paper-shadow":(r.vars||r).shadows[o],...r.vars&&{"--Paper-overlay":r.vars.overlays?.[o]},...!r.vars&&r.palette.mode===`dark`&&{"--Paper-overlay":`linear-gradient(${to(`#fff`,Hs(o))}, ${to(`#fff`,Hs(o))})`}},...l.style}})});function Al(e){try{return e.matches(`:focus-visible`)}catch{}return!1}function jl(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:i=0,isNativeButton:a}=e,o=r&&t!==!1,s=r&&t===!1;return z.useMemo(()=>{let e={onKeyDown(e){n&&t&&e.key!==`Tab`&&e.preventDefault()}};return r||(e.tabIndex=i,!a&&n&&(e.tabIndex=t?i:-1)),(a&&(t||o)||!a&&n)&&(e[`aria-disabled`]=n),a&&(!t||s)&&(e.disabled=n),e},[r,n,t,o,s,a,i])}var Ml={};function Nl(e){let{nativeButton:t,nativeButtonProp:n,internalNativeButton:r=t,allowInferredHostMismatch:i=!1,disabled:a,type:o,hasFormAction:s=!1,tabIndex:c=0,focusableWhenDisabled:l,stopEventPropagation:u=!1,onBeforeKeyDown:d,onBeforeKeyUp:f}=e,p=z.useRef(null),m=l===!0,h=jl({focusableWhenDisabled:m,disabled:a,isNativeButton:t,tabIndex:c}),g=z.useCallback(()=>{let e=p.current;return e==null?t:e.tagName===`BUTTON`?!0:!!(e.tagName===`A`&&e.href)},[t]),_=z.useMemo(()=>{let e=m?{}:{tabIndex:a?-1:c};return t?(e.type=o===void 0&&!s?`button`:o,m||(e.disabled=a)):(e.role=`button`,!m&&a&&(e[`aria-disabled`]=a)),m?{...e,...h}:e},[a,m,h,s,t,c,o]);return{getButtonProps:z.useCallback((e=Ml)=>{let{onClick:t,onKeyDown:n,onKeyUp:r,...i}=e,o=e=>{if(u&&e.stopPropagation(),a){e.preventDefault();return}t?.(e)},s=e=>{if(m&&h.onKeyDown(e),!a&&(d?.(e),n?.(e),!(e.target!==e.currentTarget||g()))){if(e.key===` `){e.preventDefault();return}e.key===`Enter`&&(e.preventDefault(),e.currentTarget.click())}},c=e=>{a||(f?.(e),r?.(e),e.target===e.currentTarget&&!g()&&e.key===` `&&!e.defaultPrevented&&e.currentTarget.click())};return{..._,...i,onClick:o,onKeyDown:s,onKeyUp:c}},[_,a,m,h,g,d,f,u]),rootRef:p}}var Pl=class e{static create(){return new e}static use(){let t=ul(e.create).current,[n,r]=z.useState(!1);return t.shouldMount=n,t.setShouldMount=r,z.useEffect(t.mountEffect,[n]),t}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=Il(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())};start(...e){this.mount().then(()=>this.ref.current?.start(...e))}stop(...e){this.mount().then(()=>this.ref.current?.stop(...e))}pulsate(...e){this.mount().then(()=>this.ref.current?.pulsate(...e))}};function Fl(){return Pl.use()}function Il(){let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n}function Ll(e){let{className:t,classes:n,pulsate:r=!1,rippleX:i,rippleY:a,rippleSize:o,in:s,onExited:c,timeout:l}=e,[u,d]=z.useState(!1),f=H(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),p={width:o,height:o,top:-(o/2)+a,left:-(o/2)+i},m=H(n.child,u&&n.childLeaving,r&&n.childPulsate);return!s&&!u&&d(!0),z.useEffect(()=>{if(!s&&c!=null){let e=setTimeout(c,l);return()=>{clearTimeout(e)}}},[c,s,l]),(0,B.jsx)(`span`,{className:f,style:p,children:(0,B.jsx)(`span`,{className:m})})}var Z=W(`MuiTouchRipple`,[`root`,`ripple`,`rippleVisible`,`ripplePulsate`,`child`,`childLeaving`,`childPulsate`]),Rl=550,zl=hr` + 0% { + transform: scale(0); + opacity: 0.1; + } + + 100% { + transform: scale(1); + opacity: 0.3; + } +`,Bl=hr` + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +`,Vl=hr` + 0% { + transform: scale(1); + } + + 50% { + transform: scale(0.92); + } + + 100% { + transform: scale(1); + } +`,Hl=Y(`span`,{name:`MuiTouchRipple`,slot:`Root`})({overflow:`hidden`,pointerEvents:`none`,position:`absolute`,zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:`inherit`}),Ul=Y(Ll,{name:`MuiTouchRipple`,slot:`Ripple`})` + opacity: 0; + position: absolute; + + &.${Z.rippleVisible} { + opacity: 0.3; + transform: scale(1); + animation-name: ${zl}; + animation-duration: ${Rl}ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + } + + &.${Z.ripplePulsate} { + animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms; + } + + & .${Z.child} { + opacity: 1; + display: block; + width: 100%; + height: 100%; + border-radius: 50%; + background-color: currentColor; + } + + & .${Z.childLeaving} { + opacity: 0; + animation-name: ${Bl}; + animation-duration: ${Rl}ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + } + + & .${Z.childPulsate} { + position: absolute; + /* @noflip */ + left: 0px; + top: 0; + animation-name: ${Vl}; + animation-duration: 2500ms; + animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; + animation-iteration-count: infinite; + animation-delay: 200ms; + } +`,Wl=z.forwardRef(function(e,t){let{center:n=!1,classes:r={},className:i,...a}=mc({props:e,name:`MuiTouchRipple`}),[o,s]=z.useState([]),c=z.useRef(0),l=z.useRef(null);z.useEffect(()=>{l.current&&=(l.current(),null)},[o]);let u=z.useRef(!1),d=ml(),f=z.useRef(null),p=z.useRef(null),m=z.useCallback(e=>{let{pulsate:t,rippleX:n,rippleY:i,rippleSize:a,cb:o}=e;s(e=>[...e,(0,B.jsx)(Ul,{classes:{ripple:H(r.ripple,Z.ripple),rippleVisible:H(r.rippleVisible,Z.rippleVisible),ripplePulsate:H(r.ripplePulsate,Z.ripplePulsate),child:H(r.child,Z.child),childLeaving:H(r.childLeaving,Z.childLeaving),childPulsate:H(r.childPulsate,Z.childPulsate)},timeout:Rl,pulsate:t,rippleX:n,rippleY:i,rippleSize:a},c.current)]),c.current+=1,l.current=o},[r]),h=z.useCallback((e={},t={},r=()=>{})=>{let{pulsate:i=!1,center:a=n||t.pulsate,fakeElement:o=!1}=t;if(e?.type===`mousedown`&&u.current){u.current=!1;return}e?.type===`touchstart`&&(u.current=!0);let s=o?null:p.current,c=s?s.getBoundingClientRect():{width:0,height:0,left:0,top:0},l,h,g;if(a||e===void 0||e.clientX===0&&e.clientY===0||!e.clientX&&!e.touches)l=Math.round(c.width/2),h=Math.round(c.height/2);else{let{clientX:t,clientY:n}=e.touches&&e.touches.length>0?e.touches[0]:e;l=Math.round(t-c.left),h=Math.round(n-c.top)}if(a)g=Math.sqrt((2*c.width**2+c.height**2)/3),g%2==0&&(g+=1);else{let e=Math.max(Math.abs((s?s.clientWidth:0)-l),l)*2+2,t=Math.max(Math.abs((s?s.clientHeight:0)-h),h)*2+2;g=Math.sqrt(e**2+t**2)}e?.touches?f.current===null&&(f.current=()=>{m({pulsate:i,rippleX:l,rippleY:h,rippleSize:g,cb:r})},d.start(80,()=>{f.current&&=(f.current(),null)})):m({pulsate:i,rippleX:l,rippleY:h,rippleSize:g,cb:r})},[n,m,d]),g=z.useCallback(()=>{h({},{pulsate:!0})},[h]),_=z.useCallback((e,t)=>{if(d.clear(),e?.type===`touchend`&&f.current){f.current(),f.current=null,d.start(0,()=>{_(e,t)});return}f.current=null,s(e=>e.length>0?e.slice(1):e),l.current=t},[d]);return z.useImperativeHandle(t,()=>({pulsate:g,start:h,stop:_}),[g,h,_]),(0,B.jsx)(Hl,{className:H(Z.root,r.root,i),ref:p,...a,children:(0,B.jsx)(cl,{component:null,exit:!0,children:o})})});function Gl(e){return U(`MuiButtonBase`,e)}var Kl=W(`MuiButtonBase`,[`root`,`disabled`,`focusVisible`]),ql=e=>{let{disabled:t,focusVisible:n,focusVisibleClassName:r,suppressFocusVisible:i,classes:a}=e,o=q({root:[`root`,t&&`disabled`,n&&!i&&`focusVisible`]},Gl,a);return n&&!i&&r&&(o.root+=` ${r}`),o},Jl=Y(`button`,{name:`MuiButtonBase`,slot:`Root`})({display:`inline-flex`,alignItems:`center`,justifyContent:`center`,position:`relative`,boxSizing:`border-box`,WebkitTapHighlightColor:`transparent`,backgroundColor:`transparent`,outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:`pointer`,userSelect:`none`,verticalAlign:`middle`,MozAppearance:`none`,WebkitAppearance:`none`,textDecoration:`none`,color:`inherit`,"&::-moz-focus-inner":{borderStyle:`none`},[`&.${Kl.disabled}`]:{pointerEvents:`none`,cursor:`default`},"@media print":{colorAdjust:`exact`}}),Yl=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiButtonBase`}),{action:r,centerRipple:i=!1,children:a,className:o,component:s=`button`,disabled:c=!1,disableRipple:l=!1,disableTouchRipple:u=!1,focusRipple:d=!1,focusVisibleClassName:f,focusableWhenDisabled:p,suppressFocusVisible:m=!1,internalNativeButton:h,LinkComponent:g=`a`,nativeButton:_,onBlur:v,onClick:y,onContextMenu:b,onDragLeave:x,onFocus:S,onFocusVisible:C,onKeyDown:w,onKeyUp:T,onMouseDown:E,onMouseLeave:D,onMouseUp:O,onTouchEnd:k,onTouchMove:ee,onTouchStart:A,tabIndex:j=0,TouchRippleProps:te,touchRippleRef:ne,type:re,...M}=n,N=!!(M.href||M.to),ie=!!M.formAction,ae=s;ae===`button`&&N&&(ae=g);let oe=typeof ae==`string`?ae===`button`:h??!1,P=_??oe,F=Fl(),I=Lc(F.ref,ne),[se,ce]=z.useState(!1);(c||m)&&se&&ce(!1);let le=Fc(e=>{d&&!e.repeat&&se&&e.key===` `&&F.stop(e,()=>{F.start(e)})}),ue=Fc(e=>{d&&e.key===` `&&se&&!e.defaultPrevented&&F.stop(e,()=>{F.pulsate(e)})}),{getButtonProps:de,rootRef:fe}=Nl({nativeButton:P,nativeButtonProp:_,internalNativeButton:oe,allowInferredHostMismatch:N||typeof ae==`string`,disabled:c,type:re,hasFormAction:ie,tabIndex:j,onBeforeKeyDown:le,onBeforeKeyUp:ue}),{onClick:pe,onKeyDown:me,onKeyUp:he,...ge}=de({onClick:y,onKeyDown:w,onKeyUp:T});z.useImperativeHandle(r,()=>({focusVisible:()=>{ce(!0),fe.current.focus()}}),[fe]);let _e=F.shouldMount&&!l&&!c;z.useEffect(()=>{se&&d&&!l&&F.pulsate()},[l,d,se,F]);let L=Xl(F,`start`,E,u),ve=Xl(F,`stop`,b,u),R=Xl(F,`stop`,x,u),ye=Xl(F,`stop`,O,u),be=Xl(F,`stop`,e=>{se&&e.preventDefault(),D&&D(e)},u),xe=Xl(F,`start`,A,u),Se=Xl(F,`stop`,k,u),Ce=Xl(F,`stop`,ee,u),we=Xl(F,`stop`,e=>{Al(e.target)||ce(!1),v&&v(e)},!1),Te=Fc(e=>{fe.current||=e.currentTarget,!m&&Al(e.target)&&(ce(!0),C&&C(e)),S&&S(e)}),Ee={};N&&(Ee.tabIndex=c?-1:j,c&&(Ee[`aria-disabled`]=c),Ee.type=re);let De=Lc(t,fe),Oe={...n,centerRipple:i,component:s,disabled:c,disableRipple:l,disableTouchRipple:u,focusRipple:d,suppressFocusVisible:m,tabIndex:j,focusVisible:se},ke=ql(Oe);return(0,B.jsxs)(Jl,{as:ae,className:H(ke.root,o),ownerState:Oe,onBlur:we,onClick:pe,onContextMenu:ve,onFocus:Te,onKeyDown:me,onKeyUp:he,onMouseDown:L,onMouseLeave:be,onMouseUp:ye,onDragLeave:R,onTouchEnd:Se,onTouchMove:Ce,onTouchStart:xe,ref:De,...N?Ee:ge,...M,children:[a,_e?(0,B.jsx)(Wl,{ref:I,center:i,...te}):null]})});function Xl(e,t,n,r=!1){return Fc(i=>(n&&n(i),r||e[t](i),!0))}function Zl(e){return typeof e.main==`string`}function Ql(e,t=[]){if(!Zl(e))return!1;for(let n of t)if(!e.hasOwnProperty(n)||typeof e[n]!=`string`)return!1;return!0}function $l(e=[]){return([,t])=>t&&Ql(t,e)}function eu(e){return U(`MuiAlert`,e)}var tu=W(`MuiAlert`,[`root`,`action`,`icon`,`message`,`filled`,`colorSuccess`,`colorInfo`,`colorWarning`,`colorError`,`outlined`,`standard`]);function nu(e){return U(`MuiCircularProgress`,e)}W(`MuiCircularProgress`,[`root`,`determinate`,`indeterminate`,`colorPrimary`,`colorSecondary`,`svg`,`track`,`circle`,`circleDisableShrink`]);var ru=44,iu=hr` + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +`,au=hr` + 0% { + stroke-dasharray: 1px, 200px; + stroke-dashoffset: 0; + } + + 50% { + stroke-dasharray: 100px, 200px; + stroke-dashoffset: -15px; + } + + 100% { + stroke-dasharray: 1px, 200px; + stroke-dashoffset: -126px; + } +`,ou=typeof iu==`string`?null:mr` + animation: ${iu} 1.4s linear infinite; + `,su=typeof au==`string`?null:mr` + animation: ${au} 1.4s ease-in-out infinite; + `,cu=e=>{let{classes:t,variant:n,color:r,disableShrink:i}=e;return q({root:[`root`,n,`color${X(r)}`],svg:[`svg`],track:[`track`],circle:[`circle`,i&&`circleDisableShrink`]},nu,t)},lu=Y(`span`,{name:`MuiCircularProgress`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t[`color${X(n.color)}`]]}})(pc(({theme:e})=>({display:`inline-block`,variants:[{props:{variant:`determinate`},style:{transition:e.transitions.create(`transform`)}},{props:{variant:`indeterminate`},style:ou||{animation:`${iu} 1.4s linear infinite`}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}}))]}))),uu=Y(`svg`,{name:`MuiCircularProgress`,slot:`Svg`})({display:`block`}),du=Y(`circle`,{name:`MuiCircularProgress`,slot:`Circle`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.circle,n.disableShrink&&t.circleDisableShrink]}})(pc(({theme:e})=>({stroke:`currentColor`,variants:[{props:{variant:`determinate`},style:{transition:e.transitions.create(`stroke-dashoffset`)}},{props:{variant:`indeterminate`},style:{strokeDasharray:`80px, 200px`,strokeDashoffset:0}},{props:({ownerState:e})=>e.variant===`indeterminate`&&!e.disableShrink,style:su||{animation:`${au} 1.4s ease-in-out infinite`}}]}))),fu=Y(`circle`,{name:`MuiCircularProgress`,slot:`Track`})(pc(({theme:e})=>({stroke:`currentColor`,opacity:(e.vars||e).palette.action.activatedOpacity}))),pu=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiCircularProgress`}),{className:r,color:i=`primary`,disableShrink:a=!1,enableTrackSlot:o=!1,size:s=40,style:c,thickness:l=3.6,value:u=0,variant:d=`indeterminate`,...f}=n,p={...n,color:i,disableShrink:a,size:s,thickness:l,value:u,variant:d,enableTrackSlot:o},m=cu(p),h={},g={},_={};if(d===`determinate`){let e=2*Math.PI*((ru-l)/2);h.strokeDasharray=e.toFixed(3),_[`aria-valuenow`]=Math.round(u),h.strokeDashoffset=`${((100-u)/100*e).toFixed(3)}px`,g.transform=`rotate(-90deg)`}return(0,B.jsx)(lu,{className:H(m.root,r),style:{width:s,height:s,...g,...c},ownerState:p,ref:t,role:`progressbar`,..._,...f,children:(0,B.jsxs)(uu,{className:m.svg,ownerState:p,viewBox:`${ru/2} ${ru/2} ${ru} ${ru}`,children:[o?(0,B.jsx)(fu,{className:m.track,ownerState:p,cx:ru,cy:ru,r:(ru-l)/2,fill:`none`,strokeWidth:l,"aria-hidden":`true`}):null,(0,B.jsx)(du,{className:m.circle,style:h,ownerState:p,cx:ru,cy:ru,r:(ru-l)/2,fill:`none`,strokeWidth:l})]})})});function mu(e){return U(`MuiIconButton`,e)}var hu=W(`MuiIconButton`,[`root`,`disabled`,`colorInherit`,`colorPrimary`,`colorSecondary`,`colorError`,`colorInfo`,`colorSuccess`,`colorWarning`,`edgeStart`,`edgeEnd`,`sizeSmall`,`sizeMedium`,`sizeLarge`,`loading`,`loadingIndicator`,`loadingWrapper`]),gu=e=>{let{classes:t,disabled:n,color:r,edge:i,size:a,loading:o}=e;return q({root:[`root`,o&&`loading`,n&&`disabled`,r!==`default`&&`color${X(r)}`,i&&`edge${X(i)}`,`size${X(a)}`],loadingIndicator:[`loadingIndicator`],loadingWrapper:[`loadingWrapper`]},mu,t)},_u=Y(Yl,{name:`MuiIconButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.loading&&t.loading,n.color!==`default`&&t[`color${X(n.color)}`],n.edge&&t[`edge${X(n.edge)}`],t[`size${X(n.size)}`]]}})(pc(({theme:e})=>({textAlign:`center`,flex:`0 0 auto`,fontSize:e.typography.pxToRem(24),padding:8,borderRadius:`50%`,color:(e.vars||e).palette.action.active,transition:e.transitions.create(`background-color`,{duration:e.transitions.duration.shortest}),variants:[{props:e=>!e.disableRipple,style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"&:hover":{backgroundColor:`var(--IconButton-hoverBg)`,"@media (hover: none)":{backgroundColor:`transparent`}}}},{props:{edge:`start`},style:{marginLeft:-12}},{props:{edge:`start`,size:`small`},style:{marginLeft:-3}},{props:{edge:`end`},style:{marginRight:-12}},{props:{edge:`end`,size:`small`},style:{marginRight:-3}}]})),pc(({theme:e})=>({variants:[{props:{color:`inherit`},style:{color:`inherit`}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}})),{props:{size:`small`},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:`large`},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${hu.disabled}`]:{backgroundColor:`transparent`,color:(e.vars||e).palette.action.disabled},[`&.${hu.loading}`]:{color:`transparent`}}))),vu=Y(`span`,{name:`MuiIconButton`,slot:`LoadingIndicator`})(({theme:e})=>({display:`none`,position:`absolute`,visibility:`visible`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`,color:(e.vars||e).palette.action.disabled,variants:[{props:{loading:!0},style:{display:`flex`}}]})),yu=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiIconButton`}),{edge:r=!1,children:i,className:a,color:o=`default`,disabled:s=!1,disableFocusRipple:c=!1,size:l=`medium`,id:u,loading:d=null,loadingIndicator:f,...p}=n,m=jc(u),h=f??(0,B.jsx)(pu,{"aria-labelledby":m,color:`inherit`,size:16}),g={...n,edge:r,color:o,disabled:s,disableFocusRipple:c,loading:d,loadingIndicator:h,size:l},_=gu(g);return(0,B.jsxs)(_u,{id:d?m:u,className:H(_.root,a),centerRipple:!0,internalNativeButton:!0,focusRipple:!c,disabled:s||d,ref:t,...p,ownerState:g,children:[typeof d==`boolean`&&(0,B.jsx)(`span`,{className:_.loadingWrapper,style:{display:`contents`},children:(0,B.jsx)(vu,{className:_.loadingIndicator,ownerState:g,children:d&&h})}),i]})}),bu=yc((0,B.jsx)(`path`,{d:`M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z`}),`SuccessOutlined`),xu=yc((0,B.jsx)(`path`,{d:`M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z`}),`ReportProblemOutlined`),Su=yc((0,B.jsx)(`path`,{d:`M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z`}),`ErrorOutline`),Cu=yc((0,B.jsx)(`path`,{d:`M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z`}),`InfoOutlined`),wu=yc((0,B.jsx)(`path`,{d:`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`}),`Close`),Tu=e=>{let{variant:t,color:n,severity:r,classes:i}=e;return q({root:[`root`,`color${X(n||r)}`,`${t}`],icon:[`icon`],message:[`message`],action:[`action`]},eu,i)},Eu=Y(kl,{name:`MuiAlert`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant]]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`?e.darken:e.lighten,n=e.palette.mode===`light`?e.lighten:e.darken;return{...e.typography.body2,backgroundColor:`transparent`,display:`flex`,padding:`6px 16px`,variants:[...Object.entries(e.palette).filter($l([`light`])).map(([r])=>({props:{colorSeverity:r,variant:`standard`},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),backgroundColor:e.vars?e.vars.palette.Alert[`${r}StandardBg`]:n(e.palette[r].light,.9),[`& .${tu.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter($l([`light`])).map(([n])=>({props:{colorSeverity:n,variant:`outlined`},style:{color:e.vars?e.vars.palette.Alert[`${n}Color`]:t(e.palette[n].light,.6),border:`1px solid ${(e.vars||e).palette[n].light}`,[`& .${tu.icon}`]:e.vars?{color:e.vars.palette.Alert[`${n}IconColor`]}:{color:e.palette[n].main}}})),...Object.entries(e.palette).filter($l([`dark`])).map(([t])=>({props:{colorSeverity:t,variant:`filled`},style:{fontWeight:e.typography.fontWeightMedium,...e.vars?{color:e.vars.palette.Alert[`${t}FilledColor`],backgroundColor:e.vars.palette.Alert[`${t}FilledBg`]}:{backgroundColor:e.palette.mode===`dark`?e.palette[t].dark:e.palette[t].main,color:e.palette.getContrastText(e.palette[t].main)}}}))]}})),Du=Y(`div`,{name:`MuiAlert`,slot:`Icon`})({marginRight:12,padding:`7px 0`,display:`flex`,fontSize:22,opacity:.9}),Ou=Y(`div`,{name:`MuiAlert`,slot:`Message`})({padding:`8px 0`,minWidth:0,overflow:`auto`}),ku=Y(`div`,{name:`MuiAlert`,slot:`Action`})({display:`flex`,alignItems:`flex-start`,padding:`4px 0 0 16px`,marginLeft:`auto`,marginRight:-8}),Au={success:(0,B.jsx)(bu,{fontSize:`inherit`}),warning:(0,B.jsx)(xu,{fontSize:`inherit`}),error:(0,B.jsx)(Su,{fontSize:`inherit`}),info:(0,B.jsx)(Cu,{fontSize:`inherit`})},ju=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiAlert`}),{action:r,children:i,className:a,closeText:o=`Close`,color:s,icon:c,iconMapping:l=Au,onClose:u,role:d=`alert`,severity:f=`success`,slotProps:p={},slots:m={},variant:h=`standard`,...g}=n,_={...n,color:s,severity:f,variant:h,colorSeverity:s||f},v=Tu(_),y={slots:m,slotProps:p},[b,x]=Tl(`root`,{ref:t,shouldForwardComponentProp:!0,className:H(v.root,a),elementType:Eu,externalForwardedProps:{...y,...g},ownerState:_,additionalProps:{role:d,elevation:0}}),[S,C]=Tl(`icon`,{className:v.icon,elementType:Du,externalForwardedProps:y,ownerState:_}),[w,T]=Tl(`message`,{className:v.message,elementType:Ou,externalForwardedProps:y,ownerState:_}),[E,D]=Tl(`action`,{className:v.action,elementType:ku,externalForwardedProps:y,ownerState:_}),[O,k]=Tl(`closeButton`,{elementType:yu,externalForwardedProps:y,ownerState:_}),[ee,A]=Tl(`closeIcon`,{elementType:wu,externalForwardedProps:y,ownerState:_});return(0,B.jsxs)(b,{...x,children:[c===!1?null:(0,B.jsx)(S,{...C,children:c||l[f]||Au[f]}),(0,B.jsx)(w,{...T,children:i}),r==null?null:(0,B.jsx)(E,{...D,children:r}),r==null&&u?(0,B.jsx)(E,{...D,children:(0,B.jsx)(O,{size:`small`,"aria-label":o,title:o,color:`inherit`,onClick:u,...k,children:(0,B.jsx)(ee,{fontSize:`small`,...A})})}):null]})});function Mu(e){return U(`MuiTypography`,e)}W(`MuiTypography`,[`root`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`subtitle1`,`subtitle2`,`body1`,`body2`,`inherit`,`button`,`caption`,`overline`,`alignLeft`,`alignRight`,`alignCenter`,`alignJustify`,`noWrap`,`gutterBottom`]);var Nu=e=>{let{align:t,gutterBottom:n,noWrap:r,variant:i,classes:a}=e;return q({root:[`root`,i,e.align!==`inherit`&&`align${X(t)}`,n&&`gutterBottom`,r&&`noWrap`]},Mu,a)},Pu=Y(`span`,{name:`MuiTypography`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!==`inherit`&&t[`align${X(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom]}})(pc(({theme:e})=>({margin:0,variants:[{props:{variant:`inherit`},style:{font:`inherit`,lineHeight:`inherit`,letterSpacing:`inherit`}},...Object.entries(e.typography).filter(([e,t])=>e!==`inherit`&&t&&typeof t==`object`).map(([e,t])=>({props:{variant:e},style:t})),...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette?.text||{}).filter(([,e])=>typeof e==`string`).map(([t])=>({props:{color:`text${X(t)}`},style:{color:(e.vars||e).palette.text[t]}})),{props:({ownerState:e})=>e.align!==`inherit`,style:{textAlign:`var(--Typography-textAlign)`}},{props:({ownerState:e})=>e.noWrap,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`}},{props:({ownerState:e})=>e.gutterBottom,style:{marginBottom:`0.35em`}}]}))),Fu={h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,h5:`h5`,h6:`h6`,subtitle1:`h6`,subtitle2:`h6`,body1:`p`,body2:`p`,inherit:`p`},Iu=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiTypography`}),{color:r,align:i=`inherit`,className:a,component:o,gutterBottom:s=!1,noWrap:c=!1,variant:l=`body1`,variantMapping:u=Fu,...d}=n,f={...n,align:i,color:r,className:a,component:o,gutterBottom:s,noWrap:c,variant:l,variantMapping:u};return(0,B.jsx)(Pu,{as:o||u[l]||Fu[l]||`span`,ref:t,className:H(Nu(f).root,a),...d,ownerState:f,style:{...i!==`inherit`&&{"--Typography-textAlign":i},...d.style}})});function Lu(e){let t=z.useRef({});return z.useEffect(()=>{t.current=e}),t.current}function Ru({array1:e,array2:t,parser:n=e=>e}){return e&&t&&e.length===t.length&&e.every((e,r)=>n(e)===n(t[r]))}function zu(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``)}function Bu(e={}){let{ignoreAccents:t=!0,ignoreCase:n=!0,limit:r,matchFrom:i=`any`,stringify:a,trim:o=!1}=e;return(e,{inputValue:s,getOptionLabel:c})=>{let l=o?s.trim():s;n&&(l=l.toLowerCase()),t&&(l=zu(l));let u=l?e.filter(e=>{let r=(a||c)(e);return n&&(r=r.toLowerCase()),t&&(r=zu(r)),i===`start`?r.startsWith(l):r.includes(l)}):e;return typeof r==`number`?u.slice(0,r):u}}var Vu=Bu(),Hu=5,Uu=e=>e.current!==null&&e.current.parentElement?.contains(document.activeElement),Wu=(e,t)=>e===t,Gu=[];function Ku(e,t,n,r){if(t||e==null||r)return``;let i=n(e);return typeof i==`string`?i:``}function qu(e){let{unstable_isActiveElementInListbox:t=Uu,unstable_classNamePrefix:n=`Mui`,autoComplete:r=!1,autoHighlight:i=!1,autoSelect:a=!1,blurOnSelect:o=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:c=!1,componentName:l=`useAutocomplete`,defaultValue:u=e.multiple?Gu:null,disableClearable:d=!1,disableCloseOnSelect:f=!1,disabled:p,disabledItemsFocusable:m=!1,disableListWrap:h=!1,filterOptions:g=Vu,filterSelectedOptions:_=!1,freeSolo:v=!1,getOptionDisabled:y,getOptionKey:b,getOptionLabel:x=e=>e.label??e,groupBy:S,handleHomeEndKeys:C=!e.freeSolo,id:w,includeInputInList:T=!1,inputValue:E,isOptionEqualToValue:D=Wu,multiple:O=!1,onChange:k,onClose:ee,onHighlightChange:A,onInputChange:j,onOpen:te,open:ne,openOnFocus:re=!1,options:M,readOnly:N=!1,renderValue:ie,selectOnFocus:ae=!e.freeSolo,value:oe}=e,P=go(w),F=x;F=e=>{let t=x(e);return typeof t==`string`?t:String(t)};let I=z.useRef(!1),se=z.useRef(!0),ce=z.useRef(null),le=z.useRef(null),ue=z.useRef(!1),[de,fe]=z.useState(null),[pe,me]=z.useState(-1),he=i?0:-1,ge=z.useRef(he),_e=z.useRef(Ku(u??oe,O,F)).current,[L,ve]=Mc({controlled:oe,default:u,name:l}),[R,ye]=Mc({controlled:E,default:_e,name:l,state:`inputValue`}),[be,xe]=z.useState(!1),Se=z.useCallback((e,t,n)=>{if(!(O?L.lengthO?L:L==null?[]:[L],[O,L]),Ae=z.useMemo(()=>D!==Wu||ke.length===0?null:new Set(ke),[D,ke]),je=z.useCallback(e=>Ae?Ae.has(e):ke.some(t=>t!=null&&D(e,t)),[D,ke,Ae]),Me=Oe?g(M.filter(e=>!(_&&je(e))),{inputValue:De&&Te?``:R,getOptionLabel:F}):[],Ne=Lu({filteredOptions:Me,value:L,inputValue:R});z.useEffect(()=>{let e=L!==Ne.value;be&&!e||v&&!e||Se(null,L,`reset`)},[L,Se,be,Ne.value,v]);let Pe=Ce&&Me.length>0&&!N,Fe=Pc(e=>{e===-1?ce.current.focus():de.querySelector(`[data-item-index="${e}"]`).focus()});z.useEffect(()=>{O&&pe>L.length-1&&(me(-1),Fe(-1))},[L,O,pe,Fe]);function Ie(e,t){if(!le.current||e<0||e>=Me.length)return-1;let n=e;for(;;){let r=le.current.querySelector(`[data-option-index="${n}"]`),i=m?!1:!r||r.disabled||r.getAttribute(`aria-disabled`)===`true`;if(r&&r.hasAttribute(`tabindex`)&&!i)return n;if(n=t===`next`?(n+1)%Me.length:(n-1+Me.length)%Me.length,n===e)return-1}}let Le=Pc(({event:e,index:t,reason:r})=>{if(ge.current=t,t===-1?ce.current.removeAttribute(`aria-activedescendant`):ce.current.setAttribute(`aria-activedescendant`,`${P}-option-${t}`),A&&[`mouse`,`keyboard`,`touch`].includes(r)&&A(e,t===-1?null:Me[t],r),!le.current)return;let i=le.current.querySelector(`[role="option"].${n}-focused`);i&&(i.classList.remove(`${n}-focused`),i.classList.remove(`${n}-focusVisible`));let a=le.current;if(le.current.getAttribute(`role`)!==`listbox`&&(a=le.current.parentElement.querySelector(`[role="listbox"]`)),!a)return;if(t===-1){a.scrollTop=0;return}let o=le.current.querySelector(`[data-option-index="${t}"]`);if(o&&(o.classList.add(`${n}-focused`),r===`keyboard`&&o.classList.add(`${n}-focusVisible`),a.scrollHeight>a.clientHeight&&r!==`mouse`&&r!==`touch`)){let e=o,t=a.clientHeight+a.scrollTop,n=e.offsetTop+e.offsetHeight;n>t?a.scrollTop=n-a.clientHeight:e.offsetTop-e.offsetHeight*(S?1.3:0){if(!Oe)return;let a=Ie((()=>{let e=Me.length-1;if(t===`reset`)return he;if(t===`start`)return 0;if(t===`end`)return e;let n=ge.current+t;return n<0?n===-1&&T?-1:h&&ge.current!==-1||Math.abs(t)>1?0:e:n>e?n===e+1&&T?-1:h||Math.abs(t)>1?e:0:n})(),n);if(Le({index:a,reason:i,event:e}),r&&t!==`reset`)if(a===-1)ce.current.value=R;else{let e=F(Me[a]);ce.current.value=e,e.toLowerCase().indexOf(R.toLowerCase())===0&&R.length>0&&ce.current.setSelectionRange(R.length,e.length)}}),ze=!Ru({array1:Ne.filteredOptions,array2:Me,parser:F}),Be=()=>{if(ge.current!==-1&&!Ru({array1:Ne.filteredOptions,array2:Me,parser:F})&&Ne.inputValue===R&&(O?L.length===Ne.value.length&&Ne.value.every((e,t)=>F(L[t])===F(e)):((e,t)=>(e?F(e):``)===(t?F(t):``))(Ne.value,L))){let e=Ne.filteredOptions[ge.current];if(e)return Me.findIndex(t=>F(t)===F(e))}return-1},Ve=z.useCallback(()=>{if(!Oe)return;let e=Be();if(e!==-1){ge.current=e;return}let t=O?L[0]:L;if(Me.length===0||t==null){Re({diff:`reset`});return}if(le.current){if(t!=null){let e=Me[ge.current];if(O&&e&&L.findIndex(t=>D(e,t))!==-1)return;let n=Me.findIndex(e=>D(e,t));n===-1?Re({diff:`reset`}):Le({index:n});return}if(ge.current>=Me.length-1){Le({index:Me.length-1});return}Le({index:ge.current})}},[Me.length,O?!1:L,Re,Le,Oe,R,O]),B=Pc(e=>{kc(le,e),e&&Ve()});z.useEffect(()=>{(ze||Oe&&!f)&&Ve()},[Ve,ze,Oe,f]),z.useEffect(()=>{if(typeof window>`u`)return;let e=()=>{ue.current=!0};return window.addEventListener(`blur`,e),()=>{window.removeEventListener(`blur`,e)}},[]);let He=e=>{Ce||(we(!0),Ee(!0),te&&te(e))},Ue=(e,t)=>{Ce&&(we(!1),ee&&ee(e,t))},We=(e,t,n,r)=>{if(O){if(L.length===t.length&&L.every((e,n)=>e===t[n]))return}else if(L===t)return;k&&k(e,t,n,r),ve(t)},Ge=z.useRef(!1),Ke=(e,t,n=`selectOption`,r=`options`)=>{let i=n,a=t;if(O){a=Array.isArray(L)?L.slice():[];let e=a.findIndex(e=>D(t,e));e===-1?a.push(t):r!==`freeSolo`&&(a.splice(e,1),i=`removeOption`)}Se(e,a,i),We(e,a,i,{option:t}),!f&&(!e||!e.ctrlKey&&!e.metaKey)&&Ue(e,i),(o===!0||o===`touch`&&Ge.current||o===`mouse`&&!Ge.current)&&ce.current.blur()};function qe(e,t){if(e===-1)return-1;let n=e;for(;;){if(t===`next`&&n===L.length||t===`previous`&&n===-1)return-1;let e=de.querySelector(`[data-item-index="${n}"]`);if(!e||!e.hasAttribute(`tabindex`)||e.disabled||e.getAttribute(`aria-disabled`)===`true`)n+=t===`next`?1:-1;else return n}}let Je=(e,t)=>{if(!O)return;R===``&&Ue(e,`toggleInput`);let n=pe;pe===-1&&t===`previous`?(n=L.length-1,v&&R!==``&&(ye(``),j&&j(e,``,`reset`))):(n+=t===`next`?1:-1,n<0&&(n=0),n===L.length&&(n=-1)),n=qe(n,t),me(n),Fe(n)},Ye=e=>{I.current=!0,ye(``),j&&j(e,``,`clear`),We(e,O?[]:null,`clear`)},Xe=e=>t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(pe!==-1&&![`ArrowLeft`,`ArrowRight`].includes(t.key)&&(me(-1),Fe(-1)),t.which!==229))switch(t.key){case`Home`:Oe&&C&&(t.preventDefault(),Re({diff:`start`,direction:`next`,reason:`keyboard`,event:t}));break;case`End`:Oe&&C&&(t.preventDefault(),Re({diff:`end`,direction:`previous`,reason:`keyboard`,event:t}));break;case`PageUp`:t.preventDefault(),Re({diff:-Hu,direction:`previous`,reason:`keyboard`,event:t}),He(t);break;case`PageDown`:t.preventDefault(),Re({diff:Hu,direction:`next`,reason:`keyboard`,event:t}),He(t);break;case`ArrowDown`:t.preventDefault(),Re({diff:1,direction:`next`,reason:`keyboard`,event:t}),He(t);break;case`ArrowUp`:t.preventDefault(),Re({diff:-1,direction:`previous`,reason:`keyboard`,event:t}),He(t);break;case`ArrowLeft`:{let e=ce.current;if(!(e&&e.selectionStart===0&&e.selectionEnd===0))return;!O&&ie&&L!=null?(v&&R!==``&&(ye(``),j&&j(t,``,`reset`)),me(0),Fe(0)):Je(t,`previous`);break}case`ArrowRight`:!O&&ie?(me(-1),Fe(-1)):Je(t,`next`);break;case`Enter`:if(ge.current!==-1&&Oe){let e=Me[ge.current],n=y?y(e):!1;if(t.preventDefault(),n)return;Ke(t,e,`selectOption`),r&&ce.current.setSelectionRange(ce.current.value.length,ce.current.value.length)}else v&&R!==``&&De===!1&&(O&&t.preventDefault(),Ke(t,R,`createOption`,`freeSolo`));break;case`Escape`:Oe?(t.preventDefault(),t.stopPropagation(),Ue(t,`escape`)):c&&(R!==``||O&&L.length>0||ie)&&(t.preventDefault(),t.stopPropagation(),Ye(t));break;case`Backspace`:if(O&&!N&&R===``&&L.length>0){let e=pe===-1?L.length-1:pe,n=L.slice();n.splice(e,1),We(t,n,`removeOption`,{option:L[e]})}!O&&ie&&!N&&R===``&&We(t,null,`removeOption`,{option:L});break;case`Delete`:if(O&&!N&&R===``&&L.length>0&&pe!==-1){let e=pe,n=L.slice();n.splice(e,1),We(t,n,`removeOption`,{option:L[e]})}!O&&ie&&!N&&R===``&&We(t,null,`removeOption`,{option:L});break;default:}},Ze=e=>{if(xe(!0),pe!==-1&&(me(-1),Fe(-1)),ue.current){ue.current=!1;return}re&&!I.current&&He(e)},Qe=e=>{if(t(le)){ce.current.focus();return}xe(!1),se.current=!0,I.current=!1,a&&ge.current!==-1&&Oe?Ke(e,Me[ge.current],`blur`):a&&v&&R!==``?Ke(e,R,`blur`,`freeSolo`):s&&Se(e,L,`blur`),Ue(e,`blur`)},$e=e=>{let t=e.target.value;R!==t&&(ye(t),Ee(!1),j&&j(e,t,`input`)),t===``?!d&&!O&&!ie&&We(e,null,`clear`):He(e)},et=e=>{let t=Number(e.currentTarget.getAttribute(`data-option-index`));ge.current!==t&&Le({event:e,index:t,reason:`mouse`})},tt=e=>{Le({event:e,index:Number(e.currentTarget.getAttribute(`data-option-index`)),reason:`touch`}),Ge.current=!0},nt=e=>{Ke(e,Me[Number(e.currentTarget.getAttribute(`data-option-index`))],`selectOption`),Ge.current=!1},rt=e=>t=>{let n=L.slice();n.splice(e,1),We(t,n,`removeOption`,{option:L[e]})},it=e=>{We(e,null,`removeOption`,{option:L})},at=e=>{Ce?Ue(e,`toggleInput`):He(e)},ot=e=>{e.currentTarget.contains(e.target)&&(de&&!de.contains(e.target)||e.target.getAttribute(`id`)!==P&&e.preventDefault())},st=e=>{e.currentTarget.contains(e.target)&&(de&&!de.contains(e.target)||(ce.current.focus(),ae&&se.current&&ce.current.selectionEnd-ce.current.selectionStart===0&&ce.current.select(),se.current=!1))},ct=e=>{!p&&(R===``||!Ce)&&e.button===0&&at(e)},lt=v&&R.length>0;lt||=O?L.length>0:L!==null;let ut=Me;return S&&(ut=Me.reduce((e,t,n)=>{let r=S(t);return e.length>0&&e[e.length-1].group===r?e[e.length-1].options.push(t):e.push({key:n,index:n,group:r,options:[t]}),e},[])),p&&be&&Qe(),{getRootProps:(e={})=>({...e,onKeyDown:Xe(e),onMouseDown:ot,onClick:st}),getInputLabelProps:()=>({id:`${P}-label`,htmlFor:P}),getInputProps:()=>({id:P,value:R,onBlur:Qe,onFocus:Ze,onChange:$e,onMouseDown:ct,"aria-activedescendant":Oe?``:null,"aria-autocomplete":r?`both`:`list`,"aria-controls":Pe?`${P}-listbox`:void 0,"aria-expanded":Pe,autoComplete:`off`,ref:ce,autoCapitalize:`none`,spellCheck:`false`,role:`combobox`,disabled:p}),getClearProps:()=>({tabIndex:-1,type:`button`,onClick:Ye}),getItemProps:({index:e=0}={})=>({...O&&{key:e},"data-item-index":e,tabIndex:-1,...!N&&{onDelete:O?rt(e):it}}),getPopupIndicatorProps:()=>({tabIndex:-1,type:`button`,onClick:at}),getListboxProps:()=>({role:`listbox`,id:`${P}-listbox`,"aria-labelledby":`${P}-label`,"aria-multiselectable":O||void 0,ref:B,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:({index:e,option:t})=>{let n=je(t),r=y?y(t):!1;return{key:b?.(t)??F(t),tabIndex:-1,role:`option`,id:`${P}-option-${e}`,onMouseMove:et,onClick:nt,onTouchStart:tt,"data-option-index":e,"aria-disabled":r,"aria-selected":n}},id:P,inputValue:R,value:L,dirty:lt,expanded:Oe&&de,popupOpen:Oe,focused:be||pe!==-1,anchorEl:de,setAnchorEl:fe,focusedItem:pe,groupedOptions:ut}}var Ju=`bottom`,Yu=`right`,Xu=`left`,Zu=`auto`,Qu=[`top`,Ju,Yu,Xu],$u=`start`,ed=`clippingParents`,td=`viewport`,nd=`popper`,rd=`reference`,id=Qu.reduce(function(e,t){return e.concat([t+`-`+$u,t+`-end`])},[]),ad=[].concat(Qu,[Zu]).reduce(function(e,t){return e.concat([t,t+`-`+$u,t+`-end`])},[]),od=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function sd(e){return e?(e.nodeName||``).toLowerCase():null}function cd(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ld(e){return e instanceof cd(e).Element||e instanceof Element}function ud(e){return e instanceof cd(e).HTMLElement||e instanceof HTMLElement}function dd(e){return typeof ShadowRoot>`u`?!1:e instanceof cd(e).ShadowRoot||e instanceof ShadowRoot}function fd(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];!ud(i)||!sd(i)||(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function pd(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});!ud(r)||!sd(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var md={name:`applyStyles`,enabled:!0,phase:`write`,fn:fd,effect:pd,requires:[`computeStyles`]};function hd(e){return e.split(`-`)[0]}var gd=Math.max,_d=Math.min,vd=Math.round;function yd(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function Q(){return!/^((?!chrome|android).)*safari/i.test(yd())}function bd(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&ud(e)&&(i=e.offsetWidth>0&&vd(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&vd(r.height)/e.offsetHeight||1);var o=(ld(e)?cd(e):window).visualViewport,s=!Q()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function xd(e){var t=bd(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Sd(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&dd(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Cd(e){return cd(e).getComputedStyle(e)}function wd(e){return[`table`,`td`,`th`].indexOf(sd(e))>=0}function Td(e){return((ld(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ed(e){return sd(e)===`html`?e:e.assignedSlot||e.parentNode||(dd(e)?e.host:null)||Td(e)}function Dd(e){return!ud(e)||Cd(e).position===`fixed`?null:e.offsetParent}function Od(e){var t=/firefox/i.test(yd());if(/Trident/i.test(yd())&&ud(e)&&Cd(e).position===`fixed`)return null;var n=Ed(e);for(dd(n)&&(n=n.host);ud(n)&&[`html`,`body`].indexOf(sd(n))<0;){var r=Cd(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function kd(e){for(var t=cd(e),n=Dd(e);n&&wd(n)&&Cd(n).position===`static`;)n=Dd(n);return n&&(sd(n)===`html`||sd(n)===`body`&&Cd(n).position===`static`)?t:n||Od(e)||t}function Ad(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function jd(e,t,n){return gd(e,_d(t,n))}function Md(e,t,n){var r=jd(e,t,n);return r>n?n:r}function Nd(){return{top:0,right:0,bottom:0,left:0}}function Pd(e){return Object.assign({},Nd(),e)}function Fd(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Id=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,Pd(typeof e==`number`?Fd(e,Qu):e)};function Ld(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=hd(n.placement),c=Ad(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(!(!a||!o)){var u=Id(i.padding,n),d=xd(a),f=c===`y`?`top`:Xu,p=c===`y`?Ju:Yu,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=kd(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=jd(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function Rd(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||Sd(t.elements.popper,r)&&(t.elements.arrow=r))}var zd={name:`arrow`,enabled:!0,phase:`main`,fn:Ld,effect:Rd,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function Bd(e){return e.split(`-`)[1]}var Vd={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function Hd(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:vd(n*i)/i||0,y:vd(r*i)/i||0}}function Ud(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=Xu,b=`top`,x=window;if(l){var S=kd(n),C=`clientHeight`,w=`clientWidth`;if(S===cd(n)&&(S=Td(n),Cd(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=Ju;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=Yu;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&Vd),O=u===!0?Hd({x:p,y:h},cd(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function Wd(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,o=a===void 0?!0:a,s=n.roundOffsets,c=s===void 0?!0:s,l={placement:hd(t.placement),variation:Bd(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Ud(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Ud(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Gd={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:Wd,data:{}},Kd={passive:!0};function qd(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,o=r.resize,s=o===void 0?!0:o,c=cd(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,Kd)}),s&&c.addEventListener(`resize`,n.update,Kd),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,Kd)}),s&&c.removeEventListener(`resize`,n.update,Kd)}}var Jd={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:qd,data:{}},Yd={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Xd(e){return e.replace(/left|right|bottom|top/g,function(e){return Yd[e]})}var Zd={start:`end`,end:`start`};function Qd(e){return e.replace(/start|end/g,function(e){return Zd[e]})}function $d(e){var t=cd(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ef(e){return bd(Td(e)).left+$d(e).scrollLeft}function tf(e,t){var n=cd(e),r=Td(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=Q();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+ef(e),y:c}}function nf(e){var t=Td(e),n=$d(e),r=e.ownerDocument?.body,i=gd(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=gd(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+ef(e),s=-n.scrollTop;return Cd(r||t).direction===`rtl`&&(o+=gd(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function rf(e){var t=Cd(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function af(e){return[`html`,`body`,`#document`].indexOf(sd(e))>=0?e.ownerDocument.body:ud(e)&&rf(e)?e:af(Ed(e))}function of(e,t){t===void 0&&(t=[]);var n=af(e),r=n===e.ownerDocument?.body,i=cd(n),a=r?[i].concat(i.visualViewport||[],rf(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(of(Ed(a)))}function sf(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function cf(e,t){var n=bd(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function lf(e,t,n){return t===`viewport`?sf(tf(e,n)):ld(t)?cf(t,n):sf(nf(Td(e)))}function uf(e){var t=of(Ed(e)),n=[`absolute`,`fixed`].indexOf(Cd(e).position)>=0&&ud(e)?kd(e):e;return ld(n)?t.filter(function(e){return ld(e)&&Sd(e,n)&&sd(e)!==`body`}):[]}function df(e,t,n,r){var i=t===`clippingParents`?uf(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=lf(e,n,r);return t.top=gd(i.top,t.top),t.right=_d(i.right,t.right),t.bottom=_d(i.bottom,t.bottom),t.left=gd(i.left,t.left),t},lf(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function ff(e){var t=e.reference,n=e.element,r=e.placement,i=r?hd(r):null,a=r?Bd(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case Ju:c={x:o,y:t.y+t.height};break;case Yu:c={x:t.x+t.width,y:s};break;case Xu:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Ad(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case $u:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2);break;default:}}return c}function pf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?ed:s,l=n.rootBoundary,u=l===void 0?td:l,d=n.elementContext,f=d===void 0?nd:d,p=n.altBoundary,m=p===void 0?!1:p,h=n.padding,g=h===void 0?0:h,_=Pd(typeof g==`number`?Fd(g,Qu):g),v=f===`popper`?rd:nd,y=e.rects.popper,b=e.elements[m?v:f],x=df(ld(b)?b:b.contextElement||Td(e.elements.popper),c,u,o),S=bd(e.elements.reference),C=ff({reference:S,element:y,strategy:`absolute`,placement:i}),w=sf(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}function mf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?ad:c,u=Bd(r),d=u?s?id:id.filter(function(e){return Bd(e)===u}):Qu,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=pf(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[hd(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function hf(e){if(hd(e)===`auto`)return[];var t=Xd(e);return[Qd(e),t,Qd(t)]}function gf(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!0:o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,_=hd(g)===g,v=c||(_||!m?[Xd(g)]:hf(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(hd(n)===`auto`?mf(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T=0,ee=k?`width`:`height`,A=pf(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),j=k?O?Yu:Xu:O?Ju:`top`;b[ee]>x[ee]&&(j=Xd(j));var te=Xd(j),ne=[];if(a&&ne.push(A[D]<=0),s&&ne.push(A[j]<=0,A[te]<=0),ne.every(function(e){return e})){w=E,C=!1;break}S.set(E,ne)}if(C)for(var re=m?3:1,M=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},N=re;N>0&&M(N)!==`break`;N--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var _f={name:`flip`,enabled:!0,phase:`main`,fn:gf,requiresIfExists:[`offset`],data:{_skip:!1}};function vf(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function yf(e){return[`top`,Yu,Ju,Xu].some(function(t){return e[t]>=0})}function bf(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=pf(t,{elementContext:`reference`}),s=pf(t,{altBoundary:!0}),c=vf(o,r),l=vf(s,i,a),u=yf(c),d=yf(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var xf={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:bf};function Sf(e,t,n){var r=hd(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function Cf(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=ad.reduce(function(e,n){return e[n]=Sf(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var wf={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:Cf};function Tf(e){var t=e.state,n=e.name;t.modifiersData[n]=ff({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var Ef={name:`popperOffsets`,enabled:!0,phase:`read`,fn:Tf,data:{}};function Df(e){return e===`x`?`y`:`x`}function Of(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!1:o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,m=n.tetherOffset,h=m===void 0?0:m,g=pf(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=hd(t.placement),v=Bd(t.placement),y=!v,b=Ad(_),x=Df(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:Xu,ee=b===`y`?Ju:Yu,A=b===`y`?`height`:`width`,j=S[b],te=j+g[k],ne=j-g[ee],re=p?-w[A]/2:0,M=v===`start`?C[A]:w[A],N=v===`start`?-w[A]:-C[A],ie=t.elements.arrow,ae=p&&ie?xd(ie):{width:0,height:0},oe=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Nd(),P=oe[k],F=oe[ee],I=jd(0,C[A],ae[A]),se=y?C[A]/2-re-I-P-E.mainAxis:M-I-P-E.mainAxis,ce=y?-C[A]/2+re+I+F+E.mainAxis:N+I+F+E.mainAxis,le=t.elements.arrow&&kd(t.elements.arrow),ue=le?b===`y`?le.clientTop||0:le.clientLeft||0:0,de=D?.[b]??0,fe=j+se-de-ue,pe=j+ce-de,me=jd(p?_d(te,fe):te,j,p?gd(ne,pe):ne);S[b]=me,O[b]=me-j}if(s){var he=b===`x`?`top`:Xu,ge=b===`x`?Ju:Yu,_e=S[x],L=x===`y`?`height`:`width`,ve=_e+g[he],R=_e-g[ge],ye=[`top`,Xu].indexOf(_)!==-1,be=D?.[x]??0,xe=ye?ve:_e-C[L]-w[L]-be+E.altAxis,Se=ye?_e+C[L]+w[L]-be-E.altAxis:R,Ce=p&&ye?Md(xe,_e,Se):jd(p?xe:ve,_e,p?Se:R);S[x]=Ce,O[x]=Ce-_e}t.modifiersData[r]=O}}var kf={name:`preventOverflow`,enabled:!0,phase:`main`,fn:Of,requiresIfExists:[`offset`]};function Af(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function jf(e){return e===cd(e)||!ud(e)?$d(e):Af(e)}function Mf(e){var t=e.getBoundingClientRect(),n=vd(t.width)/e.offsetWidth||1,r=vd(t.height)/e.offsetHeight||1;return n!==1||r!==1}function Nf(e,t,n){n===void 0&&(n=!1);var r=ud(t),i=ud(t)&&Mf(t),a=Td(t),o=bd(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((sd(t)!==`body`||rf(a))&&(s=jf(t)),ud(t)?(c=bd(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=ef(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function Pf(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function Ff(e){var t=Pf(e);return od.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function If(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function Lf(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var Rf={placement:`bottom`,modifiers:[],strategy:`absolute`};function zf(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function Bf(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?Rf:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},Rf,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:ld(e)?of(e):e.contextElement?of(e.contextElement):[],popper:of(t)};var s=Ff(Lf([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(zf(t,n)){i.rects={reference:Nf(t,kd(n),i.options.strategy===`fixed`),popper:xd(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r{i||o(Wf(r)||document.body)},[r,i]),Wa(()=>{if(a&&!i)return kc(t,a),()=>{kc(t,null)}},[t,a,i]),i){if(z.isValidElement(n)){let e={ref:s};return z.cloneElement(n,e)}return n}return a&&Kc.createPortal(n,a)});function Kf(e){return U(`MuiPopper`,e)}W(`MuiPopper`,[`root`]);function qf(e,t){if(t===`ltr`)return e;switch(e){case`bottom-end`:return`bottom-start`;case`bottom-start`:return`bottom-end`;case`top-end`:return`top-start`;case`top-start`:return`top-end`;default:return e}}function Jf(e){return typeof e==`function`?e():e}function Yf(e){return e.nodeType!==void 0}var Xf=e=>{let{classes:t}=e;return q({root:[`root`]},Kf,t)},Zf={},Qf=z.forwardRef(function(e,t){let{anchorEl:n,children:r,direction:i,disablePortal:a,modifiers:o,open:s,placement:c,popperOptions:l,popperRef:u,slotProps:d={},slots:f={},TransitionProps:p,ownerState:m,...h}=e,g=z.useRef(null),_=Ic(g,t),v=z.useRef(null),y=Ic(v,u),b=z.useRef(y);Wa(()=>{b.current=y},[y]),z.useImperativeHandle(u,()=>v.current,[]);let x=qf(c,i),[S,C]=z.useState(x),[w,T]=z.useState(Jf(n));z.useEffect(()=>{v.current&&v.current.forceUpdate()}),z.useEffect(()=>{n&&T(Jf(n))},[n]),Wa(()=>{if(!w||!s)return;let e=e=>{C(e.placement)},t=[{name:`preventOverflow`,options:{altBoundary:a}},{name:`flip`,options:{altBoundary:a}},{name:`onUpdate`,enabled:!0,phase:`afterWrite`,fn:({state:t})=>{e(t)}}];o!=null&&(t=t.concat(o)),l&&l.modifiers!=null&&(t=t.concat(l.modifiers));let n=Vf(w,g.current,{placement:x,...l,modifiers:t});return b.current(n),()=>{n.destroy(),b.current(null)}},[w,a,o,s,l,x]);let E={placement:S};p!==null&&(E.TransitionProps=p);let D=Xf(e),O=f.root??`div`;return(0,B.jsx)(O,{...Hf({elementType:O,externalSlotProps:d.root,externalForwardedProps:h,additionalProps:{role:`tooltip`,ref:_},ownerState:e,className:D.root}),children:typeof r==`function`?r(E):r})}),$f=Y(z.forwardRef(function(e,t){let{anchorEl:n,children:r,container:i,direction:a=`ltr`,disablePortal:o=!1,keepMounted:s=!1,modifiers:c,open:l,placement:u=`bottom`,popperOptions:d=Zf,popperRef:f,style:p,transition:m=!1,slotProps:h={},slots:g={},..._}=e,[v,y]=z.useState(!0),b=()=>{y(!1)},x=()=>{y(!0)};if(!s&&!l&&(!m||v))return null;let S;if(i)S=i;else if(n){let e=Jf(n);S=e&&Yf(e)?Tc(e).body:Tc(null).body}let C=!l&&s&&(!m||v)?`none`:void 0,w=m?{in:l,onEnter:b,onExited:x}:void 0;return(0,B.jsx)(Gf,{disablePortal:o,container:S,children:(0,B.jsx)(Qf,{anchorEl:n,direction:a,disablePortal:o,modifiers:c,ref:t,open:m?!v:l,placement:u,popperOptions:d,popperRef:f,slotProps:h,slots:g,..._,style:{position:`fixed`,top:0,left:0,display:C,...p},TransitionProps:w,children:r})})}),{name:`MuiPopper`,slot:`Root`})({}),ep=z.forwardRef(function(e,t){let n=co(),{anchorEl:r,component:i,container:a,disablePortal:o,keepMounted:s,modifiers:c,open:l,placement:u,popperOptions:d,popperRef:f,transition:p,slots:m,slotProps:h,...g}=mc({props:e,name:`MuiPopper`}),_={anchorEl:r,container:a,disablePortal:o,keepMounted:s,modifiers:c,open:l,placement:u,popperOptions:d,popperRef:f,transition:p,...g};return(0,B.jsx)($f,{as:i,direction:n?`rtl`:`ltr`,slots:m,slotProps:h,..._,ref:t})});function tp(e){return U(`MuiListSubheader`,e)}W(`MuiListSubheader`,[`root`,`colorPrimary`,`colorInherit`,`gutters`,`inset`,`sticky`]);var np=e=>{let{classes:t,color:n,disableGutters:r,inset:i,disableSticky:a}=e;return q({root:[`root`,n!==`default`&&`color${X(n)}`,!r&&`gutters`,i&&`inset`,!a&&`sticky`]},tp,t)},rp=Y(`li`,{name:`MuiListSubheader`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.color!==`default`&&t[`color${X(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})(pc(({theme:e})=>({boxSizing:`border-box`,lineHeight:`48px`,listStyle:`none`,color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14),variants:[{props:{color:`primary`},style:{color:(e.vars||e).palette.primary.main}},{props:{color:`inherit`},style:{color:`inherit`}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:72}},{props:({ownerState:e})=>!e.disableSticky,style:{position:`sticky`,top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper}}]}))),ip=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiListSubheader`}),{className:r,color:i=`default`,component:a=`li`,disableGutters:o=!1,disableSticky:s=!1,inset:c=!1,...l}=n,u={...n,color:i,component:a,disableGutters:o,disableSticky:s,inset:c};return(0,B.jsx)(rp,{as:a,className:H(np(u).root,r),ref:t,ownerState:u,...l})}),ap=yc((0,B.jsx)(`path`,{d:`M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z`}),`Cancel`);function op(e){return U(`MuiChip`,e)}var sp=W(`MuiChip`,[`root`,`sizeSmall`,`sizeMedium`,`colorDefault`,`colorError`,`colorInfo`,`colorPrimary`,`colorSecondary`,`colorSuccess`,`colorWarning`,`disabled`,`clickable`,`deletable`,`outlined`,`filled`,`avatar`,`icon`,`label`,`deleteIcon`,`focusVisible`]),cp=e=>{let{classes:t,disabled:n,size:r,color:i,onDelete:a,clickable:o,variant:s}=e;return q({root:[`root`,s,n&&`disabled`,`size${X(r)}`,`color${X(i)}`,o&&`clickable`,a&&`deletable`],label:[`label`],avatar:[`avatar`],icon:[`icon`],deleteIcon:[`deleteIcon`]},op,t)},lp=Y(`div`,{name:`MuiChip`,slot:`Root`,shouldForwardProp:e=>lc(e)&&e!==`focusableWhenDisabled`&&e!==`skipFocusWhenDisabled`,overridesResolver:(e,t)=>{let{ownerState:n}=e,{color:r,clickable:i,onDelete:a,size:o,variant:s}=n;return[{[`& .${sp.avatar}`]:t.avatar},{[`& .${sp.icon}`]:t.icon},{[`& .${sp.deleteIcon}`]:t.deleteIcon},t.root,t[`size${X(o)}`],t[`color${X(r)}`],i&&t.clickable,a&&t.deletable,t[s]]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`?e.palette.grey[700]:e.palette.grey[300];return{maxWidth:`100%`,fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:`inline-flex`,alignItems:`center`,justifyContent:`center`,height:32,lineHeight:1.5,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:32/2,whiteSpace:`nowrap`,transition:e.transitions.create([`background-color`,`box-shadow`]),cursor:`unset`,outline:0,textDecoration:`none`,border:0,padding:0,verticalAlign:`middle`,boxSizing:`border-box`,[`&.${sp.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:`none`},[`& .${sp.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:t,fontSize:e.typography.pxToRem(12)},[`& .${sp.icon}`]:{marginLeft:5,marginRight:-6},[`& .${sp.deleteIcon}`]:{WebkitTapHighlightColor:`transparent`,color:e.alpha((e.vars||e).palette.text.primary,.26),fontSize:22,cursor:`pointer`,margin:`0 5px 0 -6px`,"&:hover":{color:e.alpha((e.vars||e).palette.text.primary,.4)}},variants:[{props:{color:`primary`},style:{[`& .${sp.avatar}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark}}},{props:{color:`secondary`},style:{[`& .${sp.avatar}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark}}},{props:{size:`small`},style:{height:24,[`& .${sp.avatar}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${sp.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${sp.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(e.palette).filter($l([`contrastText`])).map(([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main,color:(e.vars||e).palette[t].contrastText,[`& .${sp.deleteIcon}`]:{color:e.alpha((e.vars||e).palette[t].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[t].contrastText}}}})),{props:e=>e.iconColor===e.color,style:{[`& .${sp.icon}`]:{color:e.vars?e.vars.palette.Chip.defaultIconColor:t}}},{props:e=>e.iconColor===e.color&&e.color!==`default`,style:{[`& .${sp.icon}`]:{color:`inherit`}}},{props:{onDelete:!0},style:{[`&.${sp.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}}},...Object.entries(e.palette).filter($l([`dark`])).map(([t])=>({props:{color:t,onDelete:!0},style:{[`&.${sp.focusVisible}`]:{background:(e.vars||e).palette[t].dark}}})),{props:{clickable:!0},style:{userSelect:`none`,WebkitTapHighlightColor:`transparent`,cursor:`pointer`,"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`)},[`&.${sp.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)},"&:active":{boxShadow:(e.vars||e).shadows[1]}}},...Object.entries(e.palette).filter($l([`dark`])).map(([t])=>({props:{color:t,clickable:!0},style:{[`&:hover, &.${sp.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t].dark}}})),{props:{variant:`outlined`},style:{backgroundColor:`transparent`,border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${e.palette.mode===`light`?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${sp.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${sp.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${sp.avatar}`]:{marginLeft:4},[`& .${sp.icon}`]:{marginLeft:4},[`& .${sp.deleteIcon}`]:{marginRight:5}}},{props:{size:`small`,variant:`outlined`},style:{[`& .${sp.avatar}`]:{marginLeft:2},[`& .${sp.icon}`]:{marginLeft:2},[`& .${sp.deleteIcon}`]:{marginRight:3}}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{variant:`outlined`,color:t},style:{color:(e.vars||e).palette[t].main,border:`1px solid ${e.alpha((e.vars||e).palette[t].main,.7)}`,[`&.${sp.clickable}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)},[`&.${sp.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.focusOpacity)},[`& .${sp.deleteIcon}`]:{color:e.alpha((e.vars||e).palette[t].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[t].main}}}}))]}})),up=Y(`span`,{name:`MuiChip`,slot:`Label`})({overflow:`hidden`,textOverflow:`ellipsis`,paddingLeft:12,paddingRight:12,whiteSpace:`nowrap`,variants:[{props:{variant:`outlined`},style:{paddingLeft:11,paddingRight:11}},{props:{size:`small`},style:{paddingLeft:8,paddingRight:8}},{props:{size:`small`,variant:`outlined`},style:{paddingLeft:7,paddingRight:7}}]});function dp(e){return e.key===`Backspace`||e.key===`Delete`}var fp=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiChip`}),{avatar:r,className:i,clickable:a,color:o=`default`,component:s,deleteIcon:c,disabled:l=!1,icon:u,label:d,onClick:f,onDelete:p,onKeyDown:m,onKeyUp:h,size:g=`medium`,variant:_=`filled`,tabIndex:v,skipFocusWhenDisabled:y=!1,slots:b={},slotProps:x={},...S}=n,{nativeButton:C,...w}=S,T=Lc(z.useRef(null),t),E=e=>{e.stopPropagation(),p(e)},D=e=>{e.currentTarget===e.target&&dp(e)&&e.preventDefault(),m&&m(e)},O=e=>{e.currentTarget===e.target&&p&&dp(e)&&p(e),h&&h(e)},k=a!==!1&&f?!0:a,ee=k||p?Yl:s||`div`,A={...n,component:ee,disabled:l,size:g,color:o,iconColor:z.isValidElement(u)&&u.props.color||o,onDelete:!!p,clickable:k,variant:_},j=cp(A),te=ee===Yl?{component:s||`div`,internalNativeButton:!1,focusVisibleClassName:j.focusVisible,...p&&{disableRipple:!0},...C!==void 0&&{nativeButton:C}}:{},ne=null;p&&(ne=c&&z.isValidElement(c)?z.cloneElement(c,{className:H(c.props.className,j.deleteIcon),onClick:E}):(0,B.jsx)(ap,{className:j.deleteIcon,onClick:E}));let re=null;r&&z.isValidElement(r)&&(re=z.cloneElement(r,{className:H(j.avatar,r.props.className)}));let M=null;u&&z.isValidElement(u)&&(M=z.cloneElement(u,{className:H(j.icon,u.props.className)}));let N={slots:b,slotProps:x},[ie,ae]=Tl(`root`,{elementType:lp,externalForwardedProps:{...N,...w},ownerState:A,shouldForwardComponentProp:!0,ref:T,className:H(j.root,i),additionalProps:{disabled:k&&l?!0:void 0,tabIndex:y&&l?-1:v,...te},getSlotProps:e=>({...e,onClick:t=>{e.onClick?.(t),f?.(t)},onKeyDown:t=>{e.onKeyDown?.(t),D(t)},onKeyUp:t=>{e.onKeyUp?.(t),O(t)}})}),[oe,P]=Tl(`label`,{elementType:up,externalForwardedProps:N,ownerState:A,className:j.label});return(0,B.jsxs)(ie,{as:ee,...ae,children:[re||M,(0,B.jsx)(oe,{...P,children:d}),ne]})});function pp(e){return parseInt(e,10)||0}var mp={shadow:{visibility:`hidden`,position:`absolute`,overflow:`hidden`,height:0,top:0,left:0,transform:`translateZ(0)`}};function hp(e){for(let t in e)return!1;return!0}function gp(e){return hp(e)||e.outerHeightStyle===0&&!e.overflowing}var _p=z.forwardRef(function(e,t){let{onChange:n,maxRows:r,minRows:i=1,style:a,value:o,...s}=e,{current:c}=z.useRef(o!=null),l=z.useRef(null),u=Ic(t,l),d=z.useRef(null),f=z.useRef(null),p=z.useCallback(()=>{let t=l.current,n=f.current;if(!t||!n)return;let a=Dc(t).getComputedStyle(t);if(a.width===`0px`)return{outerHeightStyle:0,overflowing:!1};n.style.width=a.width,n.value=t.value||e.placeholder||`x`,n.value.slice(-1)===` +`&&(n.value+=` `);let o=a.boxSizing,s=pp(a.paddingBottom)+pp(a.paddingTop),c=pp(a.borderBottomWidth)+pp(a.borderTopWidth),u=n.scrollHeight;n.value=`x`;let d=n.scrollHeight,p=u;return i&&(p=Math.max(Number(i)*d,p)),r&&(p=Math.min(Number(r)*d,p)),p=Math.max(p,d),{outerHeightStyle:p+(o===`border-box`?s+c:0),overflowing:Math.abs(p-u)<=1}},[r,i,e.placeholder]),m=Pc(()=>{let e=l.current,t=p();if(!e||!t||gp(t))return!1;let n=t.outerHeightStyle;return d.current!=null&&d.current!==n}),h=z.useCallback(()=>{let e=l.current,t=p();if(!e||!t||gp(t))return;let n=t.outerHeightStyle;d.current!==n&&(d.current=n,e.style.height=`${n}px`),e.style.overflow=t.overflowing?`hidden`:``},[p]),g=z.useRef(-1);return Wa(()=>{let e=bc(h),t=l?.current;if(!t)return;let n=Dc(t);n.addEventListener(`resize`,e);let r;return typeof ResizeObserver<`u`&&(r=new ResizeObserver(()=>{m()&&(r.unobserve(t),cancelAnimationFrame(g.current),h(),g.current=requestAnimationFrame(()=>{r.observe(t)}))}),r.observe(t)),()=>{e.clear(),cancelAnimationFrame(g.current),n.removeEventListener(`resize`,e),r&&r.disconnect()}},[p,h,m]),Wa(()=>{h()}),(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(`textarea`,{value:o,onChange:e=>{c||h();let t=e.target,r=t.value.length,i=t.value.endsWith(` +`),a=t.selectionStart===r;i&&a&&t.setSelectionRange(r,r),n&&n(e)},ref:u,rows:i,style:a,...s}),(0,B.jsx)(`textarea`,{"aria-hidden":!0,className:e.className,readOnly:!0,ref:f,tabIndex:-1,style:{...mp.shadow,...a,paddingTop:0,paddingBottom:0}})]})});function vp({props:e,states:t,muiFormControl:n}){return t.reduce((t,r)=>(t[r]=e[r],n&&e[r]===void 0&&(t[r]=n[r]),t),{})}var yp=z.createContext(void 0);function bp(){return z.useContext(yp)}function xp(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Sp(e,t=!1){return e&&(xp(e.value)&&e.value!==``||t&&xp(e.defaultValue)&&e.defaultValue!==``)}function Cp(e){return e.startAdornment}function wp(e){return U(`MuiInputBase`,e)}var Tp=W(`MuiInputBase`,[`root`,`formControl`,`focused`,`disabled`,`adornedStart`,`adornedEnd`,`error`,`sizeSmall`,`multiline`,`colorSecondary`,`fullWidth`,`hiddenLabel`,`readOnly`,`input`,`inputTypeSearch`]),Ep,Dp=(e,t)=>{let{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size===`small`&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${X(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},Op=(e,t)=>{let{ownerState:n}=e;return[t.input,n.type===`search`&&t.inputTypeSearch]},kp=e=>{let{classes:t,color:n,disabled:r,error:i,endAdornment:a,focused:o,formControl:s,fullWidth:c,hiddenLabel:l,multiline:u,readOnly:d,size:f,startAdornment:p,type:m}=e;return q({root:[`root`,`color${X(n)}`,r&&`disabled`,i&&`error`,c&&`fullWidth`,o&&`focused`,s&&`formControl`,f&&f!==`medium`&&`size${X(f)}`,u&&`multiline`,p&&`adornedStart`,a&&`adornedEnd`,l&&`hiddenLabel`,d&&`readOnly`],input:[`input`,r&&`disabled`,m===`search`&&`inputTypeSearch`,d&&`readOnly`]},wp,t)},Ap=Y(`div`,{name:`MuiInputBase`,slot:`Root`,overridesResolver:Dp})(pc(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:`1.4375em`,boxSizing:`border-box`,position:`relative`,cursor:`text`,display:`inline-flex`,alignItems:`center`,[`&.${Tp.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:`default`},variants:[{props:({ownerState:e})=>e.multiline,style:{padding:`4px 0 5px`}},{props:({ownerState:e,size:t})=>e.multiline&&t===`small`,style:{paddingTop:1}},{props:({ownerState:e})=>e.fullWidth,style:{width:`100%`}}]}))),jp=Y(`input`,{name:`MuiInputBase`,slot:`Input`,overridesResolver:Op})(pc(({theme:e})=>{let t=e.palette.mode===`light`,n={color:`currentColor`,...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.shorter})},r={opacity:`0 !important`},i=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:`inherit`,letterSpacing:`inherit`,color:`currentColor`,padding:`4px 0 5px`,border:0,boxSizing:`content-box`,background:`none`,height:`1.4375em`,margin:0,WebkitTapHighlightColor:`transparent`,display:`block`,minWidth:0,width:`100%`,"&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:`none`},"&::-webkit-search-decoration":{WebkitAppearance:`none`},[`label[data-shrink=false] + .${Tp.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus::-ms-input-placeholder":i},[`&.${Tp.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:e})=>!e.disableInjectingGlobalStyles,style:{animationName:`mui-auto-fill-cancel`,animationDuration:`10ms`,"&:-webkit-autofill":{animationDuration:`5000s`,animationName:`mui-auto-fill`}}},{props:{size:`small`},style:{paddingTop:1}},{props:({ownerState:e})=>e.multiline,style:{height:`auto`,resize:`none`,padding:0,paddingTop:0}},{props:{type:`search`},style:{MozAppearance:`textfield`}}]}})),Mp=fc({"@keyframes mui-auto-fill":{from:{display:`block`}},"@keyframes mui-auto-fill-cancel":{from:{display:`block`}}}),Np=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiInputBase`}),{"aria-describedby":r,autoComplete:i,autoFocus:a,className:o,color:s,defaultValue:c,disabled:l,disableInjectingGlobalStyles:u,endAdornment:d,error:f,fullWidth:p=!1,id:m,inputComponent:h=`input`,inputProps:g={},inputRef:_,margin:v,maxRows:y,minRows:b,multiline:x=!1,name:S,onBlur:C,onChange:w,onClick:T,onFocus:E,onKeyDown:D,onKeyUp:O,placeholder:k,readOnly:ee,renderSuffix:A,rows:j,size:te,slotProps:ne={},slots:re={},startAdornment:M,type:N=`text`,value:ie,...ae}=n,oe=g.value==null?ie:g.value,{current:P}=z.useRef(oe!=null),F=z.useRef(),I=z.useCallback(e=>{},[]),se=Lc(F,_,g.ref,I),[ce,le]=z.useState(!1),ue=bp(),de=vp({props:n,muiFormControl:ue,states:[`color`,`disabled`,`error`,`hiddenLabel`,`size`,`required`,`filled`]});de.focused=ue?ue.focused:ce,z.useEffect(()=>{!ue&&l&&ce&&(le(!1),C&&C())},[ue,l,ce,C]);let fe=ue&&ue.onFilled,pe=ue&&ue.onEmpty,me=z.useCallback(e=>{Sp(e)?fe&&fe():pe&&pe()},[fe,pe]);Ac(()=>{P&&me({value:oe})},[oe,me,P]);let he=e=>{E&&E(e),g.onFocus&&g.onFocus(e),ue&&ue.onFocus?ue.onFocus(e):le(!0)},ge=e=>{C&&C(e),g.onBlur&&g.onBlur(e),ue&&ue.onBlur?ue.onBlur(e):le(!1)},_e=(e,...t)=>{if(!P){let t=e.target||F.current;if(t==null)throw Error(pt(1));me({value:t.value})}g.onChange&&g.onChange(e,...t),w&&w(e,...t)};z.useEffect(()=>{me(F.current)},[]);let L=e=>{F.current&&e.currentTarget===e.target&&F.current.focus(),T&&T(e)},ve=h,R=g;x&&ve===`input`&&(R=j?{type:void 0,minRows:j,maxRows:j,...R}:{type:void 0,maxRows:y,minRows:b,...R},ve=_p);let ye=e=>{me(e.animationName===`mui-auto-fill-cancel`?F.current:{value:`x`})};z.useEffect(()=>{ue&&ue.setAdornedStart(!!M)},[ue,M]);let be={...n,color:de.color||`primary`,disabled:de.disabled,endAdornment:d,error:de.error,focused:de.focused,formControl:ue,fullWidth:p,hiddenLabel:de.hiddenLabel,multiline:x,size:de.size,startAdornment:M,type:N},xe=kp(be),Se=re.root||Ap,Ce=ne.root||{},we=re.input||jp;return R={...R,...ne.input},(0,B.jsxs)(z.Fragment,{children:[!u&&typeof Mp==`function`&&(Ep||=(0,B.jsx)(Mp,{})),(0,B.jsxs)(Se,{...Ce,ref:t,onClick:L,...ae,...!yl(Se)&&{ownerState:{...be,...Ce.ownerState}},className:H(xe.root,Ce.className,o,ee&&`MuiInputBase-readOnly`),children:[M,(0,B.jsx)(yp.Provider,{value:null,children:(0,B.jsx)(we,{"aria-invalid":de.error,"aria-describedby":r,autoComplete:i,autoFocus:a,defaultValue:c,disabled:de.disabled,id:m,onAnimationStart:ye,name:S,placeholder:k,readOnly:ee,required:de.required,rows:j,value:oe,onKeyDown:D,onKeyUp:O,type:N,...R,...!yl(we)&&{as:ve,ownerState:{...be,...R.ownerState}},ref:se,className:H(xe.input,R.className,ee&&`MuiInputBase-readOnly`),onBlur:ge,onChange:_e,onFocus:he})}),d,A?A({...de,startAdornment:M}):null]})]})});function Pp(e){return U(`MuiInput`,e)}var Fp={...Tp,...W(`MuiInput`,[`root`,`underline`,`input`])};function Ip(e){return U(`MuiOutlinedInput`,e)}var Lp={...Tp,...W(`MuiOutlinedInput`,[`root`,`notchedOutline`,`input`])};function Rp(e){return U(`MuiFilledInput`,e)}var zp={...Tp,...W(`MuiFilledInput`,[`root`,`underline`,`input`,`adornedStart`,`adornedEnd`,`sizeSmall`,`multiline`,`hiddenLabel`])},Bp=yc((0,B.jsx)(`path`,{d:`M7 10l5 5 5-5z`}),`ArrowDropDown`);function Vp(e){return U(`MuiAutocomplete`,e)}var $=W(`MuiAutocomplete`,`root.expanded.fullWidth.focused.focusVisible.tag.tagSizeSmall.tagSizeMedium.hasPopupIcon.hasClearIcon.inputRoot.input.inputFocused.endAdornment.clearIndicator.popupIndicator.popupIndicatorOpen.popper.popperDisablePortal.paper.listbox.loading.noOptions.option.groupLabel.groupUl`.split(`.`)),Hp,Up,Wp=e=>{let{classes:t,disablePortal:n,expanded:r,focused:i,fullWidth:a,hasClearIcon:o,hasPopupIcon:s,inputFocused:c,popupOpen:l,size:u}=e;return q({root:[`root`,r&&`expanded`,i&&`focused`,a&&`fullWidth`,o&&`hasClearIcon`,s&&`hasPopupIcon`],inputRoot:[`inputRoot`],input:[`input`,c&&`inputFocused`],tag:[`tag`,`tagSize${X(u)}`],endAdornment:[`endAdornment`],clearIndicator:[`clearIndicator`],popupIndicator:[`popupIndicator`,l&&`popupIndicatorOpen`],popper:[`popper`,n&&`popperDisablePortal`],paper:[`paper`],listbox:[`listbox`],loading:[`loading`],noOptions:[`noOptions`],option:[`option`],groupLabel:[`groupLabel`],groupUl:[`groupUl`]},Vp,t)},Gp=Y(`div`,{name:`MuiAutocomplete`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e,{fullWidth:r,hasClearIcon:i,hasPopupIcon:a,inputFocused:o,size:s}=n;return[{[`& .${$.tag}`]:t.tag},{[`& .${$.tag}`]:t[`tagSize${X(s)}`]},{[`& .${$.inputRoot}`]:t.inputRoot},{[`& .${$.input}`]:t.input},{[`& .${$.input}`]:o&&t.inputFocused},t.root,r&&t.fullWidth,a&&t.hasPopupIcon,i&&t.hasClearIcon]}})({[`&.${$.focused} .${$.clearIndicator}`]:{visibility:`visible`},"@media (pointer: fine)":{[`&:hover .${$.clearIndicator}`]:{visibility:`visible`}},[`& .${$.tag}`]:{margin:3,maxWidth:`calc(100% - 6px)`},[`& .${$.inputRoot}`]:{[`.${$.hasPopupIcon}&, .${$.hasClearIcon}&`]:{paddingRight:30},[`.${$.hasPopupIcon}.${$.hasClearIcon}&`]:{paddingRight:56},[`& .${$.input}`]:{width:0,minWidth:30}},[`& .${Fp.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:`4px 4px 4px 0px`}},[`& .${Fp.root}.${Tp.sizeSmall}`]:{[`& .${Fp.input}`]:{padding:`2px 4px 3px 0`}},[`& .${Lp.root}`]:{padding:9,[`.${$.hasPopupIcon}&, .${$.hasClearIcon}&`]:{paddingRight:39},[`.${$.hasPopupIcon}.${$.hasClearIcon}&`]:{paddingRight:65},[`& .${$.input}`]:{padding:`7.5px 4px 7.5px 5px`},[`& .${$.endAdornment}`]:{right:9}},[`& .${Lp.root}.${Tp.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${$.input}`]:{padding:`2.5px 4px 2.5px 8px`}},[`& .${zp.root}`]:{paddingTop:19,paddingLeft:8,[`.${$.hasPopupIcon}&, .${$.hasClearIcon}&`]:{paddingRight:39},[`.${$.hasPopupIcon}.${$.hasClearIcon}&`]:{paddingRight:65},[`& .${zp.input}`]:{padding:`7px 4px`},[`& .${$.endAdornment}`]:{right:9}},[`& .${zp.root}.${Tp.sizeSmall}`]:{paddingBottom:1,[`& .${zp.input}`]:{padding:`2.5px 4px`}},[`& .${Tp.hiddenLabel}`]:{paddingTop:8},[`& .${zp.root}.${Tp.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${$.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${zp.root}.${Tp.hiddenLabel}.${Tp.sizeSmall}`]:{[`& .${$.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${$.input}`]:{flexGrow:1,textOverflow:`ellipsis`,opacity:0},variants:[{props:{fullWidth:!0},style:{width:`100%`}},{props:{size:`small`},style:{[`& .${$.tag}`]:{margin:2,maxWidth:`calc(100% - 4px)`}}},{props:{inputFocused:!0},style:{[`& .${$.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${$.inputRoot}`]:{flexWrap:`wrap`}}}]}),Kp=Y(`div`,{name:`MuiAutocomplete`,slot:`EndAdornment`})({position:`absolute`,right:0,top:`50%`,transform:`translate(0, -50%)`}),qp=Y(yu,{name:`MuiAutocomplete`,slot:`ClearIndicator`})({marginRight:-2,padding:4,visibility:`hidden`}),Jp=Y(yu,{name:`MuiAutocomplete`,slot:`PopupIndicator`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.popupIndicator,n.popupOpen&&t.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:`rotate(180deg)`}}]}),Yp=Y(ep,{name:`MuiAutocomplete`,slot:`Popper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${$.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})(pc(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:`absolute`}}]}))),Xp=Y(kl,{name:`MuiAutocomplete`,slot:`Paper`})(pc(({theme:e})=>({...e.typography.body1,overflow:`auto`}))),Zp=Y(`div`,{name:`MuiAutocomplete`,slot:`Loading`})(pc(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:`14px 16px`}))),Qp=Y(`div`,{name:`MuiAutocomplete`,slot:`NoOptions`})(pc(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:`14px 16px`}))),$p=Y(`ul`,{name:`MuiAutocomplete`,slot:`Listbox`})(pc(({theme:e})=>({listStyle:`none`,margin:0,padding:`8px 0`,maxHeight:`40vh`,overflow:`auto`,position:`relative`,[`& .${$.option}`]:{minHeight:48,display:`flex`,overflow:`hidden`,justifyContent:`flex-start`,alignItems:`center`,cursor:`pointer`,paddingTop:6,boxSizing:`border-box`,outline:`0`,WebkitTapHighlightColor:`transparent`,paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up(`sm`)]:{minHeight:`auto`},[`&.${$.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:`transparent`}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:`none`},[`&.${$.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${$.focused}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${$.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}}}}))),em=Y(ip,{name:`MuiAutocomplete`,slot:`GroupLabel`})(pc(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8}))),tm=Y(`ul`,{name:`MuiAutocomplete`,slot:`GroupUl`})({padding:0,[`& .${$.option}`]:{paddingLeft:24}}),nm=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiAutocomplete`}),{autoComplete:r=!1,autoHighlight:i=!1,autoSelect:a=!1,blurOnSelect:o=!1,className:s,clearIcon:c=Hp||=(0,B.jsx)(wu,{fontSize:`small`}),clearOnBlur:l=!n.freeSolo,clearOnEscape:u=!1,clearText:d=`Clear`,closeText:f=`Close`,defaultValue:p=n.multiple?[]:null,disableClearable:m=!1,disableCloseOnSelect:h=!1,disabled:g=!1,disabledItemsFocusable:_=!1,disableListWrap:v=!1,disablePortal:y=!1,filterOptions:b,filterSelectedOptions:x=!1,forcePopupIcon:S=`auto`,freeSolo:C=!1,fullWidth:w=!1,getLimitTagsText:T=e=>`+${e}`,getOptionDisabled:E,getOptionKey:D,getOptionLabel:O,isOptionEqualToValue:k,groupBy:ee,handleHomeEndKeys:A=!n.freeSolo,id:j,includeInputInList:te=!1,inputValue:ne,limitTags:re=-1,loading:M=!1,loadingText:N=`Loading…`,multiple:ie=!1,noOptionsText:ae=`No options`,onChange:oe,onClose:P,onHighlightChange:F,onInputChange:I,onOpen:se,open:ce,openOnFocus:le=!1,openText:ue=`Open`,options:de,popupIcon:fe=Up||=(0,B.jsx)(Bp,{}),readOnly:pe=!1,renderGroup:me,renderInput:he,renderOption:ge,renderValue:_e,selectOnFocus:L=!n.freeSolo,size:ve=`medium`,slots:R={},slotProps:ye={},value:be,...xe}=n,{getRootProps:Se,getInputProps:Ce,getInputLabelProps:we,getPopupIndicatorProps:Te,getClearProps:Ee,getItemProps:De,getListboxProps:Oe,getOptionProps:ke,value:Ae,dirty:je,expanded:Me,id:Ne,popupOpen:Pe,focused:Fe,focusedItem:Ie,anchorEl:Le,setAnchorEl:Re,inputValue:ze,groupedOptions:Be}=qu({...n,componentName:`Autocomplete`}),Ve=!m&&!g&&je&&!pe,He=(!C||S===!0)&&S!==!1,{onMouseDown:Ue}=Ce(),{ref:We,...Ge}=Oe(),Ke=O||(e=>e.label??e),qe={...n,disablePortal:y,expanded:Me,focused:Fe,fullWidth:w,getOptionLabel:Ke,hasClearIcon:Ve,hasPopupIcon:He,inputFocused:Ie===-1,popupOpen:Pe,size:ve},Je=Wp(qe),Ye={slots:R,slotProps:ye},[Xe,Ze]=Tl(`root`,{ref:t,className:[Je.root,s],elementType:Gp,externalForwardedProps:{...Ye,...xe},getSlotProps:Se,ownerState:qe}),[Qe,$e]=Tl(`listbox`,{elementType:$p,externalForwardedProps:Ye,ownerState:qe,className:Je.listbox,additionalProps:Ge,ref:We}),[et,tt]=Tl(`paper`,{elementType:kl,externalForwardedProps:Ye,ownerState:qe,className:Je.paper}),[nt,rt]=Tl(`popper`,{elementType:ep,externalForwardedProps:Ye,ownerState:qe,className:Je.popper,additionalProps:{disablePortal:y,style:{width:Le?Le.clientWidth:null},role:`presentation`,anchorEl:Le,open:Pe}}),[it,at]=Tl(`clearIndicator`,{elementType:qp,externalForwardedProps:Ye,ownerState:qe,className:Je.clearIndicator,shouldForwardComponentProp:!0,additionalProps:{...Ee(),"aria-label":d,title:d}}),[ot,st]=Tl(`popupIndicator`,{elementType:Jp,externalForwardedProps:Ye,ownerState:qe,className:Je.popupIndicator,shouldForwardComponentProp:!0,additionalProps:{...Te(),disabled:g,"aria-label":Pe?f:ue,title:Pe?f:ue}}),ct,lt=e=>({className:Je.tag,disabled:g,...De(e)});if(ie?Ae.length>0&&(ct=_e?_e(Ae,lt,qe):Ae.map((e,t)=>{let{key:n,...r}=lt({index:t});return(0,B.jsx)(fp,{label:Ke(e),size:ve,...r,...Ye.slotProps.chip},n)})):_e&&Ae!=null&&(ct=_e(Ae,lt,qe)),re>-1&&Array.isArray(ct)){let e=ct.length-re;!Fe&&e>0&&(ct=ct.splice(0,re),ct.push((0,B.jsx)(`span`,{className:Je.tag,children:T(e)},ct.length)))}let ut=me||(e=>(0,B.jsxs)(`li`,{children:[(0,B.jsx)(em,{className:Je.groupLabel,ownerState:qe,component:`div`,children:e.group}),(0,B.jsx)(tm,{className:Je.groupUl,ownerState:qe,children:e.children})]},e.key)),dt=ge||((e,t)=>{let{key:n,...r}=e;return(0,B.jsx)(`li`,{...r,children:Ke(t)},n)}),ft=(e,t)=>{let n=ke({option:e,index:t});return dt({...n,className:Je.option},e,{selected:n[`aria-selected`],index:t,inputValue:ze},qe)};return(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(Xe,{...Ze,children:he({id:Ne,disabled:g,fullWidth:n.fullWidth??!0,size:ve===`small`?`small`:void 0,slotProps:{inputLabel:we(),input:{ref:Re,className:Je.inputRoot,startAdornment:ct,onMouseDown:e=>{e.target===e.currentTarget&&Ue(e)},...(Ve||He)&&{endAdornment:(0,B.jsxs)(Kp,{className:Je.endAdornment,ownerState:qe,children:[Ve?(0,B.jsx)(it,{...at,children:c}):null,He?(0,B.jsx)(ot,{...st,children:fe}):null]})}},htmlInput:{className:Je.input,disabled:g,readOnly:pe,...Ce()}}})}),Le?(0,B.jsx)(Yp,{as:nt,...rt,children:(0,B.jsxs)(Xp,{as:et,...tt,children:[M&&Be.length===0?(0,B.jsx)(Zp,{className:Je.loading,ownerState:qe,children:N}):null,Be.length===0&&!C&&!M?(0,B.jsx)(Qp,{className:Je.noOptions,ownerState:qe,role:`presentation`,onMouseDown:e=>{e.preventDefault()},children:ae}):null,Be.length>0?(0,B.jsx)(Qe,{...$e,children:Be.map((e,t)=>ee?ut({key:e.key,group:e.group,children:e.options.map((t,n)=>ft(t,e.index+n))}):ft(e,t))}):null]})}):null]})}),rm={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0}},im={opacity:0,visibility:`hidden`},am=z.forwardRef(function(e,t){let n=sc(),r={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:i,appear:a=!0,children:o,easing:s,in:c,onEnter:l,onEntered:u,onEntering:d,onExit:f,onExited:p,onExiting:m,style:h,timeout:g=r,..._}=e,v=z.useRef(null),y=Lc(v,Uf(o),t),b=gl(v,d),x=gl(v,(e,t)=>{hl(e);let r=vl({style:h,timeout:g,easing:s},{mode:`enter`});e.style.transition=n.transitions.create(`opacity`,r),l&&l(e,t)}),S=gl(v,u),C=gl(v,m),w=gl(v,e=>{let t=vl({style:h,timeout:g,easing:s},{mode:`exit`});e.style.transition=n.transitions.create(`opacity`,t),f&&f(e)}),T=gl(v,e=>{e.style.transition=``,p&&p(e)});return(0,B.jsx)(Qc,{appear:a,in:c,nodeRef:v,onEnter:x,onEntered:S,onEntering:b,onExit:w,onExited:T,onExiting:C,addEndListener:e=>{i&&i(v.current,e)},timeout:g,..._,children:(e,{ownerState:t,...n})=>{let r=_l(e,c,rm,im,h,o.props.style);return z.cloneElement(o,{style:r,ref:y,...n})}})});function om(e){return U(`MuiBackdrop`,e)}W(`MuiBackdrop`,[`root`,`invisible`]);var sm=e=>{let{classes:t,invisible:n}=e;return q({root:[`root`,n&&`invisible`]},om,t)},cm=Y(`div`,{name:`MuiBackdrop`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:`fixed`,display:`flex`,alignItems:`center`,justifyContent:`center`,right:0,bottom:0,top:0,left:0,backgroundColor:`rgba(0, 0, 0, 0.5)`,WebkitTapHighlightColor:`transparent`,variants:[{props:{invisible:!0},style:{backgroundColor:`transparent`}}]}),lm=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiBackdrop`}),{children:r,className:i,component:a=`div`,invisible:o=!1,open:s,slotProps:c={},slots:l={},transitionDuration:u,...d}=n,f={...n,component:a,invisible:o},p=sm(f),m={component:a,slots:l,slotProps:c},[h,g]=Tl(`root`,{elementType:cm,externalForwardedProps:m,className:H(p.root,i),ownerState:f}),[_,v]=Tl(`transition`,{elementType:am,externalForwardedProps:m,ownerState:f});return(0,B.jsx)(_,{in:s,timeout:u,...d,...v,children:(0,B.jsx)(h,{...g,ref:t,children:r})})}),um=W(`MuiBox`,[`root`]),dm=Da({themeId:mt,defaultTheme:ac(),defaultClassName:um.root,generateClassName:Ta.generate});function fm(e){return U(`MuiButton`,e)}var pm=W(`MuiButton`,`root.text.outlined.contained.disableElevation.focusVisible.disabled.colorInherit.colorPrimary.colorSecondary.colorSuccess.colorError.colorInfo.colorWarning.sizeMedium.sizeSmall.sizeLarge.fullWidth.startIcon.endIcon.icon.loading.loadingWrapper.loadingIconPlaceholder.loadingIndicator.loadingPositionCenter.loadingPositionStart.loadingPositionEnd`.split(`.`)),mm=z.createContext({}),hm=z.createContext(void 0),gm=e=>{let{color:t,disableElevation:n,fullWidth:r,size:i,variant:a,loading:o,loadingPosition:s,classes:c}=e,l=q({root:[`root`,o&&`loading`,a,`size${X(i)}`,`color${X(t)}`,n&&`disableElevation`,r&&`fullWidth`,o&&`loadingPosition${X(s)}`],startIcon:[`icon`,`startIcon`],endIcon:[`icon`,`endIcon`],loadingIndicator:[`loadingIndicator`],loadingWrapper:[`loadingWrapper`]},fm,c);return{...c,...l}},_m=[{props:{size:`small`},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:`medium`},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:`large`},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],vm=Y(Yl,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t[`size${X(n.size)}`],n.color===`inherit`&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,n.loading&&t.loading]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode===`light`?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:`6px 16px`,border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`,`color`],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:`none`},[`&.${pm.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:`contained`},style:{color:`var(--variant-containedColor)`,backgroundColor:`var(--variant-containedBg)`,boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${pm.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${pm.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:`outlined`},style:{padding:`5px 15px`,border:`1px solid currentColor`,borderColor:`var(--variant-outlinedBorder, currentColor)`,backgroundColor:`var(--variant-outlinedBg)`,color:`var(--variant-outlinedColor)`,[`&.${pm.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:`text`},style:{padding:`6px 8px`,color:`var(--variant-textColor)`,backgroundColor:`var(--variant-textBg)`}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{"--variant-textColor":(e.vars||e).palette[t].main,"--variant-outlinedColor":(e.vars||e).palette[t].main,"--variant-outlinedBorder":e.alpha((e.vars||e).palette[t].main,.5),"--variant-containedColor":(e.vars||e).palette[t].contrastText,"--variant-containedBg":(e.vars||e).palette[t].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[t].dark,"--variant-textBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[t].main,"--variant-outlinedBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}}})),{props:{color:`inherit`},style:{color:`inherit`,borderColor:`currentColor`,"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity)}}}},{props:{size:`small`,variant:`text`},style:{padding:`4px 5px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`text`},style:{padding:`8px 11px`,fontSize:e.typography.pxToRem(15)}},{props:{size:`small`,variant:`outlined`},style:{padding:`3px 9px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`outlined`},style:{padding:`7px 21px`,fontSize:e.typography.pxToRem(15)}},{props:{size:`small`,variant:`contained`},style:{padding:`4px 10px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`contained`},style:{padding:`8px 22px`,fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:`none`,"&:hover":{boxShadow:`none`},[`&.${pm.focusVisible}`]:{boxShadow:`none`},"&:active":{boxShadow:`none`},[`&.${pm.disabled}`]:{boxShadow:`none`}}},{props:{fullWidth:!0},style:{width:`100%`}},{props:{loadingPosition:`center`},style:{transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`],{duration:e.transitions.duration.short}),[`&.${pm.loading}`]:{color:`transparent`}}}]}})),ym=Y(`span`,{name:`MuiButton`,slot:`StartIcon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.startIcon,n.loading&&t.startIconLoadingStart]}})(({theme:e})=>({display:`inherit`,marginRight:8,marginLeft:-4,variants:[{props:{size:`small`},style:{marginLeft:-2}},{props:{loadingPosition:`start`,loading:!0},style:{transition:e.transitions.create([`opacity`],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:`start`,loading:!0,fullWidth:!0},style:{marginRight:-8}},..._m]})),bm=Y(`span`,{name:`MuiButton`,slot:`EndIcon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.endIcon,n.loading&&t.endIconLoadingEnd]}})(({theme:e})=>({display:`inherit`,marginRight:-4,marginLeft:8,variants:[{props:{size:`small`},style:{marginRight:-2}},{props:{loadingPosition:`end`,loading:!0},style:{transition:e.transitions.create([`opacity`],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:`end`,loading:!0,fullWidth:!0},style:{marginLeft:-8}},..._m]})),xm=Y(`span`,{name:`MuiButton`,slot:`LoadingIndicator`})(({theme:e})=>({display:`none`,position:`absolute`,visibility:`visible`,variants:[{props:{loading:!0},style:{display:`flex`}},{props:{loadingPosition:`start`},style:{left:14}},{props:{loadingPosition:`start`,size:`small`},style:{left:10}},{props:{variant:`text`,loadingPosition:`start`},style:{left:6}},{props:{loadingPosition:`center`},style:{left:`50%`,transform:`translate(-50%)`,color:(e.vars||e).palette.action.disabled}},{props:{loadingPosition:`end`},style:{right:14}},{props:{loadingPosition:`end`,size:`small`},style:{right:10}},{props:{variant:`text`,loadingPosition:`end`},style:{right:6}},{props:{loadingPosition:`start`,fullWidth:!0},style:{position:`relative`,left:-10}},{props:{loadingPosition:`end`,fullWidth:!0},style:{position:`relative`,right:-10}}]})),Sm=Y(`span`,{name:`MuiButton`,slot:`LoadingIconPlaceholder`})({display:`inline-block`,width:`1em`,height:`1em`}),Cm=z.forwardRef(function(e,t){let n=z.useContext(mm),r=z.useContext(hm),i=mc({props:Va(n,e),name:`MuiButton`}),{children:a,color:o=`primary`,component:s=`button`,className:c,disabled:l=!1,disableElevation:u=!1,disableFocusRipple:d=!1,endIcon:f,focusVisibleClassName:p,fullWidth:m=!1,id:h,loading:g=null,loadingIndicator:_,loadingPosition:v=`center`,size:y=`medium`,startIcon:b,type:x,variant:S=`text`,...C}=i,w=jc(h),T=_??(0,B.jsx)(pu,{"aria-labelledby":w,color:`inherit`,size:16}),E={...i,color:o,component:s,disabled:l,disableElevation:u,disableFocusRipple:d,fullWidth:m,loading:g,loadingIndicator:T,loadingPosition:v,size:y,type:x,variant:S},D=gm(E),O=(b||g&&v===`start`)&&(0,B.jsx)(ym,{className:D.startIcon,ownerState:E,children:b||(0,B.jsx)(Sm,{className:D.loadingIconPlaceholder,ownerState:E})}),k=(f||g&&v===`end`)&&(0,B.jsx)(bm,{className:D.endIcon,ownerState:E,children:f||(0,B.jsx)(Sm,{className:D.loadingIconPlaceholder,ownerState:E})}),ee=r||``,A=typeof g==`boolean`?(0,B.jsx)(`span`,{className:D.loadingWrapper,style:{display:`contents`},children:g&&(0,B.jsx)(xm,{className:D.loadingIndicator,ownerState:E,children:T})}):null;return(0,B.jsxs)(vm,{ownerState:E,className:H(n.className,D.root,c,ee),component:s,disabled:l||g,focusRipple:!d,focusVisibleClassName:H(D.focusVisible,p),ref:t,internalNativeButton:!0,type:x,id:g?w:h,...C,classes:D,children:[O,v!==`end`&&A,a,v===`end`&&A,k]})});function wm(e){return U(`MuiCard`,e)}W(`MuiCard`,[`root`]);var Tm=e=>{let{classes:t}=e;return q({root:[`root`]},wm,t)},Em=Y(kl,{name:`MuiCard`,slot:`Root`})({overflow:`hidden`}),Dm=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiCard`}),{className:r,raised:i=!1,...a}=n,o={...n,raised:i};return(0,B.jsx)(Em,{className:H(Tm(o).root,r),elevation:i?8:void 0,ref:t,ownerState:o,...a})});function Om(e){return U(`MuiCardContent`,e)}W(`MuiCardContent`,[`root`]);var km=e=>{let{classes:t}=e;return q({root:[`root`]},Om,t)},Am=Y(`div`,{name:`MuiCardContent`,slot:`Root`})({padding:16,"&:last-child":{paddingBottom:24}}),jm=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiCardContent`}),{className:r,component:i=`div`,...a}=n,o={...n,component:i};return(0,B.jsx)(Am,{as:i,className:H(km(o).root,r),ownerState:o,ref:t,...a})}),Mm=Ao({createStyledComponent:Y(`div`,{name:`MuiContainer`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${X(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>mc({props:e,name:`MuiContainer`})}),Nm=typeof fc({})==`function`,Pm=(e,t)=>({WebkitFontSmoothing:`antialiased`,MozOsxFontSmoothing:`grayscale`,boxSizing:`border-box`,WebkitTextSizeAdjust:`100%`,...t&&!e.vars&&{colorScheme:e.palette.mode}}),Fm=e=>({color:(e.vars||e).palette.text.primary,...e.typography.body1,backgroundColor:(e.vars||e).palette.background.default,"@media print":{backgroundColor:(e.vars||e).palette.common.white}}),Im=(e,t=!1)=>{let n={};t&&e.colorSchemes&&typeof e.getColorSchemeSelector==`function`&&Object.entries(e.colorSchemes).forEach(([t,r])=>{let i=e.getColorSchemeSelector(t);i.startsWith(`@`)?n[i]={":root":{colorScheme:r.palette?.mode}}:n[i.replace(/\s*&/,``)]={colorScheme:r.palette?.mode}});let r={html:Pm(e,t),"*, *::before, *::after":{boxSizing:`inherit`},"strong, b":{fontWeight:e.typography.fontWeightBold},body:{margin:0,...Fm(e),"&::backdrop":{backgroundColor:(e.vars||e).palette.background.default}},...n},i=e.components?.MuiCssBaseline?.styleOverrides;return i&&(r=[r,i]),r},Lm=`mui-ecs`,Rm=e=>{let t=Im(e,!1),n=Array.isArray(t)?t[0]:t;return!e.vars&&n&&(n.html[`:root:has(${Lm})`]={colorScheme:e.palette.mode}),e.colorSchemes&&Object.entries(e.colorSchemes).forEach(([t,r])=>{let i=e.getColorSchemeSelector(t);i.startsWith(`@`)?n[i]={[`:root:not(:has(.${Lm}))`]:{colorScheme:r.palette?.mode}}:n[i.replace(/\s*&/,``)]={[`&:not(:has(.${Lm}))`]:{colorScheme:r.palette?.mode}}}),t},zm=fc(Nm?({theme:e,enableColorScheme:t})=>Im(e,t):({theme:e})=>Rm(e));function Bm(e){let{children:t,enableColorScheme:n=!1}=mc({props:e,name:`MuiCssBaseline`});return(0,B.jsxs)(z.Fragment,{children:[Nm&&(0,B.jsx)(zm,{enableColorScheme:n}),!Nm&&!n&&(0,B.jsx)(`span`,{className:Lm,style:{display:`none`}}),t]})}function Vm(e=window){let t=e.document.documentElement.clientWidth;return e.innerWidth-t}function Hm(e){let t=Tc(e);return t.body===e?Dc(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function Um(e,t){t?e.setAttribute(`aria-hidden`,`true`):e.removeAttribute(`aria-hidden`)}function Wm(e){return parseFloat(Dc(e).getComputedStyle(e).paddingRight)||0}function Gm(e){let t=[`TEMPLATE`,`SCRIPT`,`STYLE`,`LINK`,`MAP`,`META`,`NOSCRIPT`,`PICTURE`,`COL`,`COLGROUP`,`PARAM`,`SLOT`,`SOURCE`,`TRACK`].includes(e.tagName),n=e.tagName===`INPUT`&&e.getAttribute(`type`)===`hidden`;return t||n}function Km(e,t,n,r,i){let a=[t,n,...r];[].forEach.call(e.children,e=>{let t=!a.includes(e),n=!Gm(e);t&&n&&Um(e,i)})}function qm(e,t){let n=-1;return e.some((e,r)=>t(e)?(n=r,!0):!1),n}function Jm(e,t){let n=[],r=e.container;if(!t.disableScrollLock){if(Hm(r)){let e=Vm(Dc(r));n.push({value:r.style.paddingRight,property:`padding-right`,el:r}),r.style.paddingRight=`${Wm(r)+e}px`;let t=Tc(r).querySelectorAll(`.mui-fixed`);[].forEach.call(t,t=>{n.push({value:t.style.paddingRight,property:`padding-right`,el:t}),t.style.paddingRight=`${Wm(t)+e}px`})}let e;if(r.parentNode instanceof DocumentFragment)e=Tc(r).body;else{let t=r.parentElement,n=Dc(r);e=t?.nodeName===`HTML`&&n.getComputedStyle(t).overflowY===`scroll`?t:r}n.push({value:e.style.overflow,property:`overflow`,el:e},{value:e.style.overflowX,property:`overflow-x`,el:e},{value:e.style.overflowY,property:`overflow-y`,el:e}),e.style.overflow=`hidden`}return()=>{n.forEach(({value:e,el:t,property:n})=>{e?t.style.setProperty(n,e):t.style.removeProperty(n)})}}function Ym(e){let t=[];return[].forEach.call(e.children,e=>{e.getAttribute(`aria-hidden`)===`true`&&t.push(e)}),t}var Xm=class{constructor(){this.modals=[],this.containers=[]}add(e,t){let n=this.modals.indexOf(e);if(n!==-1)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&Um(e.modalRef,!1);let r=Ym(t);Km(t,e.mount,e.modalRef,r,!0);let i=qm(this.containers,e=>e.container===t);return i===-1?(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:r}),n):(this.containers[i].modals.push(e),n)}mount(e,t){let n=qm(this.containers,t=>t.modals.includes(e)),r=this.containers[n];r.restore||=Jm(r,t)}remove(e,t=!0){let n=this.modals.indexOf(e);if(n===-1)return n;let r=qm(this.containers,t=>t.modals.includes(e)),i=this.containers[r];if(i.modals.splice(i.modals.indexOf(e),1),this.modals.splice(n,1),i.modals.length===0)i.restore&&i.restore(),e.modalRef&&Um(e.modalRef,t),Km(i.container,e.mount,e.modalRef,i.hiddenSiblings,!1),this.containers.splice(r,1);else{let e=i.modals[i.modals.length-1];e.modalRef&&Um(e.modalRef,!1)}return n}isTopModal(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}},Zm=[`input`,`select`,`textarea`,`a[href]`,`button`,`[tabindex]`,`audio[controls]`,`video[controls]`,`[contenteditable]:not([contenteditable="false"])`].join(`,`);function Qm(e){let t=parseInt(e.getAttribute(`tabindex`)||``,10);return Number.isNaN(t)?e.contentEditable===`true`||(e.nodeName===`AUDIO`||e.nodeName===`VIDEO`||e.nodeName===`DETAILS`)&&e.getAttribute(`tabindex`)===null?0:e.tabIndex:t}function $m(e){if(e.tagName!==`INPUT`||e.type!==`radio`||!e.name)return!1;let t=t=>e.ownerDocument.querySelector(`input[type="radio"]${t}`),n=t(`[name="${e.name}"]:checked`);return n||=t(`[name="${e.name}"]`),n!==e}function eh(e){return!(e.disabled||e.tagName===`INPUT`&&e.type===`hidden`||$m(e))}function th(e){let t=[],n=[];return Array.from(e.querySelectorAll(Zm)).forEach((e,r)=>{let i=Qm(e);i===-1||!eh(e)||(i===0?t.push(e):n.push({documentOrder:r,tabIndex:i,node:e}))}),n.sort((e,t)=>e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex).map(e=>e.node).concat(t)}function nh(){return!0}function rh(e){let{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:i=!1,getTabbable:a=th,isEnabled:o=nh,open:s}=e,c=z.useRef(!1),l=z.useRef(null),u=z.useRef(null),d=z.useRef(null),f=z.useRef(null),p=z.useRef(!1),m=z.useRef(null),h=Ic(Uf(t),m),g=z.useRef(null);z.useEffect(()=>{!s||!m.current||(p.current=!n)},[n,s]),z.useEffect(()=>{if(!s||!m.current)return;let e=wc(Tc(m.current));return m.current.contains(e)||(m.current.hasAttribute(`tabIndex`)||m.current.setAttribute(`tabIndex`,`-1`),p.current&&m.current.focus()),()=>{i||(d.current&&d.current.focus&&(c.current=!0,d.current.focus()),d.current=null)}},[s]),z.useEffect(()=>{if(!s||!m.current)return;let e=Tc(m.current),t=t=>{g.current=t,!(r||!o()||t.key!==`Tab`)&&wc(e)===m.current&&t.shiftKey&&(c.current=!0,u.current&&u.current.focus())},n=()=>{let t=m.current;if(t===null)return;let n=wc(e);if(!e.hasFocus()||!o()||c.current){c.current=!1;return}if(t.contains(n)||r&&n!==l.current&&n!==u.current)return;if(n!==f.current)f.current=null;else if(f.current!==null)return;if(!p.current)return;let i=[];if((n===l.current||n===u.current)&&(i=a(m.current)),i.length>0){let e=!!(g.current?.shiftKey&&g.current?.key===`Tab`),t=i[0],n=i[i.length-1];typeof t!=`string`&&typeof n!=`string`&&(e?n.focus():t.focus())}else t.focus()};e.addEventListener(`focusin`,n),e.addEventListener(`keydown`,t,!0);let i=setInterval(()=>{let t=wc(e);t&&t.tagName===`BODY`&&n()},50);return()=>{clearInterval(i),e.removeEventListener(`focusin`,n),e.removeEventListener(`keydown`,t,!0)}},[n,r,i,o,s,a]);let _=e=>{d.current===null&&(d.current=e.relatedTarget),p.current=!0,f.current=e.target;let n=t.props.onFocus;n&&n(e)},v=e=>{d.current===null&&(d.current=e.relatedTarget),p.current=!0};return(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(`div`,{tabIndex:s?0:-1,onFocus:v,ref:l,"data-testid":`sentinelStart`}),z.cloneElement(t,{ref:h,onFocus:_}),(0,B.jsx)(`div`,{tabIndex:s?0:-1,onFocus:v,ref:u,"data-testid":`sentinelEnd`})]})}function ih(e){return typeof e==`function`?e():e}function ah(e){return e?e.props.hasOwnProperty(`in`):!1}var oh=()=>{},sh=new Xm;function ch(e){let{container:t,disableScrollLock:n=!1,closeAfterTransition:r=!1,onTransitionEnter:i,onTransitionExited:a,children:o,onClose:s,open:c,rootRef:l}=e,u=z.useRef({}),d=z.useRef(null),f=z.useRef(null),p=Ic(f,l),[m,h]=z.useState(!c),g=ah(o),_=!0;(e[`aria-hidden`]===`false`||e[`aria-hidden`]===!1)&&(_=!1);let v=()=>Tc(d.current),y=()=>(u.current.modalRef=f.current,u.current.mount=d.current,u.current),b=()=>{sh.mount(y(),{disableScrollLock:n}),f.current&&(f.current.scrollTop=0)},x=Pc(()=>{let e=ih(t)||v().body;sh.add(y(),e),f.current&&b()}),S=()=>sh.isTopModal(y()),C=Pc(e=>{d.current=e,e&&(c&&S()?b():f.current&&Um(f.current,_))}),w=z.useCallback(()=>{sh.remove(y(),_)},[_]);z.useEffect(()=>()=>{w()},[w]),z.useEffect(()=>{c?x():(!g||!r)&&w()},[c,w,g,r,x]);let T=e=>t=>{e.onKeyDown?.(t),!(t.key!==`Escape`||t.which===229||!S())&&(t.stopPropagation(),s&&s(t,`escapeKeyDown`))},E=e=>t=>{e.onClick?.(t),t.target===t.currentTarget&&s&&s(t,`backdropClick`)};return{getRootProps:(t={})=>{let n=Sl(e);delete n.onTransitionEnter,delete n.onTransitionExited;let r={...n,...t};return{role:`presentation`,...r,onKeyDown:T(r),ref:p}},getBackdropProps:(e={})=>{let t=e;return{"aria-hidden":!0,...t,onClick:E(t),open:c}},getTransitionProps:()=>({onEnter:uc(()=>{h(!1),i&&i()},o?.props.onEnter??oh),onExited:uc(()=>{h(!0),a&&a(),r&&w()},o?.props.onExited??oh)}),rootRef:p,portalRef:C,isTopModal:S,exited:m,hasTransition:g}}function lh(e){return U(`MuiModal`,e)}W(`MuiModal`,[`root`,`hidden`,`backdrop`]);var uh=e=>{let{open:t,exited:n,classes:r}=e;return q({root:[`root`,!t&&n&&`hidden`],backdrop:[`backdrop`]},lh,r)},dh=Y(`div`,{name:`MuiModal`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(pc(({theme:e})=>({position:`fixed`,zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:e})=>!e.open&&e.exited,style:{visibility:`hidden`}}]}))),fh=Y(lm,{name:`MuiModal`,slot:`Backdrop`})({zIndex:-1}),ph=z.forwardRef(function(e,t){let n=mc({name:`MuiModal`,props:e}),{classes:r,className:i,closeAfterTransition:a=!1,children:o,container:s,component:c,disableAutoFocus:l=!1,disableEnforceFocus:u=!1,disablePortal:d=!1,disableRestoreFocus:f=!1,disableScrollLock:p=!1,hideBackdrop:m=!1,keepMounted:h=!1,onClose:g,onTransitionEnter:_,onTransitionExited:v,open:y,slotProps:b={},slots:x={},theme:S,...C}=n,w={...n,closeAfterTransition:a,disableAutoFocus:l,disableEnforceFocus:u,disablePortal:d,disableRestoreFocus:f,disableScrollLock:p,hideBackdrop:m,keepMounted:h},{getRootProps:T,getBackdropProps:E,getTransitionProps:D,portalRef:O,isTopModal:k,exited:ee,hasTransition:A}=ch({...w,rootRef:t}),j={...w,exited:ee},te=uh(j),ne={};if(o.props.tabIndex===void 0&&(ne.tabIndex=`-1`),A){let{onEnter:e,onExited:t}=D();ne.onEnter=e,ne.onExited=t}let re={slots:x,slotProps:b},[M,N]=Tl(`root`,{ref:t,elementType:dh,externalForwardedProps:{...re,...C,component:c},getSlotProps:T,ownerState:j,className:H(i,te?.root,!j.open&&j.exited&&te?.hidden)}),[ie,ae]=Tl(`backdrop`,{elementType:fh,externalForwardedProps:re,shouldForwardComponentProp:!0,getSlotProps:e=>E({...e,onClick:t=>{e?.onClick&&e.onClick(t)}}),className:te?.backdrop,ownerState:j});return!h&&!y&&(!A||ee)?null:(0,B.jsx)(Gf,{ref:O,container:s,disablePortal:d,children:(0,B.jsxs)(M,{...N,children:[m?null:(0,B.jsx)(ie,{...ae}),(0,B.jsx)(rh,{disableEnforceFocus:u,disableAutoFocus:l,disableRestoreFocus:f,isEnabled:k,open:y,children:z.cloneElement(o,ne)})]})})}),mh=W(`MuiDivider`,[`root`,`absolute`,`fullWidth`,`inset`,`middle`,`flexItem`,`vertical`,`withChildren`,`textAlignRight`,`textAlignLeft`,`wrapper`,`wrapperVertical`]),hh=e=>{let{classes:t,disableUnderline:n,startAdornment:r,endAdornment:i,size:a,hiddenLabel:o,multiline:s}=e,c=q({root:[`root`,!n&&`underline`,r&&`adornedStart`,i&&`adornedEnd`,a===`small`&&`size${X(a)}`,o&&`hiddenLabel`,s&&`multiline`],input:[`input`]},Rp,t);return{...t,...c}},gh=Y(Ap,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiFilledInput`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[...Dp(e,t),!n.disableUnderline&&t.underline]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`,n=t?`rgba(0, 0, 0, 0.42)`:`rgba(255, 255, 255, 0.7)`,r=t?`rgba(0, 0, 0, 0.06)`:`rgba(255, 255, 255, 0.09)`,i=t?`rgba(0, 0, 0, 0.09)`:`rgba(255, 255, 255, 0.13)`,a=t?`rgba(0, 0, 0, 0.12)`:`rgba(255, 255, 255, 0.12)`;return{position:`relative`,backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(`background-color`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:i,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r}},[`&.${zp.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r},[`&.${zp.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:a},variants:[{props:({ownerState:e})=>!e.disableUnderline,style:{"&::after":{left:0,bottom:0,content:`""`,position:`absolute`,right:0,transform:`scaleX(0)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:`none`},[`&.${zp.focused}:after`]:{transform:`scaleX(1) translateX(0)`},[`&.${zp.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline):n}`,left:0,bottom:0,content:`""`,position:`absolute`,right:0,transition:e.transitions.create(`border-bottom-color`,{duration:e.transitions.duration.shorter}),pointerEvents:`none`},[`&:hover:not(.${zp.disabled}, .${zp.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${zp.disabled}:before`]:{borderBottomStyle:`dotted`}}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{disableUnderline:!1,color:t},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t]?.main}`}}})),{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:12}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:12}},{props:({ownerState:e})=>e.multiline,style:{padding:`25px 12px 8px`}},{props:({ownerState:e,size:t})=>e.multiline&&t===`small`,style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.multiline&&e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.multiline&&e.hiddenLabel&&e.size===`small`,style:{paddingTop:8,paddingBottom:9}}]}})),_h=Y(jp,{name:`MuiFilledInput`,slot:`Input`,overridesResolver:Op})(pc(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode===`light`?null:`0 0 0 100px #266798 inset`,WebkitTextFillColor:e.palette.mode===`light`?null:`#fff`,caretColor:e.palette.mode===`light`?null:`#fff`,borderTopLeftRadius:`inherit`,borderTopRightRadius:`inherit`}},...e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:`inherit`,borderTopRightRadius:`inherit`},[e.getColorSchemeSelector(`dark`)]:{"&:-webkit-autofill":{WebkitBoxShadow:`0 0 0 100px #266798 inset`,WebkitTextFillColor:`#fff`,caretColor:`#fff`}}},variants:[{props:{size:`small`},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}},{props:({ownerState:e})=>e.hiddenLabel&&e.size===`small`,style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:e})=>e.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),vh=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiFilledInput`}),{disableUnderline:r=!1,fullWidth:i=!1,hiddenLabel:a,inputComponent:o=`input`,multiline:s=!1,slotProps:c,slots:l={},type:u=`text`,...d}=n,f={...n,disableUnderline:r,fullWidth:i,inputComponent:o,multiline:s,type:u},p=hh(n),m={root:{ownerState:f},input:{ownerState:f}},h=c?Lr(m,c):m;return(0,B.jsx)(Np,{slots:{root:l.root??gh,input:l.input??_h},slotProps:h,fullWidth:i,inputComponent:o,multiline:s,ref:t,type:u,...d,classes:p})});vh.muiName=`Input`;function yh(e){return U(`MuiFormControl`,e)}W(`MuiFormControl`,[`root`,`marginNone`,`marginNormal`,`marginDense`,`fullWidth`,`disabled`]);var bh=e=>{let{classes:t,margin:n,fullWidth:r}=e;return q({root:[`root`,n!==`none`&&`margin${X(n)}`,r&&`fullWidth`]},yh,t)},xh=Y(`div`,{name:`MuiFormControl`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`margin${X(n.margin)}`],n.fullWidth&&t.fullWidth]}})({display:`inline-flex`,flexDirection:`column`,position:`relative`,minWidth:0,padding:0,margin:0,border:0,verticalAlign:`top`,variants:[{props:{margin:`normal`},style:{marginTop:16,marginBottom:8}},{props:{margin:`dense`},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:`100%`}}]}),Sh=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiFormControl`}),{children:r,className:i,color:a=`primary`,component:o=`div`,disabled:s=!1,error:c=!1,focused:l,fullWidth:u=!1,hiddenLabel:d=!1,margin:f=`none`,required:p=!1,size:m=`medium`,variant:h=`outlined`,...g}=n,_={...n,color:a,component:o,disabled:s,error:c,fullWidth:u,hiddenLabel:d,margin:f,required:p,size:m,variant:h},v=bh(_),[y,b]=z.useState(()=>{let e=!1;return r&&z.Children.forEach(r,t=>{if(!Sc(t,[`Input`,`Select`]))return;let n=Sc(t,[`Select`])?t.props.input:t;n&&Cp(n.props)&&(e=!0)}),e}),[x,S]=z.useState(()=>{let e=!1;return r&&z.Children.forEach(r,t=>{Sc(t,[`Input`,`Select`])&&(Sp(t.props,!0)||Sp(t.props.inputProps,!0))&&(e=!0)}),e}),[C,w]=z.useState(!1);s&&C&&w(!1);let T=l!==void 0&&!s?l:C;z.useRef(!1);let E=z.useCallback(()=>{S(!0)},[]),D=z.useCallback(()=>{S(!1)},[]),O=z.useMemo(()=>({adornedStart:y,setAdornedStart:b,color:a,disabled:s,error:c,filled:x,focused:T,fullWidth:u,hiddenLabel:d,size:m,onBlur:()=>{w(!1)},onFocus:()=>{w(!0)},onEmpty:D,onFilled:E,registerEffect:void 0,required:p,variant:h}),[y,a,s,c,x,T,u,d,void 0,D,E,p,m,h]);return(0,B.jsx)(yp.Provider,{value:O,children:(0,B.jsx)(xh,{as:o,ownerState:_,className:H(v.root,i),ref:t,...g,children:r})})});function Ch(e){return U(`MuiFormHelperText`,e)}var wh=W(`MuiFormHelperText`,[`root`,`error`,`disabled`,`sizeSmall`,`sizeMedium`,`contained`,`focused`,`filled`,`required`]),Th,Eh=e=>{let{classes:t,contained:n,size:r,disabled:i,error:a,filled:o,focused:s,required:c}=e;return q({root:[`root`,i&&`disabled`,a&&`error`,r&&`size${X(r)}`,n&&`contained`,s&&`focused`,o&&`filled`,c&&`required`]},Ch,t)},Dh=Y(`p`,{name:`MuiFormHelperText`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.size&&t[`size${X(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})(pc(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:`left`,marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${wh.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${wh.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:`small`},style:{marginTop:4}},{props:({ownerState:e})=>e.contained,style:{marginLeft:14,marginRight:14}}]}))),Oh=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiFormHelperText`}),{children:r,className:i,component:a=`p`,disabled:o,error:s,filled:c,focused:l,margin:u,required:d,variant:f,...p}=n,m=vp({props:n,muiFormControl:bp(),states:[`variant`,`size`,`disabled`,`error`,`filled`,`focused`,`required`]}),h={...n,component:a,contained:m.variant===`filled`||m.variant===`outlined`,variant:m.variant,size:m.size,disabled:m.disabled,error:m.error,filled:m.filled,focused:m.focused,required:m.required};return delete h.ownerState,(0,B.jsx)(Dh,{as:a,className:H(Eh(h).root,i),ref:t,...p,ownerState:h,children:r===` `?Th||=(0,B.jsx)(`span`,{className:`notranslate`,"aria-hidden":!0,children:`​`}):r})});function kh(e){return U(`MuiFormLabel`,e)}var Ah=W(`MuiFormLabel`,[`root`,`colorSecondary`,`focused`,`disabled`,`error`,`filled`,`required`,`asterisk`]),jh=e=>{let{classes:t,color:n,focused:r,disabled:i,error:a,filled:o,required:s}=e;return q({root:[`root`,`color${X(n)}`,i&&`disabled`,a&&`error`,o&&`filled`,r&&`focused`,s&&`required`],asterisk:[`asterisk`,a&&`error`]},kh,t)},Mh=Y(`label`,{name:`MuiFormLabel`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.color===`secondary`&&t.colorSecondary,n.filled&&t.filled]}})(pc(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:`1.4375em`,padding:0,position:`relative`,variants:[...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{[`&.${Ah.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Ah.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Ah.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),Nh=Y(`span`,{name:`MuiFormLabel`,slot:`Asterisk`})(pc(({theme:e})=>({[`&.${Ah.error}`]:{color:(e.vars||e).palette.error.main}}))),Ph=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiFormLabel`}),{children:r,className:i,color:a,component:o=`label`,disabled:s,error:c,filled:l,focused:u,required:d,...f}=n,p=vp({props:n,muiFormControl:bp(),states:[`color`,`required`,`focused`,`disabled`,`error`,`filled`]}),m={...n,color:p.color||`primary`,component:o,disabled:p.disabled,error:p.error,filled:p.filled,focused:p.focused,required:p.required},h=jh(m);return(0,B.jsxs)(Mh,{as:o,ownerState:m,className:H(h.root,i),ref:t,...f,children:[r,p.required&&(0,B.jsxs)(Nh,{ownerState:m,"aria-hidden":!0,className:h.asterisk,children:[` `,`*`]})]})}),Fh=Zo({createStyledComponent:Y(`div`,{name:`MuiGrid`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.container&&t.container]}}),componentName:`MuiGrid`,useThemeProps:e=>mc({props:e,name:`MuiGrid`}),useTheme:sc});function Ih(e){return`scale(${e}, ${e**2})`}var Lh={entering:{opacity:1,transform:Ih(1)},entered:{opacity:1,transform:`none`},exiting:{opacity:0,transform:Ih(.75)},exited:{opacity:0,transform:Ih(.75)}},Rh={opacity:0,transform:Ih(.75),visibility:`hidden`},zh=z.forwardRef(function(e,t){let{addEndListener:n,appear:r=!0,children:i,easing:a,in:o,onEnter:s,onEntered:c,onEntering:l,onExit:u,onExited:d,onExiting:f,style:p,timeout:m=`auto`,...h}=e,g=ml(),_=z.useRef(),v=sc(),y=z.useRef(null),b=Lc(y,Uf(i),t),x=gl(y,l),S=gl(y,(e,t)=>{hl(e);let{duration:n,delay:r,easing:i}=vl({style:p,timeout:m,easing:a},{mode:`enter`}),o;m===`auto`?(o=v.transitions.getAutoHeightDuration(e.clientHeight),_.current=o):o=n,e.style.transition=[v.transitions.create(`opacity`,{duration:o,delay:r}),v.transitions.create(`transform`,{duration:o*.666,delay:r,easing:i})].join(`,`),s&&s(e,t)}),C=gl(y,c),w=gl(y,f),T=gl(y,e=>{let{duration:t,delay:n,easing:r}=vl({style:p,timeout:m,easing:a},{mode:`exit`}),i;m===`auto`?(i=v.transitions.getAutoHeightDuration(e.clientHeight),_.current=i):i=t,e.style.transition=[v.transitions.create(`opacity`,{duration:i,delay:n}),v.transitions.create(`transform`,{duration:i*.666,delay:n||i*.333,easing:r})].join(`,`),e.style.opacity=0,e.style.transform=Ih(.75),u&&u(e)}),E=gl(y,e=>{e.style.transition=``,d&&d(e)});return(0,B.jsx)(Qc,{appear:r,in:o,nodeRef:y,onEnter:S,onEntered:C,onEntering:x,onExit:T,onExited:E,onExiting:w,addEndListener:e=>{m===`auto`&&g.start(_.current||0,e),n&&n(y.current,e)},timeout:m===`auto`?null:m,...h,children:(e,{ownerState:t,...n})=>{let r=_l(e,o,Lh,Rh,p,i.props.style);return z.cloneElement(i,{style:r,ref:b,...n})}})});zh&&(zh.muiSupportAuto=!0);function Bh(e){return U(`MuiInputLabel`,e)}var Vh=W(`MuiInputLabel`,[`root`,`focused`,`disabled`,`error`,`required`,`asterisk`,`formControl`,`sizeSmall`,`shrink`,`animated`,`standard`,`filled`,`outlined`]),Hh=e=>{let{classes:t,disableUnderline:n}=e,r=q({root:[`root`,!n&&`underline`],input:[`input`]},Pp,t);return{...t,...r}},Uh=Y(Ap,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiInput`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[...Dp(e,t),!n.disableUnderline&&t.underline]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`?`rgba(0, 0, 0, 0.42)`:`rgba(255, 255, 255, 0.7)`;return e.vars&&(t=e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline)),{position:`relative`,variants:[{props:({ownerState:e})=>e.formControl,style:{[`label + &, .${Vh.root} + &`]:{marginTop:16}}},{props:({ownerState:e})=>!e.disableUnderline,style:{"&::after":{left:0,bottom:0,content:`""`,position:`absolute`,right:0,transform:`scaleX(0)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:`none`},[`&.${Fp.focused}:after`]:{transform:`scaleX(1) translateX(0)`},[`&.${Fp.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${t}`,left:0,bottom:0,content:`""`,position:`absolute`,right:0,transition:e.transitions.create(`border-bottom-color`,{duration:e.transitions.duration.shorter}),pointerEvents:`none`},[`&:hover:not(.${Fp.disabled}, .${Fp.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${t}`}},[`&.${Fp.disabled}:before`]:{borderBottomStyle:`dotted`}}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t].main}`}}}))]}})),Wh=Y(jp,{name:`MuiInput`,slot:`Input`,overridesResolver:Op})({}),Gh=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiInput`}),{disableUnderline:r=!1,fullWidth:i=!1,inputComponent:a=`input`,multiline:o=!1,slotProps:s,slots:c={},type:l=`text`,...u}=n,d=Hh(n),f={root:{ownerState:{disableUnderline:r}}},p=s?Lr(s,f):f;return(0,B.jsx)(Np,{slots:{root:c.root??Uh,input:c.input??Wh},slotProps:p,fullWidth:i,inputComponent:a,multiline:o,ref:t,type:l,...u,classes:d})});Gh.muiName=`Input`;var Kh=e=>{let{classes:t,formControl:n,size:r,shrink:i,disableAnimation:a,variant:o,required:s}=e,c=q({root:[`root`,n&&`formControl`,!a&&`animated`,i&&`shrink`,r&&r!==`medium`&&`size${X(r)}`,o],asterisk:[s&&`asterisk`]},Bh,t);return{...t,...c}},qh=Y(Ph,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiInputLabel`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${Ah.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size===`small`&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})(pc(({theme:e})=>({display:`block`,transformOrigin:`top left`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,maxWidth:`100%`,variants:[{props:({ownerState:e})=>e.formControl,style:{position:`absolute`,left:0,top:0,transform:`translate(0, 20px) scale(1)`}},{props:{size:`small`},style:{transform:`translate(0, 17px) scale(1)`}},{props:({ownerState:e})=>e.shrink,style:{transform:`translate(0, -1.5px) scale(0.75)`,transformOrigin:`top left`,maxWidth:`133%`}},{props:({ownerState:e})=>!e.disableAnimation,style:{transition:e.transitions.create([`color`,`transform`,`max-width`],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:`filled`},style:{zIndex:1,pointerEvents:`none`,transform:`translate(12px, 16px) scale(1)`,maxWidth:`calc(100% - 24px)`}},{props:{variant:`filled`,size:`small`},style:{transform:`translate(12px, 13px) scale(1)`}},{props:({variant:e,ownerState:t})=>e===`filled`&&t.shrink,style:{userSelect:`none`,pointerEvents:`auto`,transform:`translate(12px, 7px) scale(0.75)`,maxWidth:`calc(133% - 24px)`}},{props:({variant:e,ownerState:t,size:n})=>e===`filled`&&t.shrink&&n===`small`,style:{transform:`translate(12px, 4px) scale(0.75)`}},{props:{variant:`outlined`},style:{zIndex:1,pointerEvents:`none`,transform:`translate(14px, 16px) scale(1)`,maxWidth:`calc(100% - 24px)`}},{props:{variant:`outlined`,size:`small`},style:{transform:`translate(14px, 9px) scale(1)`}},{props:({variant:e,ownerState:t})=>e===`outlined`&&t.shrink,style:{userSelect:`none`,pointerEvents:`auto`,maxWidth:`calc(133% - 32px)`,transform:`translate(14px, -9px) scale(0.75)`}}]}))),Jh=z.forwardRef(function(e,t){let n=mc({name:`MuiInputLabel`,props:e}),{disableAnimation:r=!1,margin:i,shrink:a,variant:o,className:s,...c}=n,l=bp(),u=a;u===void 0&&l&&(u=l.filled||l.focused||l.adornedStart);let d=vp({props:n,muiFormControl:l,states:[`size`,`variant`,`required`,`focused`]}),f={...n,disableAnimation:r,formControl:l,shrink:u,size:d.size,variant:d.variant,required:d.required,focused:d.focused},p=Kh(f);return(0,B.jsx)(qh,{"data-shrink":u,ref:t,className:H(p.root,s),...c,ownerState:f,classes:p})}),Yh=z.createContext({});function Xh(e){return U(`MuiList`,e)}W(`MuiList`,[`root`,`padding`,`dense`,`subheader`]);var Zh=e=>{let{classes:t,disablePadding:n,dense:r,subheader:i}=e;return q({root:[`root`,!n&&`padding`,r&&`dense`,i&&`subheader`]},Xh,t)},Qh=Y(`ul`,{name:`MuiList`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:`none`,margin:0,padding:0,position:`relative`,variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0}}]}),$h=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiList`}),{children:r,className:i,component:a=`ul`,dense:o=!1,disablePadding:s=!1,subheader:c,...l}=n,u=z.useMemo(()=>({dense:o}),[o]),d={...n,component:a,dense:o,disablePadding:s},f=Zh(d);return(0,B.jsx)(Yh.Provider,{value:u,children:(0,B.jsxs)(Qh,{as:a,className:H(f.root,i),ref:t,ownerState:d,...l,children:[c,r]})})}),eg=W(`MuiListItemIcon`,[`root`,`alignItemsFlexStart`]),tg=W(`MuiListItemText`,[`root`,`multiline`,`dense`,`inset`,`primary`,`secondary`]),ng=z.createContext(void 0);function rg(){let e=z.useContext(ng);if(e===void 0)throw Error(`MUI: RovingTabIndexContext is missing. Roving tab index items must be placed within a roving tab index provider.`);return e}var ig=Object.is;function ag(e,t){if(e===t)return!0;if(!(e instanceof Object)||!(t instanceof Object))return!1;let n=0,r=0;for(let r in e)if(n+=1,!ig(e[r],t[r])||!(r in t))return!1;for(let e in t)r+=1;return n===r}var og=[`ArrowRight`,`ArrowLeft`,`ArrowUp`,`ArrowDown`,`Home`,`End`];function sg(e){let{activeItemId:t,getDefaultActiveItemId:n,orientation:r,isRtl:i=!1,isItemFocusable:a=xg,wrap:o=!0}=e,[s,c]=z.useState(t),l=z.useRef(t),u=s;t!==l.current&&(l.current=t,t!==void 0&&t!==s&&(u=t,c(t)));let d=z.useRef(null),f=z.useRef(new Map),[p,m]=z.useState(0),h=z.useMemo(()=>vg(f.current),[p]),g=lg(u,h,a,n),_=z.useRef(g);_.current=g;let v=z.useCallback(()=>{let e=vg(f.current);return hg(e,lg(_.current,e,a,n))},[n,a]),y=z.useCallback(()=>f.current,[]),b=Pc(e=>{ag(f.current.get(e.id)??null,e)||(f.current.set(e.id,e),m(e=>e+1))}),x=Pc(e=>{f.current.delete(e)&&m(e=>e+1)}),S=Pc(e=>{c(e)}),C=z.useCallback(e=>_.current===e,[]),w=z.useCallback((e,t,n,r)=>{let i=pg(yg(f.current),e,t,n,r??a);return i?(i.element?.focus(),c(i.id),i):null},[a]),T=z.useCallback(e=>({onFocus:e=>{let t=yg(f.current),n=_g(t,e.target);n!==-1&&c(t[n].id)},onKeyDown:e=>{if(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey||!og.includes(e.key))return;let t=r===`horizontal`?`ArrowLeft`:`ArrowUp`,n=r===`horizontal`?`ArrowRight`:`ArrowDown`;r===`horizontal`&&i&&(t=`ArrowRight`,n=`ArrowLeft`);let a=yg(f.current),s=Cc(Tc(d.current)),c=s===d.current,l=fg(a,s,_.current),u=`next`;switch(e.key){case t:u=`previous`,e.preventDefault(),c&&(l=a.length);break;case n:e.preventDefault(),c&&(l=-1);break;case`Home`:e.preventDefault(),l=-1;break;case`End`:e.preventDefault(),u=`previous`,l=a.length;break;default:return}w(l,u,o)},ref:wg(e,e=>{d.current=e})}),[w,i,r,o]),E=z.useCallback(e=>{let t=yg(f.current),n=Cc(Tc(d.current));return w(n===d.current?-1:fg(t,n,_.current),`next`,!0,e)?.id??null},[w]);return z.useMemo(()=>({activeItemId:g,focusNext:E,getActiveItem:v,getContainerProps:T,getItemMap:y,isItemActive:C,registerItem:b,setActiveItemId:S,unregisterItem:x}),[g,E,v,T,y,C,b,S,x])}function cg(e){let{activeItemId:t,registerItem:n,unregisterItem:r}=rg(),i=z.useRef(null),a=z.useMemo(()=>({disabled:e.disabled??!1,element:null,focusableWhenDisabled:e.focusableWhenDisabled??!1,id:e.id,selected:e.selected??!1,textValue:e.textValue}),[e.disabled,e.focusableWhenDisabled,e.id,e.selected,e.textValue]),o=z.useRef(a);o.current=a;let s=z.useCallback(t=>{if(i.current=t,t==null){queueMicrotask(()=>{i.current??r(e.id)});return}n({...o.current,element:t})},[e.id,n,r]),c=Ic(e.ref,s);return Wa(()=>{i.current&&n({...a,element:i.current})},[a,n]),Wa(()=>{let t=e.id;return()=>{r(t)}},[e.id,r]),{ref:c,tabIndex:t===e.id?0:-1}}function lg(e,t,n,r){return e==null?dg(t,n,r):ug(e,t,n)}function ug(e,t,n){let r=gg(t,e);return r===-1?mg(t,n):n(t[r])?t[r].id:pg(t,r,`next`,!1,n)?.id??null}function dg(e,t,n){let r=n?.(e);if(r!=null){let n=hg(e,r);if(n&&t(n))return n.id}return mg(e,t)}function fg(e,t,n){if(t){let n=_g(e,t);if(n!==-1)return n}return gg(e,n)}function pg(e,t,n,r,i){let a=e.length-1;if(a===-1)return null;let o=!1,s=bg(t,a,n,r),c=s;for(;s!==-1;){if(s===c){if(o)return null;o=!0}let t=e[s];if(!t||!i(t))s=bg(s,a,n,r);else return t}return null}function mg(e,t){return e.find(e=>t(e))?.id??null}function hg(e,t){return t==null?null:e.find(e=>e.id===t)??null}function gg(e,t){return t==null?-1:e.findIndex(e=>e.id===t)}function _g(e,t){return t?e.findIndex(e=>e.element===t||e.element?.contains(t)):-1}function vg(e){let t=Array.from(e.values());if(t.every(e=>e.element==null))return t;let n=t.filter(Sg).sort((e,t)=>Cg(e.element,t.element)),r=t.filter(e=>!Sg(e));return[...n,...r]}function yg(e){return vg(e).filter(Sg)}function bg(e,t,n,r=!0){return n===`next`?e===t?r?0:-1:e+1:e===0?r?t:-1:e-1}function xg(e){return e.element?e.focusableWhenDisabled?!0:!e.disabled&&!e.element.hasAttribute(`disabled`)&&e.element.getAttribute(`aria-disabled`)!==`true`&&e.element.hasAttribute(`tabindex`):!1}function Sg(e){return e.element!=null&&e.element.isConnected}function Cg(e,t){if(e===t)return 0;let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}function wg(...e){return t=>{e.forEach(e=>{kc(e??null,t)})}}var Tg=Vm;function Eg(e,t){if(t==null){e.focus();return}try{e.focus({focusVisible:t===`keyboard`})}catch{e.focus()}}function Dg(e){return e?e.type===`mousedown`||e.type===`pointerdown`||e.type===`touchstart`?`pointer`:e.type===`keydown`||e.type===`click`&&e.detail===0?`keyboard`:null:null}function Og(e){return e==null||typeof e==`string`&&!e.trim()}function kg(e,t){return typeof t==`object`&&t?e===t:String(e)===String(t)}var Ag=z.createContext(null);function jg(){return z.useContext(Ag)}var Mg=Ag.Provider,Ng=z.createContext(void 0);function Pg(){let e=z.useContext(Ng);if(e===void 0)throw Error(`MUI: MenuListContext is missing. MenuItems must be placed within Menu or MenuList.`);return e}function Fg(e){let t=e?.element??e;if(!t)return``;if(e?.textValue!==void 0)return e.textValue;let n=t.innerText;return n===void 0&&(n=t.textContent),n??``}function Ig(e,t){if(t===void 0)return!0;let n=Fg(e);return n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join(``))}function Lg(e,t){return Ig(e,t)?xg(e):!1}function Rg(e,t){Eg(e,t)}var zg=z.forwardRef(function(e,t){let{actions:n,autoFocus:r=!1,autoFocusItem:i=!1,children:a,className:o,disabledItemsFocusable:s=!1,disableListWrap:c=!1,onKeyDown:l,variant:u=`selectedMenu`,...d}=e,f=z.useRef(null),p=z.useRef(!1),[m,h]=z.useState(!1),g=jg(),_=z.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null}),v=sg({activeItemId:void 0,getDefaultActiveItemId:z.useCallback(e=>u===`selectedMenu`?e.find(e=>e.selected&&xg(e))?.id??e.find(e=>xg(e))?.id??null:e.find(e=>xg(e))?.id??null,[u]),orientation:`vertical`,wrap:!c}),{activeItemId:y,focusNext:b,getActiveItem:x,getContainerProps:S,getItemMap:C}=v,w=Fc((e=!1)=>{if(!f.current||!e&&p.current)return null;if(i){let e=x();if(e?.element){let t=Array.from(C().values()).some(e=>e.selected);return h(u===`menu`&&t&&!e.selected&&g==null),Rg(e.element,g),p.current=!0,e.element}return r?(h(!1),f.current.focus(),f.current):null}return r?(h(!1),f.current.focus(),p.current=!0,f.current):(h(!1),null)});Ac(()=>{if(!r&&!i){p.current=!1,h(!1);return}w()},[y,i,r,w]),z.useImperativeHandle(n,()=>({adjustStyleForScrollbar:(e,{direction:t})=>{let n=!f.current.style.width;if(e.clientHeight{if(!f.current)return null;let e=wc(Ec(f.current));return e&&f.current.contains(e)?e:w(!0)}}),[w]);let T=S(),E=Lc(f,T.ref,t),D=z.useMemo(()=>({itemsFocusableWhenDisabled:s,suppressInitialFocusVisible:m,variant:u}),[s,m,u]);return(0,B.jsx)($h,{role:`menu`,ref:E,className:o,onKeyDown:Fc(e=>{if(m&&h(!1),(e.ctrlKey||e.metaKey||e.altKey)&&l){l(e);return}if(T.onKeyDown(e),e.key.length===1){let t=_.current,n=e.key.toLowerCase(),r=performance.now();t.keys.length>0&&(r-t.lastTime>500?(t.keys=[],t.repeating=!0,t.previousKeyMatched=!0):t.repeating&&n!==t.keys[0]&&(t.repeating=!1)),t.lastTime=r,t.keys.push(n);let i=wc(Ec(f.current)),a=i&&!t.repeating&&Ig(i,t);t.previousKeyMatched&&(a||b(e=>Lg(e,t))!=null)?e.preventDefault():t.previousKeyMatched=!1}l&&l(e)}),onFocus:T.onFocus,tabIndex:-1,...d,children:(0,B.jsx)(Ng.Provider,{value:D,children:(0,B.jsx)(ng.Provider,{value:v,children:a})})})});function Bg(e){return U(`MuiPopover`,e)}W(`MuiPopover`,[`root`,`paper`]);function Vg(e,t){let n=0;return typeof t==`number`?n=t:t===`center`?n=e.height/2:t===`bottom`&&(n=e.height),n}function Hg(e,t){let n=0;return typeof t==`number`?n=t:t===`center`?n=e.width/2:t===`right`&&(n=e.width),n}function Ug(e){return[e.horizontal,e.vertical].map(e=>typeof e==`number`?`${e}px`:e).join(` `)}function Wg(e){return typeof e==`function`?e():e}var Gg=e=>{let{classes:t}=e;return q({root:[`root`],paper:[`paper`]},Bg,t)},Kg=Y(ph,{name:`MuiPopover`,slot:`Root`})({}),qg=Y(kl,{name:`MuiPopover`,slot:`Paper`})({position:`absolute`,overflowY:`auto`,overflowX:`hidden`,minWidth:16,minHeight:16,maxWidth:`calc(100% - 32px)`,maxHeight:`calc(100% - 32px)`,outline:0}),Jg=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiPopover`}),{action:r,anchorEl:i,anchorOrigin:a={vertical:`top`,horizontal:`left`},anchorPosition:o,anchorReference:s=`anchorEl`,children:c,className:l,container:u,disableAutoFocus:d=!1,elevation:f=8,marginThreshold:p=16,open:m,slots:h={},slotProps:g={},transformOrigin:_={vertical:`top`,horizontal:`left`},transitionDuration:v=`auto`,disableScrollLock:y=!1,...b}=n,x=z.useRef(),S={...n,anchorOrigin:a,anchorReference:s,elevation:f,marginThreshold:p,transformOrigin:_,transitionDuration:v},C=Gg(S),w=z.useCallback(()=>{if(s===`anchorPosition`)return o;let e=Wg(i),t=(e&&e.nodeType===1?e:Ec(x.current).body).getBoundingClientRect();return{top:t.top+Vg(t,a.vertical),left:t.left+Hg(t,a.horizontal)}},[i,a.horizontal,a.vertical,o,s]),T=z.useCallback(e=>({vertical:Vg(e,_.vertical),horizontal:Hg(e,_.horizontal)}),[_.horizontal,_.vertical]),E=z.useCallback(e=>{let t={width:e.offsetWidth,height:e.offsetHeight},n=T(t);if(s===`none`)return{top:null,left:null,transformOrigin:Ug(n)};let r=w(),a=r.top-n.vertical,o=r.left-n.horizontal,c=a+t.height,l=o+t.width,u=Oc(Wg(i)),d=u.innerHeight-p,f=u.innerWidth-p;if(p!=null&&ad){let e=c-d;a-=e,n.vertical+=e}if(p!=null&&of){let e=l-f;o-=e,n.horizontal+=e}return{top:`${Math.round(a)}px`,left:`${Math.round(o)}px`,transformOrigin:Ug(n)}},[i,s,w,T,p]),[D,O]=z.useState(m),k=z.useCallback(()=>{let e=x.current;if(!e)return;let t=E(e);t.top!=null&&e.style.setProperty(`top`,t.top),t.left!=null&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,O(!0)},[E]);z.useEffect(()=>(y&&window.addEventListener(`scroll`,k),()=>window.removeEventListener(`scroll`,k)),[i,y,k]);let ee=()=>{k()},A=()=>{O(!1)};z.useEffect(()=>{m&&k()}),z.useImperativeHandle(r,()=>m?{updatePosition:()=>{k()}}:null,[m,k]),z.useEffect(()=>{if(!m)return;let e=xc(()=>{k()}),t=Oc(Wg(i));return t.addEventListener(`resize`,e),()=>{e.clear(),t.removeEventListener(`resize`,e)}},[i,m,k]);let j=v,te={slots:h,slotProps:g},[ne,re]=Tl(`transition`,{elementType:zh,externalForwardedProps:te,ownerState:S,getSlotProps:e=>({...e,onEntering:(t,n)=>{e.onEntering?.(t,n),ee()},onExited:t=>{e.onExited?.(t),A()}}),additionalProps:{appear:!0,in:m}});v===`auto`&&!ne.muiSupportAuto&&(j=void 0);let M=u||(i?Ec(Wg(i)).body:void 0),[N,{slots:ie,slotProps:ae,...oe}]=Tl(`root`,{ref:t,elementType:Kg,externalForwardedProps:{...te,...b},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:h.backdrop},slotProps:{backdrop:zc(typeof g.backdrop==`function`?g.backdrop(S):g.backdrop,{invisible:!0})},container:M,open:m},ownerState:S,className:H(C.root,l)}),[P,F]=Tl(`paper`,{ref:x,className:C.paper,elementType:qg,externalForwardedProps:te,shouldForwardComponentProp:!0,additionalProps:{elevation:f,style:D?void 0:{opacity:0}},ownerState:S});return(0,B.jsx)(N,{...oe,...!yl(N)&&{slots:ie,slotProps:ae,disableAutoFocus:d,disableScrollLock:y},children:(0,B.jsx)(ne,{...re,timeout:j,children:(0,B.jsx)(P,{...F,children:c})})})});function Yg(e){return U(`MuiMenu`,e)}W(`MuiMenu`,[`root`,`paper`,`list`]);var Xg={vertical:`top`,horizontal:`right`},Zg={vertical:`top`,horizontal:`left`},Qg=e=>{let{classes:t}=e;return q({root:[`root`],paper:[`paper`],list:[`list`]},Yg,t)},$g=Y(Jg,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiMenu`,slot:`Root`})({}),e_=Y(qg,{name:`MuiMenu`,slot:`Paper`})({maxHeight:`calc(100% - 96px)`,WebkitOverflowScrolling:`touch`}),t_=Y(zg,{name:`MuiMenu`,slot:`List`})({outline:0}),n_=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiMenu`}),{autoFocus:r=!0,children:i,className:a,disableAutoFocusItem:o=!1,onClose:s,open:c,PopoverClasses:l,transitionDuration:u=`auto`,variant:d=`selectedMenu`,slots:f={},slotProps:p={},...m}=n,h=co(),g={...n,autoFocus:r,disableAutoFocusItem:o,transitionDuration:u,variant:d},_=Qg(g),v=r&&c,y=v&&!o,b=z.useRef(null),x=(e,t)=>{b.current&&(b.current.adjustStyleForScrollbar(e,{direction:h?`rtl`:`ltr`}),v&&b.current.focusInitialTarget?.())},S=e=>{e.key===`Tab`&&(e.preventDefault(),s&&s(e,`tabKeyDown`))},C={slots:f,slotProps:p},w=Hf({elementType:f.root,externalSlotProps:p.root,ownerState:g,className:[_.root,a]}),[T,E]=Tl(`paper`,{className:_.paper,elementType:e_,externalForwardedProps:C,shouldForwardComponentProp:!0,ownerState:g}),[D,O]=Tl(`list`,{className:_.list,elementType:t_,shouldForwardComponentProp:!0,externalForwardedProps:C,getSlotProps:e=>({...e,onKeyDown:t=>{S(t),e.onKeyDown?.(t)}}),ownerState:g}),k=typeof p.transition==`function`?p.transition(g):p.transition;return(0,B.jsx)($g,{disableAutoFocus:r,onClose:s,anchorOrigin:{vertical:`bottom`,horizontal:h?`right`:`left`},transformOrigin:h?Xg:Zg,slots:{root:f.root,paper:T,backdrop:f.backdrop,transition:f.transition},slotProps:{root:w,paper:E,backdrop:typeof p.backdrop==`function`?p.backdrop(g):p.backdrop,transition:{...k,onEntering:(...e)=>{x(...e),k?.onEntering?.(...e)}}},open:c,ref:t,transitionDuration:u,ownerState:g,...m,classes:l,children:(0,B.jsx)(D,{actions:b,autoFocus:v,autoFocusItem:y,variant:d,...O,children:i})})});function r_(e){return U(`MuiMenuItem`,e)}var i_=W(`MuiMenuItem`,[`root`,`focusVisible`,`dense`,`disabled`,`divider`,`gutters`,`selected`]),a_=(e,t)=>{let{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},o_=e=>{let{disabled:t,dense:n,divider:r,disableGutters:i,selected:a,classes:o}=e,s=q({root:[`root`,n&&`dense`,t&&`disabled`,!i&&`gutters`,r&&`divider`,a&&`selected`]},r_,o);return{...o,...s}},s_=Y(Yl,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiMenuItem`,slot:`Root`,overridesResolver:a_})(pc(({theme:e})=>({...e.typography.body1,display:`flex`,justifyContent:`flex-start`,alignItems:`center`,position:`relative`,textDecoration:`none`,minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:`border-box`,whiteSpace:`nowrap`,"&:hover":{textDecoration:`none`,backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:`transparent`}},[`&.${i_.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${i_.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${i_.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${i_.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${i_.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${mh.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${mh.inset}`]:{marginLeft:52},[`& .${tg.root}`]:{marginTop:0,marginBottom:0},[`& .${tg.inset}`]:{paddingLeft:36},[`& .${eg.root}`]:{minWidth:36},variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:`padding-box`}},{props:({ownerState:e})=>!e.dense,style:{[e.breakpoints.up(`sm`)]:{minHeight:`auto`}}},{props:({ownerState:e})=>e.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${eg.root} svg`]:{fontSize:`1.25rem`}}}]}))),c_=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiMenuItem`}),{autoFocus:r=!1,component:i=`li`,dense:a=!1,divider:o=!1,disableGutters:s=!1,focusVisibleClassName:c,role:l=`menuitem`,tabIndex:u,className:d,...f}=n,p=jg(),m=z.useContext(Yh),h=z.useMemo(()=>({dense:a||m.dense||!1,disableGutters:s}),[m.dense,a,s]),g=Pg(),_=jc(),v=g.suppressInitialFocusVisible,y=g.itemsFocusableWhenDisabled,b=z.useRef(null);Ac(()=>{r&&b.current&&Eg(b.current,p)},[r]);let x={...n,dense:h.dense,divider:o,disableGutters:s},S=o_(n),C=cg({id:_,ref:t,disabled:n.disabled,focusableWhenDisabled:y,selected:n.selected}),w=Lc(b,C.ref),T;return u===void 0?g.variant===`selectedMenu`?T=C.tabIndex:(!n.disabled||y)&&(T=-1):T=u,(0,B.jsx)(Yh.Provider,{value:h,children:(0,B.jsx)(s_,{ref:w,role:l,tabIndex:T,component:i,internalNativeButton:!1,focusableWhenDisabled:y,suppressFocusVisible:v,focusVisibleClassName:H(S.focusVisible,c),className:H(S.root,d),...f,ownerState:x,classes:S})})});function l_(e){return U(`MuiNativeSelect`,e)}var u_=W(`MuiNativeSelect`,[`root`,`select`,`multiple`,`filled`,`outlined`,`standard`,`disabled`,`icon`,`iconOpen`,`iconFilled`,`iconOutlined`,`iconStandard`,`nativeInput`,`error`]),d_=e=>{let{classes:t,variant:n,disabled:r,multiple:i,open:a,error:o}=e;return q({select:[`select`,n,r&&`disabled`,i&&`multiple`,o&&`error`],icon:[`icon`,`icon${X(n)}`,a&&`iconOpen`,r&&`disabled`]},l_,t)},f_=Y(`select`,{name:`MuiNativeSelect`})(({theme:e})=>({MozAppearance:`none`,WebkitAppearance:`none`,userSelect:`none`,borderRadius:0,cursor:`pointer`,"&:focus":{borderRadius:0},[`&.${u_.disabled}`]:{cursor:`default`},"&[multiple]":{height:`auto`},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:e})=>e.variant!==`filled`&&e.variant!==`outlined`,style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:`filled`},style:{"&&&":{paddingRight:32}}},{props:{variant:`outlined`},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),p_=Y(f_,{name:`MuiNativeSelect`,slot:`Select`,shouldForwardProp:lc,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${u_.multiple}`]:t.multiple}]}})({}),m_=Y(`svg`,{name:`MuiNativeSelect`})(({theme:e})=>({position:`absolute`,right:0,top:`calc(50% - .5em)`,pointerEvents:`none`,color:(e.vars||e).palette.action.active,[`&.${u_.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:e})=>e.open,style:{transform:`rotate(180deg)`}},{props:{variant:`filled`},style:{right:7}},{props:{variant:`outlined`},style:{right:7}}]})),h_=Y(m_,{name:`MuiNativeSelect`,slot:`Icon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${X(n.variant)}`],n.open&&t.iconOpen]}})({}),g_=z.forwardRef(function(e,t){let{className:n,disabled:r,error:i,IconComponent:a,inputRef:o,variant:s=`standard`,...c}=e,l={...e,disabled:r,variant:s,error:i},u=d_(l);return(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(p_,{ownerState:l,className:H(u.select,n),disabled:r,ref:o||t,...c}),e.multiple?null:(0,B.jsx)(h_,{as:a,ownerState:l,className:u.icon})]})}),__,v_=Y(`fieldset`,{name:`MuiNotchedOutlined`,shouldForwardProp:lc})({textAlign:`left`,position:`absolute`,bottom:0,right:0,top:-5,left:0,margin:0,padding:`0 8px`,pointerEvents:`none`,borderRadius:`inherit`,borderStyle:`solid`,borderWidth:1,overflow:`hidden`,minWidth:`0%`}),y_=Y(`legend`,{name:`MuiNotchedOutlined`,shouldForwardProp:lc})(pc(({theme:e})=>({float:`unset`,width:`auto`,overflow:`hidden`,variants:[{props:({ownerState:e})=>!e.withLabel,style:{padding:0,lineHeight:`11px`,transition:e.transitions.create(`width`,{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:e})=>e.withLabel,style:{display:`block`,padding:0,height:11,fontSize:`0.75em`,visibility:`hidden`,maxWidth:.01,transition:e.transitions.create(`max-width`,{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:`nowrap`,"& > span":{paddingLeft:5,paddingRight:5,display:`inline-block`,opacity:0,visibility:`visible`}}},{props:({ownerState:e})=>e.withLabel&&e.notched,style:{maxWidth:`100%`,transition:e.transitions.create(`max-width`,{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function b_(e){let{children:t,classes:n,className:r,label:i,notched:a,...o}=e,s=i!=null&&i!==``,c={...e,notched:a,withLabel:s};return(0,B.jsx)(v_,{"aria-hidden":!0,className:r,ownerState:c,...o,children:(0,B.jsx)(y_,{ownerState:c,children:s?(0,B.jsx)(`span`,{children:i}):__||=(0,B.jsx)(`span`,{className:`notranslate`,"aria-hidden":!0,children:`​`})})})}var x_=e=>{let{classes:t}=e,n=q({root:[`root`],notchedOutline:[`notchedOutline`],input:[`input`]},Ip,t);return{...t,...n}},S_=Y(Ap,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiOutlinedInput`,slot:`Root`,overridesResolver:Dp})(pc(({theme:e})=>{let t=e.palette.mode===`light`?`rgba(0, 0, 0, 0.23)`:`rgba(255, 255, 255, 0.23)`;return{position:`relative`,borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${Lp.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${Lp.notchedOutline}`]:{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}},[`&.${Lp.focused} .${Lp.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{[`&.${Lp.focused} .${Lp.notchedOutline}`]:{borderColor:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Lp.error} .${Lp.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${Lp.disabled} .${Lp.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:14}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:14}},{props:({ownerState:e})=>e.multiline,style:{padding:`16.5px 14px`}},{props:({ownerState:e,size:t})=>e.multiline&&t===`small`,style:{padding:`8.5px 14px`}}]}})),C_=Y(b_,{name:`MuiOutlinedInput`,slot:`NotchedOutline`})(pc(({theme:e})=>{let t=e.palette.mode===`light`?`rgba(0, 0, 0, 0.23)`:`rgba(255, 255, 255, 0.23)`;return{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}})),w_=Y(jp,{name:`MuiOutlinedInput`,slot:`Input`,overridesResolver:Op})(pc(({theme:e})=>({padding:`16.5px 14px`,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode===`light`?null:`0 0 0 100px #266798 inset`,WebkitTextFillColor:e.palette.mode===`light`?null:`#fff`,caretColor:e.palette.mode===`light`?null:`#fff`,borderRadius:`inherit`}},...e.vars&&{"&:-webkit-autofill":{borderRadius:`inherit`},[e.getColorSchemeSelector(`dark`)]:{"&:-webkit-autofill":{WebkitBoxShadow:`0 0 0 100px #266798 inset`,WebkitTextFillColor:`#fff`,caretColor:`#fff`}}},variants:[{props:{size:`small`},style:{padding:`8.5px 14px`}},{props:({ownerState:e})=>e.multiline,style:{padding:0}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}}]}))),T_=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiOutlinedInput`}),{fullWidth:r=!1,inputComponent:i=`input`,label:a,multiline:o=!1,notched:s,slots:c={},slotProps:l={},type:u=`text`,...d}=n,f=x_(n),p=bp(),m=vp({props:n,muiFormControl:p,states:[`color`,`disabled`,`error`,`focused`,`hiddenLabel`,`size`,`required`]}),h={...n,color:m.color||`primary`,disabled:m.disabled,error:m.error,focused:m.focused,formControl:p,fullWidth:r,hiddenLabel:m.hiddenLabel,multiline:o,size:m.size,type:u},g=c.root??S_,_=c.input??w_,[v,y]=Tl(`notchedOutline`,{elementType:C_,className:f.notchedOutline,shouldForwardComponentProp:!0,ownerState:h,externalForwardedProps:{slots:c,slotProps:l},additionalProps:{label:a!=null&&a!==``&&m.required?(0,B.jsxs)(z.Fragment,{children:[a,` `,`*`]}):a}});return(0,B.jsx)(Np,{slots:{root:g,input:_},slotProps:l,renderSuffix:e=>(0,B.jsx)(v,{...y,notched:s===void 0?!!(e.startAdornment||e.filled||e.focused):s}),fullWidth:r,inputComponent:i,multiline:o,ref:t,type:u,...d,classes:{...f,notchedOutline:null}})});T_.muiName=`Input`;function E_(e){return U(`MuiSelect`,e)}var D_=W(`MuiSelect`,[`root`,`select`,`multiple`,`filled`,`outlined`,`standard`,`disabled`,`focused`,`icon`,`iconOpen`,`nativeInput`,`error`]),O_,k_=Y(f_,{name:`MuiSelect`,slot:`Select`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`&.${D_.select}`]:t.select},{[`&.${D_.select}`]:t[n.variant]},{[`&.${D_.error}`]:t.error},{[`&.${D_.multiple}`]:t.multiple}]}})({[`&.${D_.select}`]:{height:`auto`,minHeight:`1.4375em`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,overflow:`hidden`}}),A_=Y(m_,{name:`MuiSelect`,slot:`Icon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,n.open&&t.iconOpen]}})({}),j_=Y(`input`,{shouldForwardProp:e=>cc(e)&&e!==`classes`,name:`MuiSelect`,slot:`NativeInput`})({bottom:0,left:0,position:`absolute`,opacity:0,pointerEvents:`none`,width:`100%`,boxSizing:`border-box`}),M_=e=>{let{classes:t,variant:n,disabled:r,multiple:i,open:a,error:o}=e;return q({select:[`select`,n,r&&`disabled`,i&&`multiple`,o&&`error`],icon:[`icon`,a&&`iconOpen`,r&&`disabled`],nativeInput:[`nativeInput`]},E_,t)},N_=z.forwardRef(function(e,t){let{"aria-describedby":n,"aria-label":r,autoFocus:i,autoWidth:a,children:o,className:s,defaultOpen:c,defaultValue:l,disabled:u,displayEmpty:d,error:f=!1,IconComponent:p,inputRef:m,labelId:h,MenuProps:g={},multiple:_,name:v,onBlur:y,onChange:b,onClose:x,onFocus:S,onKeyDown:C,onMouseDown:w,onOpen:T,open:E,readOnly:D,renderValue:O,required:k,SelectDisplayProps:ee={},tabIndex:A,type:j,value:te,variant:ne=`standard`,...re}=e,[M,N]=Nc({controlled:te,default:l,name:`Select`}),[ie,ae]=Nc({controlled:E,default:c,name:`Select`}),oe=z.useRef(null),P=z.useRef(null),[F,I]=z.useState(null),{current:se}=z.useRef(E!=null),[ce,le]=z.useState(),[ue,de]=z.useState(null),fe=Lc(t,m),pe=z.useCallback(e=>{P.current=e,e&&I(e)},[]),me=F?.parentNode;z.useImperativeHandle(fe,()=>({focus:()=>{P.current.focus()},node:oe.current,value:M}),[M]);let he=F!==null&&ie;z.useEffect(()=>{if(!he||!me||a||typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>{le(me.clientWidth)});return e.observe(me),()=>{e.disconnect()}},[he,me,a]),z.useEffect(()=>{c&&ie&&F&&!se&&(le(a?null:me.clientWidth),P.current.focus())},[F,a]),z.useEffect(()=>{i&&P.current.focus()},[i]),z.useEffect(()=>{if(!h)return;let e=Ec(P.current).getElementById(h);if(e){let t=()=>{getSelection().isCollapsed&&P.current.focus()};return e.addEventListener(`click`,t),()=>{e.removeEventListener(`click`,t)}}},[h]);let ge=(e,t)=>{e?(de(Dg(t)),T&&T(t)):(de(null),x&&x(t)),se||(le(a?null:me.clientWidth),ae(e))},_e=e=>{w?.(e),e.button===0&&(e.preventDefault(),P.current.focus(),ge(!0,e))},L=e=>{ge(!1,e)},ve=z.Children.toArray(o),R=e=>{let t=ve.find(t=>t.props.value===e.target.value);t!==void 0&&(N(t.props.value),b&&b(e,t))},ye=e=>t=>{let n;if(t.currentTarget.hasAttribute(`tabindex`)){if(_){n=Array.isArray(M)?M.slice():[];let t=M.indexOf(e.props.value);t===-1?n.push(e.props.value):n.splice(t,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),M!==n&&(N(n),b)){let r=t.nativeEvent||t,i=new r.constructor(r.type,r);Object.defineProperty(i,`target`,{writable:!0,value:{value:n,name:v}}),b(i,e)}_||ge(!1,t)}},be=e=>{D||([` `,`ArrowUp`,`ArrowDown`,`Enter`].includes(e.key)&&(e.preventDefault(),ge(!0,e)),C?.(e))},xe=e=>{!he&&y&&(Object.defineProperty(e,`target`,{writable:!0,value:{value:M,name:v}}),y(e))};delete re[`aria-invalid`];let Se,Ce,we=[],Te=!1;(Sp({value:M})||d)&&(O?Se=O(M):Te=!0);let Ee=ve.map(e=>{if(!z.isValidElement(e))return null;let t;if(_){if(!Array.isArray(M))throw Error(pt(2));t=M.some(t=>kg(t,e.props.value)),t&&Te&&we.push(e.props.children)}else t=kg(M,e.props.value),t&&Te&&(Ce=e.props.children);return z.cloneElement(e,{"aria-selected":t?`true`:`false`,onClick:ye(e),onKeyUp:t=>{t.key===` `&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:`option`,selected:t,value:void 0,"data-value":e.props.value})});Te&&(Se=_?we.length===0?null:we.reduce((e,t,n)=>(e.push(t),n{let{classes:t}=e,n=q({root:[`root`]},E_,t);return{...t,...n}},F_={name:`MuiSelect`,slot:`Root`,shouldForwardProp:e=>lc(e)&&e!==`variant`},I_=Y(Gh,F_)(``),L_=Y(T_,F_)(``),R_=Y(vh,F_)(``),z_=z.forwardRef(function(e,t){let n=mc({name:`MuiSelect`,props:e}),{autoWidth:r=!1,children:i,classes:a={},className:o,defaultOpen:s=!1,displayEmpty:c=!1,IconComponent:l=Bp,id:u,input:d,inputProps:f,label:p,labelId:m,MenuProps:h,multiple:g=!1,native:_=!1,onClose:v,onOpen:y,open:b,renderValue:x,SelectDisplayProps:S,variant:C=`outlined`,...w}=n,T=_?g_:N_,E=vp({props:n,muiFormControl:bp(),states:[`variant`,`error`]}),D=E.variant||C,O={...n,variant:D,classes:a},k=P_(O),{root:ee,...A}=k,j=d||{standard:(0,B.jsx)(I_,{ownerState:O}),outlined:(0,B.jsx)(L_,{label:p,ownerState:O}),filled:(0,B.jsx)(R_,{ownerState:O})}[D],te=Lc(t,Uf(j));return(0,B.jsx)(z.Fragment,{children:z.cloneElement(j,{inputComponent:T,inputProps:{children:i,error:E.error,IconComponent:l,variant:D,type:void 0,multiple:g,..._?{id:u}:{autoWidth:r,defaultOpen:s,displayEmpty:c,labelId:m,MenuProps:h,onClose:v,onOpen:y,open:b,renderValue:x,SelectDisplayProps:{id:u,...S}},...f,classes:f?Lr(A,f.classes):A,...d?d.props.inputProps:{}},...(g&&_||c)&&D===`outlined`?{notched:!0}:{},ref:te,className:H(j.props.className,o,k.root),...!d&&{variant:D},...w})})});z_.muiName=`Select`;var B_=is({createStyledComponent:Y(`div`,{name:`MuiStack`,slot:`Root`}),useThemeProps:e=>mc({props:e,name:`MuiStack`})});function V_(e){return U(`MuiTextField`,e)}W(`MuiTextField`,[`root`]);var H_={standard:Gh,filled:vh,outlined:T_},U_=e=>{let{classes:t}=e;return q({root:[`root`]},V_,t)},W_=Y(Sh,{name:`MuiTextField`,slot:`Root`})({}),G_=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiTextField`}),{autoComplete:r,autoFocus:i=!1,children:a,className:o,color:s=`primary`,defaultValue:c,disabled:l=!1,error:u=!1,fullWidth:d=!1,helperText:f,id:p,inputRef:m,label:h,maxRows:g,minRows:_,multiline:v=!1,name:y,onBlur:b,onChange:x,onFocus:S,placeholder:C,required:w=!1,rows:T,select:E=!1,slots:D={},slotProps:O={},type:k,value:ee,variant:A=`outlined`,...j}=n,te={...n,autoFocus:i,color:s,disabled:l,error:u,fullWidth:d,multiline:v,required:w,select:E,variant:A},ne=U_(te),re=go(p),M=f&&re?`${re}-helper-text`:void 0,N=h&&re?`${re}-label`:void 0,ie=H_[A],ae={slots:D,slotProps:O},[oe,P]=Tl(`select`,{elementType:z_,externalForwardedProps:ae,ownerState:te}),F=E&&P.native,I={},se=ae.slotProps.inputLabel;A===`outlined`&&(se&&se.shrink!==void 0&&(I.notched=se.shrink),I.label=h),E&&(F||(I.id=void 0),I[`aria-describedby`]=void 0);let[ce,le]=Tl(`root`,{elementType:W_,shouldForwardComponentProp:!0,externalForwardedProps:{...ae,...j},ownerState:te,className:H(ne.root,o),ref:t,additionalProps:{disabled:l,error:u,fullWidth:d,required:w,color:s,variant:A}}),[ue,de]=Tl(`input`,{elementType:ie,externalForwardedProps:ae,additionalProps:I,ownerState:te}),[fe,pe]=Tl(`inputLabel`,{elementType:Jh,externalForwardedProps:ae,ownerState:te}),[me,he]=Tl(`htmlInput`,{elementType:`input`,externalForwardedProps:ae,ownerState:te}),[ge,_e]=Tl(`formHelperText`,{elementType:Oh,externalForwardedProps:ae,ownerState:te}),L=(0,B.jsx)(ue,{"aria-describedby":M,autoComplete:r,autoFocus:i,defaultValue:c,fullWidth:d,multiline:v,name:y,rows:T,maxRows:g,minRows:_,type:k,value:ee,id:re,inputRef:m,onBlur:b,onChange:x,onFocus:S,placeholder:C,inputProps:he,slots:{input:D.htmlInput?me:void 0},...de});return(0,B.jsxs)(ce,{...le,children:[h!=null&&h!==``&&(0,B.jsx)(fe,{htmlFor:E&&!F?void 0:re,id:N,...E&&!F&&{component:`div`},...pe,children:h}),E?(0,B.jsx)(oe,{"aria-describedby":M,id:re,labelId:N,value:ee,input:L,...P,children:a}):L,f&&(0,B.jsx)(ge,{id:M,..._e,children:f})]})}),K_=g(),q_=async e=>{let t=await fetch(e);if(!t.ok){let n=``;try{n=(await t.json()).message??``}catch{}throw Error(n||`Request failed for ${e} (${t.status})`)}return await t.json()},J_={locations:()=>q_(`/api/locations`),publishers:e=>q_(`/api/publishers?location=${encodeURIComponent(e)}`),offers:(e,t)=>q_(`/api/offers?location=${encodeURIComponent(e)}&publisher=${encodeURIComponent(t)}`),skus:(e,t,n)=>q_(`/api/skus?location=${encodeURIComponent(e)}&publisher=${encodeURIComponent(t)}&offer=${encodeURIComponent(n)}`),versions:(e,t,n,r)=>q_(`/api/versions?location=${encodeURIComponent(e)}&publisher=${encodeURIComponent(t)}&offer=${encodeURIComponent(n)}&sku=${encodeURIComponent(r)}`),templates:()=>q_(`/api/templates`),render:async(e,t)=>{let n=await fetch(`/api/render`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({templateFile:e,selection:t})});if(!n.ok)throw Error(`Failed to render template`);return(await n.json()).rendered},skuExport:async(e,t,n)=>(await q_(`/api/sku-export?location=${encodeURIComponent(e)}&publisher=${encodeURIComponent(t)}&offer=${encodeURIComponent(n)}`)).rendered},Y_={location:``,publisher:``,offer:``,sku:``,version:``},X_=()=>{let[e,t]=(0,z.useState)(Y_),[n,r]=(0,z.useState)(``),[i,a]=(0,z.useState)(``),[o,s]=(0,z.useState)(``),[c,l]=(0,z.useState)(``),u=it({queryKey:[`locations`],queryFn:J_.locations}),d=it({queryKey:[`publishers`,e.location],queryFn:()=>J_.publishers(e.location),enabled:!!e.location}),f=it({queryKey:[`offers`,e.location,e.publisher],queryFn:()=>J_.offers(e.location,e.publisher),enabled:!!(e.location&&e.publisher)}),p=it({queryKey:[`skus`,e.location,e.publisher,e.offer],queryFn:()=>J_.skus(e.location,e.publisher,e.offer),enabled:!!(e.location&&e.publisher&&e.offer)}),m=it({queryKey:[`versions`,e.location,e.publisher,e.offer,e.sku],queryFn:()=>J_.versions(e.location,e.publisher,e.offer,e.sku),enabled:!!(e.location&&e.publisher&&e.offer&&e.sku)}),h=it({queryKey:[`templates`],queryFn:J_.templates});(0,z.useEffect)(()=>{t(e=>({...e,publisher:``,offer:``,sku:``,version:``})),a(``),s(``)},[e.location]),(0,z.useEffect)(()=>{t(e=>({...e,offer:``,sku:``,version:``})),a(``),s(``)},[e.publisher]),(0,z.useEffect)(()=>{t(e=>({...e,sku:``,version:``})),a(``)},[e.offer]),(0,z.useEffect)(()=>{t(e=>({...e,version:``})),a(``)},[e.sku]);let g=(0,z.useMemo)(()=>!!(e.location&&e.publisher&&e.offer&&e.sku&&e.version&&n),[e,n]),_=(0,z.useMemo)(()=>[...d.data??[]].sort((e,t)=>e.localeCompare(t)),[d.data]),v=(0,z.useMemo)(()=>[...f.data??[]].sort((e,t)=>e.localeCompare(t)),[f.data]),y=(0,z.useMemo)(()=>[...p.data??[]].sort((e,t)=>e.localeCompare(t)),[p.data]),b=(0,z.useMemo)(()=>[...m.data??[]].sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:`base`})),[m.data]),x=(e,t)=>{let n=t.trim().toLowerCase();return n?e.filter(e=>e.toLowerCase().includes(n)):e},S=async()=>{l(``);try{let[t,r]=await Promise.all([J_.render(n,e),J_.skuExport(e.location,e.publisher,e.offer)]);a(t),s(r)}catch(e){l(e instanceof Error?e.message:`Unexpected render error`)}},C=u.isLoading||h.isLoading,w=u.error instanceof Error?u.error.message:`Failed to load locations`;return(0,B.jsx)(dm,{sx:{minHeight:`100vh`,py:4},children:(0,B.jsx)(Mm,{maxWidth:`lg`,children:(0,B.jsxs)(B_,{spacing:3,children:[(0,B.jsx)(Iu,{variant:`h4`,sx:{fontWeight:500},children:`Azure Image Chooser`}),(0,B.jsx)(Iu,{color:`text.secondary`,children:`Select a marketplace image and generate reusable snippets.`}),C?(0,B.jsx)(pu,{}):u.isError?(0,B.jsx)(ju,{severity:`error`,children:w}):(0,B.jsx)(Dm,{children:(0,B.jsx)(jm,{children:(0,B.jsxs)(Fh,{container:!0,spacing:2,children:[(0,B.jsx)(Fh,{size:{xs:12,md:6},children:(0,B.jsxs)(Sh,{fullWidth:!0,children:[(0,B.jsx)(Jh,{id:`location-label`,children:`Location`}),(0,B.jsx)(z_,{labelId:`location-label`,label:`Location`,value:e.location,onChange:e=>t(t=>({...t,location:e.target.value})),children:(u.data??[]).map(e=>(0,B.jsx)(c_,{value:e.name,children:e.displayName},e.name))})]})}),(0,B.jsx)(Fh,{size:{xs:12,md:6},children:(0,B.jsx)(nm,{options:_,value:e.publisher||null,disabled:!e.location,onChange:(e,n)=>t(e=>({...e,publisher:n??``})),filterOptions:(e,t)=>x(e,t.inputValue),renderInput:e=>(0,B.jsx)(G_,{...e,label:`Publisher`})})}),(0,B.jsx)(Fh,{size:{xs:12,md:4},children:(0,B.jsx)(nm,{options:v,value:e.offer||null,disabled:!e.publisher,onChange:(e,n)=>t(e=>({...e,offer:n??``})),filterOptions:(e,t)=>x(e,t.inputValue),renderInput:e=>(0,B.jsx)(G_,{...e,label:`Offer`})})}),(0,B.jsx)(Fh,{size:{xs:12,md:4},children:(0,B.jsx)(nm,{options:y,value:e.sku||null,disabled:!e.offer,onChange:(e,n)=>t(e=>({...e,sku:n??``})),filterOptions:(e,t)=>x(e,t.inputValue),renderInput:e=>(0,B.jsx)(G_,{...e,label:`SKU`})})}),(0,B.jsx)(Fh,{size:{xs:12,md:4},children:(0,B.jsxs)(Sh,{fullWidth:!0,disabled:!e.sku,children:[(0,B.jsx)(Jh,{id:`version-label`,children:`Version`}),(0,B.jsx)(z_,{labelId:`version-label`,label:`Version`,value:e.version,onChange:e=>t(t=>({...t,version:e.target.value})),children:b.map(e=>(0,B.jsx)(c_,{value:e,children:e},e))})]})}),(0,B.jsx)(Fh,{size:{xs:12,md:8},children:(0,B.jsxs)(Sh,{fullWidth:!0,children:[(0,B.jsx)(Jh,{id:`template-label`,children:`Usage scenario`}),(0,B.jsx)(z_,{labelId:`template-label`,label:`Usage scenario`,value:n,onChange:e=>r(e.target.value),children:(h.data??[]).map(e=>(0,B.jsx)(c_,{value:e.file,children:e.label},e.file))})]})}),(0,B.jsx)(Fh,{size:{xs:12,md:4},children:(0,B.jsx)(Cm,{fullWidth:!0,variant:`contained`,sx:{height:`100%`},color:`primary`,onClick:S,disabled:!g,children:`Generate usage`})})]})})}),c?(0,B.jsx)(ju,{severity:`error`,children:c}):null,i?(0,B.jsx)(Dm,{children:(0,B.jsxs)(jm,{children:[(0,B.jsx)(Iu,{variant:`h6`,children:`Usage snippet`}),(0,B.jsx)(dm,{component:`pre`,sx:{overflowX:`auto`,p:2,bgcolor:`grey.100`,color:`text.primary`,borderRadius:1,border:1,borderColor:`divider`},children:i})]})}):null,o?(0,B.jsx)(Dm,{children:(0,B.jsxs)(jm,{children:[(0,B.jsx)(Iu,{variant:`h6`,children:`Available SKUs`}),(0,B.jsx)(dm,{component:`pre`,sx:{overflowX:`auto`,p:2,bgcolor:`grey.100`,color:`text.primary`,borderRadius:1,border:1,borderColor:`divider`},children:o})]})}):null]})})})},Z_=new ze;(0,K_.createRoot)(document.getElementById(`root`)).render((0,B.jsx)(z.StrictMode,{children:(0,B.jsxs)(We,{client:Z_,children:[(0,B.jsx)(Bm,{}),(0,B.jsx)(X_,{})]})})); \ No newline at end of file diff --git a/app-new/dist/frontend/index.html b/app-new/dist/frontend/index.html new file mode 100644 index 0000000..bb6c535 --- /dev/null +++ b/app-new/dist/frontend/index.html @@ -0,0 +1,12 @@ + + + + + + Azure Image Chooser + + + +
+ + diff --git a/app-new/frontend/package-lock.json b/app-new/frontend/package-lock.json index 7daf14e..987593e 100644 --- a/app-new/frontend/package-lock.json +++ b/app-new/frontend/package-lock.json @@ -4334,22 +4334,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true, "license": "MIT" - }, - "node_modules/yaml": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", - "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", - "extraneous": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } } } } diff --git a/app-new/frontend/src/App.tsx b/app-new/frontend/src/App.tsx index b011efa..fcc264d 100644 --- a/app-new/frontend/src/App.tsx +++ b/app-new/frontend/src/App.tsx @@ -1,6 +1,7 @@ import { useEffect, useMemo, useState } from "react"; import { Alert, + Autocomplete, Box, Button, Card, @@ -13,6 +14,7 @@ import { MenuItem, Select, Stack, + TextField, Typography } from "@mui/material"; import { useQuery } from "@tanstack/react-query"; @@ -84,6 +86,32 @@ const App = () => { [selection, templateFile] ); + const publishers = useMemo( + () => [...(publishersQuery.data ?? [])].sort((a, b) => a.localeCompare(b)), + [publishersQuery.data] + ); + const offers = useMemo( + () => [...(offersQuery.data ?? [])].sort((a, b) => a.localeCompare(b)), + [offersQuery.data] + ); + const skus = useMemo( + () => [...(skusQuery.data ?? [])].sort((a, b) => a.localeCompare(b)), + [skusQuery.data] + ); + const versions = useMemo( + () => [...(versionsQuery.data ?? [])].sort((a, b) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" })), + [versionsQuery.data] + ); + + const containsFilter = (options: string[], inputValue: string) => { + const query = inputValue.trim().toLowerCase(); + if (!query) { + return options; + } + + return options.filter((option) => option.toLowerCase().includes(query)); + }; + const onRender = async () => { setRenderError(""); try { @@ -99,12 +127,13 @@ const App = () => { }; const loading = locationsQuery.isLoading || templatesQuery.isLoading; + const locationsError = locationsQuery.error instanceof Error ? locationsQuery.error.message : "Failed to load locations"; return ( - + - + Azure Image Chooser @@ -113,6 +142,8 @@ const App = () => { {loading ? ( + ) : locationsQuery.isError ? ( + {locationsError} ) : ( @@ -136,57 +167,36 @@ const App = () => { - - Publisher - - + setSelection((prev) => ({ ...prev, publisher: value ?? "" }))} + filterOptions={(options, state) => containsFilter(options, state.inputValue)} + renderInput={(params) => } + /> - - Offer - - + setSelection((prev) => ({ ...prev, offer: value ?? "" }))} + filterOptions={(options, state) => containsFilter(options, state.inputValue)} + renderInput={(params) => } + /> - - SKU - - + setSelection((prev) => ({ ...prev, sku: value ?? "" }))} + filterOptions={(options, state) => containsFilter(options, state.inputValue)} + renderInput={(params) => } + /> @@ -198,7 +208,7 @@ const App = () => { value={selection.version} onChange={(event) => setSelection((prev) => ({ ...prev, version: event.target.value }))} > - {(versionsQuery.data ?? []).map((version) => ( + {versions.map((version) => ( {version} @@ -226,7 +236,7 @@ const App = () => { - @@ -241,7 +251,10 @@ const App = () => { Usage snippet - + {renderedUsage} @@ -252,7 +265,10 @@ const App = () => { Available SKUs - + {skuExport} diff --git a/app-new/frontend/src/api.ts b/app-new/frontend/src/api.ts index fbff585..6536cf3 100644 --- a/app-new/frontend/src/api.ts +++ b/app-new/frontend/src/api.ts @@ -3,7 +3,15 @@ import type { LocationOption, SelectionState, UsageTemplate } from "./types"; const json = async (path: string): Promise => { const response = await fetch(path); if (!response.ok) { - throw new Error(`Request failed for ${path}`); + let details = ""; + try { + const payload = (await response.json()) as { message?: string }; + details = payload.message ?? ""; + } catch { + // Ignore non-JSON error payloads. + } + + throw new Error(details || `Request failed for ${path} (${response.status})`); } return (await response.json()) as T; diff --git a/app-new/frontend/src/main.tsx b/app-new/frontend/src/main.tsx index fcf2e97..1976c0b 100644 --- a/app-new/frontend/src/main.tsx +++ b/app-new/frontend/src/main.tsx @@ -1,33 +1,16 @@ import { StrictMode } from "react"; import { createRoot } from "react-dom/client"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -import { CssBaseline, ThemeProvider, createTheme } from "@mui/material"; +import { CssBaseline } from "@mui/material"; import App from "./App"; const queryClient = new QueryClient(); -const theme = createTheme({ - palette: { - mode: "light", - primary: { main: "#00695f" }, - secondary: { main: "#0d47a1" }, - background: { - default: "#f4f8f7", - paper: "#ffffff" - } - }, - shape: { - borderRadius: 12 - } -}); - createRoot(document.getElementById("root")!).render( - - - - + + ); diff --git a/app-new/frontend/test/app.test.tsx b/app-new/frontend/test/app.test.tsx index 0ee919d..3722f0a 100644 --- a/app-new/frontend/test/app.test.tsx +++ b/app-new/frontend/test/app.test.tsx @@ -32,10 +32,17 @@ describe("App", () => { }); it("renders application heading", async () => { - const client = new QueryClient(); + const client = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + gcTime: 0 + } + } + }); const theme = createTheme(); - render( + const view = render( @@ -44,5 +51,7 @@ describe("App", () => { ); expect(await screen.findByText("Azure Image Chooser")).toBeInTheDocument(); + view.unmount(); + client.clear(); }); }); diff --git a/app-new/frontend/vite.config.ts b/app-new/frontend/vite.config.ts index 3b06763..d92ba0b 100644 --- a/app-new/frontend/vite.config.ts +++ b/app-new/frontend/vite.config.ts @@ -4,7 +4,7 @@ import react from "@vitejs/plugin-react"; export default defineConfig({ plugins: [react()], build: { - outDir: "../../dist/frontend", + outDir: "../dist/frontend", emptyOutDir: true }, server: { diff --git a/app-new/templates.json b/app-new/templates.json new file mode 100644 index 0000000..e55e4a2 --- /dev/null +++ b/app-new/templates.json @@ -0,0 +1,22 @@ +[ + { + "label": "Terraform VM image reference", + "language": "hcl", + "file": "azurerm_hcl.tpl" + }, + { + "label": "Azure CLI", + "language": "shell", + "file": "shell.tpl" + }, + { + "label": "Azure Resource Manager Template", + "language": "json", + "file": "arm_vm.jsonc" + }, + { + "label": "Bicep VM image reference", + "language": "bicep", + "file": "bicep_vm.tpl" + } +] diff --git a/app-new/templates/arm_vm.jsonc b/app-new/templates/arm_vm.jsonc new file mode 100644 index 0000000..04c4c87 --- /dev/null +++ b/app-new/templates/arm_vm.jsonc @@ -0,0 +1,17 @@ +{ + // This is a partial Azure virtual machine resource template. + "type": "Microsoft.Compute/virtualMachines", + "apiVersion": "2022-03-01", + "name": "example-vm", + "location": "westeurope", + "properties": { + "storageProfile": { + "imageReference": { + "publisher": "{{ publisher }}", + "offer": "{{ offer }}", + "sku": "{{ sku }}", + "version": "{{ version }}" + } + } + } +} diff --git a/app-new/templates/azurerm_hcl.tpl b/app-new/templates/azurerm_hcl.tpl new file mode 100644 index 0000000..7fcab8b --- /dev/null +++ b/app-new/templates/azurerm_hcl.tpl @@ -0,0 +1,6 @@ +source_image_reference = { + publisher = "{{ publisher }}" + offer = "{{ offer }}" + sku = "{{ sku }}" + version = "{{ version }}" +} diff --git a/app-new/templates/bicep_vm.tpl b/app-new/templates/bicep_vm.tpl new file mode 100644 index 0000000..cbd94d3 --- /dev/null +++ b/app-new/templates/bicep_vm.tpl @@ -0,0 +1,14 @@ +resource virtualMachine 'Microsoft.Compute/virtualMachines@2024-03-01' = { + name: 'example-vm' + location: resourceGroup().location + properties: { + storageProfile: { + imageReference: { + publisher: '{{ publisher }}' + offer: '{{ offer }}' + sku: '{{ sku }}' + version: '{{ version }}' + } + } + } +} diff --git a/app-new/templates/shell.tpl b/app-new/templates/shell.tpl new file mode 100644 index 0000000..38f11cf --- /dev/null +++ b/app-new/templates/shell.tpl @@ -0,0 +1 @@ +az create -n MyVM -g MyResourceGroup --image {{ publisher }}:{{ offer }}:{{ sku }}:{{ version }} diff --git a/entrypoint.sh b/entrypoint.sh index 19cc1b1..7e44988 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,4 +1,4 @@ #!/usr/bin/env sh set -eu -exec node dist/backend/server.js +exec node /app-new/dist/backend/server.js -- 2.49.1 From 4c7d38399b2def8d6564b2a4bd779b6c59f7d6c0 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Sun, 19 Apr 2026 20:58:17 +0200 Subject: [PATCH 03/15] Refactor Dockerfile to streamline backend package installation --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index cd2abf6..a4606e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,8 +18,8 @@ WORKDIR /app-new ENV NODE_ENV=production ENV PORT=3000 -COPY app-new/backend/package*.json backend/ -RUN cd backend && npm install --omit=dev +COPY app-new/backend/package*.json ./ +RUN npm ci --omit=dev COPY --from=build /app-new/dist dist COPY --from=build /app-new/templates templates -- 2.49.1 From 599ac49a765446c3cf6594006b59af5049f03efe Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Sun, 19 Apr 2026 21:02:51 +0200 Subject: [PATCH 04/15] Refactor Dockerfile and entrypoint script for improved structure and consistency --- Dockerfile | 19 ++++++++++--------- entrypoint.sh | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index a4606e0..f345109 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,29 +1,30 @@ FROM node:24-trixie-slim AS build -WORKDIR /app-new +WORKDIR /app COPY app-new/backend/package*.json backend/ COPY app-new/frontend/package*.json frontend/ -RUN cd backend && npm install -RUN cd frontend && npm install +RUN cd backend && npm ci +RUN cd frontend && npm ci COPY app-new . RUN cd backend && npm run build RUN cd frontend && npm run build +RUN cd backend && npm prune --omit=dev FROM node:24-trixie-slim AS runtime -WORKDIR /app-new +WORKDIR /app ENV NODE_ENV=production ENV PORT=3000 -COPY app-new/backend/package*.json ./ -RUN npm ci --omit=dev +COPY --from=build /app/dist dist +COPY --from=build /app/templates templates +COPY --from=build /app/templates.json templates.json +COPY --from=build /app/backend/node_modules dist/backend/node_modules -COPY --from=build /app-new/dist dist -COPY --from=build /app-new/templates templates -COPY --from=build /app-new/templates.json templates.json +WORKDIR /app COPY entrypoint.sh entrypoint.sh RUN chmod +x entrypoint.sh diff --git a/entrypoint.sh b/entrypoint.sh index 7e44988..81059a3 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,4 +1,4 @@ #!/usr/bin/env sh set -eu -exec node /app-new/dist/backend/server.js +exec node /app/dist/backend/server.js -- 2.49.1 From 28d0720ffaa009c2d553b89b199841eae50733c7 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Sun, 19 Apr 2026 21:16:15 +0200 Subject: [PATCH 05/15] feat: add health check API and handle app configuration warnings - Removed the old index.html file from the frontend build. - Integrated a health check query in App component to verify app configuration. - Display a warning alert if the app is not configured with AZURE_SUBSCRIPTION_ID. - Updated API module to include health check endpoint. --- .gitignore | 6 +- app-new/backend/src/server.ts | 69 ++++++-- app-new/dist/backend/azure-service.js | 107 ------------- app-new/dist/backend/cache.js | 24 --- app-new/dist/backend/server.js | 148 ------------------ app-new/dist/backend/template-service.js | 36 ----- app-new/dist/backend/types.js | 2 - app-new/dist/backend/version.js | 21 --- .../dist/frontend/assets/index-DPvVOxFj.js | 119 -------------- app-new/dist/frontend/index.html | 12 -- app-new/frontend/src/App.tsx | 11 +- app-new/frontend/src/api.ts | 1 + 12 files changed, 66 insertions(+), 490 deletions(-) delete mode 100644 app-new/dist/backend/azure-service.js delete mode 100644 app-new/dist/backend/cache.js delete mode 100644 app-new/dist/backend/server.js delete mode 100644 app-new/dist/backend/template-service.js delete mode 100644 app-new/dist/backend/types.js delete mode 100644 app-new/dist/backend/version.js delete mode 100644 app-new/dist/frontend/assets/index-DPvVOxFj.js delete mode 100644 app-new/dist/frontend/index.html diff --git a/.gitignore b/.gitignore index d76ec62..bce49ba 100644 --- a/.gitignore +++ b/.gitignore @@ -12,12 +12,12 @@ **/playground.py # Azure Secrets and Configuration. -/.acr-pat -/azure.env +.acr-pat +azure.env # MacOS Finder files **/.DS_Store # Node/React rewrite outputs **/node_modules -/dist +**/dist diff --git a/app-new/backend/src/server.ts b/app-new/backend/src/server.ts index b02c034..561b92a 100644 --- a/app-new/backend/src/server.ts +++ b/app-new/backend/src/server.ts @@ -42,27 +42,32 @@ const makeApp = () => { app.use(cors()); app.use(express.json()); - if (!subscriptionId) { - app.get("/api/health", (_req, res) => { + const azure = subscriptionId ? new AzureImageService(subscriptionId) : null; + const templates = new TemplateService(); + + app.get("/api/health", (_req, res) => { + if (!subscriptionId) { res.status(500).json({ status: "error", message: "Missing AZURE_SUBSCRIPTION_ID" }); - }); + return; + } - return { app, port }; - } - - const azure = new AzureImageService(subscriptionId); - const templates = new TemplateService(); - - app.get("/api/health", (_req, res) => { res.json({ status: "ok" }); }); + const requireAzure = (): AzureImageService => { + if (!azure) { + throw new Error("Missing AZURE_SUBSCRIPTION_ID"); + } + + return azure; + }; + app.get("/api/locations", async (_req, res, next) => { try { - res.json(await azure.getLocations()); + res.json(await requireAzure().getLocations()); } catch (error) { next(error); } @@ -71,7 +76,7 @@ const makeApp = () => { app.get("/api/publishers", async (req, res, next) => { try { const { location } = queryLocation.parse(req.query); - res.json(await azure.getPublishers(location)); + res.json(await requireAzure().getPublishers(location)); } catch (error) { next(error); } @@ -80,7 +85,7 @@ const makeApp = () => { app.get("/api/offers", async (req, res, next) => { try { const { location, publisher } = queryOffer.parse(req.query); - res.json(await azure.getOffers(location, publisher)); + res.json(await requireAzure().getOffers(location, publisher)); } catch (error) { next(error); } @@ -89,7 +94,7 @@ const makeApp = () => { app.get("/api/skus", async (req, res, next) => { try { const { location, publisher, offer } = querySku.parse(req.query); - res.json(await azure.getSkus(location, publisher, offer)); + res.json(await requireAzure().getSkus(location, publisher, offer)); } catch (error) { next(error); } @@ -98,7 +103,7 @@ const makeApp = () => { app.get("/api/versions", async (req, res, next) => { try { const { location, publisher, offer, sku } = queryVersion.parse(req.query); - res.json(await azure.getVersions(location, publisher, offer, sku)); + res.json(await requireAzure().getVersions(location, publisher, offer, sku)); } catch (error) { next(error); } @@ -121,7 +126,7 @@ const makeApp = () => { app.get("/api/sku-export", async (req, res, next) => { try { const { location, publisher, offer } = querySku.parse(req.query); - const skus = await azure.getSkus(location, publisher, offer); + const skus = await requireAzure().getSkus(location, publisher, offer); res.json({ rendered: templates.buildSkuExport(skus) }); } catch (error) { next(error); @@ -151,10 +156,40 @@ const makeApp = () => { if (require.main === module) { const { app, port } = makeApp(); - app.listen(port, () => { + const server = app.listen(port, () => { // eslint-disable-next-line no-console console.log(`azure-image-chooser listening on ${port}`); }); + + let shuttingDown = false; + const shutdown = (signal: NodeJS.Signals) => { + if (shuttingDown) { + return; + } + + shuttingDown = true; + // eslint-disable-next-line no-console + console.log(`received ${signal}, shutting down`); + server.close((error) => { + if (error) { + // eslint-disable-next-line no-console + console.error("graceful shutdown failed", error); + process.exit(1); + } + + process.exit(0); + }); + + // Force-exit if connections do not close in time. + setTimeout(() => { + // eslint-disable-next-line no-console + console.error("shutdown timeout reached, forcing exit"); + process.exit(1); + }, 10_000).unref(); + }; + + process.on("SIGTERM", shutdown); + process.on("SIGINT", shutdown); } export { makeApp }; diff --git a/app-new/dist/backend/azure-service.js b/app-new/dist/backend/azure-service.js deleted file mode 100644 index adff2a4..0000000 --- a/app-new/dist/backend/azure-service.js +++ /dev/null @@ -1,107 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.AzureImageService = void 0; -const arm_compute_1 = require("@azure/arm-compute"); -const identity_1 = require("@azure/identity"); -const cache_1 = require("./cache"); -const version_1 = require("./version"); -const CACHE_TTL_MS = 5 * 60 * 1000; -class AzureImageService { - subscriptionId; - credential = new identity_1.DefaultAzureCredential(); - computeClient; - cache = new cache_1.MemoryCache(); - constructor(subscriptionId) { - this.subscriptionId = subscriptionId; - this.computeClient = new arm_compute_1.ComputeManagementClient(this.credential, subscriptionId); - } - async getLocations() { - const cacheKey = "locations"; - const cached = this.cache.get(cacheKey); - if (cached) { - return cached; - } - const token = await this.credential.getToken("https://management.azure.com/.default"); - const url = `https://management.azure.com/subscriptions/${this.subscriptionId}/locations?api-version=2022-12-01`; - const response = await fetch(url, { - headers: { - Authorization: `Bearer ${token?.token ?? ""}` - } - }); - if (!response.ok) { - throw new Error(`Failed to fetch Azure locations: ${response.status} ${response.statusText}`); - } - const payload = (await response.json()); - const allLocations = (payload.value ?? []) - .filter((loc) => Boolean(loc.name)) - .map((loc) => ({ - name: loc.name, - displayName: loc.displayName ?? loc.name, - regionType: loc.metadata?.regionType - })); - const physical = allLocations.filter((loc) => loc.regionType?.toLowerCase() === "physical"); - const locations = (physical.length > 0 ? physical : allLocations).map((loc) => ({ - name: loc.name, - displayName: loc.displayName - })); - locations.sort((a, b) => a.name.localeCompare(b.name)); - this.cache.set(cacheKey, locations, CACHE_TTL_MS); - return locations; - } - async getPublishers(location) { - const cacheKey = `publishers:${location}`; - const cached = this.cache.get(cacheKey); - if (cached) { - return cached; - } - const response = await this.computeClient.virtualMachineImages.listPublishers(location); - const publishers = this.extractNames(response).sort((a, b) => a.localeCompare(b)); - this.cache.set(cacheKey, publishers, CACHE_TTL_MS); - return publishers; - } - async getOffers(location, publisher) { - const cacheKey = `offers:${location}:${publisher}`; - const cached = this.cache.get(cacheKey); - if (cached) { - return cached; - } - const response = await this.computeClient.virtualMachineImages.listOffers(location, publisher); - const offers = this.extractNames(response).sort((a, b) => a.localeCompare(b)); - this.cache.set(cacheKey, offers, CACHE_TTL_MS); - return offers; - } - async getSkus(location, publisher, offer) { - const cacheKey = `skus:${location}:${publisher}:${offer}`; - const cached = this.cache.get(cacheKey); - if (cached) { - return cached; - } - const response = await this.computeClient.virtualMachineImages.listSkus(location, publisher, offer); - const skus = this.extractNames(response).sort((a, b) => a.localeCompare(b)); - this.cache.set(cacheKey, skus, CACHE_TTL_MS); - return skus; - } - async getVersions(location, publisher, offer, sku) { - const cacheKey = `versions:${location}:${publisher}:${offer}:${sku}`; - const cached = this.cache.get(cacheKey); - if (cached) { - return cached; - } - const response = await this.computeClient.virtualMachineImages.list(location, publisher, offer, sku); - const versions = this.extractNames(response); - const sorted = (0, version_1.sortImageVersionsIfSemantic)(versions); - this.cache.set(cacheKey, sorted, CACHE_TTL_MS); - return sorted; - } - extractNames(source) { - const items = Array.isArray(source) - ? source - : typeof source === "object" && source !== null && "value" in source && Array.isArray(source.value) - ? source.value - : []; - return items - .map((item) => (typeof item === "object" && item !== null && "name" in item ? item.name : undefined)) - .filter((value) => Boolean(value)); - } -} -exports.AzureImageService = AzureImageService; diff --git a/app-new/dist/backend/cache.js b/app-new/dist/backend/cache.js deleted file mode 100644 index f80ec0b..0000000 --- a/app-new/dist/backend/cache.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MemoryCache = void 0; -class MemoryCache { - store = new Map(); - get(key) { - const hit = this.store.get(key); - if (!hit) { - return undefined; - } - if (Date.now() >= hit.expiresAt) { - this.store.delete(key); - return undefined; - } - return hit.value; - } - set(key, value, ttlMs) { - this.store.set(key, { - value, - expiresAt: Date.now() + ttlMs - }); - } -} -exports.MemoryCache = MemoryCache; diff --git a/app-new/dist/backend/server.js b/app-new/dist/backend/server.js deleted file mode 100644 index 7afb55f..0000000 --- a/app-new/dist/backend/server.js +++ /dev/null @@ -1,148 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.makeApp = void 0; -const node_fs_1 = require("node:fs"); -const node_path_1 = require("node:path"); -const cors_1 = __importDefault(require("cors")); -const express_1 = __importDefault(require("express")); -const zod_1 = require("zod"); -const azure_service_1 = require("./azure-service"); -const template_service_1 = require("./template-service"); -const findAppNewRoot = () => { - const candidates = [(0, node_path_1.join)(__dirname, "../../.."), (0, node_path_1.join)(__dirname, "../..")]; - for (const candidate of candidates) { - if ((0, node_fs_1.existsSync)((0, node_path_1.join)(candidate, "templates.json"))) { - return candidate; - } - } - throw new Error("Unable to resolve app-new root"); -}; -const queryLocation = zod_1.z.object({ location: zod_1.z.string().min(1) }); -const queryOffer = zod_1.z.object({ location: zod_1.z.string().min(1), publisher: zod_1.z.string().min(1) }); -const querySku = zod_1.z.object({ location: zod_1.z.string().min(1), publisher: zod_1.z.string().min(1), offer: zod_1.z.string().min(1) }); -const queryVersion = zod_1.z.object({ location: zod_1.z.string().min(1), publisher: zod_1.z.string().min(1), offer: zod_1.z.string().min(1), sku: zod_1.z.string().min(1) }); -const renderBody = zod_1.z.object({ - templateFile: zod_1.z.string().min(1), - selection: zod_1.z.object({ - location: zod_1.z.string().min(1), - publisher: zod_1.z.string().min(1), - offer: zod_1.z.string().min(1), - sku: zod_1.z.string().min(1), - version: zod_1.z.string().min(1) - }) -}); -const makeApp = () => { - const app = (0, express_1.default)(); - const port = Number.parseInt(process.env.PORT ?? "3000", 10); - const subscriptionId = process.env.AZURE_SUBSCRIPTION_ID; - app.use((0, cors_1.default)()); - app.use(express_1.default.json()); - if (!subscriptionId) { - app.get("/api/health", (_req, res) => { - res.status(500).json({ - status: "error", - message: "Missing AZURE_SUBSCRIPTION_ID" - }); - }); - return { app, port }; - } - const azure = new azure_service_1.AzureImageService(subscriptionId); - const templates = new template_service_1.TemplateService(); - app.get("/api/health", (_req, res) => { - res.json({ status: "ok" }); - }); - app.get("/api/locations", async (_req, res, next) => { - try { - res.json(await azure.getLocations()); - } - catch (error) { - next(error); - } - }); - app.get("/api/publishers", async (req, res, next) => { - try { - const { location } = queryLocation.parse(req.query); - res.json(await azure.getPublishers(location)); - } - catch (error) { - next(error); - } - }); - app.get("/api/offers", async (req, res, next) => { - try { - const { location, publisher } = queryOffer.parse(req.query); - res.json(await azure.getOffers(location, publisher)); - } - catch (error) { - next(error); - } - }); - app.get("/api/skus", async (req, res, next) => { - try { - const { location, publisher, offer } = querySku.parse(req.query); - res.json(await azure.getSkus(location, publisher, offer)); - } - catch (error) { - next(error); - } - }); - app.get("/api/versions", async (req, res, next) => { - try { - const { location, publisher, offer, sku } = queryVersion.parse(req.query); - res.json(await azure.getVersions(location, publisher, offer, sku)); - } - catch (error) { - next(error); - } - }); - app.get("/api/templates", (_req, res) => { - res.json(templates.getTemplates()); - }); - app.post("/api/render", (req, res, next) => { - try { - const payload = renderBody.parse(req.body); - const rendered = templates.render(payload.templateFile, payload.selection); - res.json({ rendered }); - } - catch (error) { - next(error); - } - }); - app.get("/api/sku-export", async (req, res, next) => { - try { - const { location, publisher, offer } = querySku.parse(req.query); - const skus = await azure.getSkus(location, publisher, offer); - res.json({ rendered: templates.buildSkuExport(skus) }); - } - catch (error) { - next(error); - } - }); - app.use((err, _req, res, _next) => { - if (err instanceof zod_1.z.ZodError) { - res.status(400).json({ message: "Invalid request", issues: err.issues }); - return; - } - const message = err instanceof Error ? err.message : "Unexpected error"; - res.status(500).json({ message }); - }); - const frontendRoot = (0, node_path_1.join)(findAppNewRoot(), "dist/frontend"); - if ((0, node_fs_1.existsSync)(frontendRoot)) { - app.use(express_1.default.static(frontendRoot)); - app.get(/^(?!\/api).*/, (_req, res) => { - res.sendFile((0, node_path_1.join)(frontendRoot, "index.html")); - }); - } - return { app, port }; -}; -exports.makeApp = makeApp; -if (require.main === module) { - const { app, port } = makeApp(); - app.listen(port, () => { - // eslint-disable-next-line no-console - console.log(`azure-image-chooser listening on ${port}`); - }); -} diff --git a/app-new/dist/backend/template-service.js b/app-new/dist/backend/template-service.js deleted file mode 100644 index 112f561..0000000 --- a/app-new/dist/backend/template-service.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TemplateService = void 0; -const node_fs_1 = require("node:fs"); -const node_path_1 = require("node:path"); -const nunjucks_1 = __importDefault(require("nunjucks")); -const findAppNewRoot = () => { - const candidates = [(0, node_path_1.join)(__dirname, "../../.."), (0, node_path_1.join)(__dirname, "../..")]; - for (const candidate of candidates) { - if ((0, node_fs_1.existsSync)((0, node_path_1.join)(candidate, "templates.json"))) { - return candidate; - } - } - throw new Error("Unable to resolve app-new template root"); -}; -class TemplateService { - appNewRoot = findAppNewRoot(); - env = nunjucks_1.default.configure((0, node_path_1.join)(this.appNewRoot, "templates"), { - autoescape: false, - noCache: true - }); - templates = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(this.appNewRoot, "templates.json"), "utf8")); - getTemplates() { - return this.templates; - } - render(templateFile, selection) { - return this.env.render(templateFile, selection); - } - buildSkuExport(skus) { - return `[\n${skus.map((sku) => `\t\"${sku}\"`).join(",\n")}\n]`; - } -} -exports.TemplateService = TemplateService; diff --git a/app-new/dist/backend/types.js b/app-new/dist/backend/types.js deleted file mode 100644 index c8ad2e5..0000000 --- a/app-new/dist/backend/types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/app-new/dist/backend/version.js b/app-new/dist/backend/version.js deleted file mode 100644 index d3fc59f..0000000 --- a/app-new/dist/backend/version.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.sortImageVersionsIfSemantic = void 0; -const SEMVER_PATTERN = /^[0-9]+\.[0-9]+\.[0-9]+$/; -const semverSortKey = (value) => value.split(".").map((part) => Number.parseInt(part, 10)); -const sortImageVersionsIfSemantic = (versions) => { - if (!versions.every((value) => SEMVER_PATTERN.test(value))) { - return [...versions].sort((a, b) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" })); - } - return [...versions].sort((a, b) => { - const aParts = semverSortKey(a); - const bParts = semverSortKey(b); - for (let i = 0; i < aParts.length; i += 1) { - if (aParts[i] !== bParts[i]) { - return aParts[i] - bParts[i]; - } - } - return 0; - }); -}; -exports.sortImageVersionsIfSemantic = sortImageVersionsIfSemantic; diff --git a/app-new/dist/frontend/assets/index-DPvVOxFj.js b/app-new/dist/frontend/assets/index-DPvVOxFj.js deleted file mode 100644 index 8ae6de5..0000000 --- a/app-new/dist/frontend/assets/index-DPvVOxFj.js +++ /dev/null @@ -1,119 +0,0 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function te(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,te(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),te(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&A(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&A(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,ee=k.port2;k.port1.onmessage=D,O=function(){ee.postMessage(null)}}else O=function(){_(D,0)};function A(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,A(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1oe||(e.current=ae[oe],ae[oe]=null,oe--)}function I(e,t){oe++,ae[oe]=e.current,e.current=t}var se=P(null),ce=P(null),le=P(null),ue=P(null);function de(e,t){switch(I(le,t),I(ce,e),I(se,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hd(t),e=Ud(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}F(se),I(se,e)}function fe(){F(se),F(ce),F(le)}function pe(e){e.memoizedState!==null&&I(ue,e);var t=se.current,n=Ud(t,e.type);t!==n&&(I(ce,e),I(se,n))}function me(e){ce.current===e&&(F(se),F(ce)),ue.current===e&&(F(ue),$f._currentValue=ie)}var he,ge;function _e(e){if(he===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);he=t&&t[1]||``,ge=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{L=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?_e(n):``}function R(e,t){switch(e.tag){case 26:case 27:case 5:return _e(e.type);case 16:return _e(`Lazy`);case 13:return e.child!==t&&t!==null?_e(`Suspense Fallback`):_e(`Suspense`);case 19:return _e(`SuspenseList`);case 0:case 15:return ve(e.type,!1);case 11:return ve(e.type.render,!1);case 1:return ve(e.type,!0);case 31:return _e(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=R(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Fe=null;function Ie(e){if(typeof Me==`function`&&Ne(e),Fe&&typeof Fe.setStrictMode==`function`)try{Fe.setStrictMode(Pe,e)}catch{}}var Le=Math.clz32?Math.clz32:Be,Re=Math.log,ze=Math.LN2;function Be(e){return e>>>=0,e===0?32:31-(Re(e)/ze|0)|0}var Ve=256,z=262144,B=4194304;function He(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ue(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=He(n))):i=He(o):i=He(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=He(n))):i=He(o)):i=He(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function We(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ge(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ke(){var e=B;return B<<=1,!(B&62914560)&&(B=4194304),e}function qe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Je(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ye(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),cn=!1;if(sn)try{var ln={};Object.defineProperty(ln,`passive`,{get:function(){cn=!0}}),window.addEventListener(`test`,ln,ln),window.removeEventListener(`test`,ln,ln)}catch{cn=!1}var un=null,dn=null,fn=null;function pn(){if(fn)return fn;var e,t=dn,n=t.length,r,i=`value`in un?un.value:un.textContent,a=i.length;for(e=0;e=Gn),Jn=` `,Yn=!1;function Xn(e,t){switch(e){case`keyup`:return Un.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Zn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Qn=!1;function $n(e,t){switch(e){case`compositionend`:return Zn(t);case`keypress`:return t.which===32?(Yn=!0,Jn):null;case`textInput`:return e=t.data,e===Jn&&Yn?null:e;default:return null}}function er(e,t){if(Qn)return e===`compositionend`||!Wn&&Xn(e,t)?(e=pn(),fn=dn=un=null,Qn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Sr(n)}}function wr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Pt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Pt(e.document)}return t}function Er(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Dr=sn&&`documentMode`in document&&11>=document.documentMode,Or=null,kr=null,Ar=null,jr=!1;function Mr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jr||Or==null||Or!==Pt(r)||(r=Or,`selectionStart`in r&&Er(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ar&&xr(Ar,r)||(Ar=r,r=Ed(kr,`onSelect`),0>=o,i-=o,wi=1<<32-Le(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),V&&Ei(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),V&&Ei(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return V&&Ei(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),V&&Ei(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Ea(l)===r.type){n(e,r.sibling),c=a(r,o.props),Aa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=di(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ui(o.type,o.key,o.props,null,e.mode,c),Aa(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=mi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Ea(o),b(e,r,o,c)}if(re(o))return h(e,r,o,c);if(j(o)){if(l=j(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,ka(o),c);if(o.$$typeof===C)return b(e,r,ea(e,o),c);ja(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=fi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{W=0;var i=b(e,t,n,r);return U=null,i}catch(t){if(t===ba||t===Sa)throw t;var a=oi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Na=Ma(!0),Pa=Ma(!1),Fa=!1;function Ia(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function La(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ra(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function za(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Pl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ri(e),ni(e,null,n),t}return $r(e,r,t,n),ri(e)}function Ba(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ze(e,n)}}function Va(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ha=!1;function Ua(){if(Ha){var e=da;if(e!==null)throw e}}function Wa(e,t,n,r){Ha=!1;var i=e.updateQueue;Fa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Ll&f)===f:(r&f)===f){f!==0&&f===ua&&(Ha=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Fa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Wl|=o,e.lanes=o,e.memoizedState=d}}function Ga(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Ka(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=M.T,s={};M.T=s,As(e,!1,t,n);try{var c=i(),l=M.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?ks(e,t,ma(c,r),fu(e)):ks(e,t,r,fu(e))}catch(n){ks(e,t,{then:function(){},status:`rejected`,reason:n},fu())}finally{N.p=a,o!==null&&s.types!==null&&(o.types=s.types),M.T=o}}function ys(){}function bs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=xs(e).queue;vs(e,a,t,ie,n===null?ys:function(){return Ss(e),n(r)})}function xs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ie,baseState:ie,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:jo,lastRenderedState:ie},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:jo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ss(e){var t=xs(e);t.next===null&&(t=e.alternate.memoizedState),ks(e,t.next.queue,{},fu())}function Cs(){return $i($f)}function ws(){return Eo().memoizedState}function Ts(){return Eo().memoizedState}function Es(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=fu();e=Ra(n);var r=za(t,e,n);r!==null&&(mu(r,t,n),Ba(r,t,n)),t={cache:oa()},e.payload=t;return}t=t.return}}function Ds(e,t,n){var r=fu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},js(e)?Ms(t,n):(n=ei(e,t,n,r),n!==null&&(mu(n,e,r),Ns(n,t,r)))}function Os(e,t,n){ks(e,t,n,fu())}function ks(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(js(e))Ms(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,br(s,o))return $r(e,t,i,0),Fl===null&&Qr(),!1}catch{}if(n=ei(e,t,i,r),n!==null)return mu(n,e,r),Ns(n,t,r),!0}return!1}function As(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},js(e)){if(t)throw Error(i(479))}else t=ei(e,n,r,2),t!==null&&mu(t,e,2)}function js(e){var t=e.alternate;return e===K||t!==null&&t===K}function Ms(e,t){uo=lo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ns(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ze(e,n)}}var Ps={readContext:$i,use:ko,useCallback:_o,useContext:_o,useEffect:_o,useImperativeHandle:_o,useLayoutEffect:_o,useInsertionEffect:_o,useMemo:_o,useReducer:_o,useRef:_o,useState:_o,useDebugValue:_o,useDeferredValue:_o,useTransition:_o,useSyncExternalStore:_o,useId:_o,useHostTransitionStatus:_o,useFormState:_o,useActionState:_o,useOptimistic:_o,useMemoCache:_o,useCacheRefresh:_o};Ps.useEffectEvent=_o;var Fs={readContext:$i,use:ko,useCallback:function(e,t){return q().memoizedState=[e,t===void 0?null:t],e},useContext:$i,useEffect:as,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),rs(4194308,4,ds.bind(null,t,e),n)},useLayoutEffect:function(e,t){return rs(4194308,4,e,t)},useInsertionEffect:function(e,t){rs(4,2,e,t)},useMemo:function(e,t){var n=q();t=t===void 0?null:t;var r=e();if(fo){Ie(!0);try{e()}finally{Ie(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=q();if(n!==void 0){var i=n(t);if(fo){Ie(!0);try{n(t)}finally{Ie(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ds.bind(null,K,e),[r.memoizedState,e]},useRef:function(e){var t=q();return e={current:e},t.memoizedState=e},useState:function(e){e=Vo(e);var t=e.queue,n=Os.bind(null,K,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ps,useDeferredValue:function(e,t){return gs(q(),e,t)},useTransition:function(){var e=Vo(!1);return e=vs.bind(null,K,e.queue,!0,!1),q().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=K,a=q();if(V){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Fl===null)throw Error(i(349));Ll&127||Io(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,as(Ro.bind(null,r,o,e),[e]),r.flags|=2048,ts(9,{destroy:void 0},Lo.bind(null,r,o,n,t),null),n},useId:function(){var e=q(),t=Fl.identifierPrefix;if(V){var n=Ti,r=wi;n=(r&~(1<<32-Le(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=po++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[it]=t,o[at]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Fd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Ec(t)}}return jc(t),Dc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ec(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=le.current,zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ji,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[it]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ii(t,!0)}else e=Vd(e).createTextNode(r),e[it]=t,t.stateNode=e}return jc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=zi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[it]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;jc(t),e=!1}else n=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(G(t),t):(G(t),null);if(t.flags&128)throw Error(i(558))}return jc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[it]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;jc(t),a=!1}else a=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(G(t),t):(G(t),null)}return G(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),kc(t,t.updateQueue),jc(t),null);case 4:return fe(),e===null&&Sd(t.stateNode.containerInfo),jc(t),null;case 10:return qi(t.type),jc(t),null;case 19:if(F(io),r=t.memoizedState,r===null)return jc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Ac(r,!1);else{if(Ul!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=ao(e),o!==null){for(t.flags|=128,Ac(r,!1),e=o.updateQueue,t.updateQueue=e,kc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)li(n,e),n=n.sibling;return I(io,io.current&1|2),V&&Ei(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>eu&&(t.flags|=128,a=!0,Ac(r,!1),t.lanes=4194304)}else{if(!a)if(e=ao(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,kc(t,e),Ac(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!V)return jc(t),null}else 2*Te()-r.renderingStartTime>eu&&n!==536870912&&(t.flags|=128,a=!0,Ac(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(jc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=io.current,I(io,a?n&1|2:n&1),V&&Ei(t,r.treeForkCount),e);case 22:case 23:return G(t),Za(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(jc(t),t.subtreeFlags&6&&(t.flags|=8192)):jc(t),n=t.updateQueue,n!==null&&kc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&F(ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),qi(aa),jc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Nc(e,t){switch(ki(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qi(aa),fe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return me(t),null;case 31:if(t.memoizedState!==null){if(G(t),t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(G(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return F(io),null;case 4:return fe(),null;case 10:return qi(t.type),null;case 22:case 23:return G(t),Za(),e!==null&&F(ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return qi(aa),null;case 25:return null;default:return null}}function Pc(e,t){switch(ki(t),t.tag){case 3:qi(aa),fe();break;case 26:case 27:case 5:me(t);break;case 4:fe();break;case 31:t.memoizedState!==null&&G(t);break;case 13:G(t);break;case 19:F(io);break;case 10:qi(t.type);break;case 22:case 23:G(t),Za(),e!==null&&F(ga);break;case 24:qi(aa)}}function Fc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Wu(t,t.return,e)}}function Ic(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Wu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Wu(t,t.return,e)}}function Lc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Ka(t,n)}catch(t){Wu(e,e.return,t)}}}function Rc(e,t,n){n.props=Hs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Wu(e,t,n)}}function zc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Wu(e,t,n)}}function Bc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Wu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Wu(e,t,n)}else n.current=null}function Vc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Wu(e,e.return,t)}}function Hc(e,t,n){try{var r=e.stateNode;Id(r,e.type,n,t),r[at]=t}catch(t){Wu(e,e.return,t)}}function Uc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Qd(e.type)||e.tag===4}function Wc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Uc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Qd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Gc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zt));else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Gc(e,t,n),e=e.sibling;e!==null;)Gc(e,t,n),e=e.sibling}function Kc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Kc(e,t,n),e=e.sibling;e!==null;)Kc(e,t,n),e=e.sibling}function qc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Fd(t,r,n),t[it]=e,t[at]=n}catch(t){Wu(e,e.return,t)}}var Jc=!1,Yc=!1,Xc=!1,Zc=typeof WeakSet==`function`?WeakSet:Set,Qc=null;function $c(e,t){if(e=e.containerInfo,zd=cp,e=Tr(e),Er(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Bd={focusedElem:e,selectionRange:n},cp=!1,Qc=t;Qc!==null;)if(t=Qc,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Qc=e;else for(;Qc!==null;){switch(t=Qc,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Fd(o,r,n),o[it]=e,_t(o),r=o;break a;case`link`:var s=Hf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Cr(s,h),v=Cr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,M.T=null,n=cu,cu=null;var o=iu,s=ou;if(ru=0,au=iu=null,ou=0,Pl&6)throw Error(i(331));var c=Pl;if(Pl|=4,kl(o.current),xl(o,o.current,s,n),Pl=c,id(0,!1),Fe&&typeof Fe.onPostCommitFiberRoot==`function`)try{Fe.onPostCommitFiberRoot(Pe,o)}catch{}return!0}finally{N.p=a,M.T=r,Bu(e,t)}}function Uu(e,t,n){t=gi(n,t),t=Js(e.stateNode,t,2),e=za(e,t,2),e!==null&&(Je(e,2),rd(e))}function Wu(e,t,n){if(e.tag===3)Uu(e,e,n);else for(;t!==null;){if(t.tag===3){Uu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(nu===null||!nu.has(r))){e=gi(n,e),n=Ys(2),r=za(t,n,2),r!==null&&(Xs(n,r,t,e),Je(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Nl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Vl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Fl===e&&(Ll&n)===n&&(Ul===4||Ul===3&&(Ll&62914560)===Ll&&300>Te()-Ql?!(Pl&2)&&xu(e,0):Kl|=n,Jl===Ll&&(Jl=0)),rd(e)}function qu(e,t){t===0&&(t=Ke()),e=ti(e,t),e!==null&&(Je(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return xe(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Le(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=Ll,a=Ue(r,r===Fl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||We(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Kd()&&(e=nd);for(var t=Te(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}ru!==0&&ru!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Ld(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Sf(e,t,n){var r=xf;if(r&&typeof t==`string`&&t){var i=It(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),gf.has(i)||(gf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Fd(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Cf(e){vf.D(e),Sf(`dns-prefetch`,e,null)}function wf(e,t){vf.C(e,t),Sf(`preconnect`,e,t)}function Tf(e,t,n){vf.L(e,t,n);var r=xf;if(r&&e&&t){var i=`link[rel="preload"][as="`+It(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+It(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+It(n.imageSizes)+`"]`)):i+=`[href="`+It(e)+`"]`;var a=i;switch(t){case`style`:a=jf(e);break;case`script`:a=Ff(e)}hf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),hf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Mf(a))||t===`script`&&r.querySelector(If(a))||(t=r.createElement(`link`),Fd(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Ef(e,t){vf.m(e,t);var n=xf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+It(r)+`"][href="`+It(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Ff(e)}if(!hf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),hf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(If(a)))return}r=n.createElement(`link`),Fd(r,`link`,e),_t(r),n.head.appendChild(r)}}}function Df(e,t,n){vf.S(e,t,n);var r=xf;if(r&&e){var i=gt(r).hoistableStyles,a=jf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Mf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=hf.get(a))&&zf(e,n);var c=o=r.createElement(`link`);_t(c),Fd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Rf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Of(e,t){vf.X(e,t);var n=xf;if(n&&e){var r=gt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=h({src:e,async:!0},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),_t(a),Fd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t){vf.M(e,t);var n=xf;if(n&&e){var r=gt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),_t(a),Fd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Af(e,t,n,r){var a=(a=le.current)?_f(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=jf(n.href),n=gt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=jf(n.href);var o=gt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Mf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),hf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},hf.set(e,n),o||Pf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Ff(n),n=gt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function jf(e){return`href="`+It(e)+`"`}function Mf(e){return`link[rel="stylesheet"][`+e+`]`}function Nf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Pf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Fd(t,`link`,n),_t(t),e.head.appendChild(t))}function Ff(e){return`[src="`+It(e)+`"]`}function If(e){return`script[async]`+e}function Lf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+It(n.href)+`"]`);if(r)return t.instance=r,_t(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),_t(r),Fd(r,`style`,a),Rf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=jf(n.href);var o=e.querySelector(Mf(a));if(o)return t.state.loading|=4,t.instance=o,_t(o),o;r=Nf(n),(a=hf.get(a))&&zf(r,a),o=(e.ownerDocument||e).createElement(`link`),_t(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Fd(o,`link`,r),t.state.loading|=4,Rf(o,n.precedence,e),t.instance=o;case`script`:return o=Ff(n.src),(a=e.querySelector(If(o)))?(t.instance=a,_t(a),a):(r=n,(a=hf.get(o))&&(r=h({},n),Bf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),_t(a),Fd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Rf(r,n.precedence,e));return t.instance}function Rf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Wf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Gf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Kf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=jf(r.href),a=t.querySelector(Mf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Yf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,_t(a);return}a=t.ownerDocument||t,r=Nf(r),(i=hf.get(i))&&zf(r,i),a=a.createElement(`link`),_t(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Fd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Yf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var qf=0;function Jf(e,t){return e.stylesheets&&e.count===0&&Zf(e,e.stylesheets),0qf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Yf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Zf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Xf=null;function Zf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Xf=new Map,t.forEach(Qf,e),Xf=null,Yf.call(e))}function Qf(e,t){if(!(t.state.loading&4)){var n=Xf.get(e);if(n)var r=n.get(null);else{n=new Map,Xf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},v=new class extends _{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},y={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},b=new class{#e=y;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function x(e){setTimeout(e,0)}var S=typeof window>`u`||`Deno`in globalThis;function C(){}function w(e,t){return typeof e==`function`?e(t):e}function T(e){return typeof e==`number`&&e>=0&&e!==1/0}function E(e,t){return Math.max(e+(t||0)-Date.now(),0)}function D(e,t){return typeof e==`function`?e(t):e}function O(e,t){return typeof e==`function`?e(t):e}function k(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==A(o,t.options))return!1}else if(!te(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function ee(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(j(t.options.mutationKey)!==j(a))return!1}else if(!te(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function A(e,t){return(t?.queryKeyHashFn||j)(e)}function j(e){return JSON.stringify(e,(e,t)=>ie(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function te(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>te(e[n],t[n])):!1}var ne=Object.prototype.hasOwnProperty;function re(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=N(e)&&N(t);if(!r&&!(ie(e)&&ie(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{b.setTimeout(t,e)})}function P(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:re(e,t)}function F(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function I(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var se=Symbol();function ce(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===se?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function le(e,t){return typeof e==`function`?e(...t):!!e}function ue(e,t,n){let r=!1,i;return Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var de=(()=>{let e=()=>S;return{isServer(){return e()},setIsServer(t){e=t}}})();function fe(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var pe=x;function me(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=pe,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var he=me(),ge=new class extends _{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function _e(e){return Math.min(1e3*2**e,3e4)}function L(e){return(e??`online`)===`online`?ge.isOnline():!0}var ve=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function R(e){let t=!1,n=0,r,i=fe(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new ve(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>v.isFocused()&&(e.networkMode===`always`||ge.isOnline())&&e.canRun(),u=()=>L(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(de.isServer()?0:3),o=e.retryDelay??_e,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&nl()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var ye=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),T(this.gcTime)&&(this.#e=b.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(de.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(b.clearTimeout(this.#e),this.#e=void 0)}},be=class extends ye{#e;#t;#n;#r;#i;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#n=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=Ce(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Ce(this.options);e.data!==void 0&&(this.setState(Se(e.data,e.dataUpdatedAt)),this.#e=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#n.remove(this)}setData(e,t){let n=P(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#c({type:`setState`,state:e,setStateOptions:t})}cancel(e){let t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#e}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>O(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===se||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>D(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!E(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#i&&(this.#o||this.#s()?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#s(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#i?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},i=()=>{let e=ce(this.options,t),n=(()=>{let e={client:this.#r,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#o=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:i};return r(e),e})();this.options.behavior?.onFetch(a,this),this.#t=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta}),this.#i=R({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof ve&&e.revert&&this.setState({...this.#t,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#i.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#n.config.onSuccess?.(e,this),this.#n.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof ve){if(e.silent)return this.#i.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#n.config.onError?.(e,this),this.#n.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#c(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...xe(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Se(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#t=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}})(this.state),he.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#n.notify({query:this,type:`updated`,action:e})})}};function xe(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:L(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Se(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Ce(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var we=class extends _{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=fe(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Ee(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return De(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return De(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof O(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!M(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&Oe(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||O(this.options.enabled,this.#t)!==O(t.enabled,this.#t)||D(this.options.staleTime,this.#t)!==D(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||O(this.options.enabled,this.#t)!==O(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return Ae(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(C)),t}#g(){this.#b();let e=D(this.options.staleTime,this.#t);if(de.isServer()||this.#r.isStale||!T(e))return;let t=E(this.#r.dataUpdatedAt,e)+1;this.#d=b.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(de.isServer()||O(this.options.enabled,this.#t)===!1||!T(this.#p)||this.#p===0)&&(this.#f=b.setInterval(()=>{(this.options.refetchIntervalInBackground||v.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(b.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(b.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&Ee(e,t),o=i&&Oe(e,n,t,r);(a||o)&&(l={...l,...xe(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=P(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=P(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:ke(e,t),refetch:this.refetch,promise:this.#o,isEnabled:O(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{i(this.#o=x.promise=fe())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a();break}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!M(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){he.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function Te(e,t){return O(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function Ee(e,t){return Te(e,t)||e.state.data!==void 0&&De(e,t,t.refetchOnMount)}function De(e,t,n){if(O(t.enabled,e)!==!1&&D(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&ke(e,t)}return!1}function Oe(e,t,n,r){return(e!==t||O(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&ke(e,n)}function ke(e,t){return O(t.enabled,e)!==!1&&e.isStaleByTime(D(t.staleTime,e))}function Ae(e,t){return!M(e.getCurrentResult(),t)}function je(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{ue(e,()=>t.signal,()=>n=!0)},u=ce(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?I:F;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?Ne:Me,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Me(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function Me(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ne(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var Pe=class extends ye{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Fe(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=R({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),he.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Fe(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Ie=class extends _{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new Pe({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=Le(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=Le(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=Le(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=Le(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){he.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ee(t,e))}findAll(e={}){return this.getAll().filter(t=>ee(e,t))}notify(e){he.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return he.batch(()=>Promise.all(e.map(e=>e.continue().catch(C))))}};function Le(e){return e.options.scope?.id}var Re=class extends _{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??A(r,t),a=this.get(i);return a||(a=new be({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){he.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>k(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>k(e,t)):t}notify(e){he.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){he.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){he.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ze=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Re,this.#t=e.mutationCache||new Ie,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=v.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=ge.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(D(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=w(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return he.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;he.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return he.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=he.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(C).catch(C)}invalidateQueries(e,t={}){return he.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=he.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(C)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(C)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(D(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(C).catch(C)}fetchInfiniteQuery(e){return e.behavior=je(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(C).catch(C)}ensureInfiniteQueryData(e){return e.behavior=je(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return ge.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(j(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{te(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(j(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{te(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=A(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===se&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Be=o((e=>{var t=Symbol.for(`react.transitional.element`);function n(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.jsx=n,e.jsxs=n})),Ve=o(((e,t)=>{t.exports=Be()})),z=c(u(),1),B=Ve(),He=z.createContext(void 0),Ue=e=>{let t=z.useContext(He);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},We=({client:e,children:t})=>(z.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,B.jsx)(He.Provider,{value:e,children:t})),Ge=z.createContext(!1),Ke=()=>z.useContext(Ge);Ge.Provider;function qe(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Je=z.createContext(qe()),Ye=()=>z.useContext(Je),Xe=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?le(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},Ze=e=>{z.useEffect(()=>{e.clearReset()},[e])},Qe=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||le(n,[e.error,r])),$e=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},et=(e,t)=>e.isLoading&&e.isFetching&&!t,tt=(e,t)=>e?.suspense&&t.isPending,nt=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function rt(e,t,n){let r=Ke(),i=Ye(),a=Ue(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash);o._optimisticResults=r?`isRestoring`:`optimistic`,$e(o),Xe(o,i,s),Ze(i);let c=!a.getQueryCache().get(o.queryHash),[l]=z.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&e.subscribed!==!1;if(z.useSyncExternalStore(z.useCallback(e=>{let t=d?l.subscribe(he.batchCalls(e)):C;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),z.useEffect(()=>{l.setOptions(o)},[o,l]),tt(o,u))throw nt(o,l,i);if(Qe({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,u),o.experimental_prefetchInRender&&!de.isServer()&&et(u,r)&&(c?nt(o,l,i):s?.promise)?.catch(C).finally(()=>{l.updateResult()}),o.notifyOnChangeProps?u:l.trackResult(u)}function it(e,t){return rt(e,we,t)}var at={black:`#000`,white:`#fff`},ot={50:`#ffebee`,100:`#ffcdd2`,200:`#ef9a9a`,300:`#e57373`,400:`#ef5350`,500:`#f44336`,600:`#e53935`,700:`#d32f2f`,800:`#c62828`,900:`#b71c1c`,A100:`#ff8a80`,A200:`#ff5252`,A400:`#ff1744`,A700:`#d50000`},st={50:`#f3e5f5`,100:`#e1bee7`,200:`#ce93d8`,300:`#ba68c8`,400:`#ab47bc`,500:`#9c27b0`,600:`#8e24aa`,700:`#7b1fa2`,800:`#6a1b9a`,900:`#4a148c`,A100:`#ea80fc`,A200:`#e040fb`,A400:`#d500f9`,A700:`#aa00ff`},ct={50:`#e3f2fd`,100:`#bbdefb`,200:`#90caf9`,300:`#64b5f6`,400:`#42a5f5`,500:`#2196f3`,600:`#1e88e5`,700:`#1976d2`,800:`#1565c0`,900:`#0d47a1`,A100:`#82b1ff`,A200:`#448aff`,A400:`#2979ff`,A700:`#2962ff`},lt={50:`#e1f5fe`,100:`#b3e5fc`,200:`#81d4fa`,300:`#4fc3f7`,400:`#29b6f6`,500:`#03a9f4`,600:`#039be5`,700:`#0288d1`,800:`#0277bd`,900:`#01579b`,A100:`#80d8ff`,A200:`#40c4ff`,A400:`#00b0ff`,A700:`#0091ea`},ut={50:`#e8f5e9`,100:`#c8e6c9`,200:`#a5d6a7`,300:`#81c784`,400:`#66bb6a`,500:`#4caf50`,600:`#43a047`,700:`#388e3c`,800:`#2e7d32`,900:`#1b5e20`,A100:`#b9f6ca`,A200:`#69f0ae`,A400:`#00e676`,A700:`#00c853`},dt={50:`#fff3e0`,100:`#ffe0b2`,200:`#ffcc80`,300:`#ffb74d`,400:`#ffa726`,500:`#ff9800`,600:`#fb8c00`,700:`#f57c00`,800:`#ef6c00`,900:`#e65100`,A100:`#ffd180`,A200:`#ffab40`,A400:`#ff9100`,A700:`#ff6d00`},ft={50:`#fafafa`,100:`#f5f5f5`,200:`#eeeeee`,300:`#e0e0e0`,400:`#bdbdbd`,500:`#9e9e9e`,600:`#757575`,700:`#616161`,800:`#424242`,900:`#212121`,A100:`#f5f5f5`,A200:`#eeeeee`,A400:`#bdbdbd`,A700:`#616161`};function pt(e,...t){let n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(e=>n.searchParams.append(`args[]`,e)),`Minified MUI error #${e}; visit ${n} for the full message.`}var mt=`$$material`;function ht(){return ht=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?Lt(Jt,--Kt):0,Wt--,qt===10&&(Wt=1,Ut--),qt}function $t(){return qt=Kt2||rn(qt)>3?``:` `}function ln(e,t){for(;--t&&$t()&&!(qt<48||qt>102||qt>57&&qt<65||qt>70&&qt<97););return nn(e,tn()+(t<6&&en()==32&&$t()==32))}function un(e){for(;$t();)switch(qt){case e:return Kt;case 34:case 39:e!==34&&e!==39&&un(qt);break;case 40:e===41&&un(e);break;case 92:$t();break}return Kt}function dn(e,t){for(;$t()&&e+qt!==57&&!(e+qt===84&&en()===47););return`/*`+nn(t,Kt-1)+`*`+At(e===47?e:$t())}function fn(e){for(;!rn(en());)$t();return nn(e,Kt)}function pn(e){return on(mn(``,null,null,null,[``],e=an(e),0,[0],e))}function mn(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,y=``,b=i,x=a,S=r,C=y;g;)switch(m=v,v=$t()){case 40:if(m!=108&&Lt(C,d-1)==58){It(C+=Ft(sn(v),`&`,`&\f`),`&\f`)!=-1&&(_=-1);break}case 34:case 39:case 91:C+=sn(v);break;case 9:case 10:case 13:case 32:C+=cn(m);break;case 92:C+=ln(tn()-1,7);continue;case 47:switch(en()){case 42:case 47:Vt(gn(dn($t(),tn()),t,n),c);break;default:C+=`/`}break;case 123*h:s[l++]=zt(C)*_;case 125*h:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:_==-1&&(C=Ft(C,/\f/g,``)),p>0&&zt(C)-d&&Vt(p>32?_n(C+`;`,r,n,d-1):_n(Ft(C,` `,``)+`;`,r,n,d-2),c);break;case 59:C+=`;`;default:if(Vt(S=hn(C,t,n,l,u,i,s,y,b=[],x=[],d),a),v===123)if(u===0)mn(C,t,S,S,b,a,d,s,x);else switch(f===99&&Lt(C,3)===110?100:f){case 100:case 108:case 109:case 115:mn(e,S,S,r&&Vt(hn(e,S,S,0,0,i,s,y,i,b=[],d),x),i,x,d,s,r?b:x);break;default:mn(C,S,S,S,[``],x,0,s,x)}}l=u=p=0,h=_=1,y=C=``,d=o;break;case 58:d=1+zt(C),p=m;default:if(h<1){if(v==123)--h;else if(v==125&&h++==0&&Qt()==125)continue}switch(C+=At(v),v*h){case 38:_=u>0?1:(C+=`\f`,-1);break;case 44:s[l++]=(zt(C)-1)*_,_=1;break;case 64:en()===45&&(C+=sn($t())),f=en(),u=d=zt(y=C+=fn(tn())),v++;break;case 45:m===45&&zt(C)==2&&(h=0)}}return a}function hn(e,t,n,r,i,a,o,s,c,l,u){for(var d=i-1,f=i===0?a:[``],p=Bt(f),m=0,h=0,g=0;m0?f[_]+` `+v:Ft(v,/&\f/g,f[_])))&&(c[g++]=y);return Yt(e,t,n,i===0?wt:s,c,l,u)}function gn(e,t,n){return Yt(e,t,n,Ct,At(Zt()),Rt(e,2,-2),0)}function _n(e,t,n,r){return Yt(e,t,n,Tt,Rt(e,0,r),Rt(e,r+1,-1),r)}function vn(e,t){for(var n=``,r=Bt(e),i=0;i6)switch(Lt(e,t+1)){case 109:if(Lt(e,t+4)!==45)break;case 102:return Ft(e,/(.+:)(.+)-([^]+)/,`$1`+St+`$2-$3$1`+xt+(Lt(e,t+3)==108?`$3`:`$2-$3`))+e;case 115:return~It(e,`stretch`)?kn(Ft(e,`stretch`,`fill-available`),t)+e:e}break;case 4949:if(Lt(e,t+1)!==115)break;case 6444:switch(Lt(e,zt(e)-3-(~It(e,`!important`)&&10))){case 107:return Ft(e,`:`,`:`+St)+e;case 101:return Ft(e,/(.+:)([^;!]+)(;|!.+)?/,`$1`+St+(Lt(e,14)===45?`inline-`:``)+`box$3$1`+St+`$2$3$1`+bt+`$2box$3`)+e}break;case 5936:switch(Lt(e,t+11)){case 114:return St+e+bt+Ft(e,/[svh]\w+-[tblr]{2}/,`tb`)+e;case 108:return St+e+bt+Ft(e,/[svh]\w+-[tblr]{2}/,`tb-rl`)+e;case 45:return St+e+bt+Ft(e,/[svh]\w+-[tblr]{2}/,`lr`)+e}return St+e+bt+e+e}return e}var An=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Tt:e.return=kn(e.value,e.length);break;case Dt:return vn([Xt(e,{value:Ft(e.value,`@`,`@`+St)})],r);case wt:if(e.length)return Ht(e.props,function(t){switch(Pt(t,/(::plac\w+|:read-\w+)/)){case`:read-only`:case`:read-write`:return vn([Xt(e,{props:[Ft(t,/:(read-\w+)/,`:`+xt+`$1`)]})],r);case`::placeholder`:return vn([Xt(e,{props:[Ft(t,/:(plac\w+)/,`:`+St+`input-$1`)]}),Xt(e,{props:[Ft(t,/:(plac\w+)/,`:`+xt+`$1`)]}),Xt(e,{props:[Ft(t,/:(plac\w+)/,bt+`input-$1`)]})],r)}return``})}}],jn=function(e){var t=e.key;if(t===`css`){var n=document.querySelectorAll(`style[data-emotion]:not([data-s])`);Array.prototype.forEach.call(n,function(e){e.getAttribute(`data-emotion`).indexOf(` `)!==-1&&(document.head.appendChild(e),e.setAttribute(`data-s`,``))})}var r=e.stylisPlugins||An,i={},a,o=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll(`style[data-emotion^="`+t+` "]`),function(e){for(var t=e.getAttribute(`data-emotion`).split(` `),n=1;n{var t=typeof Symbol==`function`&&Symbol.for,n=t?Symbol.for(`react.element`):60103,r=t?Symbol.for(`react.portal`):60106,i=t?Symbol.for(`react.fragment`):60107,a=t?Symbol.for(`react.strict_mode`):60108,o=t?Symbol.for(`react.profiler`):60114,s=t?Symbol.for(`react.provider`):60109,c=t?Symbol.for(`react.context`):60110,l=t?Symbol.for(`react.async_mode`):60111,u=t?Symbol.for(`react.concurrent_mode`):60111,d=t?Symbol.for(`react.forward_ref`):60112,f=t?Symbol.for(`react.suspense`):60113,p=t?Symbol.for(`react.suspense_list`):60120,m=t?Symbol.for(`react.memo`):60115,h=t?Symbol.for(`react.lazy`):60116,g=t?Symbol.for(`react.block`):60121,_=t?Symbol.for(`react.fundamental`):60117,v=t?Symbol.for(`react.responder`):60118,y=t?Symbol.for(`react.scope`):60119;function b(e){if(typeof e==`object`&&e){var t=e.$$typeof;switch(t){case n:switch(e=e.type,e){case l:case u:case i:case o:case a:case f:return e;default:switch(e&&=e.$$typeof,e){case c:case d:case h:case m:case s:return e;default:return t}}case r:return t}}}function x(e){return b(e)===u}e.AsyncMode=l,e.ConcurrentMode=u,e.ContextConsumer=c,e.ContextProvider=s,e.Element=n,e.ForwardRef=d,e.Fragment=i,e.Lazy=h,e.Memo=m,e.Portal=r,e.Profiler=o,e.StrictMode=a,e.Suspense=f,e.isAsyncMode=function(e){return x(e)||b(e)===l},e.isConcurrentMode=x,e.isContextConsumer=function(e){return b(e)===c},e.isContextProvider=function(e){return b(e)===s},e.isElement=function(e){return typeof e==`object`&&!!e&&e.$$typeof===n},e.isForwardRef=function(e){return b(e)===d},e.isFragment=function(e){return b(e)===i},e.isLazy=function(e){return b(e)===h},e.isMemo=function(e){return b(e)===m},e.isPortal=function(e){return b(e)===r},e.isProfiler=function(e){return b(e)===o},e.isStrictMode=function(e){return b(e)===a},e.isSuspense=function(e){return b(e)===f},e.isValidElementType=function(e){return typeof e==`string`||typeof e==`function`||e===i||e===u||e===o||e===a||e===f||e===p||typeof e==`object`&&!!e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===d||e.$$typeof===_||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)},e.typeOf=b})),Nn=o(((e,t)=>{t.exports=Mn()})),Pn=o(((e,t)=>{var n=Nn(),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};s[n.ForwardRef]=a,s[n.Memo]=o;function c(e){return n.isMemo(e)?o:s[e.$$typeof]||r}var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;function h(e,t,n){if(typeof t!=`string`){if(m){var r=p(t);r&&r!==m&&h(e,r,n)}var a=u(t);d&&(a=a.concat(d(t)));for(var o=c(e),s=c(t),g=0;g=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var Bn={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Vn=!1,Hn=/[A-Z]|^ms/g,Un=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Wn=function(e){return e.charCodeAt(1)===45},Gn=function(e){return e!=null&&typeof e!=`boolean`},Kn=Sn(function(e){return Wn(e)?e:e.replace(Hn,`-$&`).toLowerCase()}),qn=function(e,t){switch(e){case`animation`:case`animationName`:if(typeof t==`string`)return t.replace(Un,function(e,t,n){return Qn={name:t,styles:n,next:Qn},t})}return Bn[e]!==1&&!Wn(e)&&typeof t==`number`&&t!==0?t+`px`:t},Jn=`Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.`;function Yn(e,t,n){if(n==null)return``;var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case`boolean`:return``;case`object`:var i=n;if(i.anim===1)return Qn={name:i.name,styles:i.styles,next:Qn},i.name;var a=n;if(a.styles!==void 0){var o=a.next;if(o!==void 0)for(;o!==void 0;)Qn={name:o.name,styles:o.styles,next:Qn},o=o.next;return a.styles+`;`}return Xn(e,t,n);case`function`:if(e!==void 0){var s=Qn,c=n(e);return Qn=s,Yn(e,t,c)}break}var l=n;if(t==null)return l;var u=t[l];return u===void 0?l:u}function Xn(e,t,n){var r=``;if(Array.isArray(n))for(var i=0;i96?yr:br},Sr=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return typeof r!=`function`&&n&&(r=e.__emotion_forwardProp),r},Cr=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return Ln(t,n,r),nr(function(){return Rn(t,n,r)}),null},wr=function e(t,n){var r=t.__emotion_real===t,i=r&&t.__emotion_base||t,a,o;n!==void 0&&(a=n.label,o=n.target);var s=Sr(t,n,r),c=s||xr(i),l=!c(`as`);return function(){var u=arguments,d=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(a!==void 0&&d.push(`label:`+a+`;`),u[0]==null||u[0].raw===void 0)d.push.apply(d,u);else{var f=u[0];d.push(f[0]);for(var p=u.length,m=1;mt(Dr(e)?n:e):t})}function kr(e,t){return Er(e,t)}function Ar(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}var jr=[];function Mr(e){return jr[0]=e,$n(jr)}var Nr=o((e=>{var t=Symbol.for(`react.fragment`),n=Symbol.for(`react.strict_mode`),r=Symbol.for(`react.profiler`),i=Symbol.for(`react.consumer`),a=Symbol.for(`react.context`),o=Symbol.for(`react.forward_ref`),s=Symbol.for(`react.suspense`),c=Symbol.for(`react.suspense_list`),l=Symbol.for(`react.memo`),u=Symbol.for(`react.lazy`),d=Symbol.for(`react.client.reference`);e.isValidElementType=function(e){return!!(typeof e==`string`||typeof e==`function`||e===t||e===r||e===n||e===s||e===c||typeof e==`object`&&e&&(e.$$typeof===u||e.$$typeof===l||e.$$typeof===a||e.$$typeof===i||e.$$typeof===o||e.$$typeof===d||e.getModuleId!==void 0))}})),Pr=o(((e,t)=>{t.exports=Nr()}))();function Fr(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Ir(e){if(z.isValidElement(e)||(0,Pr.isValidElementType)(e)||!Fr(e))return e;let t={};return Object.keys(e).forEach(n=>{t[n]=Ir(e[n])}),t}function Lr(e,t,n={clone:!0}){let r=n.clone?{...e}:e;return Fr(e)&&Fr(t)&&Object.keys(t).forEach(i=>{z.isValidElement(t[i])||(0,Pr.isValidElementType)(t[i])?r[i]=t[i]:Fr(t[i])&&Object.prototype.hasOwnProperty.call(e,i)&&Fr(e[i])?r[i]=Lr(e[i],t[i],n):n.clone?r[i]=Fr(t[i])?Ir(t[i]):t[i]:r[i]=t[i]}),r}var Rr=e=>{let t=Object.keys(e).map(t=>({key:t,val:e[t]}))||[];return t.sort((e,t)=>e.val-t.val),t.reduce((e,t)=>({...e,[t.key]:t.val}),{})};function zr(e){let{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n=`px`,step:r=5,...i}=e,a=Rr(t),o=Object.keys(a);function s(e){return`@media (min-width:${typeof t[e]==`number`?t[e]:e}${n})`}function c(e){return`@media (max-width:${(typeof t[e]==`number`?t[e]:e)-r/100}${n})`}function l(e,i){let a=o.indexOf(i);return`@media (min-width:${typeof t[e]==`number`?t[e]:e}${n}) and (max-width:${(a!==-1&&typeof t[o[a]]==`number`?t[o[a]]:i)-r/100}${n})`}function u(e){return o.indexOf(e)+1(e.match(Br)?.[1]||0)-+(t.match(Br)?.[1]||0));let r=t;for(let e=0;et.startsWith(`@${e}`))||!!t.match(/^@\d/))}function Wr(e,t){let n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;let[,r,i]=n,a=Number.isNaN(+r)?r||0:+r;return e.containerQueries(i).up(a)}function Gr(e){let t=(e,t)=>e.replace(`@media`,t?`@container ${t}`:`@container`);function n(n,r){n.up=(...n)=>t(e.breakpoints.up(...n),r),n.down=(...n)=>t(e.breakpoints.down(...n),r),n.between=(...n)=>t(e.breakpoints.between(...n),r),n.only=(...n)=>t(e.breakpoints.only(...n),r),n.not=(...n)=>{let i=t(e.breakpoints.not(...n),r);return i.includes(`not all and`)?i.replace(`not all and `,``).replace(`min-width:`,`width<`).replace(`max-width:`,`width>`).replace(`and`,`or`):i}}let r={},i=e=>(n(r,e),r);return n(i),{...e,containerQueries:i}}var Kr={borderRadius:4};function qr(e){if(e==null)return!0;for(let t in e)return!1;return!0}function Jr(e,t){let n=Array.isArray(t),r=Array.isArray(e);return $r(t)?t:ei(e)?ti(t):n&&r?Zr(e,t):n===r?ni(e,t):ti(t)}function Yr(e){let t=0,n=e.length,r=Array(n);for(t=0;t({up:t=>{let n=typeof t==`number`?t:ii[t]||t;return typeof n==`number`&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function si(e,t,n){let r={};return ci(r,e.theme,t,(e,t,i)=>{let a=n(t,i);e?r[e]=a:Jr(r,a)})}function ci(e,t,n,r){if(t??=ri,Array.isArray(n)){let i=t.breakpoints??ai;for(let t=0;tLr(e,t),{}))}function pi(e,t){if(typeof e!=`object`)return{};let n={},r=Object.keys(t);return Array.isArray(e)?r.forEach((t,r)=>{r{e[t]!=null&&(n[t]=!0)}),n}function mi({values:e,breakpoints:t,base:n}){let r=n||pi(e,t),i=Object.keys(r);if(i.length===0)return e;let a;return i.reduce((t,n,r)=>(Array.isArray(e)?(t[n]=e[r]==null?e[a]:e[r],a=r):typeof e==`object`?(t[n]=e[n]==null?e[a]:e[n],a=n):t[n]=e,t),{})}function hi(e,t){if(Array.isArray(t))return!0;if(typeof t==`object`&&t){for(let n=0;n{if(e[t]==null)return null;let a=e[t],o=e.theme,s=vi(o,r)||{};return si(e,a,e=>{let r=_i(s,i,e,t);return n===!1?r:{[n]:r}})};return a.propTypes={},a.filterProps=[t],a}var xi={internal_cache:{}},Si={m:`margin`,p:`padding`},Ci={t:`Top`,r:`Right`,b:`Bottom`,l:`Left`,x:[`Left`,`Right`],y:[`Top`,`Bottom`]},wi={marginX:`mx`,marginY:`my`,paddingX:`px`,paddingY:`py`},Ti={};for(let e in Si)Ti[e]=[Si[e]];for(let e in Si)for(let t in Ci){let n=Si[e],r=Ci[t],i=Array.isArray(r)?r.map(e=>n+e):[n+r];Ti[e+t]=i}for(let e in wi)Ti[e]=Ti[wi[e]];var Ei=new Set([`m`,`mt`,`mr`,`mb`,`ml`,`mx`,`my`,`margin`,`marginTop`,`marginRight`,`marginBottom`,`marginLeft`,`marginX`,`marginY`,`marginInline`,`marginInlineStart`,`marginInlineEnd`,`marginBlock`,`marginBlockStart`,`marginBlockEnd`]),Di=new Set([`p`,`pt`,`pr`,`pb`,`pl`,`px`,`py`,`padding`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`paddingX`,`paddingY`,`paddingInline`,`paddingInlineStart`,`paddingInlineEnd`,`paddingBlock`,`paddingBlockStart`,`paddingBlockEnd`]),Oi=new Set([...Ei,...Di]);function ki(e,t,n,r){let i=vi(e,t,!0)??n;return typeof i==`number`||typeof i==`string`?e=>typeof e==`string`?e:typeof i==`string`?i.startsWith(`var(`)&&e===0?0:i.startsWith(`var(`)&&e===1?i:`calc(${e} * ${i})`:i*e:Array.isArray(i)?e=>{if(typeof e==`string`)return e;let t=i[Math.abs(e)];return e>=0?t:typeof t==`number`?-t:typeof t==`string`&&t.startsWith(`var(`)?`calc(-1 * ${t})`:`-${t}`}:typeof i==`function`?i:()=>void 0}function Ai(e){return ki(e,`spacing`,8,`spacing`)}function ji(e,t){return typeof t==`string`||t==null?t:e(t)}var Mi=[``];function V(e,t){let n=e.theme??xi,r=n?.internal_cache?.unarySpacing??Ai(n),i={};for(let n in e){if(!t.has(n))continue;let a=Ti[n]??(Mi[0]=n,Mi),o=e[n];ci(i,e.theme,o,(e,t)=>{let n=e?i[e]:i;for(let e=0;e(e.length===0?[1]:e).map(e=>{let n=t(e);return typeof n==`number`?`${n}px`:n}).join(` `);return n.mui=!0,n}function Li(...e){let t=e.reduce((e,t)=>(t.filterProps.forEach(n=>{e[n]=t}),e),{}),n=e=>{let n={};for(let r in e)t[r]&&Jr(n,t[r](e));return n};return n.propTypes={},n.filterProps=e.reduce((e,t)=>e.concat(t.filterProps),[]),n}function Ri(e){return typeof e==`number`?`${e}px solid`:e}function zi(e,t){return bi({prop:e,themeKey:`borders`,transform:t})}var Bi=zi(`border`,Ri),Vi=zi(`borderTop`,Ri),Hi=zi(`borderRight`,Ri),Ui=zi(`borderBottom`,Ri),Wi=zi(`borderLeft`,Ri),Gi=zi(`borderColor`),Ki=zi(`borderTopColor`),qi=zi(`borderRightColor`),Ji=zi(`borderBottomColor`),Yi=zi(`borderLeftColor`),Xi=zi(`outline`,Ri),Zi=zi(`outlineColor`),Qi=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){let t=ki(e.theme,`shape.borderRadius`,4,`borderRadius`);return si(e,e.borderRadius,e=>({borderRadius:ji(t,e)}))}return null};Qi.propTypes={},Qi.filterProps=[`borderRadius`],Li(Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Qi,Xi,Zi);var $i=e=>{if(e.gap!==void 0&&e.gap!==null){let t=ki(e.theme,`spacing`,8,`gap`);return si(e,e.gap,e=>({gap:ji(t,e)}))}return null};$i.propTypes={},$i.filterProps=[`gap`];var ea=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){let t=ki(e.theme,`spacing`,8,`columnGap`);return si(e,e.columnGap,e=>({columnGap:ji(t,e)}))}return null};ea.propTypes={},ea.filterProps=[`columnGap`];var ta=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){let t=ki(e.theme,`spacing`,8,`rowGap`);return si(e,e.rowGap,e=>({rowGap:ji(t,e)}))}return null};ta.propTypes={},ta.filterProps=[`rowGap`],Li($i,ea,ta,bi({prop:`gridColumn`}),bi({prop:`gridRow`}),bi({prop:`gridAutoFlow`}),bi({prop:`gridAutoColumns`}),bi({prop:`gridAutoRows`}),bi({prop:`gridTemplateColumns`}),bi({prop:`gridTemplateRows`}),bi({prop:`gridTemplateAreas`}),bi({prop:`gridArea`}));function na(e,t){return t===`grey`?t:e}Li(bi({prop:`color`,themeKey:`palette`,transform:na}),bi({prop:`bgcolor`,cssProperty:`backgroundColor`,themeKey:`palette`,transform:na}),bi({prop:`backgroundColor`,themeKey:`palette`,transform:na}));function ra(e){return e<=1&&e!==0?`${e*100}%`:e}var ia=bi({prop:`width`,transform:ra}),aa=e=>e.maxWidth!==void 0&&e.maxWidth!==null?si(e,e.maxWidth,t=>{let n=e.theme?.breakpoints?.values?.[t]||ii[t];return n?e.theme?.breakpoints?.unit===`px`?{maxWidth:n}:{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:ra(t)}}):null;aa.filterProps=[`maxWidth`];var oa=bi({prop:`minWidth`,transform:ra}),sa=bi({prop:`height`,transform:ra}),ca=bi({prop:`maxHeight`,transform:ra}),la=bi({prop:`minHeight`,transform:ra});bi({prop:`size`,cssProperty:`width`,transform:ra}),bi({prop:`size`,cssProperty:`height`,transform:ra}),Li(ia,aa,oa,sa,ca,la,bi({prop:`boxSizing`}));var ua={border:{themeKey:`borders`,transform:Ri},borderTop:{themeKey:`borders`,transform:Ri},borderRight:{themeKey:`borders`,transform:Ri},borderBottom:{themeKey:`borders`,transform:Ri},borderLeft:{themeKey:`borders`,transform:Ri},borderColor:{themeKey:`palette`},borderTopColor:{themeKey:`palette`},borderRightColor:{themeKey:`palette`},borderBottomColor:{themeKey:`palette`},borderLeftColor:{themeKey:`palette`},outline:{themeKey:`borders`,transform:Ri},outlineColor:{themeKey:`palette`},borderRadius:{themeKey:`shape.borderRadius`,style:Qi},color:{themeKey:`palette`,transform:na},bgcolor:{themeKey:`palette`,cssProperty:`backgroundColor`,transform:na},backgroundColor:{themeKey:`palette`,transform:na},p:{style:Pi},pt:{style:Pi},pr:{style:Pi},pb:{style:Pi},pl:{style:Pi},px:{style:Pi},py:{style:Pi},padding:{style:Pi},paddingTop:{style:Pi},paddingRight:{style:Pi},paddingBottom:{style:Pi},paddingLeft:{style:Pi},paddingX:{style:Pi},paddingY:{style:Pi},paddingInline:{style:Pi},paddingInlineStart:{style:Pi},paddingInlineEnd:{style:Pi},paddingBlock:{style:Pi},paddingBlockStart:{style:Pi},paddingBlockEnd:{style:Pi},m:{style:Ni},mt:{style:Ni},mr:{style:Ni},mb:{style:Ni},ml:{style:Ni},mx:{style:Ni},my:{style:Ni},margin:{style:Ni},marginTop:{style:Ni},marginRight:{style:Ni},marginBottom:{style:Ni},marginLeft:{style:Ni},marginX:{style:Ni},marginY:{style:Ni},marginInline:{style:Ni},marginInlineStart:{style:Ni},marginInlineEnd:{style:Ni},marginBlock:{style:Ni},marginBlockStart:{style:Ni},marginBlockEnd:{style:Ni},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:$i},rowGap:{style:ta},columnGap:{style:ea},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:`zIndex`},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:`shadows`},width:{transform:ra},maxWidth:{style:aa},minWidth:{transform:ra},height:{transform:ra},maxHeight:{transform:ra},minHeight:{transform:ra},boxSizing:{},font:{themeKey:`font`},fontFamily:{themeKey:`typography`},fontSize:{themeKey:`typography`},fontStyle:{themeKey:`typography`},fontWeight:{themeKey:`typography`},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:`typography`}},da={};function fa(){function e(t){if(!t.sx)return null;let{sx:n,theme:r=da,nested:i}=t,a=r.unstable_sxConfig??ua,o={sx:null,theme:r,nested:!0};function s(n){let s=n;if(typeof n==`function`)s=n(r);else if(typeof n!=`object`)return n;if(!s)return null;let c=r.breakpoints??ai,l=ui(c);for(let n in s){let i=ha(s[n],r);if(i!=null){if(typeof i!=`object`){ma(l,n,i,r,a);continue}if(a[n]){ma(l,n,i,r,a);continue}hi(c,i)?ci(l,t.theme,i,(e,t)=>{l[e][n]=t}):(o.sx=i,l[n]=e(o))}}return!i&&r.modularCssLayers?{"@layer sx":Vr(r,di(c,l))}:Vr(r,di(c,l))}return Array.isArray(n)?n.map(s):s(n)}return e.filterProps=[`sx`],e}var pa=fa();function ma(e,t,n,r,i){let a=i[t];if(!a){e[t]=n;return}if(n==null)return;let{themeKey:o}=a;if(o===`typography`&&n===`inherit`){e[t]=n;return}let{style:s}=a;if(s){Jr(e,s({[t]:n,theme:r}));return}let{cssProperty:c=t,transform:l}=a,u=vi(r,o);ci(e,r,n,(n,r)=>{let i=_i(u,l,r,t);c===!1?n?e[n]=i:Jr(e,i):n?e[n][c]=i:e[c]=i})}function ha(e,t){return typeof e==`function`?e(t):e}function ga(e,t){let n=this;if(n.vars){if(!n.colorSchemes?.[e]||typeof n.getColorSchemeSelector!=`function`)return{};let r=n.getColorSchemeSelector(e);return r===`&`?t:((r.includes(`data-`)||r.includes(`.`))&&(r=`*:where(${r.replace(/\s*&$/,``)}) &`),{[r]:t})}return n.palette.mode===e?t:{}}function _a(e={},...t){let{breakpoints:n={},palette:r={},spacing:i,shape:a={},...o}=e,s=zr(n),c=Ii(i),l=Lr({breakpoints:s,direction:`ltr`,components:{},palette:{mode:`light`,...r},spacing:c,shape:{...Kr,...a}},o);return l=Gr(l),l.applyStyles=ga,l=t.reduce((e,t)=>Lr(e,t),l),l.unstable_sxConfig={...ua,...o?.unstable_sxConfig},l.unstable_sx=function(e){return pa({sx:e,theme:this})},l.internal_cache={},l}function va(e){return Object.keys(e).length===0}function ya(e=null){let t=z.useContext(or);return!t||va(t)?e:t}var ba=_a();function xa(e=ba){return ya(e)}function Sa(e){let t=Mr(e);return e!==t&&t.styles?(t.styles.match(/^@layer\s+[^{]*$/)||(t.styles=`@layer global{${t.styles}}`),t):e}function Ca({styles:e,themeId:t,defaultTheme:n={}}){let r=xa(n),i=t&&r[t]||r,a=typeof e==`function`?e(i):e;return i.modularCssLayers&&(a=Array.isArray(a)?a.map(e=>Sa(typeof e==`function`?e(i):e)):Sa(a)),(0,B.jsx)(Or,{styles:a})}var wa=e=>e,Ta=(()=>{let e=wa;return{configure(t){e=t},generate(t){return e(t)},reset(){e=wa}}})();function Ea(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;te!==`theme`&&e!==`sx`&&e!==`as`})(pa);return z.forwardRef(function(e,o){let s=xa(n),{className:c,component:l=`div`,...u}=e;return(0,B.jsx)(a,{as:l,ref:o,className:H(c,i?i(r):r),theme:t&&s[t]||s,...u})})}var Oa={active:`active`,checked:`checked`,completed:`completed`,disabled:`disabled`,error:`error`,expanded:`expanded`,focused:`focused`,focusVisible:`focusVisible`,open:`open`,readOnly:`readOnly`,required:`required`,selected:`selected`};function U(e,t,n=`Mui`){let r=Oa[t];return r?`${n}-${r}`:`${Ta.generate(e)}-${t}`}function W(e,t,n=`Mui`){let r={};return t.forEach(t=>{r[t]=U(e,t,n)}),r}function ka(e){let{variants:t,...n}=e,r={variants:t,style:Mr(n),isProcessed:!0};return r.style===n||t&&t.forEach(e=>{typeof e.style!=`function`&&(e.style=Mr(e.style))}),r}var Aa=_a();function ja(e){return e!==`ownerState`&&e!==`theme`&&e!==`sx`&&e!==`as`}function Ma(e,t){return t&&e&&typeof e==`object`&&e.styles&&!e.styles.startsWith(`@layer`)&&(e.styles=`@layer ${t}{${String(e.styles)}}`),e}function Na(e){return e?(t,n)=>n[e]:null}function Pa(e,t,n){e.theme=qr(e.theme)?n:e.theme[t]||e.theme}function Fa(e,t,n){let r=typeof t==`function`?t(e):t;if(Array.isArray(r))return r.flatMap(t=>Fa(e,t,n));if(Array.isArray(r?.variants)){let t;if(r.isProcessed)t=n?Ma(r.style,n):r.style;else{let{variants:e,...i}=r;t=n?Ma(Mr(i),n):i}return Ia(e,r.variants,[t],n)}return r?.isProcessed?n?Ma(Mr(r.style),n):r.style:n?Ma(Mr(r),n):r}function Ia(e,t,n=[],r=void 0){let i;variantLoop:for(let a=0;a{Ar(e,e=>e.filter(e=>e!==pa));let{name:n,slot:o,skipVariantsResolver:s,skipSx:c,overridesResolver:l=Na(za(o)),...u}=t,d=n&&n.startsWith(`Mui`)||o?`components`:`custom`,f=s===void 0?o&&o!==`Root`&&o!==`root`||!1:s,p=c||!1,m=ja;o===`Root`||o===`root`?m=r:o?m=i:Ra(e)&&(m=void 0);let h=kr(e,{shouldForwardProp:m,label:void 0,...u}),g=e=>{if(e.__emotion_real===e)return e;if(typeof e==`function`)return function(t){return Fa(t,e,t.theme.modularCssLayers?d:void 0)};if(Fr(e)){let t=ka(e);return function(e){return t.variants?Fa(e,t,e.theme.modularCssLayers?d:void 0):e.theme.modularCssLayers?Ma(t.style,d):t.style}}return e},_=(...t)=>{let r=[],i=t.map(g),o=[];if(r.push(a),n&&l&&o.push(function(e){let t=e.theme.components?.[n]?.styleOverrides;if(!t)return null;let r={};for(let n in t)r[n]=Fa(e,t[n],e.theme.modularCssLayers?`theme`:void 0);return l(e,r)}),n&&!f&&o.push(function(e){let t=e.theme?.components?.[n]?.variants;return t?Ia(e,t,[],e.theme.modularCssLayers?`theme`:void 0):null}),p||o.push(pa),Array.isArray(i[0])){let e=i.shift(),t=Array(r.length).fill(``),n=Array(o.length).fill(``),a;a=[...t,...e,...n],a.raw=[...t,...e.raw,...n],r.unshift(a)}let s=h(...r,...i,...o);return e.muiName&&(s.muiName=e.muiName),s};return h.withConfig&&(_.withConfig=h.withConfig),_}}function Ra(e){return typeof e==`string`&&e.charCodeAt(0)>96}function za(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}var Ba=La();function Va(e,t,n=!1){let r={...t};for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let a=i;if(a===`components`||a===`slots`)r[a]={...e[a],...r[a]};else if(a===`componentsProps`||a===`slotProps`){let i=e[a],o=t[a];if(!o)r[a]=i||{};else if(!i)r[a]=o;else{r[a]={...o};for(let e in i)if(Object.prototype.hasOwnProperty.call(i,e)){let t=e;r[a][t]=Va(i[t],o[t],n)}}}else a===`className`&&n&&t.className?r.className=H(e?.className,t?.className):a===`style`&&n&&t.style?r.style={...e?.style,...t?.style}:r[a]===void 0&&(r[a]=e[a])}return r}function Ha(e){let{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Va(t.components[n].defaultProps,r)}function Ua({props:e,name:t,defaultTheme:n,themeId:r}){let i=xa(n);return r&&(i=i[r]||i),Ha({theme:i,name:t,props:e})}var Wa=typeof window<`u`?z.useLayoutEffect:z.useEffect;function Ga(e,t=-(2**53-1),n=2**53-1){return Math.max(t,Math.min(e,n))}function Ka(e,t=0,n=1){return Ga(e,t,n)}function qa(e){e=e.slice(1);let t=RegExp(`.{1,${e.length>=6?2:1}}`,`g`),n=e.match(t);return n&&n[0].length===1&&(n=n.map(e=>e+e)),n?`rgb${n.length===4?`a`:``}(${n.map((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3).join(`, `)})`:``}function Ja(e){if(e.type)return e;if(e.charAt(0)===`#`)return Ja(qa(e));let t=e.indexOf(`(`),n=e.substring(0,t);if(![`rgb`,`rgba`,`hsl`,`hsla`,`color`].includes(n))throw Error(pt(9,e));let r=e.substring(t+1,e.length-1),i;if(n===`color`){if(r=r.split(` `),i=r.shift(),r.length===4&&r[3].charAt(0)===`/`&&(r[3]=r[3].slice(1)),![`srgb`,`display-p3`,`a98-rgb`,`prophoto-rgb`,`rec-2020`].includes(i))throw Error(pt(10,i))}else r=r.split(`,`);return r=r.map(e=>parseFloat(e)),{type:n,values:r,colorSpace:i}}var Ya=e=>{let t=Ja(e);return t.values.slice(0,3).map((e,n)=>t.type.includes(`hsl`)&&n!==0?`${e}%`:e).join(` `)},Xa=(e,t)=>{try{return Ya(e)}catch{return e}};function Za(e){let{type:t,colorSpace:n}=e,{values:r}=e;return t.includes(`rgb`)?r=r.map((e,t)=>t<3?parseInt(e,10):e):t.includes(`hsl`)&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),r=t.includes(`color`)?`${n} ${r.join(` `)}`:`${r.join(`, `)}`,`${t}(${r})`}function Qa(e){e=Ja(e);let{values:t}=e,n=t[0],r=t[1]/100,i=t[2]/100,a=r*Math.min(i,1-i),o=(e,t=(e+n/30)%12)=>i-a*Math.max(Math.min(t-3,9-t,1),-1),s=`rgb`,c=[Math.round(o(0)*255),Math.round(o(8)*255),Math.round(o(4)*255)];return e.type===`hsla`&&(s+=`a`,c.push(t[3])),Za({type:s,values:c})}function $a(e){e=Ja(e);let t=e.type===`hsl`||e.type===`hsla`?Ja(Qa(e)).values:e.values;return t=t.map(t=>(e.type!==`color`&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function eo(e,t){let n=$a(e),r=$a(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function to(e,t){return e=Ja(e),t=Ka(t),(e.type===`rgb`||e.type===`hsl`)&&(e.type+=`a`),e.type===`color`?e.values[3]=`/${t}`:e.values[3]=t,Za(e)}function no(e,t,n){try{return to(e,t)}catch{return e}}function ro(e,t){if(e=Ja(e),t=Ka(t),e.type.includes(`hsl`))e.values[2]*=1-t;else if(e.type.includes(`rgb`)||e.type.includes(`color`))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return Za(e)}function G(e,t,n){try{return ro(e,t)}catch{return e}}function io(e,t){if(e=Ja(e),t=Ka(t),e.type.includes(`hsl`))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes(`rgb`))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes(`color`))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return Za(e)}function ao(e,t,n){try{return io(e,t)}catch{return e}}function oo(e,t=.15){return $a(e)>.5?ro(e,t):io(e,t)}function K(e,t,n){try{return oo(e,t)}catch{return e}}var so=z.createContext(),co=()=>z.useContext(so)??!1,lo=z.createContext(void 0);function uo(e){let{theme:t,name:n,props:r}=e;if(!t||!t.components||!t.components[n])return r;let i=t.components[n];return i.defaultProps?Va(i.defaultProps,r,t.components.mergeClassNameAndStyle):!i.styleOverrides&&!i.variants?Va(i,r,t.components.mergeClassNameAndStyle):r}function fo({props:e,name:t}){return uo({props:e,name:t,theme:{components:z.useContext(lo)}})}var po=0;function mo(e){let[t,n]=z.useState(e),r=e||t;return z.useEffect(()=>{t??(po+=1,n(`mui-${po}`))},[t]),r}var ho={...z}.useId;function go(e){if(ho!==void 0){let t=ho();return e??t}return mo(e)}var _o={theme:void 0};function vo(e){let t,n;return function(r){let i=t;return(i===void 0||r.theme!==n)&&(_o.theme=r.theme,i=ka(e(_o)),t=i,n=r.theme),i}}function yo(e=``){function t(...n){if(!n.length)return``;let r=n[0];return typeof r==`string`&&!r.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:``}${r}${t(...n.slice(1))})`:`, ${r}`}return(n,...r)=>`var(--${e?`${e}-`:``}${n}${t(...r)})`}var bo=(e,t,n,r=[])=>{let i=e;t.forEach((e,a)=>{a===t.length-1?Array.isArray(i)?i[Number(e)]=n:i&&typeof i==`object`&&(i[e]=n):i&&typeof i==`object`&&(i[e]||(i[e]=r.includes(e)?[]:{}),i=i[e])})},xo=(e,t,n)=>{function r(e,i=[],a=[]){Object.entries(e).forEach(([e,o])=>{(!n||n&&!n([...i,e]))&&o!=null&&(typeof o==`object`&&Object.keys(o).length>0?r(o,[...i,e],Array.isArray(o)?[...a,e]:a):t([...i,e],o,a))})}r(e)},So=(e,t)=>typeof t==`number`?[`lineHeight`,`fontWeight`,`opacity`,`zIndex`].some(t=>e.includes(t))||e[e.length-1].toLowerCase().includes(`opacity`)?t:`${t}px`:t;function Co(e,t){let{prefix:n,shouldSkipGeneratingVar:r}=t||{},i={},a={},o={};return xo(e,(e,t,s)=>{if((typeof t==`string`||typeof t==`number`)&&(!r||!r(e,t))){let r=`--${n?`${n}-`:``}${e.join(`-`)}`,c=So(e,t);Object.assign(i,{[r]:c}),bo(a,e,`var(${r})`,s),bo(o,e,`var(${r}, ${c})`,s)}},e=>e[0]===`vars`),{css:i,vars:a,varsWithDefaults:o}}function wo(e,t={}){let{getSelector:n=_,disableCssColorScheme:r,colorSchemeSelector:i,enableContrastVars:a}=t,{colorSchemes:o={},components:s,defaultColorScheme:c=`light`,...l}=e,{vars:u,css:d,varsWithDefaults:f}=Co(l,t),p=f,m={},{[c]:h,...g}=o;if(Object.entries(g||{}).forEach(([e,n])=>{let{vars:r,css:i,varsWithDefaults:a}=Co(n,t);p=Lr(p,a),m[e]={css:i,vars:r}}),h){let{css:e,vars:n,varsWithDefaults:r}=Co(h,t);p=Lr(p,r),m[c]={css:e,vars:n}}function _(t,n){let r=i;if(i===`class`&&(r=`.%s`),i===`data`&&(r=`[data-%s]`),i?.startsWith(`data-`)&&!i.includes(`%s`)&&(r=`[${i}="%s"]`),t){if(r===`media`)return e.defaultColorScheme===t?`:root`:{[`@media (prefers-color-scheme: ${o[t]?.palette?.mode||t})`]:{":root":n}};if(r)return e.defaultColorScheme===t?`:root, ${r.replace(`%s`,String(t))}`:r.replace(`%s`,String(t))}return`:root`}return{vars:p,generateThemeVars:()=>{let e={...u};return Object.entries(m).forEach(([,{vars:t}])=>{e=Lr(e,t)}),e},generateStyleSheets:()=>{let t=[],i=e.defaultColorScheme||`light`;function s(e,n){Object.keys(n).length&&t.push(typeof e==`string`?{[e]:{...n}}:e)}s(n(void 0,{...d}),d);let{[i]:c,...l}=m;if(c){let{css:e}=c,t=o[i]?.palette?.mode,a=!r&&t?{colorScheme:t,...e}:{...e};s(n(i,{...a}),a)}return Object.entries(l).forEach(([e,{css:t}])=>{let i=o[e]?.palette?.mode,a=!r&&i?{colorScheme:i,...t}:{...t};s(n(e,{...a}),a)}),a&&t.push({":root":{"--__l-threshold":`0.7`,"--__l":`clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)`,"--__a":`clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)`}}),t}}}function To(e){return function(t){return e===`media`?`@media (prefers-color-scheme: ${t})`:e?e.startsWith(`data-`)&&!e.includes(`%s`)?`[${e}="${t}"] &`:e===`class`?`.${t} &`:e===`data`?`[data-${t}] &`:`${e.replace(`%s`,t)} &`:`&`}}function q(e,t,n=void 0){let r={};for(let i in e){let a=e[i],o=``,s=!0;for(let e=0;e{let{ownerState:n}=e;return[t.root,t[`maxWidth${gi(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),Oo=e=>Ua({props:e,name:`MuiContainer`,defaultTheme:Eo}),ko=(e,t)=>{let n=e=>U(t,e),{classes:r,fixed:i,disableGutters:a,maxWidth:o}=e;return q({root:[`root`,o&&`maxWidth${gi(String(o))}`,i&&`fixed`,a&&`disableGutters`]},n,r)};function Ao(e={}){let{createStyledComponent:t=Do,useThemeProps:n=Oo,componentName:r=`MuiContainer`}=e,i=t(({theme:e,ownerState:t})=>({width:`100%`,marginLeft:`auto`,boxSizing:`border-box`,marginRight:`auto`,...!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up(`sm`)]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}}),({theme:e,ownerState:t})=>t.fixed&&Object.keys(e.breakpoints.values).reduce((t,n)=>{let r=n,i=e.breakpoints.values[r];return i!==0&&(t[e.breakpoints.up(r)]={maxWidth:`${i}${e.breakpoints.unit}`}),t},{}),({theme:e,ownerState:t})=>({...t.maxWidth===`xs`&&{[e.breakpoints.up(`xs`)]:{maxWidth:Math.max(e.breakpoints.values.xs,444)}},...t.maxWidth&&t.maxWidth!==`xs`&&{[e.breakpoints.up(t.maxWidth)]:{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`}}}));return z.forwardRef(function(e,t){let a=n(e),{className:o,component:s=`div`,disableGutters:c=!1,fixed:l=!1,maxWidth:u=`lg`,classes:d,...f}=a,p={...a,component:s,disableGutters:c,fixed:l,maxWidth:u};return(0,B.jsx)(i,{as:s,ownerState:p,className:H(ko(p,r).root,o),ref:t,...f})})}function jo(e,t){return z.isValidElement(e)&&t.indexOf(e.type.muiName??e.type?._payload?.value?.muiName)!==-1}var Mo=(e,t)=>e.filter(e=>t.includes(e)),No=(e,t,n)=>{let r=e.keys[0];Array.isArray(t)?t.forEach((t,r)=>{n((t,n)=>{r<=e.keys.length-1&&(r===0?Object.assign(t,n):t[e.up(e.keys[r])]=n)},t)}):t&&typeof t==`object`?(Object.keys(t).length>e.keys.length?e.keys:Mo(e.keys,Object.keys(t))).forEach(i=>{if(e.keys.includes(i)){let a=t[i];a!==void 0&&n((t,n)=>{r===i?Object.assign(t,n):t[e.up(i)]=n},a)}}):(typeof t==`number`||typeof t==`string`)&&n((e,t)=>{Object.assign(e,t)},t)};function Po(e){return`--Grid-${e}Spacing`}function Fo(e){return`--Grid-parent-${e}Spacing`}var Io=`--Grid-columns`,Lo=`--Grid-parent-columns`,Ro=({theme:e,ownerState:t})=>{let n={};return No(e.breakpoints,t.size,(e,t)=>{let r={};t===`grow`&&(r={flexBasis:0,flexGrow:1,maxWidth:`100%`}),t===`auto`&&(r={flexBasis:`auto`,flexGrow:0,flexShrink:0,maxWidth:`none`,width:`auto`}),typeof t==`number`&&(r={flexGrow:0,flexBasis:`auto`,width:`calc(100% * ${t} / var(${Lo}) - (var(${Lo}) - ${t}) * (var(${Fo(`column`)}) / var(${Lo})))`}),e(n,r)}),n},zo=({theme:e,ownerState:t})=>{let n={};return No(e.breakpoints,t.offset,(e,t)=>{let r={};t===`auto`&&(r={marginLeft:`auto`}),typeof t==`number`&&(r={marginLeft:t===0?`0px`:`calc(100% * ${t} / var(${Lo}) + var(${Fo(`column`)}) * ${t} / var(${Lo}))`}),e(n,r)}),n},Bo=({theme:e,ownerState:t})=>{if(!t.container)return{};let n={[Io]:12};return No(e.breakpoints,t.columns,(e,t)=>{let r=t??12;e(n,{[Io]:r,"> *":{[Lo]:r}})}),n},Vo=({theme:e,ownerState:t})=>{if(!t.container)return{};let n={};return No(e.breakpoints,t.rowSpacing,(t,r)=>{let i=typeof r==`string`?r:e.spacing?.(r);t(n,{[Po(`row`)]:i,"> *":{[Fo(`row`)]:i}})}),n},Ho=({theme:e,ownerState:t})=>{if(!t.container)return{};let n={};return No(e.breakpoints,t.columnSpacing,(t,r)=>{let i=typeof r==`string`?r:e.spacing?.(r);t(n,{[Po(`column`)]:i,"> *":{[Fo(`column`)]:i}})}),n},Uo=({theme:e,ownerState:t})=>{if(!t.container)return{};let n={};return No(e.breakpoints,t.direction,(e,t)=>{e(n,{flexDirection:t})}),n},Wo=({ownerState:e})=>({minWidth:0,boxSizing:`border-box`,...e.container&&{display:`flex`,flexWrap:`wrap`,...e.wrap&&e.wrap!==`wrap`&&{flexWrap:e.wrap},gap:`var(${Po(`row`)}) var(${Po(`column`)})`}}),Go=e=>{let t=[];return Object.entries(e).forEach(([e,n])=>{n!==!1&&n!==void 0&&t.push(`grid-${e}-${String(n)}`)}),t},Ko=(e,t=`xs`)=>{function n(e){return e===void 0?!1:typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`&&e>0}if(n(e))return[`spacing-${t}-${String(e)}`];if(typeof e==`object`&&!Array.isArray(e)){let t=[];return Object.entries(e).forEach(([e,r])=>{n(r)&&t.push(`spacing-${e}-${String(r)}`)}),t}return[]},qo=e=>e===void 0?[]:typeof e==`object`?Object.entries(e).map(([e,t])=>`direction-${e}-${t}`):[`direction-xs-${String(e)}`],Jo=_a(),Yo=Ba(`div`,{name:`MuiGrid`,slot:`Root`});function Xo(e){return Ua({props:e,name:`MuiGrid`,defaultTheme:Jo})}function Zo(e={}){let{createStyledComponent:t=Yo,useThemeProps:n=Xo,useTheme:r=xa,componentName:i=`MuiGrid`}=e,a=(e,t)=>{let{container:n,direction:r,spacing:a,wrap:o,size:s}=e;return q({root:[`root`,n&&`container`,o!==`wrap`&&`wrap-xs-${String(o)}`,...qo(r),...Go(s),...n?Ko(a,t.breakpoints.keys[0]):[]]},e=>U(i,e),{})};function o(e,t,n=()=>!0){let r={};return e===null||(Array.isArray(e)?e.forEach((e,i)=>{e!==null&&n(e)&&t.keys[i]&&(r[t.keys[i]]=e)}):typeof e==`object`?Object.keys(e).forEach(t=>{let i=e[t];i!=null&&n(i)&&(r[t]=i)}):r[t.keys[0]]=e),r}let s=t(Bo,Ho,Vo,Ro,Uo,Wo,zo),c=z.forwardRef(function(e,t){let i=r(),c=n(e),{className:l,children:u,columns:d=12,container:f=!1,component:p=`div`,direction:m=`row`,wrap:h=`wrap`,size:g={},offset:_={},spacing:v=0,rowSpacing:y=v,columnSpacing:b=v,unstable_level:x=0,...S}=c,C=o(g,i.breakpoints,e=>e!==!1),w=o(_,i.breakpoints),T=e.columns??(x?void 0:d),E=e.spacing??(x?void 0:v),D=e.rowSpacing??e.spacing??(x?void 0:y),O=e.columnSpacing??e.spacing??(x?void 0:b),k={...c,level:x,columns:T,container:f,direction:m,wrap:h,spacing:E,rowSpacing:D,columnSpacing:O,size:C,offset:w};return(0,B.jsx)(s,{ref:t,as:p,ownerState:k,className:H(a(k,i).root,l),...S,children:z.Children.map(u,e=>z.isValidElement(e)&&jo(e,[`Grid`])&&f&&e.props.container?z.cloneElement(e,{unstable_level:e.props?.unstable_level??x+1}):e)})});return c.muiName=`Grid`,c}var Qo=_a(),$o=Ba(`div`,{name:`MuiStack`,slot:`Root`});function es(e){return Ua({props:e,name:`MuiStack`,defaultTheme:Qo})}function ts(e,t){let n=z.Children.toArray(e).filter(Boolean);return n.reduce((e,r,i)=>(e.push(r),i({row:`Left`,"row-reverse":`Right`,column:`Top`,"column-reverse":`Bottom`})[e],rs=({ownerState:e,theme:t})=>{let n={display:`flex`,flexDirection:`column`,...si({theme:t},mi({values:e.direction,breakpoints:t.breakpoints.values}),e=>({flexDirection:e}))};if(e.spacing){let r=Ai(t),i=Object.keys(t.breakpoints.values).reduce((t,n)=>((typeof e.spacing==`object`&&e.spacing[n]!=null||typeof e.direction==`object`&&e.direction[n]!=null)&&(t[n]=!0),t),{}),a=mi({values:e.direction,base:i}),o=mi({values:e.spacing,base:i});typeof a==`object`&&Object.keys(a).forEach((e,t,n)=>{a[e]||(a[e]=t>0?a[n[t-1]]:`column`)}),n=Lr(n,si({theme:t},o,(t,n)=>e.useFlexGap?{gap:ji(r,t)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${ns(n?a[n]:e.direction)}`]:ji(r,t)}}))}return n=fi(t.breakpoints,n),n};function is(e={}){let{createStyledComponent:t=$o,useThemeProps:n=es,componentName:r=`MuiStack`}=e,i=()=>q({root:[`root`]},e=>U(r,e),{}),a=t(rs);return z.forwardRef(function(e,t){let{component:r=`div`,direction:o=`column`,spacing:s=0,divider:c,children:l,className:u,useFlexGap:d=!1,...f}=n(e);return(0,B.jsx)(a,{as:r,ownerState:{direction:o,spacing:s,useFlexGap:d},ref:t,className:H(i().root,u),...f,children:c?ts(l,c):l})})}function as(){return{text:{primary:`rgba(0, 0, 0, 0.87)`,secondary:`rgba(0, 0, 0, 0.6)`,disabled:`rgba(0, 0, 0, 0.38)`},divider:`rgba(0, 0, 0, 0.12)`,background:{paper:at.white,default:at.white},action:{active:`rgba(0, 0, 0, 0.54)`,hover:`rgba(0, 0, 0, 0.04)`,hoverOpacity:.04,selected:`rgba(0, 0, 0, 0.08)`,selectedOpacity:.08,disabled:`rgba(0, 0, 0, 0.26)`,disabledBackground:`rgba(0, 0, 0, 0.12)`,disabledOpacity:.38,focus:`rgba(0, 0, 0, 0.12)`,focusOpacity:.12,activatedOpacity:.12}}}var os=as();function ss(){return{text:{primary:at.white,secondary:`rgba(255, 255, 255, 0.7)`,disabled:`rgba(255, 255, 255, 0.5)`,icon:`rgba(255, 255, 255, 0.5)`},divider:`rgba(255, 255, 255, 0.12)`,background:{paper:`#121212`,default:`#121212`},action:{active:at.white,hover:`rgba(255, 255, 255, 0.08)`,hoverOpacity:.08,selected:`rgba(255, 255, 255, 0.16)`,selectedOpacity:.16,disabled:`rgba(255, 255, 255, 0.3)`,disabledBackground:`rgba(255, 255, 255, 0.12)`,disabledOpacity:.38,focus:`rgba(255, 255, 255, 0.12)`,focusOpacity:.12,activatedOpacity:.24}}}var cs=ss();function ls(e,t,n,r){let i=r.light||r,a=r.dark||r*1.5;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:t===`light`?e.light=io(e.main,i):t===`dark`&&(e.dark=ro(e.main,a)))}function us(e,t,n,r,i){let a=i.light||i,o=i.dark||i*1.5;t[n]||(t.hasOwnProperty(r)?t[n]=t[r]:n===`light`?t.light=`color-mix(in ${e}, ${t.main}, #fff ${(a*100).toFixed(0)}%)`:n===`dark`&&(t.dark=`color-mix(in ${e}, ${t.main}, #000 ${(o*100).toFixed(0)}%)`))}function ds(e=`light`){return e===`dark`?{main:ct[200],light:ct[50],dark:ct[400]}:{main:ct[700],light:ct[400],dark:ct[800]}}function fs(e=`light`){return e===`dark`?{main:st[200],light:st[50],dark:st[400]}:{main:st[500],light:st[300],dark:st[700]}}function ps(e=`light`){return e===`dark`?{main:ot[500],light:ot[300],dark:ot[700]}:{main:ot[700],light:ot[400],dark:ot[800]}}function ms(e=`light`){return e===`dark`?{main:lt[400],light:lt[300],dark:lt[700]}:{main:lt[700],light:lt[500],dark:lt[900]}}function hs(e=`light`){return e===`dark`?{main:ut[400],light:ut[300],dark:ut[700]}:{main:ut[800],light:ut[500],dark:ut[900]}}function gs(e=`light`){return e===`dark`?{main:dt[400],light:dt[300],dark:dt[700]}:{main:`#ed6c02`,light:dt[500],dark:dt[900]}}function _s(e){return`oklch(from ${e} var(--__l) 0 h / var(--__a))`}function vs(e){let{mode:t=`light`,contrastThreshold:n=3,tonalOffset:r=.2,colorSpace:i,...a}=e,o=e.primary||ds(t),s=e.secondary||fs(t),c=e.error||ps(t),l=e.info||ms(t),u=e.success||hs(t),d=e.warning||gs(t);function f(e){return i?_s(e):eo(e,cs.text.primary)>=n?cs.text.primary:os.text.primary}let p=({color:e,name:t,mainShade:n=500,lightShade:a=300,darkShade:o=700})=>{if(e={...e},!e.main&&e[n]&&(e.main=e[n]),!e.hasOwnProperty(`main`))throw Error(pt(11,t?` (${t})`:``,n));if(typeof e.main!=`string`)throw Error(pt(12,t?` (${t})`:``,JSON.stringify(e.main)));return i?(us(i,e,`light`,a,r),us(i,e,`dark`,o,r)):(ls(e,`light`,a,r),ls(e,`dark`,o,r)),e.contrastText||=f(e.main),e},m;return t===`light`?m=as():t===`dark`&&(m=ss()),Lr({common:{...at},mode:t,primary:p({color:o,name:`primary`}),secondary:p({color:s,name:`secondary`,mainShade:`A400`,lightShade:`A200`,darkShade:`A700`}),error:p({color:c,name:`error`}),warning:p({color:d,name:`warning`}),info:p({color:l,name:`info`}),success:p({color:u,name:`success`}),grey:ft,contrastThreshold:n,getContrastText:f,augmentColor:p,tonalOffset:r,...m},a)}function ys(e){let t={};return Object.entries(e).forEach(e=>{let[n,r]=e;typeof r==`object`&&(t[n]=`${r.fontStyle?`${r.fontStyle} `:``}${r.fontVariant?`${r.fontVariant} `:``}${r.fontWeight?`${r.fontWeight} `:``}${r.fontStretch?`${r.fontStretch} `:``}${r.fontSize||``}${r.lineHeight?`/${r.lineHeight} `:``}${r.fontFamily||``}`)}),t}function bs(e,t){return{toolbar:{minHeight:56,[e.up(`xs`)]:{"@media (orientation: landscape)":{minHeight:48}},[e.up(`sm`)]:{minHeight:64}},...t}}function xs(e){return Math.round(e*1e5)/1e5}var Ss={textTransform:`uppercase`},Cs=`"Roboto", "Helvetica", "Arial", sans-serif`;function ws(e,t){let{fontFamily:n=Cs,fontSize:r=14,fontWeightLight:i=300,fontWeightRegular:a=400,fontWeightMedium:o=500,fontWeightBold:s=700,htmlFontSize:c=16,allVariants:l,pxToRem:u,...d}=typeof t==`function`?t(e):t,f=r/14,p=u||(e=>`${e/c*f}rem`),m=(e,t,r,i,a)=>({fontFamily:n,fontWeight:e,fontSize:p(t),lineHeight:r,...n===Cs?{letterSpacing:`${xs(i/t)}em`}:{},...a,...l});return Lr({htmlFontSize:c,pxToRem:p,fontFamily:n,fontSize:r,fontWeightLight:i,fontWeightRegular:a,fontWeightMedium:o,fontWeightBold:s,h1:m(i,96,1.167,-1.5),h2:m(i,60,1.2,-.5),h3:m(a,48,1.167,0),h4:m(a,34,1.235,.25),h5:m(a,24,1.334,0),h6:m(o,20,1.6,.15),subtitle1:m(a,16,1.75,.15),subtitle2:m(o,14,1.57,.1),body1:m(a,16,1.5,.15),body2:m(a,14,1.43,.15),button:m(o,14,1.75,.4,Ss),caption:m(a,12,1.66,.4),overline:m(a,12,2.66,1,Ss),inherit:{fontFamily:`inherit`,fontWeight:`inherit`,fontSize:`inherit`,lineHeight:`inherit`,letterSpacing:`inherit`}},d,{clone:!1})}var Ts=.2,Es=.14,Ds=.12;function Os(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${Ts})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${Es})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${Ds})`].join(`,`)}var ks=[`none`,Os(0,2,1,-1,0,1,1,0,0,1,3,0),Os(0,3,1,-2,0,2,2,0,0,1,5,0),Os(0,3,3,-2,0,3,4,0,0,1,8,0),Os(0,2,4,-1,0,4,5,0,0,1,10,0),Os(0,3,5,-1,0,5,8,0,0,1,14,0),Os(0,3,5,-1,0,6,10,0,0,1,18,0),Os(0,4,5,-2,0,7,10,1,0,2,16,1),Os(0,5,5,-3,0,8,10,1,0,3,14,2),Os(0,5,6,-3,0,9,12,1,0,3,16,2),Os(0,6,6,-3,0,10,14,1,0,4,18,3),Os(0,6,7,-4,0,11,15,1,0,4,20,3),Os(0,7,8,-4,0,12,17,2,0,5,22,4),Os(0,7,8,-4,0,13,19,2,0,5,24,4),Os(0,7,9,-4,0,14,21,2,0,5,26,4),Os(0,8,9,-5,0,15,22,2,0,6,28,5),Os(0,8,10,-5,0,16,24,2,0,6,30,5),Os(0,8,11,-5,0,17,26,2,0,6,32,5),Os(0,9,11,-5,0,18,28,2,0,7,34,6),Os(0,9,12,-6,0,19,29,2,0,7,36,6),Os(0,10,13,-6,0,20,31,3,0,8,38,7),Os(0,10,13,-6,0,21,33,3,0,8,40,7),Os(0,10,14,-6,0,22,35,3,0,8,42,7),Os(0,11,14,-7,0,23,36,3,0,9,44,8),Os(0,11,15,-7,0,24,38,3,0,9,46,8)],As={easeInOut:`cubic-bezier(0.4, 0, 0.2, 1)`,easeOut:`cubic-bezier(0.0, 0, 0.2, 1)`,easeIn:`cubic-bezier(0.4, 0, 1, 1)`,sharp:`cubic-bezier(0.4, 0, 0.6, 1)`},js={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Ms(e){return`${Math.round(e)}ms`}function Ns(e){if(!e)return 0;let t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function Ps(e){let t={...As,...e.easing},n={...js,...e.duration};return{getAutoHeightDuration:Ns,create:(e=[`all`],r={})=>{let{duration:i=n.standard,easing:a=t.easeInOut,delay:o=0,...s}=r;return(Array.isArray(e)?e:[e]).map(e=>`${e} ${typeof i==`string`?i:Ms(i)} ${a} ${typeof o==`string`?o:Ms(o)}`).join(`,`)},...e,easing:t,duration:n}}var Fs={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function Is(e){return Fr(e)||e===void 0||typeof e==`string`||typeof e==`boolean`||typeof e==`number`||Array.isArray(e)}function Ls(e={}){let t={...e};function n(e){let t=Object.entries(e);for(let r=0;r{if(!Number.isNaN(+e))return+e;let t=e.match(/\d*\.?\d+/g);if(!t)return 0;let n=0;for(let e=0;eLr(e,t),p),p.unstable_sxConfig={...ua,...u?.unstable_sxConfig},p.unstable_sx=function(e){return pa({sx:e,theme:this})},p.toRuntimeSource=Ls,Bs(p),p}function Hs(e){let t;return t=e<1?5.11916*e**2:4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}var Us=[...Array(25)].map((e,t)=>{if(t===0)return`none`;let n=Hs(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function Ws(e){return{inputPlaceholder:e===`dark`?.5:.42,inputUnderline:e===`dark`?.7:.42,switchTrackDisabled:e===`dark`?.2:.12,switchTrack:e===`dark`?.3:.38}}function Gs(e){return e===`dark`?Us:[]}function Ks(e){let{palette:t={mode:`light`},opacity:n,overlays:r,colorSpace:i,...a}=e,o=vs({...t,colorSpace:i});return{palette:o,opacity:{...Ws(o.mode),...n},overlays:r||Gs(o.mode),...a}}function qs(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]===`palette`&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}var Js=e=>[...[...Array(25)].map((t,n)=>`--${e?`${e}-`:``}overlays-${n}`),`--${e?`${e}-`:``}palette-AppBar-darkBg`,`--${e?`${e}-`:``}palette-AppBar-darkColor`],Ys=e=>(t,n)=>{let r=e.rootSelector||`:root`,i=e.colorSchemeSelector,a=i;if(i===`class`&&(a=`.%s`),i===`data`&&(a=`[data-%s]`),i?.startsWith(`data-`)&&!i.includes(`%s`)&&(a=`[${i}="%s"]`),e.defaultColorScheme===t){if(t===`dark`){let i={};return Js(e.cssVarPrefix).forEach(e=>{i[e]=n[e],delete n[e]}),a===`media`?{[r]:n,"@media (prefers-color-scheme: dark)":{[r]:i}}:a?{[a.replace(`%s`,t)]:i,[`${r}, ${a.replace(`%s`,t)}`]:n}:{[r]:{...n,...i}}}if(a&&a!==`media`)return`${r}, ${a.replace(`%s`,String(t))}`}else if(t){if(a===`media`)return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:n}};if(a)return a.replace(`%s`,String(t))}return r};function Xs(e,t){t.forEach(t=>{e[t]||(e[t]={})})}function J(e,t,n){!e[t]&&n&&(e[t]=n)}function Zs(e){return typeof e!=`string`||!e.startsWith(`hsl`)?e:Qa(e)}function Qs(e,t){`${t}Channel`in e||(e[`${t}Channel`]=Xa(Zs(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color(). -To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function $s(e){return typeof e==`number`?`${e}px`:typeof e==`string`||typeof e==`function`||Array.isArray(e)?e:`8px`}var ec=e=>{try{return e()}catch{}},tc=(e=`mui`)=>yo(e);function nc(e,t,n,r,i){if(!n)return;n=n===!0?{}:n;let a=i===`dark`?`dark`:`light`;if(!r){t[i]=Ks({...n,palette:{mode:a,...n?.palette},colorSpace:e});return}let{palette:o,...s}=Vs({...r,palette:{mode:a,...n?.palette},colorSpace:e});return t[i]={...n,palette:o,opacity:{...Ws(a),...n?.opacity},overlays:n?.overlays||Gs(a)},s}function rc(e={},...t){let{colorSchemes:n={light:!0},defaultColorScheme:r,disableCssColorScheme:i=!1,cssVarPrefix:a=`mui`,nativeColor:o=!1,shouldSkipGeneratingVar:s=qs,colorSchemeSelector:c=n.light&&n.dark?`media`:void 0,rootSelector:l=`:root`,...u}=e,d=Object.keys(n)[0],f=r||(n.light&&d!==`light`?`light`:d),p=tc(a),{[f]:m,light:h,dark:g,..._}=n,v={..._},y=m;if((f===`dark`&&!(`dark`in n)||f===`light`&&!(`light`in n))&&(y=!0),!y)throw Error(pt(21,f));let b;o&&(b=`oklch`);let x=nc(b,v,y,u,f);h&&!v.light&&nc(b,v,h,void 0,`light`),g&&!v.dark&&nc(b,v,g,void 0,`dark`);let S={defaultColorScheme:f,...x,cssVarPrefix:a,colorSchemeSelector:c,rootSelector:l,getCssVar:p,colorSchemes:v,font:{...ys(x.typography),...x.font},spacing:$s(u.spacing)};Object.keys(S.colorSchemes).forEach(e=>{let t=S.colorSchemes[e].palette,n=e=>{let n=e.split(`-`),r=n[1],i=n[2];return p(e,t[r][i])};t.mode===`light`&&(J(t.common,`background`,`#fff`),J(t.common,`onBackground`,`#000`)),t.mode===`dark`&&(J(t.common,`background`,`#000`),J(t.common,`onBackground`,`#fff`));function r(e,t,n){if(b){let r;return e===no&&(r=`transparent ${((1-n)*100).toFixed(0)}%`),e===G&&(r=`#000 ${(n*100).toFixed(0)}%`),e===ao&&(r=`#fff ${(n*100).toFixed(0)}%`),`color-mix(in ${b}, ${t}, ${r})`}return e(t,n)}if(Xs(t,[`Alert`,`AppBar`,`Avatar`,`Button`,`Chip`,`FilledInput`,`LinearProgress`,`Skeleton`,`Slider`,`SnackbarContent`,`SpeedDialAction`,`StepConnector`,`StepContent`,`Switch`,`TableCell`,`Tooltip`]),t.mode===`light`){J(t.Alert,`errorColor`,r(G,o?p(`palette-error-light`):t.error.light,.6)),J(t.Alert,`infoColor`,r(G,o?p(`palette-info-light`):t.info.light,.6)),J(t.Alert,`successColor`,r(G,o?p(`palette-success-light`):t.success.light,.6)),J(t.Alert,`warningColor`,r(G,o?p(`palette-warning-light`):t.warning.light,.6)),J(t.Alert,`errorFilledBg`,n(`palette-error-main`)),J(t.Alert,`infoFilledBg`,n(`palette-info-main`)),J(t.Alert,`successFilledBg`,n(`palette-success-main`)),J(t.Alert,`warningFilledBg`,n(`palette-warning-main`)),J(t.Alert,`errorFilledColor`,ec(()=>t.getContrastText(t.error.main))),J(t.Alert,`infoFilledColor`,ec(()=>t.getContrastText(t.info.main))),J(t.Alert,`successFilledColor`,ec(()=>t.getContrastText(t.success.main))),J(t.Alert,`warningFilledColor`,ec(()=>t.getContrastText(t.warning.main))),J(t.Alert,`errorStandardBg`,r(ao,o?p(`palette-error-light`):t.error.light,.9)),J(t.Alert,`infoStandardBg`,r(ao,o?p(`palette-info-light`):t.info.light,.9)),J(t.Alert,`successStandardBg`,r(ao,o?p(`palette-success-light`):t.success.light,.9)),J(t.Alert,`warningStandardBg`,r(ao,o?p(`palette-warning-light`):t.warning.light,.9)),J(t.Alert,`errorIconColor`,n(`palette-error-main`)),J(t.Alert,`infoIconColor`,n(`palette-info-main`)),J(t.Alert,`successIconColor`,n(`palette-success-main`)),J(t.Alert,`warningIconColor`,n(`palette-warning-main`)),J(t.AppBar,`defaultBg`,n(`palette-grey-100`)),J(t.Avatar,`defaultBg`,n(`palette-grey-400`)),J(t.Button,`inheritContainedBg`,n(`palette-grey-300`)),J(t.Button,`inheritContainedHoverBg`,n(`palette-grey-A100`)),J(t.Chip,`defaultBorder`,n(`palette-grey-400`)),J(t.Chip,`defaultAvatarColor`,n(`palette-grey-700`)),J(t.Chip,`defaultIconColor`,n(`palette-grey-700`)),J(t.FilledInput,`bg`,`rgba(0, 0, 0, 0.06)`),J(t.FilledInput,`hoverBg`,`rgba(0, 0, 0, 0.09)`),J(t.FilledInput,`disabledBg`,`rgba(0, 0, 0, 0.12)`),J(t.LinearProgress,`primaryBg`,r(ao,o?p(`palette-primary-main`):t.primary.main,.62)),J(t.LinearProgress,`secondaryBg`,r(ao,o?p(`palette-secondary-main`):t.secondary.main,.62)),J(t.LinearProgress,`errorBg`,r(ao,o?p(`palette-error-main`):t.error.main,.62)),J(t.LinearProgress,`infoBg`,r(ao,o?p(`palette-info-main`):t.info.main,.62)),J(t.LinearProgress,`successBg`,r(ao,o?p(`palette-success-main`):t.success.main,.62)),J(t.LinearProgress,`warningBg`,r(ao,o?p(`palette-warning-light`):t.warning.main,.62)),J(t.Skeleton,`bg`,b?r(no,o?p(`palette-text-primary`):t.text.primary,.11):`rgba(${n(`palette-text-primaryChannel`)} / 0.11)`),J(t.Slider,`primaryTrack`,r(ao,o?p(`palette-primary-main`):t.primary.main,.62)),J(t.Slider,`secondaryTrack`,r(ao,o?p(`palette-secondary-main`):t.secondary.main,.62)),J(t.Slider,`errorTrack`,r(ao,o?p(`palette-error-main`):t.error.main,.62)),J(t.Slider,`infoTrack`,r(ao,o?p(`palette-info-main`):t.info.main,.62)),J(t.Slider,`successTrack`,r(ao,o?p(`palette-success-main`):t.success.main,.62)),J(t.Slider,`warningTrack`,r(ao,o?p(`palette-warning-main`):t.warning.main,.62));let e=b?r(G,o?p(`palette-background-default`):t.background.default,.6825):K(t.background.default,.8);J(t.SnackbarContent,`bg`,e),J(t.SnackbarContent,`color`,ec(()=>b?cs.text.primary:t.getContrastText(e))),J(t.SpeedDialAction,`fabHoverBg`,K(t.background.paper,.15)),J(t.StepConnector,`border`,n(`palette-grey-400`)),J(t.StepContent,`border`,n(`palette-grey-400`)),J(t.Switch,`defaultColor`,n(`palette-common-white`)),J(t.Switch,`defaultDisabledColor`,n(`palette-grey-100`)),J(t.Switch,`primaryDisabledColor`,r(ao,o?p(`palette-primary-main`):t.primary.main,.62)),J(t.Switch,`secondaryDisabledColor`,r(ao,o?p(`palette-secondary-main`):t.secondary.main,.62)),J(t.Switch,`errorDisabledColor`,r(ao,o?p(`palette-error-main`):t.error.main,.62)),J(t.Switch,`infoDisabledColor`,r(ao,o?p(`palette-info-main`):t.info.main,.62)),J(t.Switch,`successDisabledColor`,r(ao,o?p(`palette-success-main`):t.success.main,.62)),J(t.Switch,`warningDisabledColor`,r(ao,o?p(`palette-warning-main`):t.warning.main,.62)),J(t.TableCell,`border`,r(ao,no(o?p(`palette-divider`):t.divider,1),.88)),J(t.Tooltip,`bg`,r(no,o?p(`palette-grey-700`):t.grey[700],.92))}if(t.mode===`dark`){J(t.Alert,`errorColor`,r(ao,o?p(`palette-error-light`):t.error.light,.6)),J(t.Alert,`infoColor`,r(ao,o?p(`palette-info-light`):t.info.light,.6)),J(t.Alert,`successColor`,r(ao,o?p(`palette-success-light`):t.success.light,.6)),J(t.Alert,`warningColor`,r(ao,o?p(`palette-warning-light`):t.warning.light,.6)),J(t.Alert,`errorFilledBg`,n(`palette-error-dark`)),J(t.Alert,`infoFilledBg`,n(`palette-info-dark`)),J(t.Alert,`successFilledBg`,n(`palette-success-dark`)),J(t.Alert,`warningFilledBg`,n(`palette-warning-dark`)),J(t.Alert,`errorFilledColor`,ec(()=>t.getContrastText(t.error.dark))),J(t.Alert,`infoFilledColor`,ec(()=>t.getContrastText(t.info.dark))),J(t.Alert,`successFilledColor`,ec(()=>t.getContrastText(t.success.dark))),J(t.Alert,`warningFilledColor`,ec(()=>t.getContrastText(t.warning.dark))),J(t.Alert,`errorStandardBg`,r(G,o?p(`palette-error-light`):t.error.light,.9)),J(t.Alert,`infoStandardBg`,r(G,o?p(`palette-info-light`):t.info.light,.9)),J(t.Alert,`successStandardBg`,r(G,o?p(`palette-success-light`):t.success.light,.9)),J(t.Alert,`warningStandardBg`,r(G,o?p(`palette-warning-light`):t.warning.light,.9)),J(t.Alert,`errorIconColor`,n(`palette-error-main`)),J(t.Alert,`infoIconColor`,n(`palette-info-main`)),J(t.Alert,`successIconColor`,n(`palette-success-main`)),J(t.Alert,`warningIconColor`,n(`palette-warning-main`)),J(t.AppBar,`defaultBg`,n(`palette-grey-900`)),J(t.AppBar,`darkBg`,n(`palette-background-paper`)),J(t.AppBar,`darkColor`,n(`palette-text-primary`)),J(t.Avatar,`defaultBg`,n(`palette-grey-600`)),J(t.Button,`inheritContainedBg`,n(`palette-grey-800`)),J(t.Button,`inheritContainedHoverBg`,n(`palette-grey-700`)),J(t.Chip,`defaultBorder`,n(`palette-grey-700`)),J(t.Chip,`defaultAvatarColor`,n(`palette-grey-300`)),J(t.Chip,`defaultIconColor`,n(`palette-grey-300`)),J(t.FilledInput,`bg`,`rgba(255, 255, 255, 0.09)`),J(t.FilledInput,`hoverBg`,`rgba(255, 255, 255, 0.13)`),J(t.FilledInput,`disabledBg`,`rgba(255, 255, 255, 0.12)`),J(t.LinearProgress,`primaryBg`,r(G,o?p(`palette-primary-main`):t.primary.main,.5)),J(t.LinearProgress,`secondaryBg`,r(G,o?p(`palette-secondary-main`):t.secondary.main,.5)),J(t.LinearProgress,`errorBg`,r(G,o?p(`palette-error-main`):t.error.main,.5)),J(t.LinearProgress,`infoBg`,r(G,o?p(`palette-info-main`):t.info.main,.5)),J(t.LinearProgress,`successBg`,r(G,o?p(`palette-success-main`):t.success.main,.5)),J(t.LinearProgress,`warningBg`,r(G,o?p(`palette-warning-main`):t.warning.main,.5)),J(t.Skeleton,`bg`,b?r(no,o?p(`palette-text-primary`):t.text.primary,.13):`rgba(${n(`palette-text-primaryChannel`)} / 0.13)`),J(t.Slider,`primaryTrack`,r(G,o?p(`palette-primary-main`):t.primary.main,.5)),J(t.Slider,`secondaryTrack`,r(G,o?p(`palette-secondary-main`):t.secondary.main,.5)),J(t.Slider,`errorTrack`,r(G,o?p(`palette-error-main`):t.error.main,.5)),J(t.Slider,`infoTrack`,r(G,o?p(`palette-info-main`):t.info.main,.5)),J(t.Slider,`successTrack`,r(G,o?p(`palette-success-main`):t.success.main,.5)),J(t.Slider,`warningTrack`,r(G,o?p(`palette-warning-light`):t.warning.main,.5));let e=b?r(ao,o?p(`palette-background-default`):t.background.default,.985):K(t.background.default,.98);J(t.SnackbarContent,`bg`,e),J(t.SnackbarContent,`color`,ec(()=>b?os.text.primary:t.getContrastText(e))),J(t.SpeedDialAction,`fabHoverBg`,K(t.background.paper,.15)),J(t.StepConnector,`border`,n(`palette-grey-600`)),J(t.StepContent,`border`,n(`palette-grey-600`)),J(t.Switch,`defaultColor`,n(`palette-grey-300`)),J(t.Switch,`defaultDisabledColor`,n(`palette-grey-600`)),J(t.Switch,`primaryDisabledColor`,r(G,o?p(`palette-primary-main`):t.primary.main,.55)),J(t.Switch,`secondaryDisabledColor`,r(G,o?p(`palette-secondary-main`):t.secondary.main,.55)),J(t.Switch,`errorDisabledColor`,r(G,o?p(`palette-error-main`):t.error.main,.55)),J(t.Switch,`infoDisabledColor`,r(G,o?p(`palette-info-main`):t.info.main,.55)),J(t.Switch,`successDisabledColor`,r(G,o?p(`palette-success-main`):t.success.main,.55)),J(t.Switch,`warningDisabledColor`,r(G,o?p(`palette-warning-light`):t.warning.main,.55)),J(t.TableCell,`border`,r(G,no(o?p(`palette-divider`):t.divider,1),.68)),J(t.Tooltip,`bg`,r(no,o?p(`palette-grey-700`):t.grey[700],.92))}o||(Qs(t.background,`default`),Qs(t.background,`paper`),Qs(t.common,`background`),Qs(t.common,`onBackground`),Qs(t,`divider`)),Object.keys(t).forEach(e=>{let n=t[e];e!==`tonalOffset`&&!o&&n&&typeof n==`object`&&(n.main&&J(t[e],`mainChannel`,Xa(Zs(n.main))),n.light&&J(t[e],`lightChannel`,Xa(Zs(n.light))),n.dark&&J(t[e],`darkChannel`,Xa(Zs(n.dark))),n.contrastText&&J(t[e],`contrastTextChannel`,Xa(Zs(n.contrastText))),e===`text`&&(Qs(t[e],`primary`),Qs(t[e],`secondary`)),e===`action`&&(n.active&&Qs(t[e],`active`),n.selected&&Qs(t[e],`selected`)))})}),S=t.reduce((e,t)=>Lr(e,t),S);let C={prefix:a,disableCssColorScheme:i,shouldSkipGeneratingVar:s,getSelector:Ys(S),enableContrastVars:o},{vars:w,generateThemeVars:T,generateStyleSheets:E}=wo(S,C);return S.vars=w,Object.entries(S.colorSchemes[S.defaultColorScheme]).forEach(([e,t])=>{S[e]=t}),S.generateThemeVars=T,S.generateStyleSheets=E,S.generateSpacing=function(){return Ii(u.spacing,Ai(this))},S.getColorSchemeSelector=To(c),S.spacing=S.generateSpacing(),S.shouldSkipGeneratingVar=s,S.unstable_sxConfig={...ua,...u?.unstable_sxConfig},S.unstable_sx=function(e){return pa({sx:e,theme:this})},S.internal_cache={},S.toRuntimeSource=Ls,S}function ic(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...n!==!0&&n,palette:vs({...n===!0?{}:n.palette,mode:t})})}function ac(e={},...t){let{palette:n,cssVariables:r=!1,colorSchemes:i=n?void 0:{light:!0},defaultColorScheme:a=n?.mode,...o}=e,s=a||`light`,c=i?.[s],l={...i,...n?{[s]:{...typeof c!=`boolean`&&c,palette:n}}:void 0};if(r===!1){if(!(`colorSchemes`in e))return Vs(e,...t);let r=n;`palette`in e||l[s]&&(l[s]===!0?s===`dark`&&(r={mode:`dark`}):r=l[s].palette);let i=Vs({...e,palette:r},...t);return i.defaultColorScheme=s,i.colorSchemes=l,i.palette.mode===`light`&&(i.colorSchemes.light={...l.light!==!0&&l.light,palette:i.palette},ic(i,`dark`,l.dark)),i.palette.mode===`dark`&&(i.colorSchemes.dark={...l.dark!==!0&&l.dark,palette:i.palette},ic(i,`light`,l.light)),i}return!n&&!(`light`in l)&&s===`light`&&(l.light=!0),rc({...o,colorSchemes:l,defaultColorScheme:s,...typeof r!=`boolean`&&r},...t)}var oc=ac();function sc(){let e=xa(oc);return e.$$material||e}function cc(e){return e!==`ownerState`&&e!==`theme`&&e!==`sx`&&e!==`as`}var lc=e=>cc(e)&&e!==`classes`,Y=La({themeId:mt,defaultTheme:oc,rootShouldForwardProp:lc}),X=gi;function uc(...e){return e.reduce((e,t)=>t==null?e:function(...n){e.apply(this,n),t.apply(this,n)},()=>{})}function dc(e){return(0,B.jsx)(Ca,{...e,defaultTheme:oc,themeId:mt})}function fc(e){return function(t){return(0,B.jsx)(dc,{styles:typeof e==`function`?n=>e({theme:n,...t}):e})}}var pc=vo;function mc(e){return fo(e)}function hc(e){return U(`MuiSvgIcon`,e)}W(`MuiSvgIcon`,[`root`,`colorPrimary`,`colorSecondary`,`colorAction`,`colorError`,`colorDisabled`,`fontSizeInherit`,`fontSizeSmall`,`fontSizeMedium`,`fontSizeLarge`]);var gc=e=>{let{color:t,fontSize:n,classes:r}=e;return q({root:[`root`,t!==`inherit`&&`color${X(t)}`,`fontSize${X(n)}`]},hc,r)},_c=Y(`svg`,{name:`MuiSvgIcon`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.color!==`inherit`&&t[`color${X(n.color)}`],t[`fontSize${X(n.fontSize)}`]]}})(pc(({theme:e})=>({userSelect:`none`,width:`1em`,height:`1em`,display:`inline-block`,flexShrink:0,transition:e.transitions?.create?.(`fill`,{duration:(e.vars??e).transitions?.duration?.shorter}),variants:[{props:e=>!e.hasSvgAsChild,style:{fill:`currentColor`}},{props:{fontSize:`inherit`},style:{fontSize:`inherit`}},{props:{fontSize:`small`},style:{fontSize:e.typography?.pxToRem?.(20)||`1.25rem`}},{props:{fontSize:`medium`},style:{fontSize:e.typography?.pxToRem?.(24)||`1.5rem`}},{props:{fontSize:`large`},style:{fontSize:e.typography?.pxToRem?.(35)||`2.1875rem`}},...Object.entries((e.vars??e).palette).filter(([,e])=>e&&e.main).map(([t])=>({props:{color:t},style:{color:(e.vars??e).palette?.[t]?.main}})),{props:{color:`action`},style:{color:(e.vars??e).palette?.action?.active}},{props:{color:`disabled`},style:{color:(e.vars??e).palette?.action?.disabled}},{props:{color:`inherit`},style:{color:void 0}}]}))),vc=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiSvgIcon`}),{children:r,className:i,color:a=`inherit`,component:o=`svg`,fontSize:s=`medium`,htmlColor:c,inheritViewBox:l=!1,titleAccess:u,viewBox:d=`0 0 24 24`,...f}=n,p=z.isValidElement(r)&&r.type===`svg`,m={...n,color:a,component:o,fontSize:s,instanceFontSize:e.fontSize,inheritViewBox:l,viewBox:d,hasSvgAsChild:p},h={};return l||(h.viewBox=d),(0,B.jsxs)(_c,{as:o,className:H(gc(m).root,i),focusable:`false`,color:c,"aria-hidden":u?void 0:!0,role:u?`img`:void 0,ref:t,...h,...f,...p&&r.props,ownerState:m,children:[p?r.props.children:r,u?(0,B.jsx)(`title`,{children:u}):null]})});vc.muiName=`SvgIcon`;function yc(e,t){function n(t,n){return(0,B.jsx)(vc,{"data-testid":void 0,ref:n,...t,children:e})}return n.muiName=vc.muiName,z.memo(z.forwardRef(n))}function bc(e,t=166){let n;function r(...r){clearTimeout(n),n=setTimeout(()=>{e.apply(this,r)},t)}return r.clear=()=>{clearTimeout(n)},r}var xc=bc,Sc=jo;function Cc(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}var wc=Cc;function Tc(e){return e&&e.ownerDocument||document}var Ec=Tc;function Dc(e){return Tc(e).defaultView||window}var Oc=Dc;function kc(e,t){typeof e==`function`?e(t):e&&(e.current=t)}var Ac=Wa,jc=go;function Mc(e){let{controlled:t,default:n,name:r,state:i=`value`}=e,{current:a}=z.useRef(t!==void 0),[o,s]=z.useState(n);return[a?t:o,z.useCallback(e=>{a||s(e)},[])]}var Nc=Mc;function Pc(e){let t=z.useRef(e);return Wa(()=>{t.current=e}),z.useRef((...e)=>(0,t.current)(...e)).current}var Fc=Pc;function Ic(...e){let t=z.useRef(void 0),n=z.useCallback(t=>{let n=e.map(e=>{if(e==null)return null;if(typeof e==`function`){let n=e,r=n(t);return typeof r==`function`?r:()=>{n(null)}}return e.current=t,()=>{e.current=null}});return()=>{n.forEach(e=>e?.())}},e);return z.useMemo(()=>e.every(e=>e==null)?null:e=>{t.current&&=(t.current(),void 0),e!=null&&(t.current=n(e))},e)}var Lc=Ic;function Rc(e,t){let n=e.charCodeAt(2);return e[0]===`o`&&e[1]===`n`&&n>=65&&n<=90&&typeof t==`function`}function zc(e,t){if(!e)return t;function n(e,t){let n={};return Object.keys(t).forEach(r=>{Rc(r,t[r])&&typeof e[r]==`function`&&(n[r]=(...n)=>{e[r](...n),t[r](...n)})}),n}if(typeof e==`function`||typeof t==`function`)return r=>{let i=typeof t==`function`?t(r):t,a=typeof e==`function`?e({...r,...i}):e,o=H(r?.className,i?.className,a?.className),s=n(a,i);return{...i,...a,...s,...!!o&&{className:o},...i?.style&&a?.style&&{style:{...i.style,...a.style}},...i?.sx&&a?.sx&&{sx:[...Array.isArray(i.sx)?i.sx:[i.sx],...Array.isArray(a.sx)?a.sx:[a.sx]]}}};let r=t,i=n(e,r),a=H(r?.className,e?.className);return{...t,...e,...i,...!!a&&{className:a},...r?.style&&e?.style&&{style:{...r.style,...e.style}},...r?.sx&&e?.sx&&{sx:[...Array.isArray(r.sx)?r.sx:[r.sx],...Array.isArray(e.sx)?e.sx:[e.sx]]}}}function Bc(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Vc(e,t){return Vc=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Vc(e,t)}function Hc(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Vc(e,t)}var Uc={disabled:!1},Wc=z.createContext(null),Gc=function(e){return e.scrollTop},Kc=c(m()),qc=`unmounted`,Jc=`exited`,Yc=`entering`,Xc=`entered`,Zc=`exiting`,Qc=function(e){Hc(t,e);function t(t,n){var r=e.call(this,t,n)||this,i=n,a=i&&!i.isMounting?t.enter:t.appear,o;return r.appearStatus=null,t.in?a?(o=Jc,r.appearStatus=Yc):o=Xc:o=t.unmountOnExit||t.mountOnEnter?qc:Jc,r.state={status:o},r.nextCallback=null,r}t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===`unmounted`?{status:Jc}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==`entering`&&n!==`entered`&&(t=Yc):(n===`entering`||n===`entered`)&&(t=Zc)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e=this.props.timeout,t=n=r=e,n,r;return e!=null&&typeof e!=`number`&&(t=e.exit,n=e.enter,r=e.appear===void 0?n:e.appear),{exit:t,enter:n,appear:r}},n.updateStatus=function(e,t){if(e===void 0&&(e=!1),t!==null)if(this.cancelNextCallback(),t===`entering`){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:Kc.default.findDOMNode(this);n&&Gc(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===`exited`&&this.setState({status:qc})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,i=this.props.nodeRef?[r]:[Kc.default.findDOMNode(this),r],a=i[0],o=i[1],s=this.getTimeouts(),c=r?s.appear:s.enter;if(!e&&!n||Uc.disabled){this.safeSetState({status:Xc},function(){t.props.onEntered(a)});return}this.props.onEnter(a,o),this.safeSetState({status:Yc},function(){t.props.onEntering(a,o),t.onTransitionEnd(c,function(){t.safeSetState({status:Xc},function(){t.props.onEntered(a,o)})})})},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:Kc.default.findDOMNode(this);if(!t||Uc.disabled){this.safeSetState({status:Jc},function(){e.props.onExited(r)});return}this.props.onExit(r),this.safeSetState({status:Zc},function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,function(){e.safeSetState({status:Jc},function(){e.props.onExited(r)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:Kc.default.findDOMNode(this),r=e==null&&!this.props.addEndListener;if(!n||r){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var i=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],a=i[0],o=i[1];this.props.addEndListener(a,o)}e!=null&&setTimeout(this.nextCallback,e)},n.render=function(){var e=this.state.status;if(e===`unmounted`)return null;var t=this.props,n=t.children;t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef;var r=Bc(t,[`children`,`in`,`mountOnEnter`,`unmountOnExit`,`appear`,`enter`,`exit`,`timeout`,`addEndListener`,`onEnter`,`onEntering`,`onEntered`,`onExit`,`onExiting`,`onExited`,`nodeRef`]);return z.createElement(Wc.Provider,{value:null},typeof n==`function`?n(e,r):z.cloneElement(z.Children.only(n),r))},t}(z.Component);Qc.contextType=Wc,Qc.propTypes={};function $c(){}Qc.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:$c,onEntering:$c,onEntered:$c,onExit:$c,onExiting:$c,onExited:$c},Qc.UNMOUNTED=qc,Qc.EXITED=Jc,Qc.ENTERING=Yc,Qc.ENTERED=Xc,Qc.EXITING=Zc;function el(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function tl(e,t){var n=function(e){return t&&(0,z.isValidElement)(e)?t(e):e},r=Object.create(null);return e&&z.Children.map(e,function(e){return e}).forEach(function(e){r[e.key]=n(e)}),r}function nl(e,t){e||={},t||={};function n(n){return n in t?t[n]:e[n]}var r=Object.create(null),i=[];for(var a in e)a in t?i.length&&(r[a]=i,i=[]):i.push(a);var o,s={};for(var c in t){if(r[c])for(o=0;o{this.currentId=null,t()},e)}clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)};disposeEffect=()=>this.clear};function ml(){let e=ul(pl.create).current;return fl(e.disposeEffect),e}var hl=e=>e.scrollTop;function gl(e,t){return n=>{if(t){let r=e.current;n===void 0?t(r):t(r,n)}}}function _l(e,t,n,r,i,a){let o=e===`exited`&&!t?r:n[e]||n.exited;return i||a?{...o,...i,...a}:o}function vl(e,t){let{timeout:n,easing:r,style:i={}}=e;return{duration:i.transitionDuration??(typeof n==`number`?n:n[t.mode]||0),easing:i.transitionTimingFunction??(typeof r==`object`?r[t.mode]:r),delay:i.transitionDelay}}function yl(e){return typeof e==`string`}function bl(e,t,n){return e===void 0||yl(e)?t:{...t,ownerState:{...t.ownerState,...n}}}function xl(e,t,n){return typeof e==`function`?e(t,n):e}function Sl(e,t=[]){if(e===void 0)return{};let n={};return Object.keys(e).filter(n=>n.match(/^on[A-Z]/)&&typeof e[n]==`function`&&!t.includes(n)).forEach(t=>{n[t]=e[t]}),n}function Cl(e){if(e===void 0)return{};let t={};return Object.keys(e).filter(t=>!(t.match(/^on[A-Z]/)&&typeof e[t]==`function`)).forEach(n=>{t[n]=e[n]}),t}function wl(e){let{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:i,className:a}=e;if(!t){let e=H(n?.className,a,i?.className,r?.className),t={...n?.style,...i?.style,...r?.style},o={...n,...i,...r};return e.length>0&&(o.className=e),Object.keys(t).length>0&&(o.style=t),{props:o,internalRef:void 0}}let o=Sl({...i,...r}),s=Cl(r),c=Cl(i),l=t(o),u=H(l?.className,n?.className,a,i?.className,r?.className),d={...l?.style,...n?.style,...i?.style,...r?.style},f={...l,...n,...c,...s};return u.length>0&&(f.className=u),Object.keys(d).length>0&&(f.style=d),{props:f,internalRef:l.ref}}function Tl(e,t){let{className:n,elementType:r,ownerState:i,externalForwardedProps:a,internalForwardedProps:o,shouldForwardComponentProp:s=!1,...c}=t,{component:l,slots:u={[e]:void 0},slotProps:d={[e]:void 0},...f}=a,p=u[e]||r,m=xl(d[e],i),{props:{component:h,...g},internalRef:_}=wl({className:n,...c,externalForwardedProps:e===`root`?f:void 0,externalSlotProps:m}),v=Ic(_,m?.ref,t.ref),y=e===`root`?h||l:h;return[p,bl(p,{...e===`root`&&!l&&!u[e]&&o,...e!==`root`&&!u[e]&&o,...g,...y&&!s&&{as:y},...y&&s&&{component:y},ref:v},i)]}function El(e){return U(`MuiPaper`,e)}W(`MuiPaper`,`root.rounded.outlined.elevation.elevation0.elevation1.elevation2.elevation3.elevation4.elevation5.elevation6.elevation7.elevation8.elevation9.elevation10.elevation11.elevation12.elevation13.elevation14.elevation15.elevation16.elevation17.elevation18.elevation19.elevation20.elevation21.elevation22.elevation23.elevation24`.split(`.`));var Dl=e=>{let{square:t,elevation:n,variant:r,classes:i}=e;return q({root:[`root`,r,!t&&`rounded`,r===`elevation`&&`elevation${n}`]},El,i)},Ol=Y(`div`,{name:`MuiPaper`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,n.variant===`elevation`&&t[`elevation${n.elevation}`]]}})(pc(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create(`box-shadow`),variants:[{props:({ownerState:e})=>!e.square,style:{borderRadius:e.shape.borderRadius}},{props:{variant:`outlined`},style:{border:`1px solid ${(e.vars||e).palette.divider}`}},{props:{variant:`elevation`},style:{boxShadow:`var(--Paper-shadow)`,backgroundImage:`var(--Paper-overlay)`}}]}))),kl=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiPaper`}),r=sc(),{className:i,component:a=`div`,elevation:o=1,square:s=!1,variant:c=`elevation`,...l}=n,u={...n,component:a,elevation:o,square:s,variant:c};return(0,B.jsx)(Ol,{as:a,ownerState:u,className:H(Dl(u).root,i),ref:t,...l,style:{...c===`elevation`&&{"--Paper-shadow":(r.vars||r).shadows[o],...r.vars&&{"--Paper-overlay":r.vars.overlays?.[o]},...!r.vars&&r.palette.mode===`dark`&&{"--Paper-overlay":`linear-gradient(${to(`#fff`,Hs(o))}, ${to(`#fff`,Hs(o))})`}},...l.style}})});function Al(e){try{return e.matches(`:focus-visible`)}catch{}return!1}function jl(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:i=0,isNativeButton:a}=e,o=r&&t!==!1,s=r&&t===!1;return z.useMemo(()=>{let e={onKeyDown(e){n&&t&&e.key!==`Tab`&&e.preventDefault()}};return r||(e.tabIndex=i,!a&&n&&(e.tabIndex=t?i:-1)),(a&&(t||o)||!a&&n)&&(e[`aria-disabled`]=n),a&&(!t||s)&&(e.disabled=n),e},[r,n,t,o,s,a,i])}var Ml={};function Nl(e){let{nativeButton:t,nativeButtonProp:n,internalNativeButton:r=t,allowInferredHostMismatch:i=!1,disabled:a,type:o,hasFormAction:s=!1,tabIndex:c=0,focusableWhenDisabled:l,stopEventPropagation:u=!1,onBeforeKeyDown:d,onBeforeKeyUp:f}=e,p=z.useRef(null),m=l===!0,h=jl({focusableWhenDisabled:m,disabled:a,isNativeButton:t,tabIndex:c}),g=z.useCallback(()=>{let e=p.current;return e==null?t:e.tagName===`BUTTON`?!0:!!(e.tagName===`A`&&e.href)},[t]),_=z.useMemo(()=>{let e=m?{}:{tabIndex:a?-1:c};return t?(e.type=o===void 0&&!s?`button`:o,m||(e.disabled=a)):(e.role=`button`,!m&&a&&(e[`aria-disabled`]=a)),m?{...e,...h}:e},[a,m,h,s,t,c,o]);return{getButtonProps:z.useCallback((e=Ml)=>{let{onClick:t,onKeyDown:n,onKeyUp:r,...i}=e,o=e=>{if(u&&e.stopPropagation(),a){e.preventDefault();return}t?.(e)},s=e=>{if(m&&h.onKeyDown(e),!a&&(d?.(e),n?.(e),!(e.target!==e.currentTarget||g()))){if(e.key===` `){e.preventDefault();return}e.key===`Enter`&&(e.preventDefault(),e.currentTarget.click())}},c=e=>{a||(f?.(e),r?.(e),e.target===e.currentTarget&&!g()&&e.key===` `&&!e.defaultPrevented&&e.currentTarget.click())};return{..._,...i,onClick:o,onKeyDown:s,onKeyUp:c}},[_,a,m,h,g,d,f,u]),rootRef:p}}var Pl=class e{static create(){return new e}static use(){let t=ul(e.create).current,[n,r]=z.useState(!1);return t.shouldMount=n,t.setShouldMount=r,z.useEffect(t.mountEffect,[n]),t}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=Il(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())};start(...e){this.mount().then(()=>this.ref.current?.start(...e))}stop(...e){this.mount().then(()=>this.ref.current?.stop(...e))}pulsate(...e){this.mount().then(()=>this.ref.current?.pulsate(...e))}};function Fl(){return Pl.use()}function Il(){let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n}function Ll(e){let{className:t,classes:n,pulsate:r=!1,rippleX:i,rippleY:a,rippleSize:o,in:s,onExited:c,timeout:l}=e,[u,d]=z.useState(!1),f=H(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),p={width:o,height:o,top:-(o/2)+a,left:-(o/2)+i},m=H(n.child,u&&n.childLeaving,r&&n.childPulsate);return!s&&!u&&d(!0),z.useEffect(()=>{if(!s&&c!=null){let e=setTimeout(c,l);return()=>{clearTimeout(e)}}},[c,s,l]),(0,B.jsx)(`span`,{className:f,style:p,children:(0,B.jsx)(`span`,{className:m})})}var Z=W(`MuiTouchRipple`,[`root`,`ripple`,`rippleVisible`,`ripplePulsate`,`child`,`childLeaving`,`childPulsate`]),Rl=550,zl=hr` - 0% { - transform: scale(0); - opacity: 0.1; - } - - 100% { - transform: scale(1); - opacity: 0.3; - } -`,Bl=hr` - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -`,Vl=hr` - 0% { - transform: scale(1); - } - - 50% { - transform: scale(0.92); - } - - 100% { - transform: scale(1); - } -`,Hl=Y(`span`,{name:`MuiTouchRipple`,slot:`Root`})({overflow:`hidden`,pointerEvents:`none`,position:`absolute`,zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:`inherit`}),Ul=Y(Ll,{name:`MuiTouchRipple`,slot:`Ripple`})` - opacity: 0; - position: absolute; - - &.${Z.rippleVisible} { - opacity: 0.3; - transform: scale(1); - animation-name: ${zl}; - animation-duration: ${Rl}ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - } - - &.${Z.ripplePulsate} { - animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms; - } - - & .${Z.child} { - opacity: 1; - display: block; - width: 100%; - height: 100%; - border-radius: 50%; - background-color: currentColor; - } - - & .${Z.childLeaving} { - opacity: 0; - animation-name: ${Bl}; - animation-duration: ${Rl}ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - } - - & .${Z.childPulsate} { - position: absolute; - /* @noflip */ - left: 0px; - top: 0; - animation-name: ${Vl}; - animation-duration: 2500ms; - animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut}; - animation-iteration-count: infinite; - animation-delay: 200ms; - } -`,Wl=z.forwardRef(function(e,t){let{center:n=!1,classes:r={},className:i,...a}=mc({props:e,name:`MuiTouchRipple`}),[o,s]=z.useState([]),c=z.useRef(0),l=z.useRef(null);z.useEffect(()=>{l.current&&=(l.current(),null)},[o]);let u=z.useRef(!1),d=ml(),f=z.useRef(null),p=z.useRef(null),m=z.useCallback(e=>{let{pulsate:t,rippleX:n,rippleY:i,rippleSize:a,cb:o}=e;s(e=>[...e,(0,B.jsx)(Ul,{classes:{ripple:H(r.ripple,Z.ripple),rippleVisible:H(r.rippleVisible,Z.rippleVisible),ripplePulsate:H(r.ripplePulsate,Z.ripplePulsate),child:H(r.child,Z.child),childLeaving:H(r.childLeaving,Z.childLeaving),childPulsate:H(r.childPulsate,Z.childPulsate)},timeout:Rl,pulsate:t,rippleX:n,rippleY:i,rippleSize:a},c.current)]),c.current+=1,l.current=o},[r]),h=z.useCallback((e={},t={},r=()=>{})=>{let{pulsate:i=!1,center:a=n||t.pulsate,fakeElement:o=!1}=t;if(e?.type===`mousedown`&&u.current){u.current=!1;return}e?.type===`touchstart`&&(u.current=!0);let s=o?null:p.current,c=s?s.getBoundingClientRect():{width:0,height:0,left:0,top:0},l,h,g;if(a||e===void 0||e.clientX===0&&e.clientY===0||!e.clientX&&!e.touches)l=Math.round(c.width/2),h=Math.round(c.height/2);else{let{clientX:t,clientY:n}=e.touches&&e.touches.length>0?e.touches[0]:e;l=Math.round(t-c.left),h=Math.round(n-c.top)}if(a)g=Math.sqrt((2*c.width**2+c.height**2)/3),g%2==0&&(g+=1);else{let e=Math.max(Math.abs((s?s.clientWidth:0)-l),l)*2+2,t=Math.max(Math.abs((s?s.clientHeight:0)-h),h)*2+2;g=Math.sqrt(e**2+t**2)}e?.touches?f.current===null&&(f.current=()=>{m({pulsate:i,rippleX:l,rippleY:h,rippleSize:g,cb:r})},d.start(80,()=>{f.current&&=(f.current(),null)})):m({pulsate:i,rippleX:l,rippleY:h,rippleSize:g,cb:r})},[n,m,d]),g=z.useCallback(()=>{h({},{pulsate:!0})},[h]),_=z.useCallback((e,t)=>{if(d.clear(),e?.type===`touchend`&&f.current){f.current(),f.current=null,d.start(0,()=>{_(e,t)});return}f.current=null,s(e=>e.length>0?e.slice(1):e),l.current=t},[d]);return z.useImperativeHandle(t,()=>({pulsate:g,start:h,stop:_}),[g,h,_]),(0,B.jsx)(Hl,{className:H(Z.root,r.root,i),ref:p,...a,children:(0,B.jsx)(cl,{component:null,exit:!0,children:o})})});function Gl(e){return U(`MuiButtonBase`,e)}var Kl=W(`MuiButtonBase`,[`root`,`disabled`,`focusVisible`]),ql=e=>{let{disabled:t,focusVisible:n,focusVisibleClassName:r,suppressFocusVisible:i,classes:a}=e,o=q({root:[`root`,t&&`disabled`,n&&!i&&`focusVisible`]},Gl,a);return n&&!i&&r&&(o.root+=` ${r}`),o},Jl=Y(`button`,{name:`MuiButtonBase`,slot:`Root`})({display:`inline-flex`,alignItems:`center`,justifyContent:`center`,position:`relative`,boxSizing:`border-box`,WebkitTapHighlightColor:`transparent`,backgroundColor:`transparent`,outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:`pointer`,userSelect:`none`,verticalAlign:`middle`,MozAppearance:`none`,WebkitAppearance:`none`,textDecoration:`none`,color:`inherit`,"&::-moz-focus-inner":{borderStyle:`none`},[`&.${Kl.disabled}`]:{pointerEvents:`none`,cursor:`default`},"@media print":{colorAdjust:`exact`}}),Yl=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiButtonBase`}),{action:r,centerRipple:i=!1,children:a,className:o,component:s=`button`,disabled:c=!1,disableRipple:l=!1,disableTouchRipple:u=!1,focusRipple:d=!1,focusVisibleClassName:f,focusableWhenDisabled:p,suppressFocusVisible:m=!1,internalNativeButton:h,LinkComponent:g=`a`,nativeButton:_,onBlur:v,onClick:y,onContextMenu:b,onDragLeave:x,onFocus:S,onFocusVisible:C,onKeyDown:w,onKeyUp:T,onMouseDown:E,onMouseLeave:D,onMouseUp:O,onTouchEnd:k,onTouchMove:ee,onTouchStart:A,tabIndex:j=0,TouchRippleProps:te,touchRippleRef:ne,type:re,...M}=n,N=!!(M.href||M.to),ie=!!M.formAction,ae=s;ae===`button`&&N&&(ae=g);let oe=typeof ae==`string`?ae===`button`:h??!1,P=_??oe,F=Fl(),I=Lc(F.ref,ne),[se,ce]=z.useState(!1);(c||m)&&se&&ce(!1);let le=Fc(e=>{d&&!e.repeat&&se&&e.key===` `&&F.stop(e,()=>{F.start(e)})}),ue=Fc(e=>{d&&e.key===` `&&se&&!e.defaultPrevented&&F.stop(e,()=>{F.pulsate(e)})}),{getButtonProps:de,rootRef:fe}=Nl({nativeButton:P,nativeButtonProp:_,internalNativeButton:oe,allowInferredHostMismatch:N||typeof ae==`string`,disabled:c,type:re,hasFormAction:ie,tabIndex:j,onBeforeKeyDown:le,onBeforeKeyUp:ue}),{onClick:pe,onKeyDown:me,onKeyUp:he,...ge}=de({onClick:y,onKeyDown:w,onKeyUp:T});z.useImperativeHandle(r,()=>({focusVisible:()=>{ce(!0),fe.current.focus()}}),[fe]);let _e=F.shouldMount&&!l&&!c;z.useEffect(()=>{se&&d&&!l&&F.pulsate()},[l,d,se,F]);let L=Xl(F,`start`,E,u),ve=Xl(F,`stop`,b,u),R=Xl(F,`stop`,x,u),ye=Xl(F,`stop`,O,u),be=Xl(F,`stop`,e=>{se&&e.preventDefault(),D&&D(e)},u),xe=Xl(F,`start`,A,u),Se=Xl(F,`stop`,k,u),Ce=Xl(F,`stop`,ee,u),we=Xl(F,`stop`,e=>{Al(e.target)||ce(!1),v&&v(e)},!1),Te=Fc(e=>{fe.current||=e.currentTarget,!m&&Al(e.target)&&(ce(!0),C&&C(e)),S&&S(e)}),Ee={};N&&(Ee.tabIndex=c?-1:j,c&&(Ee[`aria-disabled`]=c),Ee.type=re);let De=Lc(t,fe),Oe={...n,centerRipple:i,component:s,disabled:c,disableRipple:l,disableTouchRipple:u,focusRipple:d,suppressFocusVisible:m,tabIndex:j,focusVisible:se},ke=ql(Oe);return(0,B.jsxs)(Jl,{as:ae,className:H(ke.root,o),ownerState:Oe,onBlur:we,onClick:pe,onContextMenu:ve,onFocus:Te,onKeyDown:me,onKeyUp:he,onMouseDown:L,onMouseLeave:be,onMouseUp:ye,onDragLeave:R,onTouchEnd:Se,onTouchMove:Ce,onTouchStart:xe,ref:De,...N?Ee:ge,...M,children:[a,_e?(0,B.jsx)(Wl,{ref:I,center:i,...te}):null]})});function Xl(e,t,n,r=!1){return Fc(i=>(n&&n(i),r||e[t](i),!0))}function Zl(e){return typeof e.main==`string`}function Ql(e,t=[]){if(!Zl(e))return!1;for(let n of t)if(!e.hasOwnProperty(n)||typeof e[n]!=`string`)return!1;return!0}function $l(e=[]){return([,t])=>t&&Ql(t,e)}function eu(e){return U(`MuiAlert`,e)}var tu=W(`MuiAlert`,[`root`,`action`,`icon`,`message`,`filled`,`colorSuccess`,`colorInfo`,`colorWarning`,`colorError`,`outlined`,`standard`]);function nu(e){return U(`MuiCircularProgress`,e)}W(`MuiCircularProgress`,[`root`,`determinate`,`indeterminate`,`colorPrimary`,`colorSecondary`,`svg`,`track`,`circle`,`circleDisableShrink`]);var ru=44,iu=hr` - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -`,au=hr` - 0% { - stroke-dasharray: 1px, 200px; - stroke-dashoffset: 0; - } - - 50% { - stroke-dasharray: 100px, 200px; - stroke-dashoffset: -15px; - } - - 100% { - stroke-dasharray: 1px, 200px; - stroke-dashoffset: -126px; - } -`,ou=typeof iu==`string`?null:mr` - animation: ${iu} 1.4s linear infinite; - `,su=typeof au==`string`?null:mr` - animation: ${au} 1.4s ease-in-out infinite; - `,cu=e=>{let{classes:t,variant:n,color:r,disableShrink:i}=e;return q({root:[`root`,n,`color${X(r)}`],svg:[`svg`],track:[`track`],circle:[`circle`,i&&`circleDisableShrink`]},nu,t)},lu=Y(`span`,{name:`MuiCircularProgress`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t[`color${X(n.color)}`]]}})(pc(({theme:e})=>({display:`inline-block`,variants:[{props:{variant:`determinate`},style:{transition:e.transitions.create(`transform`)}},{props:{variant:`indeterminate`},style:ou||{animation:`${iu} 1.4s linear infinite`}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}}))]}))),uu=Y(`svg`,{name:`MuiCircularProgress`,slot:`Svg`})({display:`block`}),du=Y(`circle`,{name:`MuiCircularProgress`,slot:`Circle`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.circle,n.disableShrink&&t.circleDisableShrink]}})(pc(({theme:e})=>({stroke:`currentColor`,variants:[{props:{variant:`determinate`},style:{transition:e.transitions.create(`stroke-dashoffset`)}},{props:{variant:`indeterminate`},style:{strokeDasharray:`80px, 200px`,strokeDashoffset:0}},{props:({ownerState:e})=>e.variant===`indeterminate`&&!e.disableShrink,style:su||{animation:`${au} 1.4s ease-in-out infinite`}}]}))),fu=Y(`circle`,{name:`MuiCircularProgress`,slot:`Track`})(pc(({theme:e})=>({stroke:`currentColor`,opacity:(e.vars||e).palette.action.activatedOpacity}))),pu=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiCircularProgress`}),{className:r,color:i=`primary`,disableShrink:a=!1,enableTrackSlot:o=!1,size:s=40,style:c,thickness:l=3.6,value:u=0,variant:d=`indeterminate`,...f}=n,p={...n,color:i,disableShrink:a,size:s,thickness:l,value:u,variant:d,enableTrackSlot:o},m=cu(p),h={},g={},_={};if(d===`determinate`){let e=2*Math.PI*((ru-l)/2);h.strokeDasharray=e.toFixed(3),_[`aria-valuenow`]=Math.round(u),h.strokeDashoffset=`${((100-u)/100*e).toFixed(3)}px`,g.transform=`rotate(-90deg)`}return(0,B.jsx)(lu,{className:H(m.root,r),style:{width:s,height:s,...g,...c},ownerState:p,ref:t,role:`progressbar`,..._,...f,children:(0,B.jsxs)(uu,{className:m.svg,ownerState:p,viewBox:`${ru/2} ${ru/2} ${ru} ${ru}`,children:[o?(0,B.jsx)(fu,{className:m.track,ownerState:p,cx:ru,cy:ru,r:(ru-l)/2,fill:`none`,strokeWidth:l,"aria-hidden":`true`}):null,(0,B.jsx)(du,{className:m.circle,style:h,ownerState:p,cx:ru,cy:ru,r:(ru-l)/2,fill:`none`,strokeWidth:l})]})})});function mu(e){return U(`MuiIconButton`,e)}var hu=W(`MuiIconButton`,[`root`,`disabled`,`colorInherit`,`colorPrimary`,`colorSecondary`,`colorError`,`colorInfo`,`colorSuccess`,`colorWarning`,`edgeStart`,`edgeEnd`,`sizeSmall`,`sizeMedium`,`sizeLarge`,`loading`,`loadingIndicator`,`loadingWrapper`]),gu=e=>{let{classes:t,disabled:n,color:r,edge:i,size:a,loading:o}=e;return q({root:[`root`,o&&`loading`,n&&`disabled`,r!==`default`&&`color${X(r)}`,i&&`edge${X(i)}`,`size${X(a)}`],loadingIndicator:[`loadingIndicator`],loadingWrapper:[`loadingWrapper`]},mu,t)},_u=Y(Yl,{name:`MuiIconButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.loading&&t.loading,n.color!==`default`&&t[`color${X(n.color)}`],n.edge&&t[`edge${X(n.edge)}`],t[`size${X(n.size)}`]]}})(pc(({theme:e})=>({textAlign:`center`,flex:`0 0 auto`,fontSize:e.typography.pxToRem(24),padding:8,borderRadius:`50%`,color:(e.vars||e).palette.action.active,transition:e.transitions.create(`background-color`,{duration:e.transitions.duration.shortest}),variants:[{props:e=>!e.disableRipple,style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"&:hover":{backgroundColor:`var(--IconButton-hoverBg)`,"@media (hover: none)":{backgroundColor:`transparent`}}}},{props:{edge:`start`},style:{marginLeft:-12}},{props:{edge:`start`,size:`small`},style:{marginLeft:-3}},{props:{edge:`end`},style:{marginRight:-12}},{props:{edge:`end`,size:`small`},style:{marginRight:-3}}]})),pc(({theme:e})=>({variants:[{props:{color:`inherit`},style:{color:`inherit`}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}})),{props:{size:`small`},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:`large`},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${hu.disabled}`]:{backgroundColor:`transparent`,color:(e.vars||e).palette.action.disabled},[`&.${hu.loading}`]:{color:`transparent`}}))),vu=Y(`span`,{name:`MuiIconButton`,slot:`LoadingIndicator`})(({theme:e})=>({display:`none`,position:`absolute`,visibility:`visible`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`,color:(e.vars||e).palette.action.disabled,variants:[{props:{loading:!0},style:{display:`flex`}}]})),yu=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiIconButton`}),{edge:r=!1,children:i,className:a,color:o=`default`,disabled:s=!1,disableFocusRipple:c=!1,size:l=`medium`,id:u,loading:d=null,loadingIndicator:f,...p}=n,m=jc(u),h=f??(0,B.jsx)(pu,{"aria-labelledby":m,color:`inherit`,size:16}),g={...n,edge:r,color:o,disabled:s,disableFocusRipple:c,loading:d,loadingIndicator:h,size:l},_=gu(g);return(0,B.jsxs)(_u,{id:d?m:u,className:H(_.root,a),centerRipple:!0,internalNativeButton:!0,focusRipple:!c,disabled:s||d,ref:t,...p,ownerState:g,children:[typeof d==`boolean`&&(0,B.jsx)(`span`,{className:_.loadingWrapper,style:{display:`contents`},children:(0,B.jsx)(vu,{className:_.loadingIndicator,ownerState:g,children:d&&h})}),i]})}),bu=yc((0,B.jsx)(`path`,{d:`M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z`}),`SuccessOutlined`),xu=yc((0,B.jsx)(`path`,{d:`M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z`}),`ReportProblemOutlined`),Su=yc((0,B.jsx)(`path`,{d:`M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z`}),`ErrorOutline`),Cu=yc((0,B.jsx)(`path`,{d:`M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z`}),`InfoOutlined`),wu=yc((0,B.jsx)(`path`,{d:`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`}),`Close`),Tu=e=>{let{variant:t,color:n,severity:r,classes:i}=e;return q({root:[`root`,`color${X(n||r)}`,`${t}`],icon:[`icon`],message:[`message`],action:[`action`]},eu,i)},Eu=Y(kl,{name:`MuiAlert`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant]]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`?e.darken:e.lighten,n=e.palette.mode===`light`?e.lighten:e.darken;return{...e.typography.body2,backgroundColor:`transparent`,display:`flex`,padding:`6px 16px`,variants:[...Object.entries(e.palette).filter($l([`light`])).map(([r])=>({props:{colorSeverity:r,variant:`standard`},style:{color:e.vars?e.vars.palette.Alert[`${r}Color`]:t(e.palette[r].light,.6),backgroundColor:e.vars?e.vars.palette.Alert[`${r}StandardBg`]:n(e.palette[r].light,.9),[`& .${tu.icon}`]:e.vars?{color:e.vars.palette.Alert[`${r}IconColor`]}:{color:e.palette[r].main}}})),...Object.entries(e.palette).filter($l([`light`])).map(([n])=>({props:{colorSeverity:n,variant:`outlined`},style:{color:e.vars?e.vars.palette.Alert[`${n}Color`]:t(e.palette[n].light,.6),border:`1px solid ${(e.vars||e).palette[n].light}`,[`& .${tu.icon}`]:e.vars?{color:e.vars.palette.Alert[`${n}IconColor`]}:{color:e.palette[n].main}}})),...Object.entries(e.palette).filter($l([`dark`])).map(([t])=>({props:{colorSeverity:t,variant:`filled`},style:{fontWeight:e.typography.fontWeightMedium,...e.vars?{color:e.vars.palette.Alert[`${t}FilledColor`],backgroundColor:e.vars.palette.Alert[`${t}FilledBg`]}:{backgroundColor:e.palette.mode===`dark`?e.palette[t].dark:e.palette[t].main,color:e.palette.getContrastText(e.palette[t].main)}}}))]}})),Du=Y(`div`,{name:`MuiAlert`,slot:`Icon`})({marginRight:12,padding:`7px 0`,display:`flex`,fontSize:22,opacity:.9}),Ou=Y(`div`,{name:`MuiAlert`,slot:`Message`})({padding:`8px 0`,minWidth:0,overflow:`auto`}),ku=Y(`div`,{name:`MuiAlert`,slot:`Action`})({display:`flex`,alignItems:`flex-start`,padding:`4px 0 0 16px`,marginLeft:`auto`,marginRight:-8}),Au={success:(0,B.jsx)(bu,{fontSize:`inherit`}),warning:(0,B.jsx)(xu,{fontSize:`inherit`}),error:(0,B.jsx)(Su,{fontSize:`inherit`}),info:(0,B.jsx)(Cu,{fontSize:`inherit`})},ju=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiAlert`}),{action:r,children:i,className:a,closeText:o=`Close`,color:s,icon:c,iconMapping:l=Au,onClose:u,role:d=`alert`,severity:f=`success`,slotProps:p={},slots:m={},variant:h=`standard`,...g}=n,_={...n,color:s,severity:f,variant:h,colorSeverity:s||f},v=Tu(_),y={slots:m,slotProps:p},[b,x]=Tl(`root`,{ref:t,shouldForwardComponentProp:!0,className:H(v.root,a),elementType:Eu,externalForwardedProps:{...y,...g},ownerState:_,additionalProps:{role:d,elevation:0}}),[S,C]=Tl(`icon`,{className:v.icon,elementType:Du,externalForwardedProps:y,ownerState:_}),[w,T]=Tl(`message`,{className:v.message,elementType:Ou,externalForwardedProps:y,ownerState:_}),[E,D]=Tl(`action`,{className:v.action,elementType:ku,externalForwardedProps:y,ownerState:_}),[O,k]=Tl(`closeButton`,{elementType:yu,externalForwardedProps:y,ownerState:_}),[ee,A]=Tl(`closeIcon`,{elementType:wu,externalForwardedProps:y,ownerState:_});return(0,B.jsxs)(b,{...x,children:[c===!1?null:(0,B.jsx)(S,{...C,children:c||l[f]||Au[f]}),(0,B.jsx)(w,{...T,children:i}),r==null?null:(0,B.jsx)(E,{...D,children:r}),r==null&&u?(0,B.jsx)(E,{...D,children:(0,B.jsx)(O,{size:`small`,"aria-label":o,title:o,color:`inherit`,onClick:u,...k,children:(0,B.jsx)(ee,{fontSize:`small`,...A})})}):null]})});function Mu(e){return U(`MuiTypography`,e)}W(`MuiTypography`,[`root`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`subtitle1`,`subtitle2`,`body1`,`body2`,`inherit`,`button`,`caption`,`overline`,`alignLeft`,`alignRight`,`alignCenter`,`alignJustify`,`noWrap`,`gutterBottom`]);var Nu=e=>{let{align:t,gutterBottom:n,noWrap:r,variant:i,classes:a}=e;return q({root:[`root`,i,e.align!==`inherit`&&`align${X(t)}`,n&&`gutterBottom`,r&&`noWrap`]},Mu,a)},Pu=Y(`span`,{name:`MuiTypography`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!==`inherit`&&t[`align${X(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom]}})(pc(({theme:e})=>({margin:0,variants:[{props:{variant:`inherit`},style:{font:`inherit`,lineHeight:`inherit`,letterSpacing:`inherit`}},...Object.entries(e.typography).filter(([e,t])=>e!==`inherit`&&t&&typeof t==`object`).map(([e,t])=>({props:{variant:e},style:t})),...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette?.text||{}).filter(([,e])=>typeof e==`string`).map(([t])=>({props:{color:`text${X(t)}`},style:{color:(e.vars||e).palette.text[t]}})),{props:({ownerState:e})=>e.align!==`inherit`,style:{textAlign:`var(--Typography-textAlign)`}},{props:({ownerState:e})=>e.noWrap,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`}},{props:({ownerState:e})=>e.gutterBottom,style:{marginBottom:`0.35em`}}]}))),Fu={h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,h5:`h5`,h6:`h6`,subtitle1:`h6`,subtitle2:`h6`,body1:`p`,body2:`p`,inherit:`p`},Iu=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiTypography`}),{color:r,align:i=`inherit`,className:a,component:o,gutterBottom:s=!1,noWrap:c=!1,variant:l=`body1`,variantMapping:u=Fu,...d}=n,f={...n,align:i,color:r,className:a,component:o,gutterBottom:s,noWrap:c,variant:l,variantMapping:u};return(0,B.jsx)(Pu,{as:o||u[l]||Fu[l]||`span`,ref:t,className:H(Nu(f).root,a),...d,ownerState:f,style:{...i!==`inherit`&&{"--Typography-textAlign":i},...d.style}})});function Lu(e){let t=z.useRef({});return z.useEffect(()=>{t.current=e}),t.current}function Ru({array1:e,array2:t,parser:n=e=>e}){return e&&t&&e.length===t.length&&e.every((e,r)=>n(e)===n(t[r]))}function zu(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``)}function Bu(e={}){let{ignoreAccents:t=!0,ignoreCase:n=!0,limit:r,matchFrom:i=`any`,stringify:a,trim:o=!1}=e;return(e,{inputValue:s,getOptionLabel:c})=>{let l=o?s.trim():s;n&&(l=l.toLowerCase()),t&&(l=zu(l));let u=l?e.filter(e=>{let r=(a||c)(e);return n&&(r=r.toLowerCase()),t&&(r=zu(r)),i===`start`?r.startsWith(l):r.includes(l)}):e;return typeof r==`number`?u.slice(0,r):u}}var Vu=Bu(),Hu=5,Uu=e=>e.current!==null&&e.current.parentElement?.contains(document.activeElement),Wu=(e,t)=>e===t,Gu=[];function Ku(e,t,n,r){if(t||e==null||r)return``;let i=n(e);return typeof i==`string`?i:``}function qu(e){let{unstable_isActiveElementInListbox:t=Uu,unstable_classNamePrefix:n=`Mui`,autoComplete:r=!1,autoHighlight:i=!1,autoSelect:a=!1,blurOnSelect:o=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:c=!1,componentName:l=`useAutocomplete`,defaultValue:u=e.multiple?Gu:null,disableClearable:d=!1,disableCloseOnSelect:f=!1,disabled:p,disabledItemsFocusable:m=!1,disableListWrap:h=!1,filterOptions:g=Vu,filterSelectedOptions:_=!1,freeSolo:v=!1,getOptionDisabled:y,getOptionKey:b,getOptionLabel:x=e=>e.label??e,groupBy:S,handleHomeEndKeys:C=!e.freeSolo,id:w,includeInputInList:T=!1,inputValue:E,isOptionEqualToValue:D=Wu,multiple:O=!1,onChange:k,onClose:ee,onHighlightChange:A,onInputChange:j,onOpen:te,open:ne,openOnFocus:re=!1,options:M,readOnly:N=!1,renderValue:ie,selectOnFocus:ae=!e.freeSolo,value:oe}=e,P=go(w),F=x;F=e=>{let t=x(e);return typeof t==`string`?t:String(t)};let I=z.useRef(!1),se=z.useRef(!0),ce=z.useRef(null),le=z.useRef(null),ue=z.useRef(!1),[de,fe]=z.useState(null),[pe,me]=z.useState(-1),he=i?0:-1,ge=z.useRef(he),_e=z.useRef(Ku(u??oe,O,F)).current,[L,ve]=Mc({controlled:oe,default:u,name:l}),[R,ye]=Mc({controlled:E,default:_e,name:l,state:`inputValue`}),[be,xe]=z.useState(!1),Se=z.useCallback((e,t,n)=>{if(!(O?L.lengthO?L:L==null?[]:[L],[O,L]),Ae=z.useMemo(()=>D!==Wu||ke.length===0?null:new Set(ke),[D,ke]),je=z.useCallback(e=>Ae?Ae.has(e):ke.some(t=>t!=null&&D(e,t)),[D,ke,Ae]),Me=Oe?g(M.filter(e=>!(_&&je(e))),{inputValue:De&&Te?``:R,getOptionLabel:F}):[],Ne=Lu({filteredOptions:Me,value:L,inputValue:R});z.useEffect(()=>{let e=L!==Ne.value;be&&!e||v&&!e||Se(null,L,`reset`)},[L,Se,be,Ne.value,v]);let Pe=Ce&&Me.length>0&&!N,Fe=Pc(e=>{e===-1?ce.current.focus():de.querySelector(`[data-item-index="${e}"]`).focus()});z.useEffect(()=>{O&&pe>L.length-1&&(me(-1),Fe(-1))},[L,O,pe,Fe]);function Ie(e,t){if(!le.current||e<0||e>=Me.length)return-1;let n=e;for(;;){let r=le.current.querySelector(`[data-option-index="${n}"]`),i=m?!1:!r||r.disabled||r.getAttribute(`aria-disabled`)===`true`;if(r&&r.hasAttribute(`tabindex`)&&!i)return n;if(n=t===`next`?(n+1)%Me.length:(n-1+Me.length)%Me.length,n===e)return-1}}let Le=Pc(({event:e,index:t,reason:r})=>{if(ge.current=t,t===-1?ce.current.removeAttribute(`aria-activedescendant`):ce.current.setAttribute(`aria-activedescendant`,`${P}-option-${t}`),A&&[`mouse`,`keyboard`,`touch`].includes(r)&&A(e,t===-1?null:Me[t],r),!le.current)return;let i=le.current.querySelector(`[role="option"].${n}-focused`);i&&(i.classList.remove(`${n}-focused`),i.classList.remove(`${n}-focusVisible`));let a=le.current;if(le.current.getAttribute(`role`)!==`listbox`&&(a=le.current.parentElement.querySelector(`[role="listbox"]`)),!a)return;if(t===-1){a.scrollTop=0;return}let o=le.current.querySelector(`[data-option-index="${t}"]`);if(o&&(o.classList.add(`${n}-focused`),r===`keyboard`&&o.classList.add(`${n}-focusVisible`),a.scrollHeight>a.clientHeight&&r!==`mouse`&&r!==`touch`)){let e=o,t=a.clientHeight+a.scrollTop,n=e.offsetTop+e.offsetHeight;n>t?a.scrollTop=n-a.clientHeight:e.offsetTop-e.offsetHeight*(S?1.3:0){if(!Oe)return;let a=Ie((()=>{let e=Me.length-1;if(t===`reset`)return he;if(t===`start`)return 0;if(t===`end`)return e;let n=ge.current+t;return n<0?n===-1&&T?-1:h&&ge.current!==-1||Math.abs(t)>1?0:e:n>e?n===e+1&&T?-1:h||Math.abs(t)>1?e:0:n})(),n);if(Le({index:a,reason:i,event:e}),r&&t!==`reset`)if(a===-1)ce.current.value=R;else{let e=F(Me[a]);ce.current.value=e,e.toLowerCase().indexOf(R.toLowerCase())===0&&R.length>0&&ce.current.setSelectionRange(R.length,e.length)}}),ze=!Ru({array1:Ne.filteredOptions,array2:Me,parser:F}),Be=()=>{if(ge.current!==-1&&!Ru({array1:Ne.filteredOptions,array2:Me,parser:F})&&Ne.inputValue===R&&(O?L.length===Ne.value.length&&Ne.value.every((e,t)=>F(L[t])===F(e)):((e,t)=>(e?F(e):``)===(t?F(t):``))(Ne.value,L))){let e=Ne.filteredOptions[ge.current];if(e)return Me.findIndex(t=>F(t)===F(e))}return-1},Ve=z.useCallback(()=>{if(!Oe)return;let e=Be();if(e!==-1){ge.current=e;return}let t=O?L[0]:L;if(Me.length===0||t==null){Re({diff:`reset`});return}if(le.current){if(t!=null){let e=Me[ge.current];if(O&&e&&L.findIndex(t=>D(e,t))!==-1)return;let n=Me.findIndex(e=>D(e,t));n===-1?Re({diff:`reset`}):Le({index:n});return}if(ge.current>=Me.length-1){Le({index:Me.length-1});return}Le({index:ge.current})}},[Me.length,O?!1:L,Re,Le,Oe,R,O]),B=Pc(e=>{kc(le,e),e&&Ve()});z.useEffect(()=>{(ze||Oe&&!f)&&Ve()},[Ve,ze,Oe,f]),z.useEffect(()=>{if(typeof window>`u`)return;let e=()=>{ue.current=!0};return window.addEventListener(`blur`,e),()=>{window.removeEventListener(`blur`,e)}},[]);let He=e=>{Ce||(we(!0),Ee(!0),te&&te(e))},Ue=(e,t)=>{Ce&&(we(!1),ee&&ee(e,t))},We=(e,t,n,r)=>{if(O){if(L.length===t.length&&L.every((e,n)=>e===t[n]))return}else if(L===t)return;k&&k(e,t,n,r),ve(t)},Ge=z.useRef(!1),Ke=(e,t,n=`selectOption`,r=`options`)=>{let i=n,a=t;if(O){a=Array.isArray(L)?L.slice():[];let e=a.findIndex(e=>D(t,e));e===-1?a.push(t):r!==`freeSolo`&&(a.splice(e,1),i=`removeOption`)}Se(e,a,i),We(e,a,i,{option:t}),!f&&(!e||!e.ctrlKey&&!e.metaKey)&&Ue(e,i),(o===!0||o===`touch`&&Ge.current||o===`mouse`&&!Ge.current)&&ce.current.blur()};function qe(e,t){if(e===-1)return-1;let n=e;for(;;){if(t===`next`&&n===L.length||t===`previous`&&n===-1)return-1;let e=de.querySelector(`[data-item-index="${n}"]`);if(!e||!e.hasAttribute(`tabindex`)||e.disabled||e.getAttribute(`aria-disabled`)===`true`)n+=t===`next`?1:-1;else return n}}let Je=(e,t)=>{if(!O)return;R===``&&Ue(e,`toggleInput`);let n=pe;pe===-1&&t===`previous`?(n=L.length-1,v&&R!==``&&(ye(``),j&&j(e,``,`reset`))):(n+=t===`next`?1:-1,n<0&&(n=0),n===L.length&&(n=-1)),n=qe(n,t),me(n),Fe(n)},Ye=e=>{I.current=!0,ye(``),j&&j(e,``,`clear`),We(e,O?[]:null,`clear`)},Xe=e=>t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(pe!==-1&&![`ArrowLeft`,`ArrowRight`].includes(t.key)&&(me(-1),Fe(-1)),t.which!==229))switch(t.key){case`Home`:Oe&&C&&(t.preventDefault(),Re({diff:`start`,direction:`next`,reason:`keyboard`,event:t}));break;case`End`:Oe&&C&&(t.preventDefault(),Re({diff:`end`,direction:`previous`,reason:`keyboard`,event:t}));break;case`PageUp`:t.preventDefault(),Re({diff:-Hu,direction:`previous`,reason:`keyboard`,event:t}),He(t);break;case`PageDown`:t.preventDefault(),Re({diff:Hu,direction:`next`,reason:`keyboard`,event:t}),He(t);break;case`ArrowDown`:t.preventDefault(),Re({diff:1,direction:`next`,reason:`keyboard`,event:t}),He(t);break;case`ArrowUp`:t.preventDefault(),Re({diff:-1,direction:`previous`,reason:`keyboard`,event:t}),He(t);break;case`ArrowLeft`:{let e=ce.current;if(!(e&&e.selectionStart===0&&e.selectionEnd===0))return;!O&&ie&&L!=null?(v&&R!==``&&(ye(``),j&&j(t,``,`reset`)),me(0),Fe(0)):Je(t,`previous`);break}case`ArrowRight`:!O&&ie?(me(-1),Fe(-1)):Je(t,`next`);break;case`Enter`:if(ge.current!==-1&&Oe){let e=Me[ge.current],n=y?y(e):!1;if(t.preventDefault(),n)return;Ke(t,e,`selectOption`),r&&ce.current.setSelectionRange(ce.current.value.length,ce.current.value.length)}else v&&R!==``&&De===!1&&(O&&t.preventDefault(),Ke(t,R,`createOption`,`freeSolo`));break;case`Escape`:Oe?(t.preventDefault(),t.stopPropagation(),Ue(t,`escape`)):c&&(R!==``||O&&L.length>0||ie)&&(t.preventDefault(),t.stopPropagation(),Ye(t));break;case`Backspace`:if(O&&!N&&R===``&&L.length>0){let e=pe===-1?L.length-1:pe,n=L.slice();n.splice(e,1),We(t,n,`removeOption`,{option:L[e]})}!O&&ie&&!N&&R===``&&We(t,null,`removeOption`,{option:L});break;case`Delete`:if(O&&!N&&R===``&&L.length>0&&pe!==-1){let e=pe,n=L.slice();n.splice(e,1),We(t,n,`removeOption`,{option:L[e]})}!O&&ie&&!N&&R===``&&We(t,null,`removeOption`,{option:L});break;default:}},Ze=e=>{if(xe(!0),pe!==-1&&(me(-1),Fe(-1)),ue.current){ue.current=!1;return}re&&!I.current&&He(e)},Qe=e=>{if(t(le)){ce.current.focus();return}xe(!1),se.current=!0,I.current=!1,a&&ge.current!==-1&&Oe?Ke(e,Me[ge.current],`blur`):a&&v&&R!==``?Ke(e,R,`blur`,`freeSolo`):s&&Se(e,L,`blur`),Ue(e,`blur`)},$e=e=>{let t=e.target.value;R!==t&&(ye(t),Ee(!1),j&&j(e,t,`input`)),t===``?!d&&!O&&!ie&&We(e,null,`clear`):He(e)},et=e=>{let t=Number(e.currentTarget.getAttribute(`data-option-index`));ge.current!==t&&Le({event:e,index:t,reason:`mouse`})},tt=e=>{Le({event:e,index:Number(e.currentTarget.getAttribute(`data-option-index`)),reason:`touch`}),Ge.current=!0},nt=e=>{Ke(e,Me[Number(e.currentTarget.getAttribute(`data-option-index`))],`selectOption`),Ge.current=!1},rt=e=>t=>{let n=L.slice();n.splice(e,1),We(t,n,`removeOption`,{option:L[e]})},it=e=>{We(e,null,`removeOption`,{option:L})},at=e=>{Ce?Ue(e,`toggleInput`):He(e)},ot=e=>{e.currentTarget.contains(e.target)&&(de&&!de.contains(e.target)||e.target.getAttribute(`id`)!==P&&e.preventDefault())},st=e=>{e.currentTarget.contains(e.target)&&(de&&!de.contains(e.target)||(ce.current.focus(),ae&&se.current&&ce.current.selectionEnd-ce.current.selectionStart===0&&ce.current.select(),se.current=!1))},ct=e=>{!p&&(R===``||!Ce)&&e.button===0&&at(e)},lt=v&&R.length>0;lt||=O?L.length>0:L!==null;let ut=Me;return S&&(ut=Me.reduce((e,t,n)=>{let r=S(t);return e.length>0&&e[e.length-1].group===r?e[e.length-1].options.push(t):e.push({key:n,index:n,group:r,options:[t]}),e},[])),p&&be&&Qe(),{getRootProps:(e={})=>({...e,onKeyDown:Xe(e),onMouseDown:ot,onClick:st}),getInputLabelProps:()=>({id:`${P}-label`,htmlFor:P}),getInputProps:()=>({id:P,value:R,onBlur:Qe,onFocus:Ze,onChange:$e,onMouseDown:ct,"aria-activedescendant":Oe?``:null,"aria-autocomplete":r?`both`:`list`,"aria-controls":Pe?`${P}-listbox`:void 0,"aria-expanded":Pe,autoComplete:`off`,ref:ce,autoCapitalize:`none`,spellCheck:`false`,role:`combobox`,disabled:p}),getClearProps:()=>({tabIndex:-1,type:`button`,onClick:Ye}),getItemProps:({index:e=0}={})=>({...O&&{key:e},"data-item-index":e,tabIndex:-1,...!N&&{onDelete:O?rt(e):it}}),getPopupIndicatorProps:()=>({tabIndex:-1,type:`button`,onClick:at}),getListboxProps:()=>({role:`listbox`,id:`${P}-listbox`,"aria-labelledby":`${P}-label`,"aria-multiselectable":O||void 0,ref:B,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:({index:e,option:t})=>{let n=je(t),r=y?y(t):!1;return{key:b?.(t)??F(t),tabIndex:-1,role:`option`,id:`${P}-option-${e}`,onMouseMove:et,onClick:nt,onTouchStart:tt,"data-option-index":e,"aria-disabled":r,"aria-selected":n}},id:P,inputValue:R,value:L,dirty:lt,expanded:Oe&&de,popupOpen:Oe,focused:be||pe!==-1,anchorEl:de,setAnchorEl:fe,focusedItem:pe,groupedOptions:ut}}var Ju=`bottom`,Yu=`right`,Xu=`left`,Zu=`auto`,Qu=[`top`,Ju,Yu,Xu],$u=`start`,ed=`clippingParents`,td=`viewport`,nd=`popper`,rd=`reference`,id=Qu.reduce(function(e,t){return e.concat([t+`-`+$u,t+`-end`])},[]),ad=[].concat(Qu,[Zu]).reduce(function(e,t){return e.concat([t,t+`-`+$u,t+`-end`])},[]),od=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function sd(e){return e?(e.nodeName||``).toLowerCase():null}function cd(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ld(e){return e instanceof cd(e).Element||e instanceof Element}function ud(e){return e instanceof cd(e).HTMLElement||e instanceof HTMLElement}function dd(e){return typeof ShadowRoot>`u`?!1:e instanceof cd(e).ShadowRoot||e instanceof ShadowRoot}function fd(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];!ud(i)||!sd(i)||(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function pd(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});!ud(r)||!sd(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var md={name:`applyStyles`,enabled:!0,phase:`write`,fn:fd,effect:pd,requires:[`computeStyles`]};function hd(e){return e.split(`-`)[0]}var gd=Math.max,_d=Math.min,vd=Math.round;function yd(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function Q(){return!/^((?!chrome|android).)*safari/i.test(yd())}function bd(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&ud(e)&&(i=e.offsetWidth>0&&vd(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&vd(r.height)/e.offsetHeight||1);var o=(ld(e)?cd(e):window).visualViewport,s=!Q()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function xd(e){var t=bd(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Sd(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&dd(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Cd(e){return cd(e).getComputedStyle(e)}function wd(e){return[`table`,`td`,`th`].indexOf(sd(e))>=0}function Td(e){return((ld(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ed(e){return sd(e)===`html`?e:e.assignedSlot||e.parentNode||(dd(e)?e.host:null)||Td(e)}function Dd(e){return!ud(e)||Cd(e).position===`fixed`?null:e.offsetParent}function Od(e){var t=/firefox/i.test(yd());if(/Trident/i.test(yd())&&ud(e)&&Cd(e).position===`fixed`)return null;var n=Ed(e);for(dd(n)&&(n=n.host);ud(n)&&[`html`,`body`].indexOf(sd(n))<0;){var r=Cd(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function kd(e){for(var t=cd(e),n=Dd(e);n&&wd(n)&&Cd(n).position===`static`;)n=Dd(n);return n&&(sd(n)===`html`||sd(n)===`body`&&Cd(n).position===`static`)?t:n||Od(e)||t}function Ad(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function jd(e,t,n){return gd(e,_d(t,n))}function Md(e,t,n){var r=jd(e,t,n);return r>n?n:r}function Nd(){return{top:0,right:0,bottom:0,left:0}}function Pd(e){return Object.assign({},Nd(),e)}function Fd(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Id=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,Pd(typeof e==`number`?Fd(e,Qu):e)};function Ld(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=hd(n.placement),c=Ad(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(!(!a||!o)){var u=Id(i.padding,n),d=xd(a),f=c===`y`?`top`:Xu,p=c===`y`?Ju:Yu,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=kd(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=jd(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function Rd(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||Sd(t.elements.popper,r)&&(t.elements.arrow=r))}var zd={name:`arrow`,enabled:!0,phase:`main`,fn:Ld,effect:Rd,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function Bd(e){return e.split(`-`)[1]}var Vd={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function Hd(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:vd(n*i)/i||0,y:vd(r*i)/i||0}}function Ud(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=Xu,b=`top`,x=window;if(l){var S=kd(n),C=`clientHeight`,w=`clientWidth`;if(S===cd(n)&&(S=Td(n),Cd(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=Ju;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=Yu;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&Vd),O=u===!0?Hd({x:p,y:h},cd(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function Wd(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,o=a===void 0?!0:a,s=n.roundOffsets,c=s===void 0?!0:s,l={placement:hd(t.placement),variation:Bd(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Ud(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Ud(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Gd={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:Wd,data:{}},Kd={passive:!0};function qd(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,o=r.resize,s=o===void 0?!0:o,c=cd(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,Kd)}),s&&c.addEventListener(`resize`,n.update,Kd),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,Kd)}),s&&c.removeEventListener(`resize`,n.update,Kd)}}var Jd={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:qd,data:{}},Yd={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Xd(e){return e.replace(/left|right|bottom|top/g,function(e){return Yd[e]})}var Zd={start:`end`,end:`start`};function Qd(e){return e.replace(/start|end/g,function(e){return Zd[e]})}function $d(e){var t=cd(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ef(e){return bd(Td(e)).left+$d(e).scrollLeft}function tf(e,t){var n=cd(e),r=Td(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=Q();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+ef(e),y:c}}function nf(e){var t=Td(e),n=$d(e),r=e.ownerDocument?.body,i=gd(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=gd(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+ef(e),s=-n.scrollTop;return Cd(r||t).direction===`rtl`&&(o+=gd(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function rf(e){var t=Cd(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function af(e){return[`html`,`body`,`#document`].indexOf(sd(e))>=0?e.ownerDocument.body:ud(e)&&rf(e)?e:af(Ed(e))}function of(e,t){t===void 0&&(t=[]);var n=af(e),r=n===e.ownerDocument?.body,i=cd(n),a=r?[i].concat(i.visualViewport||[],rf(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(of(Ed(a)))}function sf(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function cf(e,t){var n=bd(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function lf(e,t,n){return t===`viewport`?sf(tf(e,n)):ld(t)?cf(t,n):sf(nf(Td(e)))}function uf(e){var t=of(Ed(e)),n=[`absolute`,`fixed`].indexOf(Cd(e).position)>=0&&ud(e)?kd(e):e;return ld(n)?t.filter(function(e){return ld(e)&&Sd(e,n)&&sd(e)!==`body`}):[]}function df(e,t,n,r){var i=t===`clippingParents`?uf(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=lf(e,n,r);return t.top=gd(i.top,t.top),t.right=_d(i.right,t.right),t.bottom=_d(i.bottom,t.bottom),t.left=gd(i.left,t.left),t},lf(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function ff(e){var t=e.reference,n=e.element,r=e.placement,i=r?hd(r):null,a=r?Bd(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case Ju:c={x:o,y:t.y+t.height};break;case Yu:c={x:t.x+t.width,y:s};break;case Xu:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Ad(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case $u:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2);break;default:}}return c}function pf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?ed:s,l=n.rootBoundary,u=l===void 0?td:l,d=n.elementContext,f=d===void 0?nd:d,p=n.altBoundary,m=p===void 0?!1:p,h=n.padding,g=h===void 0?0:h,_=Pd(typeof g==`number`?Fd(g,Qu):g),v=f===`popper`?rd:nd,y=e.rects.popper,b=e.elements[m?v:f],x=df(ld(b)?b:b.contextElement||Td(e.elements.popper),c,u,o),S=bd(e.elements.reference),C=ff({reference:S,element:y,strategy:`absolute`,placement:i}),w=sf(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}function mf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?ad:c,u=Bd(r),d=u?s?id:id.filter(function(e){return Bd(e)===u}):Qu,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=pf(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[hd(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function hf(e){if(hd(e)===`auto`)return[];var t=Xd(e);return[Qd(e),t,Qd(t)]}function gf(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!0:o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,_=hd(g)===g,v=c||(_||!m?[Xd(g)]:hf(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(hd(n)===`auto`?mf(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T=0,ee=k?`width`:`height`,A=pf(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),j=k?O?Yu:Xu:O?Ju:`top`;b[ee]>x[ee]&&(j=Xd(j));var te=Xd(j),ne=[];if(a&&ne.push(A[D]<=0),s&&ne.push(A[j]<=0,A[te]<=0),ne.every(function(e){return e})){w=E,C=!1;break}S.set(E,ne)}if(C)for(var re=m?3:1,M=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},N=re;N>0&&M(N)!==`break`;N--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var _f={name:`flip`,enabled:!0,phase:`main`,fn:gf,requiresIfExists:[`offset`],data:{_skip:!1}};function vf(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function yf(e){return[`top`,Yu,Ju,Xu].some(function(t){return e[t]>=0})}function bf(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=pf(t,{elementContext:`reference`}),s=pf(t,{altBoundary:!0}),c=vf(o,r),l=vf(s,i,a),u=yf(c),d=yf(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var xf={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:bf};function Sf(e,t,n){var r=hd(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function Cf(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=ad.reduce(function(e,n){return e[n]=Sf(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var wf={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:Cf};function Tf(e){var t=e.state,n=e.name;t.modifiersData[n]=ff({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var Ef={name:`popperOffsets`,enabled:!0,phase:`read`,fn:Tf,data:{}};function Df(e){return e===`x`?`y`:`x`}function Of(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!1:o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,m=n.tetherOffset,h=m===void 0?0:m,g=pf(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=hd(t.placement),v=Bd(t.placement),y=!v,b=Ad(_),x=Df(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:Xu,ee=b===`y`?Ju:Yu,A=b===`y`?`height`:`width`,j=S[b],te=j+g[k],ne=j-g[ee],re=p?-w[A]/2:0,M=v===`start`?C[A]:w[A],N=v===`start`?-w[A]:-C[A],ie=t.elements.arrow,ae=p&&ie?xd(ie):{width:0,height:0},oe=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Nd(),P=oe[k],F=oe[ee],I=jd(0,C[A],ae[A]),se=y?C[A]/2-re-I-P-E.mainAxis:M-I-P-E.mainAxis,ce=y?-C[A]/2+re+I+F+E.mainAxis:N+I+F+E.mainAxis,le=t.elements.arrow&&kd(t.elements.arrow),ue=le?b===`y`?le.clientTop||0:le.clientLeft||0:0,de=D?.[b]??0,fe=j+se-de-ue,pe=j+ce-de,me=jd(p?_d(te,fe):te,j,p?gd(ne,pe):ne);S[b]=me,O[b]=me-j}if(s){var he=b===`x`?`top`:Xu,ge=b===`x`?Ju:Yu,_e=S[x],L=x===`y`?`height`:`width`,ve=_e+g[he],R=_e-g[ge],ye=[`top`,Xu].indexOf(_)!==-1,be=D?.[x]??0,xe=ye?ve:_e-C[L]-w[L]-be+E.altAxis,Se=ye?_e+C[L]+w[L]-be-E.altAxis:R,Ce=p&&ye?Md(xe,_e,Se):jd(p?xe:ve,_e,p?Se:R);S[x]=Ce,O[x]=Ce-_e}t.modifiersData[r]=O}}var kf={name:`preventOverflow`,enabled:!0,phase:`main`,fn:Of,requiresIfExists:[`offset`]};function Af(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function jf(e){return e===cd(e)||!ud(e)?$d(e):Af(e)}function Mf(e){var t=e.getBoundingClientRect(),n=vd(t.width)/e.offsetWidth||1,r=vd(t.height)/e.offsetHeight||1;return n!==1||r!==1}function Nf(e,t,n){n===void 0&&(n=!1);var r=ud(t),i=ud(t)&&Mf(t),a=Td(t),o=bd(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((sd(t)!==`body`||rf(a))&&(s=jf(t)),ud(t)?(c=bd(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=ef(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function Pf(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function Ff(e){var t=Pf(e);return od.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function If(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function Lf(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var Rf={placement:`bottom`,modifiers:[],strategy:`absolute`};function zf(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function Bf(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?Rf:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},Rf,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:ld(e)?of(e):e.contextElement?of(e.contextElement):[],popper:of(t)};var s=Ff(Lf([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(zf(t,n)){i.rects={reference:Nf(t,kd(n),i.options.strategy===`fixed`),popper:xd(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r{i||o(Wf(r)||document.body)},[r,i]),Wa(()=>{if(a&&!i)return kc(t,a),()=>{kc(t,null)}},[t,a,i]),i){if(z.isValidElement(n)){let e={ref:s};return z.cloneElement(n,e)}return n}return a&&Kc.createPortal(n,a)});function Kf(e){return U(`MuiPopper`,e)}W(`MuiPopper`,[`root`]);function qf(e,t){if(t===`ltr`)return e;switch(e){case`bottom-end`:return`bottom-start`;case`bottom-start`:return`bottom-end`;case`top-end`:return`top-start`;case`top-start`:return`top-end`;default:return e}}function Jf(e){return typeof e==`function`?e():e}function Yf(e){return e.nodeType!==void 0}var Xf=e=>{let{classes:t}=e;return q({root:[`root`]},Kf,t)},Zf={},Qf=z.forwardRef(function(e,t){let{anchorEl:n,children:r,direction:i,disablePortal:a,modifiers:o,open:s,placement:c,popperOptions:l,popperRef:u,slotProps:d={},slots:f={},TransitionProps:p,ownerState:m,...h}=e,g=z.useRef(null),_=Ic(g,t),v=z.useRef(null),y=Ic(v,u),b=z.useRef(y);Wa(()=>{b.current=y},[y]),z.useImperativeHandle(u,()=>v.current,[]);let x=qf(c,i),[S,C]=z.useState(x),[w,T]=z.useState(Jf(n));z.useEffect(()=>{v.current&&v.current.forceUpdate()}),z.useEffect(()=>{n&&T(Jf(n))},[n]),Wa(()=>{if(!w||!s)return;let e=e=>{C(e.placement)},t=[{name:`preventOverflow`,options:{altBoundary:a}},{name:`flip`,options:{altBoundary:a}},{name:`onUpdate`,enabled:!0,phase:`afterWrite`,fn:({state:t})=>{e(t)}}];o!=null&&(t=t.concat(o)),l&&l.modifiers!=null&&(t=t.concat(l.modifiers));let n=Vf(w,g.current,{placement:x,...l,modifiers:t});return b.current(n),()=>{n.destroy(),b.current(null)}},[w,a,o,s,l,x]);let E={placement:S};p!==null&&(E.TransitionProps=p);let D=Xf(e),O=f.root??`div`;return(0,B.jsx)(O,{...Hf({elementType:O,externalSlotProps:d.root,externalForwardedProps:h,additionalProps:{role:`tooltip`,ref:_},ownerState:e,className:D.root}),children:typeof r==`function`?r(E):r})}),$f=Y(z.forwardRef(function(e,t){let{anchorEl:n,children:r,container:i,direction:a=`ltr`,disablePortal:o=!1,keepMounted:s=!1,modifiers:c,open:l,placement:u=`bottom`,popperOptions:d=Zf,popperRef:f,style:p,transition:m=!1,slotProps:h={},slots:g={},..._}=e,[v,y]=z.useState(!0),b=()=>{y(!1)},x=()=>{y(!0)};if(!s&&!l&&(!m||v))return null;let S;if(i)S=i;else if(n){let e=Jf(n);S=e&&Yf(e)?Tc(e).body:Tc(null).body}let C=!l&&s&&(!m||v)?`none`:void 0,w=m?{in:l,onEnter:b,onExited:x}:void 0;return(0,B.jsx)(Gf,{disablePortal:o,container:S,children:(0,B.jsx)(Qf,{anchorEl:n,direction:a,disablePortal:o,modifiers:c,ref:t,open:m?!v:l,placement:u,popperOptions:d,popperRef:f,slotProps:h,slots:g,..._,style:{position:`fixed`,top:0,left:0,display:C,...p},TransitionProps:w,children:r})})}),{name:`MuiPopper`,slot:`Root`})({}),ep=z.forwardRef(function(e,t){let n=co(),{anchorEl:r,component:i,container:a,disablePortal:o,keepMounted:s,modifiers:c,open:l,placement:u,popperOptions:d,popperRef:f,transition:p,slots:m,slotProps:h,...g}=mc({props:e,name:`MuiPopper`}),_={anchorEl:r,container:a,disablePortal:o,keepMounted:s,modifiers:c,open:l,placement:u,popperOptions:d,popperRef:f,transition:p,...g};return(0,B.jsx)($f,{as:i,direction:n?`rtl`:`ltr`,slots:m,slotProps:h,..._,ref:t})});function tp(e){return U(`MuiListSubheader`,e)}W(`MuiListSubheader`,[`root`,`colorPrimary`,`colorInherit`,`gutters`,`inset`,`sticky`]);var np=e=>{let{classes:t,color:n,disableGutters:r,inset:i,disableSticky:a}=e;return q({root:[`root`,n!==`default`&&`color${X(n)}`,!r&&`gutters`,i&&`inset`,!a&&`sticky`]},tp,t)},rp=Y(`li`,{name:`MuiListSubheader`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.color!==`default`&&t[`color${X(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})(pc(({theme:e})=>({boxSizing:`border-box`,lineHeight:`48px`,listStyle:`none`,color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14),variants:[{props:{color:`primary`},style:{color:(e.vars||e).palette.primary.main}},{props:{color:`inherit`},style:{color:`inherit`}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:72}},{props:({ownerState:e})=>!e.disableSticky,style:{position:`sticky`,top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper}}]}))),ip=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiListSubheader`}),{className:r,color:i=`default`,component:a=`li`,disableGutters:o=!1,disableSticky:s=!1,inset:c=!1,...l}=n,u={...n,color:i,component:a,disableGutters:o,disableSticky:s,inset:c};return(0,B.jsx)(rp,{as:a,className:H(np(u).root,r),ref:t,ownerState:u,...l})}),ap=yc((0,B.jsx)(`path`,{d:`M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z`}),`Cancel`);function op(e){return U(`MuiChip`,e)}var sp=W(`MuiChip`,[`root`,`sizeSmall`,`sizeMedium`,`colorDefault`,`colorError`,`colorInfo`,`colorPrimary`,`colorSecondary`,`colorSuccess`,`colorWarning`,`disabled`,`clickable`,`deletable`,`outlined`,`filled`,`avatar`,`icon`,`label`,`deleteIcon`,`focusVisible`]),cp=e=>{let{classes:t,disabled:n,size:r,color:i,onDelete:a,clickable:o,variant:s}=e;return q({root:[`root`,s,n&&`disabled`,`size${X(r)}`,`color${X(i)}`,o&&`clickable`,a&&`deletable`],label:[`label`],avatar:[`avatar`],icon:[`icon`],deleteIcon:[`deleteIcon`]},op,t)},lp=Y(`div`,{name:`MuiChip`,slot:`Root`,shouldForwardProp:e=>lc(e)&&e!==`focusableWhenDisabled`&&e!==`skipFocusWhenDisabled`,overridesResolver:(e,t)=>{let{ownerState:n}=e,{color:r,clickable:i,onDelete:a,size:o,variant:s}=n;return[{[`& .${sp.avatar}`]:t.avatar},{[`& .${sp.icon}`]:t.icon},{[`& .${sp.deleteIcon}`]:t.deleteIcon},t.root,t[`size${X(o)}`],t[`color${X(r)}`],i&&t.clickable,a&&t.deletable,t[s]]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`?e.palette.grey[700]:e.palette.grey[300];return{maxWidth:`100%`,fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:`inline-flex`,alignItems:`center`,justifyContent:`center`,height:32,lineHeight:1.5,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:32/2,whiteSpace:`nowrap`,transition:e.transitions.create([`background-color`,`box-shadow`]),cursor:`unset`,outline:0,textDecoration:`none`,border:0,padding:0,verticalAlign:`middle`,boxSizing:`border-box`,[`&.${sp.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:`none`},[`& .${sp.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:t,fontSize:e.typography.pxToRem(12)},[`& .${sp.icon}`]:{marginLeft:5,marginRight:-6},[`& .${sp.deleteIcon}`]:{WebkitTapHighlightColor:`transparent`,color:e.alpha((e.vars||e).palette.text.primary,.26),fontSize:22,cursor:`pointer`,margin:`0 5px 0 -6px`,"&:hover":{color:e.alpha((e.vars||e).palette.text.primary,.4)}},variants:[{props:{color:`primary`},style:{[`& .${sp.avatar}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark}}},{props:{color:`secondary`},style:{[`& .${sp.avatar}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark}}},{props:{size:`small`},style:{height:24,[`& .${sp.avatar}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${sp.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${sp.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(e.palette).filter($l([`contrastText`])).map(([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main,color:(e.vars||e).palette[t].contrastText,[`& .${sp.deleteIcon}`]:{color:e.alpha((e.vars||e).palette[t].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[t].contrastText}}}})),{props:e=>e.iconColor===e.color,style:{[`& .${sp.icon}`]:{color:e.vars?e.vars.palette.Chip.defaultIconColor:t}}},{props:e=>e.iconColor===e.color&&e.color!==`default`,style:{[`& .${sp.icon}`]:{color:`inherit`}}},{props:{onDelete:!0},style:{[`&.${sp.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}}},...Object.entries(e.palette).filter($l([`dark`])).map(([t])=>({props:{color:t,onDelete:!0},style:{[`&.${sp.focusVisible}`]:{background:(e.vars||e).palette[t].dark}}})),{props:{clickable:!0},style:{userSelect:`none`,WebkitTapHighlightColor:`transparent`,cursor:`pointer`,"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`)},[`&.${sp.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)},"&:active":{boxShadow:(e.vars||e).shadows[1]}}},...Object.entries(e.palette).filter($l([`dark`])).map(([t])=>({props:{color:t,clickable:!0},style:{[`&:hover, &.${sp.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t].dark}}})),{props:{variant:`outlined`},style:{backgroundColor:`transparent`,border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${e.palette.mode===`light`?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${sp.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${sp.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${sp.avatar}`]:{marginLeft:4},[`& .${sp.icon}`]:{marginLeft:4},[`& .${sp.deleteIcon}`]:{marginRight:5}}},{props:{size:`small`,variant:`outlined`},style:{[`& .${sp.avatar}`]:{marginLeft:2},[`& .${sp.icon}`]:{marginLeft:2},[`& .${sp.deleteIcon}`]:{marginRight:3}}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{variant:`outlined`,color:t},style:{color:(e.vars||e).palette[t].main,border:`1px solid ${e.alpha((e.vars||e).palette[t].main,.7)}`,[`&.${sp.clickable}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)},[`&.${sp.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.focusOpacity)},[`& .${sp.deleteIcon}`]:{color:e.alpha((e.vars||e).palette[t].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[t].main}}}}))]}})),up=Y(`span`,{name:`MuiChip`,slot:`Label`})({overflow:`hidden`,textOverflow:`ellipsis`,paddingLeft:12,paddingRight:12,whiteSpace:`nowrap`,variants:[{props:{variant:`outlined`},style:{paddingLeft:11,paddingRight:11}},{props:{size:`small`},style:{paddingLeft:8,paddingRight:8}},{props:{size:`small`,variant:`outlined`},style:{paddingLeft:7,paddingRight:7}}]});function dp(e){return e.key===`Backspace`||e.key===`Delete`}var fp=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiChip`}),{avatar:r,className:i,clickable:a,color:o=`default`,component:s,deleteIcon:c,disabled:l=!1,icon:u,label:d,onClick:f,onDelete:p,onKeyDown:m,onKeyUp:h,size:g=`medium`,variant:_=`filled`,tabIndex:v,skipFocusWhenDisabled:y=!1,slots:b={},slotProps:x={},...S}=n,{nativeButton:C,...w}=S,T=Lc(z.useRef(null),t),E=e=>{e.stopPropagation(),p(e)},D=e=>{e.currentTarget===e.target&&dp(e)&&e.preventDefault(),m&&m(e)},O=e=>{e.currentTarget===e.target&&p&&dp(e)&&p(e),h&&h(e)},k=a!==!1&&f?!0:a,ee=k||p?Yl:s||`div`,A={...n,component:ee,disabled:l,size:g,color:o,iconColor:z.isValidElement(u)&&u.props.color||o,onDelete:!!p,clickable:k,variant:_},j=cp(A),te=ee===Yl?{component:s||`div`,internalNativeButton:!1,focusVisibleClassName:j.focusVisible,...p&&{disableRipple:!0},...C!==void 0&&{nativeButton:C}}:{},ne=null;p&&(ne=c&&z.isValidElement(c)?z.cloneElement(c,{className:H(c.props.className,j.deleteIcon),onClick:E}):(0,B.jsx)(ap,{className:j.deleteIcon,onClick:E}));let re=null;r&&z.isValidElement(r)&&(re=z.cloneElement(r,{className:H(j.avatar,r.props.className)}));let M=null;u&&z.isValidElement(u)&&(M=z.cloneElement(u,{className:H(j.icon,u.props.className)}));let N={slots:b,slotProps:x},[ie,ae]=Tl(`root`,{elementType:lp,externalForwardedProps:{...N,...w},ownerState:A,shouldForwardComponentProp:!0,ref:T,className:H(j.root,i),additionalProps:{disabled:k&&l?!0:void 0,tabIndex:y&&l?-1:v,...te},getSlotProps:e=>({...e,onClick:t=>{e.onClick?.(t),f?.(t)},onKeyDown:t=>{e.onKeyDown?.(t),D(t)},onKeyUp:t=>{e.onKeyUp?.(t),O(t)}})}),[oe,P]=Tl(`label`,{elementType:up,externalForwardedProps:N,ownerState:A,className:j.label});return(0,B.jsxs)(ie,{as:ee,...ae,children:[re||M,(0,B.jsx)(oe,{...P,children:d}),ne]})});function pp(e){return parseInt(e,10)||0}var mp={shadow:{visibility:`hidden`,position:`absolute`,overflow:`hidden`,height:0,top:0,left:0,transform:`translateZ(0)`}};function hp(e){for(let t in e)return!1;return!0}function gp(e){return hp(e)||e.outerHeightStyle===0&&!e.overflowing}var _p=z.forwardRef(function(e,t){let{onChange:n,maxRows:r,minRows:i=1,style:a,value:o,...s}=e,{current:c}=z.useRef(o!=null),l=z.useRef(null),u=Ic(t,l),d=z.useRef(null),f=z.useRef(null),p=z.useCallback(()=>{let t=l.current,n=f.current;if(!t||!n)return;let a=Dc(t).getComputedStyle(t);if(a.width===`0px`)return{outerHeightStyle:0,overflowing:!1};n.style.width=a.width,n.value=t.value||e.placeholder||`x`,n.value.slice(-1)===` -`&&(n.value+=` `);let o=a.boxSizing,s=pp(a.paddingBottom)+pp(a.paddingTop),c=pp(a.borderBottomWidth)+pp(a.borderTopWidth),u=n.scrollHeight;n.value=`x`;let d=n.scrollHeight,p=u;return i&&(p=Math.max(Number(i)*d,p)),r&&(p=Math.min(Number(r)*d,p)),p=Math.max(p,d),{outerHeightStyle:p+(o===`border-box`?s+c:0),overflowing:Math.abs(p-u)<=1}},[r,i,e.placeholder]),m=Pc(()=>{let e=l.current,t=p();if(!e||!t||gp(t))return!1;let n=t.outerHeightStyle;return d.current!=null&&d.current!==n}),h=z.useCallback(()=>{let e=l.current,t=p();if(!e||!t||gp(t))return;let n=t.outerHeightStyle;d.current!==n&&(d.current=n,e.style.height=`${n}px`),e.style.overflow=t.overflowing?`hidden`:``},[p]),g=z.useRef(-1);return Wa(()=>{let e=bc(h),t=l?.current;if(!t)return;let n=Dc(t);n.addEventListener(`resize`,e);let r;return typeof ResizeObserver<`u`&&(r=new ResizeObserver(()=>{m()&&(r.unobserve(t),cancelAnimationFrame(g.current),h(),g.current=requestAnimationFrame(()=>{r.observe(t)}))}),r.observe(t)),()=>{e.clear(),cancelAnimationFrame(g.current),n.removeEventListener(`resize`,e),r&&r.disconnect()}},[p,h,m]),Wa(()=>{h()}),(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(`textarea`,{value:o,onChange:e=>{c||h();let t=e.target,r=t.value.length,i=t.value.endsWith(` -`),a=t.selectionStart===r;i&&a&&t.setSelectionRange(r,r),n&&n(e)},ref:u,rows:i,style:a,...s}),(0,B.jsx)(`textarea`,{"aria-hidden":!0,className:e.className,readOnly:!0,ref:f,tabIndex:-1,style:{...mp.shadow,...a,paddingTop:0,paddingBottom:0}})]})});function vp({props:e,states:t,muiFormControl:n}){return t.reduce((t,r)=>(t[r]=e[r],n&&e[r]===void 0&&(t[r]=n[r]),t),{})}var yp=z.createContext(void 0);function bp(){return z.useContext(yp)}function xp(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Sp(e,t=!1){return e&&(xp(e.value)&&e.value!==``||t&&xp(e.defaultValue)&&e.defaultValue!==``)}function Cp(e){return e.startAdornment}function wp(e){return U(`MuiInputBase`,e)}var Tp=W(`MuiInputBase`,[`root`,`formControl`,`focused`,`disabled`,`adornedStart`,`adornedEnd`,`error`,`sizeSmall`,`multiline`,`colorSecondary`,`fullWidth`,`hiddenLabel`,`readOnly`,`input`,`inputTypeSearch`]),Ep,Dp=(e,t)=>{let{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size===`small`&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${X(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},Op=(e,t)=>{let{ownerState:n}=e;return[t.input,n.type===`search`&&t.inputTypeSearch]},kp=e=>{let{classes:t,color:n,disabled:r,error:i,endAdornment:a,focused:o,formControl:s,fullWidth:c,hiddenLabel:l,multiline:u,readOnly:d,size:f,startAdornment:p,type:m}=e;return q({root:[`root`,`color${X(n)}`,r&&`disabled`,i&&`error`,c&&`fullWidth`,o&&`focused`,s&&`formControl`,f&&f!==`medium`&&`size${X(f)}`,u&&`multiline`,p&&`adornedStart`,a&&`adornedEnd`,l&&`hiddenLabel`,d&&`readOnly`],input:[`input`,r&&`disabled`,m===`search`&&`inputTypeSearch`,d&&`readOnly`]},wp,t)},Ap=Y(`div`,{name:`MuiInputBase`,slot:`Root`,overridesResolver:Dp})(pc(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:`1.4375em`,boxSizing:`border-box`,position:`relative`,cursor:`text`,display:`inline-flex`,alignItems:`center`,[`&.${Tp.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:`default`},variants:[{props:({ownerState:e})=>e.multiline,style:{padding:`4px 0 5px`}},{props:({ownerState:e,size:t})=>e.multiline&&t===`small`,style:{paddingTop:1}},{props:({ownerState:e})=>e.fullWidth,style:{width:`100%`}}]}))),jp=Y(`input`,{name:`MuiInputBase`,slot:`Input`,overridesResolver:Op})(pc(({theme:e})=>{let t=e.palette.mode===`light`,n={color:`currentColor`,...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.shorter})},r={opacity:`0 !important`},i=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:`inherit`,letterSpacing:`inherit`,color:`currentColor`,padding:`4px 0 5px`,border:0,boxSizing:`content-box`,background:`none`,height:`1.4375em`,margin:0,WebkitTapHighlightColor:`transparent`,display:`block`,minWidth:0,width:`100%`,"&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:`none`},"&::-webkit-search-decoration":{WebkitAppearance:`none`},[`label[data-shrink=false] + .${Tp.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus::-ms-input-placeholder":i},[`&.${Tp.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:e})=>!e.disableInjectingGlobalStyles,style:{animationName:`mui-auto-fill-cancel`,animationDuration:`10ms`,"&:-webkit-autofill":{animationDuration:`5000s`,animationName:`mui-auto-fill`}}},{props:{size:`small`},style:{paddingTop:1}},{props:({ownerState:e})=>e.multiline,style:{height:`auto`,resize:`none`,padding:0,paddingTop:0}},{props:{type:`search`},style:{MozAppearance:`textfield`}}]}})),Mp=fc({"@keyframes mui-auto-fill":{from:{display:`block`}},"@keyframes mui-auto-fill-cancel":{from:{display:`block`}}}),Np=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiInputBase`}),{"aria-describedby":r,autoComplete:i,autoFocus:a,className:o,color:s,defaultValue:c,disabled:l,disableInjectingGlobalStyles:u,endAdornment:d,error:f,fullWidth:p=!1,id:m,inputComponent:h=`input`,inputProps:g={},inputRef:_,margin:v,maxRows:y,minRows:b,multiline:x=!1,name:S,onBlur:C,onChange:w,onClick:T,onFocus:E,onKeyDown:D,onKeyUp:O,placeholder:k,readOnly:ee,renderSuffix:A,rows:j,size:te,slotProps:ne={},slots:re={},startAdornment:M,type:N=`text`,value:ie,...ae}=n,oe=g.value==null?ie:g.value,{current:P}=z.useRef(oe!=null),F=z.useRef(),I=z.useCallback(e=>{},[]),se=Lc(F,_,g.ref,I),[ce,le]=z.useState(!1),ue=bp(),de=vp({props:n,muiFormControl:ue,states:[`color`,`disabled`,`error`,`hiddenLabel`,`size`,`required`,`filled`]});de.focused=ue?ue.focused:ce,z.useEffect(()=>{!ue&&l&&ce&&(le(!1),C&&C())},[ue,l,ce,C]);let fe=ue&&ue.onFilled,pe=ue&&ue.onEmpty,me=z.useCallback(e=>{Sp(e)?fe&&fe():pe&&pe()},[fe,pe]);Ac(()=>{P&&me({value:oe})},[oe,me,P]);let he=e=>{E&&E(e),g.onFocus&&g.onFocus(e),ue&&ue.onFocus?ue.onFocus(e):le(!0)},ge=e=>{C&&C(e),g.onBlur&&g.onBlur(e),ue&&ue.onBlur?ue.onBlur(e):le(!1)},_e=(e,...t)=>{if(!P){let t=e.target||F.current;if(t==null)throw Error(pt(1));me({value:t.value})}g.onChange&&g.onChange(e,...t),w&&w(e,...t)};z.useEffect(()=>{me(F.current)},[]);let L=e=>{F.current&&e.currentTarget===e.target&&F.current.focus(),T&&T(e)},ve=h,R=g;x&&ve===`input`&&(R=j?{type:void 0,minRows:j,maxRows:j,...R}:{type:void 0,maxRows:y,minRows:b,...R},ve=_p);let ye=e=>{me(e.animationName===`mui-auto-fill-cancel`?F.current:{value:`x`})};z.useEffect(()=>{ue&&ue.setAdornedStart(!!M)},[ue,M]);let be={...n,color:de.color||`primary`,disabled:de.disabled,endAdornment:d,error:de.error,focused:de.focused,formControl:ue,fullWidth:p,hiddenLabel:de.hiddenLabel,multiline:x,size:de.size,startAdornment:M,type:N},xe=kp(be),Se=re.root||Ap,Ce=ne.root||{},we=re.input||jp;return R={...R,...ne.input},(0,B.jsxs)(z.Fragment,{children:[!u&&typeof Mp==`function`&&(Ep||=(0,B.jsx)(Mp,{})),(0,B.jsxs)(Se,{...Ce,ref:t,onClick:L,...ae,...!yl(Se)&&{ownerState:{...be,...Ce.ownerState}},className:H(xe.root,Ce.className,o,ee&&`MuiInputBase-readOnly`),children:[M,(0,B.jsx)(yp.Provider,{value:null,children:(0,B.jsx)(we,{"aria-invalid":de.error,"aria-describedby":r,autoComplete:i,autoFocus:a,defaultValue:c,disabled:de.disabled,id:m,onAnimationStart:ye,name:S,placeholder:k,readOnly:ee,required:de.required,rows:j,value:oe,onKeyDown:D,onKeyUp:O,type:N,...R,...!yl(we)&&{as:ve,ownerState:{...be,...R.ownerState}},ref:se,className:H(xe.input,R.className,ee&&`MuiInputBase-readOnly`),onBlur:ge,onChange:_e,onFocus:he})}),d,A?A({...de,startAdornment:M}):null]})]})});function Pp(e){return U(`MuiInput`,e)}var Fp={...Tp,...W(`MuiInput`,[`root`,`underline`,`input`])};function Ip(e){return U(`MuiOutlinedInput`,e)}var Lp={...Tp,...W(`MuiOutlinedInput`,[`root`,`notchedOutline`,`input`])};function Rp(e){return U(`MuiFilledInput`,e)}var zp={...Tp,...W(`MuiFilledInput`,[`root`,`underline`,`input`,`adornedStart`,`adornedEnd`,`sizeSmall`,`multiline`,`hiddenLabel`])},Bp=yc((0,B.jsx)(`path`,{d:`M7 10l5 5 5-5z`}),`ArrowDropDown`);function Vp(e){return U(`MuiAutocomplete`,e)}var $=W(`MuiAutocomplete`,`root.expanded.fullWidth.focused.focusVisible.tag.tagSizeSmall.tagSizeMedium.hasPopupIcon.hasClearIcon.inputRoot.input.inputFocused.endAdornment.clearIndicator.popupIndicator.popupIndicatorOpen.popper.popperDisablePortal.paper.listbox.loading.noOptions.option.groupLabel.groupUl`.split(`.`)),Hp,Up,Wp=e=>{let{classes:t,disablePortal:n,expanded:r,focused:i,fullWidth:a,hasClearIcon:o,hasPopupIcon:s,inputFocused:c,popupOpen:l,size:u}=e;return q({root:[`root`,r&&`expanded`,i&&`focused`,a&&`fullWidth`,o&&`hasClearIcon`,s&&`hasPopupIcon`],inputRoot:[`inputRoot`],input:[`input`,c&&`inputFocused`],tag:[`tag`,`tagSize${X(u)}`],endAdornment:[`endAdornment`],clearIndicator:[`clearIndicator`],popupIndicator:[`popupIndicator`,l&&`popupIndicatorOpen`],popper:[`popper`,n&&`popperDisablePortal`],paper:[`paper`],listbox:[`listbox`],loading:[`loading`],noOptions:[`noOptions`],option:[`option`],groupLabel:[`groupLabel`],groupUl:[`groupUl`]},Vp,t)},Gp=Y(`div`,{name:`MuiAutocomplete`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e,{fullWidth:r,hasClearIcon:i,hasPopupIcon:a,inputFocused:o,size:s}=n;return[{[`& .${$.tag}`]:t.tag},{[`& .${$.tag}`]:t[`tagSize${X(s)}`]},{[`& .${$.inputRoot}`]:t.inputRoot},{[`& .${$.input}`]:t.input},{[`& .${$.input}`]:o&&t.inputFocused},t.root,r&&t.fullWidth,a&&t.hasPopupIcon,i&&t.hasClearIcon]}})({[`&.${$.focused} .${$.clearIndicator}`]:{visibility:`visible`},"@media (pointer: fine)":{[`&:hover .${$.clearIndicator}`]:{visibility:`visible`}},[`& .${$.tag}`]:{margin:3,maxWidth:`calc(100% - 6px)`},[`& .${$.inputRoot}`]:{[`.${$.hasPopupIcon}&, .${$.hasClearIcon}&`]:{paddingRight:30},[`.${$.hasPopupIcon}.${$.hasClearIcon}&`]:{paddingRight:56},[`& .${$.input}`]:{width:0,minWidth:30}},[`& .${Fp.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:`4px 4px 4px 0px`}},[`& .${Fp.root}.${Tp.sizeSmall}`]:{[`& .${Fp.input}`]:{padding:`2px 4px 3px 0`}},[`& .${Lp.root}`]:{padding:9,[`.${$.hasPopupIcon}&, .${$.hasClearIcon}&`]:{paddingRight:39},[`.${$.hasPopupIcon}.${$.hasClearIcon}&`]:{paddingRight:65},[`& .${$.input}`]:{padding:`7.5px 4px 7.5px 5px`},[`& .${$.endAdornment}`]:{right:9}},[`& .${Lp.root}.${Tp.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${$.input}`]:{padding:`2.5px 4px 2.5px 8px`}},[`& .${zp.root}`]:{paddingTop:19,paddingLeft:8,[`.${$.hasPopupIcon}&, .${$.hasClearIcon}&`]:{paddingRight:39},[`.${$.hasPopupIcon}.${$.hasClearIcon}&`]:{paddingRight:65},[`& .${zp.input}`]:{padding:`7px 4px`},[`& .${$.endAdornment}`]:{right:9}},[`& .${zp.root}.${Tp.sizeSmall}`]:{paddingBottom:1,[`& .${zp.input}`]:{padding:`2.5px 4px`}},[`& .${Tp.hiddenLabel}`]:{paddingTop:8},[`& .${zp.root}.${Tp.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${$.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${zp.root}.${Tp.hiddenLabel}.${Tp.sizeSmall}`]:{[`& .${$.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${$.input}`]:{flexGrow:1,textOverflow:`ellipsis`,opacity:0},variants:[{props:{fullWidth:!0},style:{width:`100%`}},{props:{size:`small`},style:{[`& .${$.tag}`]:{margin:2,maxWidth:`calc(100% - 4px)`}}},{props:{inputFocused:!0},style:{[`& .${$.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${$.inputRoot}`]:{flexWrap:`wrap`}}}]}),Kp=Y(`div`,{name:`MuiAutocomplete`,slot:`EndAdornment`})({position:`absolute`,right:0,top:`50%`,transform:`translate(0, -50%)`}),qp=Y(yu,{name:`MuiAutocomplete`,slot:`ClearIndicator`})({marginRight:-2,padding:4,visibility:`hidden`}),Jp=Y(yu,{name:`MuiAutocomplete`,slot:`PopupIndicator`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.popupIndicator,n.popupOpen&&t.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:`rotate(180deg)`}}]}),Yp=Y(ep,{name:`MuiAutocomplete`,slot:`Popper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${$.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})(pc(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:`absolute`}}]}))),Xp=Y(kl,{name:`MuiAutocomplete`,slot:`Paper`})(pc(({theme:e})=>({...e.typography.body1,overflow:`auto`}))),Zp=Y(`div`,{name:`MuiAutocomplete`,slot:`Loading`})(pc(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:`14px 16px`}))),Qp=Y(`div`,{name:`MuiAutocomplete`,slot:`NoOptions`})(pc(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:`14px 16px`}))),$p=Y(`ul`,{name:`MuiAutocomplete`,slot:`Listbox`})(pc(({theme:e})=>({listStyle:`none`,margin:0,padding:`8px 0`,maxHeight:`40vh`,overflow:`auto`,position:`relative`,[`& .${$.option}`]:{minHeight:48,display:`flex`,overflow:`hidden`,justifyContent:`flex-start`,alignItems:`center`,cursor:`pointer`,paddingTop:6,boxSizing:`border-box`,outline:`0`,WebkitTapHighlightColor:`transparent`,paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up(`sm`)]:{minHeight:`auto`},[`&.${$.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:`transparent`}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:`none`},[`&.${$.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${$.focused}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${$.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}}}}))),em=Y(ip,{name:`MuiAutocomplete`,slot:`GroupLabel`})(pc(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8}))),tm=Y(`ul`,{name:`MuiAutocomplete`,slot:`GroupUl`})({padding:0,[`& .${$.option}`]:{paddingLeft:24}}),nm=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiAutocomplete`}),{autoComplete:r=!1,autoHighlight:i=!1,autoSelect:a=!1,blurOnSelect:o=!1,className:s,clearIcon:c=Hp||=(0,B.jsx)(wu,{fontSize:`small`}),clearOnBlur:l=!n.freeSolo,clearOnEscape:u=!1,clearText:d=`Clear`,closeText:f=`Close`,defaultValue:p=n.multiple?[]:null,disableClearable:m=!1,disableCloseOnSelect:h=!1,disabled:g=!1,disabledItemsFocusable:_=!1,disableListWrap:v=!1,disablePortal:y=!1,filterOptions:b,filterSelectedOptions:x=!1,forcePopupIcon:S=`auto`,freeSolo:C=!1,fullWidth:w=!1,getLimitTagsText:T=e=>`+${e}`,getOptionDisabled:E,getOptionKey:D,getOptionLabel:O,isOptionEqualToValue:k,groupBy:ee,handleHomeEndKeys:A=!n.freeSolo,id:j,includeInputInList:te=!1,inputValue:ne,limitTags:re=-1,loading:M=!1,loadingText:N=`Loading…`,multiple:ie=!1,noOptionsText:ae=`No options`,onChange:oe,onClose:P,onHighlightChange:F,onInputChange:I,onOpen:se,open:ce,openOnFocus:le=!1,openText:ue=`Open`,options:de,popupIcon:fe=Up||=(0,B.jsx)(Bp,{}),readOnly:pe=!1,renderGroup:me,renderInput:he,renderOption:ge,renderValue:_e,selectOnFocus:L=!n.freeSolo,size:ve=`medium`,slots:R={},slotProps:ye={},value:be,...xe}=n,{getRootProps:Se,getInputProps:Ce,getInputLabelProps:we,getPopupIndicatorProps:Te,getClearProps:Ee,getItemProps:De,getListboxProps:Oe,getOptionProps:ke,value:Ae,dirty:je,expanded:Me,id:Ne,popupOpen:Pe,focused:Fe,focusedItem:Ie,anchorEl:Le,setAnchorEl:Re,inputValue:ze,groupedOptions:Be}=qu({...n,componentName:`Autocomplete`}),Ve=!m&&!g&&je&&!pe,He=(!C||S===!0)&&S!==!1,{onMouseDown:Ue}=Ce(),{ref:We,...Ge}=Oe(),Ke=O||(e=>e.label??e),qe={...n,disablePortal:y,expanded:Me,focused:Fe,fullWidth:w,getOptionLabel:Ke,hasClearIcon:Ve,hasPopupIcon:He,inputFocused:Ie===-1,popupOpen:Pe,size:ve},Je=Wp(qe),Ye={slots:R,slotProps:ye},[Xe,Ze]=Tl(`root`,{ref:t,className:[Je.root,s],elementType:Gp,externalForwardedProps:{...Ye,...xe},getSlotProps:Se,ownerState:qe}),[Qe,$e]=Tl(`listbox`,{elementType:$p,externalForwardedProps:Ye,ownerState:qe,className:Je.listbox,additionalProps:Ge,ref:We}),[et,tt]=Tl(`paper`,{elementType:kl,externalForwardedProps:Ye,ownerState:qe,className:Je.paper}),[nt,rt]=Tl(`popper`,{elementType:ep,externalForwardedProps:Ye,ownerState:qe,className:Je.popper,additionalProps:{disablePortal:y,style:{width:Le?Le.clientWidth:null},role:`presentation`,anchorEl:Le,open:Pe}}),[it,at]=Tl(`clearIndicator`,{elementType:qp,externalForwardedProps:Ye,ownerState:qe,className:Je.clearIndicator,shouldForwardComponentProp:!0,additionalProps:{...Ee(),"aria-label":d,title:d}}),[ot,st]=Tl(`popupIndicator`,{elementType:Jp,externalForwardedProps:Ye,ownerState:qe,className:Je.popupIndicator,shouldForwardComponentProp:!0,additionalProps:{...Te(),disabled:g,"aria-label":Pe?f:ue,title:Pe?f:ue}}),ct,lt=e=>({className:Je.tag,disabled:g,...De(e)});if(ie?Ae.length>0&&(ct=_e?_e(Ae,lt,qe):Ae.map((e,t)=>{let{key:n,...r}=lt({index:t});return(0,B.jsx)(fp,{label:Ke(e),size:ve,...r,...Ye.slotProps.chip},n)})):_e&&Ae!=null&&(ct=_e(Ae,lt,qe)),re>-1&&Array.isArray(ct)){let e=ct.length-re;!Fe&&e>0&&(ct=ct.splice(0,re),ct.push((0,B.jsx)(`span`,{className:Je.tag,children:T(e)},ct.length)))}let ut=me||(e=>(0,B.jsxs)(`li`,{children:[(0,B.jsx)(em,{className:Je.groupLabel,ownerState:qe,component:`div`,children:e.group}),(0,B.jsx)(tm,{className:Je.groupUl,ownerState:qe,children:e.children})]},e.key)),dt=ge||((e,t)=>{let{key:n,...r}=e;return(0,B.jsx)(`li`,{...r,children:Ke(t)},n)}),ft=(e,t)=>{let n=ke({option:e,index:t});return dt({...n,className:Je.option},e,{selected:n[`aria-selected`],index:t,inputValue:ze},qe)};return(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(Xe,{...Ze,children:he({id:Ne,disabled:g,fullWidth:n.fullWidth??!0,size:ve===`small`?`small`:void 0,slotProps:{inputLabel:we(),input:{ref:Re,className:Je.inputRoot,startAdornment:ct,onMouseDown:e=>{e.target===e.currentTarget&&Ue(e)},...(Ve||He)&&{endAdornment:(0,B.jsxs)(Kp,{className:Je.endAdornment,ownerState:qe,children:[Ve?(0,B.jsx)(it,{...at,children:c}):null,He?(0,B.jsx)(ot,{...st,children:fe}):null]})}},htmlInput:{className:Je.input,disabled:g,readOnly:pe,...Ce()}}})}),Le?(0,B.jsx)(Yp,{as:nt,...rt,children:(0,B.jsxs)(Xp,{as:et,...tt,children:[M&&Be.length===0?(0,B.jsx)(Zp,{className:Je.loading,ownerState:qe,children:N}):null,Be.length===0&&!C&&!M?(0,B.jsx)(Qp,{className:Je.noOptions,ownerState:qe,role:`presentation`,onMouseDown:e=>{e.preventDefault()},children:ae}):null,Be.length>0?(0,B.jsx)(Qe,{...$e,children:Be.map((e,t)=>ee?ut({key:e.key,group:e.group,children:e.options.map((t,n)=>ft(t,e.index+n))}):ft(e,t))}):null]})}):null]})}),rm={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0}},im={opacity:0,visibility:`hidden`},am=z.forwardRef(function(e,t){let n=sc(),r={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:i,appear:a=!0,children:o,easing:s,in:c,onEnter:l,onEntered:u,onEntering:d,onExit:f,onExited:p,onExiting:m,style:h,timeout:g=r,..._}=e,v=z.useRef(null),y=Lc(v,Uf(o),t),b=gl(v,d),x=gl(v,(e,t)=>{hl(e);let r=vl({style:h,timeout:g,easing:s},{mode:`enter`});e.style.transition=n.transitions.create(`opacity`,r),l&&l(e,t)}),S=gl(v,u),C=gl(v,m),w=gl(v,e=>{let t=vl({style:h,timeout:g,easing:s},{mode:`exit`});e.style.transition=n.transitions.create(`opacity`,t),f&&f(e)}),T=gl(v,e=>{e.style.transition=``,p&&p(e)});return(0,B.jsx)(Qc,{appear:a,in:c,nodeRef:v,onEnter:x,onEntered:S,onEntering:b,onExit:w,onExited:T,onExiting:C,addEndListener:e=>{i&&i(v.current,e)},timeout:g,..._,children:(e,{ownerState:t,...n})=>{let r=_l(e,c,rm,im,h,o.props.style);return z.cloneElement(o,{style:r,ref:y,...n})}})});function om(e){return U(`MuiBackdrop`,e)}W(`MuiBackdrop`,[`root`,`invisible`]);var sm=e=>{let{classes:t,invisible:n}=e;return q({root:[`root`,n&&`invisible`]},om,t)},cm=Y(`div`,{name:`MuiBackdrop`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:`fixed`,display:`flex`,alignItems:`center`,justifyContent:`center`,right:0,bottom:0,top:0,left:0,backgroundColor:`rgba(0, 0, 0, 0.5)`,WebkitTapHighlightColor:`transparent`,variants:[{props:{invisible:!0},style:{backgroundColor:`transparent`}}]}),lm=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiBackdrop`}),{children:r,className:i,component:a=`div`,invisible:o=!1,open:s,slotProps:c={},slots:l={},transitionDuration:u,...d}=n,f={...n,component:a,invisible:o},p=sm(f),m={component:a,slots:l,slotProps:c},[h,g]=Tl(`root`,{elementType:cm,externalForwardedProps:m,className:H(p.root,i),ownerState:f}),[_,v]=Tl(`transition`,{elementType:am,externalForwardedProps:m,ownerState:f});return(0,B.jsx)(_,{in:s,timeout:u,...d,...v,children:(0,B.jsx)(h,{...g,ref:t,children:r})})}),um=W(`MuiBox`,[`root`]),dm=Da({themeId:mt,defaultTheme:ac(),defaultClassName:um.root,generateClassName:Ta.generate});function fm(e){return U(`MuiButton`,e)}var pm=W(`MuiButton`,`root.text.outlined.contained.disableElevation.focusVisible.disabled.colorInherit.colorPrimary.colorSecondary.colorSuccess.colorError.colorInfo.colorWarning.sizeMedium.sizeSmall.sizeLarge.fullWidth.startIcon.endIcon.icon.loading.loadingWrapper.loadingIconPlaceholder.loadingIndicator.loadingPositionCenter.loadingPositionStart.loadingPositionEnd`.split(`.`)),mm=z.createContext({}),hm=z.createContext(void 0),gm=e=>{let{color:t,disableElevation:n,fullWidth:r,size:i,variant:a,loading:o,loadingPosition:s,classes:c}=e,l=q({root:[`root`,o&&`loading`,a,`size${X(i)}`,`color${X(t)}`,n&&`disableElevation`,r&&`fullWidth`,o&&`loadingPosition${X(s)}`],startIcon:[`icon`,`startIcon`],endIcon:[`icon`,`endIcon`],loadingIndicator:[`loadingIndicator`],loadingWrapper:[`loadingWrapper`]},fm,c);return{...c,...l}},_m=[{props:{size:`small`},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:`medium`},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:`large`},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],vm=Y(Yl,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiButton`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t[`size${X(n.size)}`],n.color===`inherit`&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,n.loading&&t.loading]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode===`light`?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:`6px 16px`,border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`,`color`],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:`none`},[`&.${pm.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:`contained`},style:{color:`var(--variant-containedColor)`,backgroundColor:`var(--variant-containedBg)`,boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${pm.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${pm.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:`outlined`},style:{padding:`5px 15px`,border:`1px solid currentColor`,borderColor:`var(--variant-outlinedBorder, currentColor)`,backgroundColor:`var(--variant-outlinedBg)`,color:`var(--variant-outlinedColor)`,[`&.${pm.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:`text`},style:{padding:`6px 8px`,color:`var(--variant-textColor)`,backgroundColor:`var(--variant-textBg)`}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{"--variant-textColor":(e.vars||e).palette[t].main,"--variant-outlinedColor":(e.vars||e).palette[t].main,"--variant-outlinedBorder":e.alpha((e.vars||e).palette[t].main,.5),"--variant-containedColor":(e.vars||e).palette[t].contrastText,"--variant-containedBg":(e.vars||e).palette[t].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[t].dark,"--variant-textBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[t].main,"--variant-outlinedBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}}})),{props:{color:`inherit`},style:{color:`inherit`,borderColor:`currentColor`,"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity)}}}},{props:{size:`small`,variant:`text`},style:{padding:`4px 5px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`text`},style:{padding:`8px 11px`,fontSize:e.typography.pxToRem(15)}},{props:{size:`small`,variant:`outlined`},style:{padding:`3px 9px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`outlined`},style:{padding:`7px 21px`,fontSize:e.typography.pxToRem(15)}},{props:{size:`small`,variant:`contained`},style:{padding:`4px 10px`,fontSize:e.typography.pxToRem(13)}},{props:{size:`large`,variant:`contained`},style:{padding:`8px 22px`,fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:`none`,"&:hover":{boxShadow:`none`},[`&.${pm.focusVisible}`]:{boxShadow:`none`},"&:active":{boxShadow:`none`},[`&.${pm.disabled}`]:{boxShadow:`none`}}},{props:{fullWidth:!0},style:{width:`100%`}},{props:{loadingPosition:`center`},style:{transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`],{duration:e.transitions.duration.short}),[`&.${pm.loading}`]:{color:`transparent`}}}]}})),ym=Y(`span`,{name:`MuiButton`,slot:`StartIcon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.startIcon,n.loading&&t.startIconLoadingStart]}})(({theme:e})=>({display:`inherit`,marginRight:8,marginLeft:-4,variants:[{props:{size:`small`},style:{marginLeft:-2}},{props:{loadingPosition:`start`,loading:!0},style:{transition:e.transitions.create([`opacity`],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:`start`,loading:!0,fullWidth:!0},style:{marginRight:-8}},..._m]})),bm=Y(`span`,{name:`MuiButton`,slot:`EndIcon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.endIcon,n.loading&&t.endIconLoadingEnd]}})(({theme:e})=>({display:`inherit`,marginRight:-4,marginLeft:8,variants:[{props:{size:`small`},style:{marginRight:-2}},{props:{loadingPosition:`end`,loading:!0},style:{transition:e.transitions.create([`opacity`],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:`end`,loading:!0,fullWidth:!0},style:{marginLeft:-8}},..._m]})),xm=Y(`span`,{name:`MuiButton`,slot:`LoadingIndicator`})(({theme:e})=>({display:`none`,position:`absolute`,visibility:`visible`,variants:[{props:{loading:!0},style:{display:`flex`}},{props:{loadingPosition:`start`},style:{left:14}},{props:{loadingPosition:`start`,size:`small`},style:{left:10}},{props:{variant:`text`,loadingPosition:`start`},style:{left:6}},{props:{loadingPosition:`center`},style:{left:`50%`,transform:`translate(-50%)`,color:(e.vars||e).palette.action.disabled}},{props:{loadingPosition:`end`},style:{right:14}},{props:{loadingPosition:`end`,size:`small`},style:{right:10}},{props:{variant:`text`,loadingPosition:`end`},style:{right:6}},{props:{loadingPosition:`start`,fullWidth:!0},style:{position:`relative`,left:-10}},{props:{loadingPosition:`end`,fullWidth:!0},style:{position:`relative`,right:-10}}]})),Sm=Y(`span`,{name:`MuiButton`,slot:`LoadingIconPlaceholder`})({display:`inline-block`,width:`1em`,height:`1em`}),Cm=z.forwardRef(function(e,t){let n=z.useContext(mm),r=z.useContext(hm),i=mc({props:Va(n,e),name:`MuiButton`}),{children:a,color:o=`primary`,component:s=`button`,className:c,disabled:l=!1,disableElevation:u=!1,disableFocusRipple:d=!1,endIcon:f,focusVisibleClassName:p,fullWidth:m=!1,id:h,loading:g=null,loadingIndicator:_,loadingPosition:v=`center`,size:y=`medium`,startIcon:b,type:x,variant:S=`text`,...C}=i,w=jc(h),T=_??(0,B.jsx)(pu,{"aria-labelledby":w,color:`inherit`,size:16}),E={...i,color:o,component:s,disabled:l,disableElevation:u,disableFocusRipple:d,fullWidth:m,loading:g,loadingIndicator:T,loadingPosition:v,size:y,type:x,variant:S},D=gm(E),O=(b||g&&v===`start`)&&(0,B.jsx)(ym,{className:D.startIcon,ownerState:E,children:b||(0,B.jsx)(Sm,{className:D.loadingIconPlaceholder,ownerState:E})}),k=(f||g&&v===`end`)&&(0,B.jsx)(bm,{className:D.endIcon,ownerState:E,children:f||(0,B.jsx)(Sm,{className:D.loadingIconPlaceholder,ownerState:E})}),ee=r||``,A=typeof g==`boolean`?(0,B.jsx)(`span`,{className:D.loadingWrapper,style:{display:`contents`},children:g&&(0,B.jsx)(xm,{className:D.loadingIndicator,ownerState:E,children:T})}):null;return(0,B.jsxs)(vm,{ownerState:E,className:H(n.className,D.root,c,ee),component:s,disabled:l||g,focusRipple:!d,focusVisibleClassName:H(D.focusVisible,p),ref:t,internalNativeButton:!0,type:x,id:g?w:h,...C,classes:D,children:[O,v!==`end`&&A,a,v===`end`&&A,k]})});function wm(e){return U(`MuiCard`,e)}W(`MuiCard`,[`root`]);var Tm=e=>{let{classes:t}=e;return q({root:[`root`]},wm,t)},Em=Y(kl,{name:`MuiCard`,slot:`Root`})({overflow:`hidden`}),Dm=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiCard`}),{className:r,raised:i=!1,...a}=n,o={...n,raised:i};return(0,B.jsx)(Em,{className:H(Tm(o).root,r),elevation:i?8:void 0,ref:t,ownerState:o,...a})});function Om(e){return U(`MuiCardContent`,e)}W(`MuiCardContent`,[`root`]);var km=e=>{let{classes:t}=e;return q({root:[`root`]},Om,t)},Am=Y(`div`,{name:`MuiCardContent`,slot:`Root`})({padding:16,"&:last-child":{paddingBottom:24}}),jm=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiCardContent`}),{className:r,component:i=`div`,...a}=n,o={...n,component:i};return(0,B.jsx)(Am,{as:i,className:H(km(o).root,r),ownerState:o,ref:t,...a})}),Mm=Ao({createStyledComponent:Y(`div`,{name:`MuiContainer`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${X(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>mc({props:e,name:`MuiContainer`})}),Nm=typeof fc({})==`function`,Pm=(e,t)=>({WebkitFontSmoothing:`antialiased`,MozOsxFontSmoothing:`grayscale`,boxSizing:`border-box`,WebkitTextSizeAdjust:`100%`,...t&&!e.vars&&{colorScheme:e.palette.mode}}),Fm=e=>({color:(e.vars||e).palette.text.primary,...e.typography.body1,backgroundColor:(e.vars||e).palette.background.default,"@media print":{backgroundColor:(e.vars||e).palette.common.white}}),Im=(e,t=!1)=>{let n={};t&&e.colorSchemes&&typeof e.getColorSchemeSelector==`function`&&Object.entries(e.colorSchemes).forEach(([t,r])=>{let i=e.getColorSchemeSelector(t);i.startsWith(`@`)?n[i]={":root":{colorScheme:r.palette?.mode}}:n[i.replace(/\s*&/,``)]={colorScheme:r.palette?.mode}});let r={html:Pm(e,t),"*, *::before, *::after":{boxSizing:`inherit`},"strong, b":{fontWeight:e.typography.fontWeightBold},body:{margin:0,...Fm(e),"&::backdrop":{backgroundColor:(e.vars||e).palette.background.default}},...n},i=e.components?.MuiCssBaseline?.styleOverrides;return i&&(r=[r,i]),r},Lm=`mui-ecs`,Rm=e=>{let t=Im(e,!1),n=Array.isArray(t)?t[0]:t;return!e.vars&&n&&(n.html[`:root:has(${Lm})`]={colorScheme:e.palette.mode}),e.colorSchemes&&Object.entries(e.colorSchemes).forEach(([t,r])=>{let i=e.getColorSchemeSelector(t);i.startsWith(`@`)?n[i]={[`:root:not(:has(.${Lm}))`]:{colorScheme:r.palette?.mode}}:n[i.replace(/\s*&/,``)]={[`&:not(:has(.${Lm}))`]:{colorScheme:r.palette?.mode}}}),t},zm=fc(Nm?({theme:e,enableColorScheme:t})=>Im(e,t):({theme:e})=>Rm(e));function Bm(e){let{children:t,enableColorScheme:n=!1}=mc({props:e,name:`MuiCssBaseline`});return(0,B.jsxs)(z.Fragment,{children:[Nm&&(0,B.jsx)(zm,{enableColorScheme:n}),!Nm&&!n&&(0,B.jsx)(`span`,{className:Lm,style:{display:`none`}}),t]})}function Vm(e=window){let t=e.document.documentElement.clientWidth;return e.innerWidth-t}function Hm(e){let t=Tc(e);return t.body===e?Dc(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function Um(e,t){t?e.setAttribute(`aria-hidden`,`true`):e.removeAttribute(`aria-hidden`)}function Wm(e){return parseFloat(Dc(e).getComputedStyle(e).paddingRight)||0}function Gm(e){let t=[`TEMPLATE`,`SCRIPT`,`STYLE`,`LINK`,`MAP`,`META`,`NOSCRIPT`,`PICTURE`,`COL`,`COLGROUP`,`PARAM`,`SLOT`,`SOURCE`,`TRACK`].includes(e.tagName),n=e.tagName===`INPUT`&&e.getAttribute(`type`)===`hidden`;return t||n}function Km(e,t,n,r,i){let a=[t,n,...r];[].forEach.call(e.children,e=>{let t=!a.includes(e),n=!Gm(e);t&&n&&Um(e,i)})}function qm(e,t){let n=-1;return e.some((e,r)=>t(e)?(n=r,!0):!1),n}function Jm(e,t){let n=[],r=e.container;if(!t.disableScrollLock){if(Hm(r)){let e=Vm(Dc(r));n.push({value:r.style.paddingRight,property:`padding-right`,el:r}),r.style.paddingRight=`${Wm(r)+e}px`;let t=Tc(r).querySelectorAll(`.mui-fixed`);[].forEach.call(t,t=>{n.push({value:t.style.paddingRight,property:`padding-right`,el:t}),t.style.paddingRight=`${Wm(t)+e}px`})}let e;if(r.parentNode instanceof DocumentFragment)e=Tc(r).body;else{let t=r.parentElement,n=Dc(r);e=t?.nodeName===`HTML`&&n.getComputedStyle(t).overflowY===`scroll`?t:r}n.push({value:e.style.overflow,property:`overflow`,el:e},{value:e.style.overflowX,property:`overflow-x`,el:e},{value:e.style.overflowY,property:`overflow-y`,el:e}),e.style.overflow=`hidden`}return()=>{n.forEach(({value:e,el:t,property:n})=>{e?t.style.setProperty(n,e):t.style.removeProperty(n)})}}function Ym(e){let t=[];return[].forEach.call(e.children,e=>{e.getAttribute(`aria-hidden`)===`true`&&t.push(e)}),t}var Xm=class{constructor(){this.modals=[],this.containers=[]}add(e,t){let n=this.modals.indexOf(e);if(n!==-1)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&Um(e.modalRef,!1);let r=Ym(t);Km(t,e.mount,e.modalRef,r,!0);let i=qm(this.containers,e=>e.container===t);return i===-1?(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:r}),n):(this.containers[i].modals.push(e),n)}mount(e,t){let n=qm(this.containers,t=>t.modals.includes(e)),r=this.containers[n];r.restore||=Jm(r,t)}remove(e,t=!0){let n=this.modals.indexOf(e);if(n===-1)return n;let r=qm(this.containers,t=>t.modals.includes(e)),i=this.containers[r];if(i.modals.splice(i.modals.indexOf(e),1),this.modals.splice(n,1),i.modals.length===0)i.restore&&i.restore(),e.modalRef&&Um(e.modalRef,t),Km(i.container,e.mount,e.modalRef,i.hiddenSiblings,!1),this.containers.splice(r,1);else{let e=i.modals[i.modals.length-1];e.modalRef&&Um(e.modalRef,!1)}return n}isTopModal(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}},Zm=[`input`,`select`,`textarea`,`a[href]`,`button`,`[tabindex]`,`audio[controls]`,`video[controls]`,`[contenteditable]:not([contenteditable="false"])`].join(`,`);function Qm(e){let t=parseInt(e.getAttribute(`tabindex`)||``,10);return Number.isNaN(t)?e.contentEditable===`true`||(e.nodeName===`AUDIO`||e.nodeName===`VIDEO`||e.nodeName===`DETAILS`)&&e.getAttribute(`tabindex`)===null?0:e.tabIndex:t}function $m(e){if(e.tagName!==`INPUT`||e.type!==`radio`||!e.name)return!1;let t=t=>e.ownerDocument.querySelector(`input[type="radio"]${t}`),n=t(`[name="${e.name}"]:checked`);return n||=t(`[name="${e.name}"]`),n!==e}function eh(e){return!(e.disabled||e.tagName===`INPUT`&&e.type===`hidden`||$m(e))}function th(e){let t=[],n=[];return Array.from(e.querySelectorAll(Zm)).forEach((e,r)=>{let i=Qm(e);i===-1||!eh(e)||(i===0?t.push(e):n.push({documentOrder:r,tabIndex:i,node:e}))}),n.sort((e,t)=>e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex).map(e=>e.node).concat(t)}function nh(){return!0}function rh(e){let{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:i=!1,getTabbable:a=th,isEnabled:o=nh,open:s}=e,c=z.useRef(!1),l=z.useRef(null),u=z.useRef(null),d=z.useRef(null),f=z.useRef(null),p=z.useRef(!1),m=z.useRef(null),h=Ic(Uf(t),m),g=z.useRef(null);z.useEffect(()=>{!s||!m.current||(p.current=!n)},[n,s]),z.useEffect(()=>{if(!s||!m.current)return;let e=wc(Tc(m.current));return m.current.contains(e)||(m.current.hasAttribute(`tabIndex`)||m.current.setAttribute(`tabIndex`,`-1`),p.current&&m.current.focus()),()=>{i||(d.current&&d.current.focus&&(c.current=!0,d.current.focus()),d.current=null)}},[s]),z.useEffect(()=>{if(!s||!m.current)return;let e=Tc(m.current),t=t=>{g.current=t,!(r||!o()||t.key!==`Tab`)&&wc(e)===m.current&&t.shiftKey&&(c.current=!0,u.current&&u.current.focus())},n=()=>{let t=m.current;if(t===null)return;let n=wc(e);if(!e.hasFocus()||!o()||c.current){c.current=!1;return}if(t.contains(n)||r&&n!==l.current&&n!==u.current)return;if(n!==f.current)f.current=null;else if(f.current!==null)return;if(!p.current)return;let i=[];if((n===l.current||n===u.current)&&(i=a(m.current)),i.length>0){let e=!!(g.current?.shiftKey&&g.current?.key===`Tab`),t=i[0],n=i[i.length-1];typeof t!=`string`&&typeof n!=`string`&&(e?n.focus():t.focus())}else t.focus()};e.addEventListener(`focusin`,n),e.addEventListener(`keydown`,t,!0);let i=setInterval(()=>{let t=wc(e);t&&t.tagName===`BODY`&&n()},50);return()=>{clearInterval(i),e.removeEventListener(`focusin`,n),e.removeEventListener(`keydown`,t,!0)}},[n,r,i,o,s,a]);let _=e=>{d.current===null&&(d.current=e.relatedTarget),p.current=!0,f.current=e.target;let n=t.props.onFocus;n&&n(e)},v=e=>{d.current===null&&(d.current=e.relatedTarget),p.current=!0};return(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(`div`,{tabIndex:s?0:-1,onFocus:v,ref:l,"data-testid":`sentinelStart`}),z.cloneElement(t,{ref:h,onFocus:_}),(0,B.jsx)(`div`,{tabIndex:s?0:-1,onFocus:v,ref:u,"data-testid":`sentinelEnd`})]})}function ih(e){return typeof e==`function`?e():e}function ah(e){return e?e.props.hasOwnProperty(`in`):!1}var oh=()=>{},sh=new Xm;function ch(e){let{container:t,disableScrollLock:n=!1,closeAfterTransition:r=!1,onTransitionEnter:i,onTransitionExited:a,children:o,onClose:s,open:c,rootRef:l}=e,u=z.useRef({}),d=z.useRef(null),f=z.useRef(null),p=Ic(f,l),[m,h]=z.useState(!c),g=ah(o),_=!0;(e[`aria-hidden`]===`false`||e[`aria-hidden`]===!1)&&(_=!1);let v=()=>Tc(d.current),y=()=>(u.current.modalRef=f.current,u.current.mount=d.current,u.current),b=()=>{sh.mount(y(),{disableScrollLock:n}),f.current&&(f.current.scrollTop=0)},x=Pc(()=>{let e=ih(t)||v().body;sh.add(y(),e),f.current&&b()}),S=()=>sh.isTopModal(y()),C=Pc(e=>{d.current=e,e&&(c&&S()?b():f.current&&Um(f.current,_))}),w=z.useCallback(()=>{sh.remove(y(),_)},[_]);z.useEffect(()=>()=>{w()},[w]),z.useEffect(()=>{c?x():(!g||!r)&&w()},[c,w,g,r,x]);let T=e=>t=>{e.onKeyDown?.(t),!(t.key!==`Escape`||t.which===229||!S())&&(t.stopPropagation(),s&&s(t,`escapeKeyDown`))},E=e=>t=>{e.onClick?.(t),t.target===t.currentTarget&&s&&s(t,`backdropClick`)};return{getRootProps:(t={})=>{let n=Sl(e);delete n.onTransitionEnter,delete n.onTransitionExited;let r={...n,...t};return{role:`presentation`,...r,onKeyDown:T(r),ref:p}},getBackdropProps:(e={})=>{let t=e;return{"aria-hidden":!0,...t,onClick:E(t),open:c}},getTransitionProps:()=>({onEnter:uc(()=>{h(!1),i&&i()},o?.props.onEnter??oh),onExited:uc(()=>{h(!0),a&&a(),r&&w()},o?.props.onExited??oh)}),rootRef:p,portalRef:C,isTopModal:S,exited:m,hasTransition:g}}function lh(e){return U(`MuiModal`,e)}W(`MuiModal`,[`root`,`hidden`,`backdrop`]);var uh=e=>{let{open:t,exited:n,classes:r}=e;return q({root:[`root`,!t&&n&&`hidden`],backdrop:[`backdrop`]},lh,r)},dh=Y(`div`,{name:`MuiModal`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(pc(({theme:e})=>({position:`fixed`,zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:e})=>!e.open&&e.exited,style:{visibility:`hidden`}}]}))),fh=Y(lm,{name:`MuiModal`,slot:`Backdrop`})({zIndex:-1}),ph=z.forwardRef(function(e,t){let n=mc({name:`MuiModal`,props:e}),{classes:r,className:i,closeAfterTransition:a=!1,children:o,container:s,component:c,disableAutoFocus:l=!1,disableEnforceFocus:u=!1,disablePortal:d=!1,disableRestoreFocus:f=!1,disableScrollLock:p=!1,hideBackdrop:m=!1,keepMounted:h=!1,onClose:g,onTransitionEnter:_,onTransitionExited:v,open:y,slotProps:b={},slots:x={},theme:S,...C}=n,w={...n,closeAfterTransition:a,disableAutoFocus:l,disableEnforceFocus:u,disablePortal:d,disableRestoreFocus:f,disableScrollLock:p,hideBackdrop:m,keepMounted:h},{getRootProps:T,getBackdropProps:E,getTransitionProps:D,portalRef:O,isTopModal:k,exited:ee,hasTransition:A}=ch({...w,rootRef:t}),j={...w,exited:ee},te=uh(j),ne={};if(o.props.tabIndex===void 0&&(ne.tabIndex=`-1`),A){let{onEnter:e,onExited:t}=D();ne.onEnter=e,ne.onExited=t}let re={slots:x,slotProps:b},[M,N]=Tl(`root`,{ref:t,elementType:dh,externalForwardedProps:{...re,...C,component:c},getSlotProps:T,ownerState:j,className:H(i,te?.root,!j.open&&j.exited&&te?.hidden)}),[ie,ae]=Tl(`backdrop`,{elementType:fh,externalForwardedProps:re,shouldForwardComponentProp:!0,getSlotProps:e=>E({...e,onClick:t=>{e?.onClick&&e.onClick(t)}}),className:te?.backdrop,ownerState:j});return!h&&!y&&(!A||ee)?null:(0,B.jsx)(Gf,{ref:O,container:s,disablePortal:d,children:(0,B.jsxs)(M,{...N,children:[m?null:(0,B.jsx)(ie,{...ae}),(0,B.jsx)(rh,{disableEnforceFocus:u,disableAutoFocus:l,disableRestoreFocus:f,isEnabled:k,open:y,children:z.cloneElement(o,ne)})]})})}),mh=W(`MuiDivider`,[`root`,`absolute`,`fullWidth`,`inset`,`middle`,`flexItem`,`vertical`,`withChildren`,`textAlignRight`,`textAlignLeft`,`wrapper`,`wrapperVertical`]),hh=e=>{let{classes:t,disableUnderline:n,startAdornment:r,endAdornment:i,size:a,hiddenLabel:o,multiline:s}=e,c=q({root:[`root`,!n&&`underline`,r&&`adornedStart`,i&&`adornedEnd`,a===`small`&&`size${X(a)}`,o&&`hiddenLabel`,s&&`multiline`],input:[`input`]},Rp,t);return{...t,...c}},gh=Y(Ap,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiFilledInput`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[...Dp(e,t),!n.disableUnderline&&t.underline]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`,n=t?`rgba(0, 0, 0, 0.42)`:`rgba(255, 255, 255, 0.7)`,r=t?`rgba(0, 0, 0, 0.06)`:`rgba(255, 255, 255, 0.09)`,i=t?`rgba(0, 0, 0, 0.09)`:`rgba(255, 255, 255, 0.13)`,a=t?`rgba(0, 0, 0, 0.12)`:`rgba(255, 255, 255, 0.12)`;return{position:`relative`,backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(`background-color`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:i,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r}},[`&.${zp.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:r},[`&.${zp.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:a},variants:[{props:({ownerState:e})=>!e.disableUnderline,style:{"&::after":{left:0,bottom:0,content:`""`,position:`absolute`,right:0,transform:`scaleX(0)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:`none`},[`&.${zp.focused}:after`]:{transform:`scaleX(1) translateX(0)`},[`&.${zp.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline):n}`,left:0,bottom:0,content:`""`,position:`absolute`,right:0,transition:e.transitions.create(`border-bottom-color`,{duration:e.transitions.duration.shorter}),pointerEvents:`none`},[`&:hover:not(.${zp.disabled}, .${zp.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${zp.disabled}:before`]:{borderBottomStyle:`dotted`}}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{disableUnderline:!1,color:t},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t]?.main}`}}})),{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:12}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:12}},{props:({ownerState:e})=>e.multiline,style:{padding:`25px 12px 8px`}},{props:({ownerState:e,size:t})=>e.multiline&&t===`small`,style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.multiline&&e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.multiline&&e.hiddenLabel&&e.size===`small`,style:{paddingTop:8,paddingBottom:9}}]}})),_h=Y(jp,{name:`MuiFilledInput`,slot:`Input`,overridesResolver:Op})(pc(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode===`light`?null:`0 0 0 100px #266798 inset`,WebkitTextFillColor:e.palette.mode===`light`?null:`#fff`,caretColor:e.palette.mode===`light`?null:`#fff`,borderTopLeftRadius:`inherit`,borderTopRightRadius:`inherit`}},...e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:`inherit`,borderTopRightRadius:`inherit`},[e.getColorSchemeSelector(`dark`)]:{"&:-webkit-autofill":{WebkitBoxShadow:`0 0 0 100px #266798 inset`,WebkitTextFillColor:`#fff`,caretColor:`#fff`}}},variants:[{props:{size:`small`},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}},{props:({ownerState:e})=>e.hiddenLabel&&e.size===`small`,style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:e})=>e.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),vh=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiFilledInput`}),{disableUnderline:r=!1,fullWidth:i=!1,hiddenLabel:a,inputComponent:o=`input`,multiline:s=!1,slotProps:c,slots:l={},type:u=`text`,...d}=n,f={...n,disableUnderline:r,fullWidth:i,inputComponent:o,multiline:s,type:u},p=hh(n),m={root:{ownerState:f},input:{ownerState:f}},h=c?Lr(m,c):m;return(0,B.jsx)(Np,{slots:{root:l.root??gh,input:l.input??_h},slotProps:h,fullWidth:i,inputComponent:o,multiline:s,ref:t,type:u,...d,classes:p})});vh.muiName=`Input`;function yh(e){return U(`MuiFormControl`,e)}W(`MuiFormControl`,[`root`,`marginNone`,`marginNormal`,`marginDense`,`fullWidth`,`disabled`]);var bh=e=>{let{classes:t,margin:n,fullWidth:r}=e;return q({root:[`root`,n!==`none`&&`margin${X(n)}`,r&&`fullWidth`]},yh,t)},xh=Y(`div`,{name:`MuiFormControl`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`margin${X(n.margin)}`],n.fullWidth&&t.fullWidth]}})({display:`inline-flex`,flexDirection:`column`,position:`relative`,minWidth:0,padding:0,margin:0,border:0,verticalAlign:`top`,variants:[{props:{margin:`normal`},style:{marginTop:16,marginBottom:8}},{props:{margin:`dense`},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:`100%`}}]}),Sh=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiFormControl`}),{children:r,className:i,color:a=`primary`,component:o=`div`,disabled:s=!1,error:c=!1,focused:l,fullWidth:u=!1,hiddenLabel:d=!1,margin:f=`none`,required:p=!1,size:m=`medium`,variant:h=`outlined`,...g}=n,_={...n,color:a,component:o,disabled:s,error:c,fullWidth:u,hiddenLabel:d,margin:f,required:p,size:m,variant:h},v=bh(_),[y,b]=z.useState(()=>{let e=!1;return r&&z.Children.forEach(r,t=>{if(!Sc(t,[`Input`,`Select`]))return;let n=Sc(t,[`Select`])?t.props.input:t;n&&Cp(n.props)&&(e=!0)}),e}),[x,S]=z.useState(()=>{let e=!1;return r&&z.Children.forEach(r,t=>{Sc(t,[`Input`,`Select`])&&(Sp(t.props,!0)||Sp(t.props.inputProps,!0))&&(e=!0)}),e}),[C,w]=z.useState(!1);s&&C&&w(!1);let T=l!==void 0&&!s?l:C;z.useRef(!1);let E=z.useCallback(()=>{S(!0)},[]),D=z.useCallback(()=>{S(!1)},[]),O=z.useMemo(()=>({adornedStart:y,setAdornedStart:b,color:a,disabled:s,error:c,filled:x,focused:T,fullWidth:u,hiddenLabel:d,size:m,onBlur:()=>{w(!1)},onFocus:()=>{w(!0)},onEmpty:D,onFilled:E,registerEffect:void 0,required:p,variant:h}),[y,a,s,c,x,T,u,d,void 0,D,E,p,m,h]);return(0,B.jsx)(yp.Provider,{value:O,children:(0,B.jsx)(xh,{as:o,ownerState:_,className:H(v.root,i),ref:t,...g,children:r})})});function Ch(e){return U(`MuiFormHelperText`,e)}var wh=W(`MuiFormHelperText`,[`root`,`error`,`disabled`,`sizeSmall`,`sizeMedium`,`contained`,`focused`,`filled`,`required`]),Th,Eh=e=>{let{classes:t,contained:n,size:r,disabled:i,error:a,filled:o,focused:s,required:c}=e;return q({root:[`root`,i&&`disabled`,a&&`error`,r&&`size${X(r)}`,n&&`contained`,s&&`focused`,o&&`filled`,c&&`required`]},Ch,t)},Dh=Y(`p`,{name:`MuiFormHelperText`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.size&&t[`size${X(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})(pc(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:`left`,marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${wh.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${wh.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:`small`},style:{marginTop:4}},{props:({ownerState:e})=>e.contained,style:{marginLeft:14,marginRight:14}}]}))),Oh=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiFormHelperText`}),{children:r,className:i,component:a=`p`,disabled:o,error:s,filled:c,focused:l,margin:u,required:d,variant:f,...p}=n,m=vp({props:n,muiFormControl:bp(),states:[`variant`,`size`,`disabled`,`error`,`filled`,`focused`,`required`]}),h={...n,component:a,contained:m.variant===`filled`||m.variant===`outlined`,variant:m.variant,size:m.size,disabled:m.disabled,error:m.error,filled:m.filled,focused:m.focused,required:m.required};return delete h.ownerState,(0,B.jsx)(Dh,{as:a,className:H(Eh(h).root,i),ref:t,...p,ownerState:h,children:r===` `?Th||=(0,B.jsx)(`span`,{className:`notranslate`,"aria-hidden":!0,children:`​`}):r})});function kh(e){return U(`MuiFormLabel`,e)}var Ah=W(`MuiFormLabel`,[`root`,`colorSecondary`,`focused`,`disabled`,`error`,`filled`,`required`,`asterisk`]),jh=e=>{let{classes:t,color:n,focused:r,disabled:i,error:a,filled:o,required:s}=e;return q({root:[`root`,`color${X(n)}`,i&&`disabled`,a&&`error`,o&&`filled`,r&&`focused`,s&&`required`],asterisk:[`asterisk`,a&&`error`]},kh,t)},Mh=Y(`label`,{name:`MuiFormLabel`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.color===`secondary`&&t.colorSecondary,n.filled&&t.filled]}})(pc(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:`1.4375em`,padding:0,position:`relative`,variants:[...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{[`&.${Ah.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Ah.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Ah.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),Nh=Y(`span`,{name:`MuiFormLabel`,slot:`Asterisk`})(pc(({theme:e})=>({[`&.${Ah.error}`]:{color:(e.vars||e).palette.error.main}}))),Ph=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiFormLabel`}),{children:r,className:i,color:a,component:o=`label`,disabled:s,error:c,filled:l,focused:u,required:d,...f}=n,p=vp({props:n,muiFormControl:bp(),states:[`color`,`required`,`focused`,`disabled`,`error`,`filled`]}),m={...n,color:p.color||`primary`,component:o,disabled:p.disabled,error:p.error,filled:p.filled,focused:p.focused,required:p.required},h=jh(m);return(0,B.jsxs)(Mh,{as:o,ownerState:m,className:H(h.root,i),ref:t,...f,children:[r,p.required&&(0,B.jsxs)(Nh,{ownerState:m,"aria-hidden":!0,className:h.asterisk,children:[` `,`*`]})]})}),Fh=Zo({createStyledComponent:Y(`div`,{name:`MuiGrid`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.container&&t.container]}}),componentName:`MuiGrid`,useThemeProps:e=>mc({props:e,name:`MuiGrid`}),useTheme:sc});function Ih(e){return`scale(${e}, ${e**2})`}var Lh={entering:{opacity:1,transform:Ih(1)},entered:{opacity:1,transform:`none`},exiting:{opacity:0,transform:Ih(.75)},exited:{opacity:0,transform:Ih(.75)}},Rh={opacity:0,transform:Ih(.75),visibility:`hidden`},zh=z.forwardRef(function(e,t){let{addEndListener:n,appear:r=!0,children:i,easing:a,in:o,onEnter:s,onEntered:c,onEntering:l,onExit:u,onExited:d,onExiting:f,style:p,timeout:m=`auto`,...h}=e,g=ml(),_=z.useRef(),v=sc(),y=z.useRef(null),b=Lc(y,Uf(i),t),x=gl(y,l),S=gl(y,(e,t)=>{hl(e);let{duration:n,delay:r,easing:i}=vl({style:p,timeout:m,easing:a},{mode:`enter`}),o;m===`auto`?(o=v.transitions.getAutoHeightDuration(e.clientHeight),_.current=o):o=n,e.style.transition=[v.transitions.create(`opacity`,{duration:o,delay:r}),v.transitions.create(`transform`,{duration:o*.666,delay:r,easing:i})].join(`,`),s&&s(e,t)}),C=gl(y,c),w=gl(y,f),T=gl(y,e=>{let{duration:t,delay:n,easing:r}=vl({style:p,timeout:m,easing:a},{mode:`exit`}),i;m===`auto`?(i=v.transitions.getAutoHeightDuration(e.clientHeight),_.current=i):i=t,e.style.transition=[v.transitions.create(`opacity`,{duration:i,delay:n}),v.transitions.create(`transform`,{duration:i*.666,delay:n||i*.333,easing:r})].join(`,`),e.style.opacity=0,e.style.transform=Ih(.75),u&&u(e)}),E=gl(y,e=>{e.style.transition=``,d&&d(e)});return(0,B.jsx)(Qc,{appear:r,in:o,nodeRef:y,onEnter:S,onEntered:C,onEntering:x,onExit:T,onExited:E,onExiting:w,addEndListener:e=>{m===`auto`&&g.start(_.current||0,e),n&&n(y.current,e)},timeout:m===`auto`?null:m,...h,children:(e,{ownerState:t,...n})=>{let r=_l(e,o,Lh,Rh,p,i.props.style);return z.cloneElement(i,{style:r,ref:b,...n})}})});zh&&(zh.muiSupportAuto=!0);function Bh(e){return U(`MuiInputLabel`,e)}var Vh=W(`MuiInputLabel`,[`root`,`focused`,`disabled`,`error`,`required`,`asterisk`,`formControl`,`sizeSmall`,`shrink`,`animated`,`standard`,`filled`,`outlined`]),Hh=e=>{let{classes:t,disableUnderline:n}=e,r=q({root:[`root`,!n&&`underline`],input:[`input`]},Pp,t);return{...t,...r}},Uh=Y(Ap,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiInput`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[...Dp(e,t),!n.disableUnderline&&t.underline]}})(pc(({theme:e})=>{let t=e.palette.mode===`light`?`rgba(0, 0, 0, 0.42)`:`rgba(255, 255, 255, 0.7)`;return e.vars&&(t=e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline)),{position:`relative`,variants:[{props:({ownerState:e})=>e.formControl,style:{[`label + &, .${Vh.root} + &`]:{marginTop:16}}},{props:({ownerState:e})=>!e.disableUnderline,style:{"&::after":{left:0,bottom:0,content:`""`,position:`absolute`,right:0,transform:`scaleX(0)`,transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:`none`},[`&.${Fp.focused}:after`]:{transform:`scaleX(1) translateX(0)`},[`&.${Fp.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${t}`,left:0,bottom:0,content:`""`,position:`absolute`,right:0,transition:e.transitions.create(`border-bottom-color`,{duration:e.transitions.duration.shorter}),pointerEvents:`none`},[`&:hover:not(.${Fp.disabled}, .${Fp.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${t}`}},[`&.${Fp.disabled}:before`]:{borderBottomStyle:`dotted`}}},...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t].main}`}}}))]}})),Wh=Y(jp,{name:`MuiInput`,slot:`Input`,overridesResolver:Op})({}),Gh=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiInput`}),{disableUnderline:r=!1,fullWidth:i=!1,inputComponent:a=`input`,multiline:o=!1,slotProps:s,slots:c={},type:l=`text`,...u}=n,d=Hh(n),f={root:{ownerState:{disableUnderline:r}}},p=s?Lr(s,f):f;return(0,B.jsx)(Np,{slots:{root:c.root??Uh,input:c.input??Wh},slotProps:p,fullWidth:i,inputComponent:a,multiline:o,ref:t,type:l,...u,classes:d})});Gh.muiName=`Input`;var Kh=e=>{let{classes:t,formControl:n,size:r,shrink:i,disableAnimation:a,variant:o,required:s}=e,c=q({root:[`root`,n&&`formControl`,!a&&`animated`,i&&`shrink`,r&&r!==`medium`&&`size${X(r)}`,o],asterisk:[s&&`asterisk`]},Bh,t);return{...t,...c}},qh=Y(Ph,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiInputLabel`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`& .${Ah.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size===`small`&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})(pc(({theme:e})=>({display:`block`,transformOrigin:`top left`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,maxWidth:`100%`,variants:[{props:({ownerState:e})=>e.formControl,style:{position:`absolute`,left:0,top:0,transform:`translate(0, 20px) scale(1)`}},{props:{size:`small`},style:{transform:`translate(0, 17px) scale(1)`}},{props:({ownerState:e})=>e.shrink,style:{transform:`translate(0, -1.5px) scale(0.75)`,transformOrigin:`top left`,maxWidth:`133%`}},{props:({ownerState:e})=>!e.disableAnimation,style:{transition:e.transitions.create([`color`,`transform`,`max-width`],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:`filled`},style:{zIndex:1,pointerEvents:`none`,transform:`translate(12px, 16px) scale(1)`,maxWidth:`calc(100% - 24px)`}},{props:{variant:`filled`,size:`small`},style:{transform:`translate(12px, 13px) scale(1)`}},{props:({variant:e,ownerState:t})=>e===`filled`&&t.shrink,style:{userSelect:`none`,pointerEvents:`auto`,transform:`translate(12px, 7px) scale(0.75)`,maxWidth:`calc(133% - 24px)`}},{props:({variant:e,ownerState:t,size:n})=>e===`filled`&&t.shrink&&n===`small`,style:{transform:`translate(12px, 4px) scale(0.75)`}},{props:{variant:`outlined`},style:{zIndex:1,pointerEvents:`none`,transform:`translate(14px, 16px) scale(1)`,maxWidth:`calc(100% - 24px)`}},{props:{variant:`outlined`,size:`small`},style:{transform:`translate(14px, 9px) scale(1)`}},{props:({variant:e,ownerState:t})=>e===`outlined`&&t.shrink,style:{userSelect:`none`,pointerEvents:`auto`,maxWidth:`calc(133% - 32px)`,transform:`translate(14px, -9px) scale(0.75)`}}]}))),Jh=z.forwardRef(function(e,t){let n=mc({name:`MuiInputLabel`,props:e}),{disableAnimation:r=!1,margin:i,shrink:a,variant:o,className:s,...c}=n,l=bp(),u=a;u===void 0&&l&&(u=l.filled||l.focused||l.adornedStart);let d=vp({props:n,muiFormControl:l,states:[`size`,`variant`,`required`,`focused`]}),f={...n,disableAnimation:r,formControl:l,shrink:u,size:d.size,variant:d.variant,required:d.required,focused:d.focused},p=Kh(f);return(0,B.jsx)(qh,{"data-shrink":u,ref:t,className:H(p.root,s),...c,ownerState:f,classes:p})}),Yh=z.createContext({});function Xh(e){return U(`MuiList`,e)}W(`MuiList`,[`root`,`padding`,`dense`,`subheader`]);var Zh=e=>{let{classes:t,disablePadding:n,dense:r,subheader:i}=e;return q({root:[`root`,!n&&`padding`,r&&`dense`,i&&`subheader`]},Xh,t)},Qh=Y(`ul`,{name:`MuiList`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:`none`,margin:0,padding:0,position:`relative`,variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0}}]}),$h=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiList`}),{children:r,className:i,component:a=`ul`,dense:o=!1,disablePadding:s=!1,subheader:c,...l}=n,u=z.useMemo(()=>({dense:o}),[o]),d={...n,component:a,dense:o,disablePadding:s},f=Zh(d);return(0,B.jsx)(Yh.Provider,{value:u,children:(0,B.jsxs)(Qh,{as:a,className:H(f.root,i),ref:t,ownerState:d,...l,children:[c,r]})})}),eg=W(`MuiListItemIcon`,[`root`,`alignItemsFlexStart`]),tg=W(`MuiListItemText`,[`root`,`multiline`,`dense`,`inset`,`primary`,`secondary`]),ng=z.createContext(void 0);function rg(){let e=z.useContext(ng);if(e===void 0)throw Error(`MUI: RovingTabIndexContext is missing. Roving tab index items must be placed within a roving tab index provider.`);return e}var ig=Object.is;function ag(e,t){if(e===t)return!0;if(!(e instanceof Object)||!(t instanceof Object))return!1;let n=0,r=0;for(let r in e)if(n+=1,!ig(e[r],t[r])||!(r in t))return!1;for(let e in t)r+=1;return n===r}var og=[`ArrowRight`,`ArrowLeft`,`ArrowUp`,`ArrowDown`,`Home`,`End`];function sg(e){let{activeItemId:t,getDefaultActiveItemId:n,orientation:r,isRtl:i=!1,isItemFocusable:a=xg,wrap:o=!0}=e,[s,c]=z.useState(t),l=z.useRef(t),u=s;t!==l.current&&(l.current=t,t!==void 0&&t!==s&&(u=t,c(t)));let d=z.useRef(null),f=z.useRef(new Map),[p,m]=z.useState(0),h=z.useMemo(()=>vg(f.current),[p]),g=lg(u,h,a,n),_=z.useRef(g);_.current=g;let v=z.useCallback(()=>{let e=vg(f.current);return hg(e,lg(_.current,e,a,n))},[n,a]),y=z.useCallback(()=>f.current,[]),b=Pc(e=>{ag(f.current.get(e.id)??null,e)||(f.current.set(e.id,e),m(e=>e+1))}),x=Pc(e=>{f.current.delete(e)&&m(e=>e+1)}),S=Pc(e=>{c(e)}),C=z.useCallback(e=>_.current===e,[]),w=z.useCallback((e,t,n,r)=>{let i=pg(yg(f.current),e,t,n,r??a);return i?(i.element?.focus(),c(i.id),i):null},[a]),T=z.useCallback(e=>({onFocus:e=>{let t=yg(f.current),n=_g(t,e.target);n!==-1&&c(t[n].id)},onKeyDown:e=>{if(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey||!og.includes(e.key))return;let t=r===`horizontal`?`ArrowLeft`:`ArrowUp`,n=r===`horizontal`?`ArrowRight`:`ArrowDown`;r===`horizontal`&&i&&(t=`ArrowRight`,n=`ArrowLeft`);let a=yg(f.current),s=Cc(Tc(d.current)),c=s===d.current,l=fg(a,s,_.current),u=`next`;switch(e.key){case t:u=`previous`,e.preventDefault(),c&&(l=a.length);break;case n:e.preventDefault(),c&&(l=-1);break;case`Home`:e.preventDefault(),l=-1;break;case`End`:e.preventDefault(),u=`previous`,l=a.length;break;default:return}w(l,u,o)},ref:wg(e,e=>{d.current=e})}),[w,i,r,o]),E=z.useCallback(e=>{let t=yg(f.current),n=Cc(Tc(d.current));return w(n===d.current?-1:fg(t,n,_.current),`next`,!0,e)?.id??null},[w]);return z.useMemo(()=>({activeItemId:g,focusNext:E,getActiveItem:v,getContainerProps:T,getItemMap:y,isItemActive:C,registerItem:b,setActiveItemId:S,unregisterItem:x}),[g,E,v,T,y,C,b,S,x])}function cg(e){let{activeItemId:t,registerItem:n,unregisterItem:r}=rg(),i=z.useRef(null),a=z.useMemo(()=>({disabled:e.disabled??!1,element:null,focusableWhenDisabled:e.focusableWhenDisabled??!1,id:e.id,selected:e.selected??!1,textValue:e.textValue}),[e.disabled,e.focusableWhenDisabled,e.id,e.selected,e.textValue]),o=z.useRef(a);o.current=a;let s=z.useCallback(t=>{if(i.current=t,t==null){queueMicrotask(()=>{i.current??r(e.id)});return}n({...o.current,element:t})},[e.id,n,r]),c=Ic(e.ref,s);return Wa(()=>{i.current&&n({...a,element:i.current})},[a,n]),Wa(()=>{let t=e.id;return()=>{r(t)}},[e.id,r]),{ref:c,tabIndex:t===e.id?0:-1}}function lg(e,t,n,r){return e==null?dg(t,n,r):ug(e,t,n)}function ug(e,t,n){let r=gg(t,e);return r===-1?mg(t,n):n(t[r])?t[r].id:pg(t,r,`next`,!1,n)?.id??null}function dg(e,t,n){let r=n?.(e);if(r!=null){let n=hg(e,r);if(n&&t(n))return n.id}return mg(e,t)}function fg(e,t,n){if(t){let n=_g(e,t);if(n!==-1)return n}return gg(e,n)}function pg(e,t,n,r,i){let a=e.length-1;if(a===-1)return null;let o=!1,s=bg(t,a,n,r),c=s;for(;s!==-1;){if(s===c){if(o)return null;o=!0}let t=e[s];if(!t||!i(t))s=bg(s,a,n,r);else return t}return null}function mg(e,t){return e.find(e=>t(e))?.id??null}function hg(e,t){return t==null?null:e.find(e=>e.id===t)??null}function gg(e,t){return t==null?-1:e.findIndex(e=>e.id===t)}function _g(e,t){return t?e.findIndex(e=>e.element===t||e.element?.contains(t)):-1}function vg(e){let t=Array.from(e.values());if(t.every(e=>e.element==null))return t;let n=t.filter(Sg).sort((e,t)=>Cg(e.element,t.element)),r=t.filter(e=>!Sg(e));return[...n,...r]}function yg(e){return vg(e).filter(Sg)}function bg(e,t,n,r=!0){return n===`next`?e===t?r?0:-1:e+1:e===0?r?t:-1:e-1}function xg(e){return e.element?e.focusableWhenDisabled?!0:!e.disabled&&!e.element.hasAttribute(`disabled`)&&e.element.getAttribute(`aria-disabled`)!==`true`&&e.element.hasAttribute(`tabindex`):!1}function Sg(e){return e.element!=null&&e.element.isConnected}function Cg(e,t){if(e===t)return 0;let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}function wg(...e){return t=>{e.forEach(e=>{kc(e??null,t)})}}var Tg=Vm;function Eg(e,t){if(t==null){e.focus();return}try{e.focus({focusVisible:t===`keyboard`})}catch{e.focus()}}function Dg(e){return e?e.type===`mousedown`||e.type===`pointerdown`||e.type===`touchstart`?`pointer`:e.type===`keydown`||e.type===`click`&&e.detail===0?`keyboard`:null:null}function Og(e){return e==null||typeof e==`string`&&!e.trim()}function kg(e,t){return typeof t==`object`&&t?e===t:String(e)===String(t)}var Ag=z.createContext(null);function jg(){return z.useContext(Ag)}var Mg=Ag.Provider,Ng=z.createContext(void 0);function Pg(){let e=z.useContext(Ng);if(e===void 0)throw Error(`MUI: MenuListContext is missing. MenuItems must be placed within Menu or MenuList.`);return e}function Fg(e){let t=e?.element??e;if(!t)return``;if(e?.textValue!==void 0)return e.textValue;let n=t.innerText;return n===void 0&&(n=t.textContent),n??``}function Ig(e,t){if(t===void 0)return!0;let n=Fg(e);return n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join(``))}function Lg(e,t){return Ig(e,t)?xg(e):!1}function Rg(e,t){Eg(e,t)}var zg=z.forwardRef(function(e,t){let{actions:n,autoFocus:r=!1,autoFocusItem:i=!1,children:a,className:o,disabledItemsFocusable:s=!1,disableListWrap:c=!1,onKeyDown:l,variant:u=`selectedMenu`,...d}=e,f=z.useRef(null),p=z.useRef(!1),[m,h]=z.useState(!1),g=jg(),_=z.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null}),v=sg({activeItemId:void 0,getDefaultActiveItemId:z.useCallback(e=>u===`selectedMenu`?e.find(e=>e.selected&&xg(e))?.id??e.find(e=>xg(e))?.id??null:e.find(e=>xg(e))?.id??null,[u]),orientation:`vertical`,wrap:!c}),{activeItemId:y,focusNext:b,getActiveItem:x,getContainerProps:S,getItemMap:C}=v,w=Fc((e=!1)=>{if(!f.current||!e&&p.current)return null;if(i){let e=x();if(e?.element){let t=Array.from(C().values()).some(e=>e.selected);return h(u===`menu`&&t&&!e.selected&&g==null),Rg(e.element,g),p.current=!0,e.element}return r?(h(!1),f.current.focus(),f.current):null}return r?(h(!1),f.current.focus(),p.current=!0,f.current):(h(!1),null)});Ac(()=>{if(!r&&!i){p.current=!1,h(!1);return}w()},[y,i,r,w]),z.useImperativeHandle(n,()=>({adjustStyleForScrollbar:(e,{direction:t})=>{let n=!f.current.style.width;if(e.clientHeight{if(!f.current)return null;let e=wc(Ec(f.current));return e&&f.current.contains(e)?e:w(!0)}}),[w]);let T=S(),E=Lc(f,T.ref,t),D=z.useMemo(()=>({itemsFocusableWhenDisabled:s,suppressInitialFocusVisible:m,variant:u}),[s,m,u]);return(0,B.jsx)($h,{role:`menu`,ref:E,className:o,onKeyDown:Fc(e=>{if(m&&h(!1),(e.ctrlKey||e.metaKey||e.altKey)&&l){l(e);return}if(T.onKeyDown(e),e.key.length===1){let t=_.current,n=e.key.toLowerCase(),r=performance.now();t.keys.length>0&&(r-t.lastTime>500?(t.keys=[],t.repeating=!0,t.previousKeyMatched=!0):t.repeating&&n!==t.keys[0]&&(t.repeating=!1)),t.lastTime=r,t.keys.push(n);let i=wc(Ec(f.current)),a=i&&!t.repeating&&Ig(i,t);t.previousKeyMatched&&(a||b(e=>Lg(e,t))!=null)?e.preventDefault():t.previousKeyMatched=!1}l&&l(e)}),onFocus:T.onFocus,tabIndex:-1,...d,children:(0,B.jsx)(Ng.Provider,{value:D,children:(0,B.jsx)(ng.Provider,{value:v,children:a})})})});function Bg(e){return U(`MuiPopover`,e)}W(`MuiPopover`,[`root`,`paper`]);function Vg(e,t){let n=0;return typeof t==`number`?n=t:t===`center`?n=e.height/2:t===`bottom`&&(n=e.height),n}function Hg(e,t){let n=0;return typeof t==`number`?n=t:t===`center`?n=e.width/2:t===`right`&&(n=e.width),n}function Ug(e){return[e.horizontal,e.vertical].map(e=>typeof e==`number`?`${e}px`:e).join(` `)}function Wg(e){return typeof e==`function`?e():e}var Gg=e=>{let{classes:t}=e;return q({root:[`root`],paper:[`paper`]},Bg,t)},Kg=Y(ph,{name:`MuiPopover`,slot:`Root`})({}),qg=Y(kl,{name:`MuiPopover`,slot:`Paper`})({position:`absolute`,overflowY:`auto`,overflowX:`hidden`,minWidth:16,minHeight:16,maxWidth:`calc(100% - 32px)`,maxHeight:`calc(100% - 32px)`,outline:0}),Jg=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiPopover`}),{action:r,anchorEl:i,anchorOrigin:a={vertical:`top`,horizontal:`left`},anchorPosition:o,anchorReference:s=`anchorEl`,children:c,className:l,container:u,disableAutoFocus:d=!1,elevation:f=8,marginThreshold:p=16,open:m,slots:h={},slotProps:g={},transformOrigin:_={vertical:`top`,horizontal:`left`},transitionDuration:v=`auto`,disableScrollLock:y=!1,...b}=n,x=z.useRef(),S={...n,anchorOrigin:a,anchorReference:s,elevation:f,marginThreshold:p,transformOrigin:_,transitionDuration:v},C=Gg(S),w=z.useCallback(()=>{if(s===`anchorPosition`)return o;let e=Wg(i),t=(e&&e.nodeType===1?e:Ec(x.current).body).getBoundingClientRect();return{top:t.top+Vg(t,a.vertical),left:t.left+Hg(t,a.horizontal)}},[i,a.horizontal,a.vertical,o,s]),T=z.useCallback(e=>({vertical:Vg(e,_.vertical),horizontal:Hg(e,_.horizontal)}),[_.horizontal,_.vertical]),E=z.useCallback(e=>{let t={width:e.offsetWidth,height:e.offsetHeight},n=T(t);if(s===`none`)return{top:null,left:null,transformOrigin:Ug(n)};let r=w(),a=r.top-n.vertical,o=r.left-n.horizontal,c=a+t.height,l=o+t.width,u=Oc(Wg(i)),d=u.innerHeight-p,f=u.innerWidth-p;if(p!=null&&ad){let e=c-d;a-=e,n.vertical+=e}if(p!=null&&of){let e=l-f;o-=e,n.horizontal+=e}return{top:`${Math.round(a)}px`,left:`${Math.round(o)}px`,transformOrigin:Ug(n)}},[i,s,w,T,p]),[D,O]=z.useState(m),k=z.useCallback(()=>{let e=x.current;if(!e)return;let t=E(e);t.top!=null&&e.style.setProperty(`top`,t.top),t.left!=null&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,O(!0)},[E]);z.useEffect(()=>(y&&window.addEventListener(`scroll`,k),()=>window.removeEventListener(`scroll`,k)),[i,y,k]);let ee=()=>{k()},A=()=>{O(!1)};z.useEffect(()=>{m&&k()}),z.useImperativeHandle(r,()=>m?{updatePosition:()=>{k()}}:null,[m,k]),z.useEffect(()=>{if(!m)return;let e=xc(()=>{k()}),t=Oc(Wg(i));return t.addEventListener(`resize`,e),()=>{e.clear(),t.removeEventListener(`resize`,e)}},[i,m,k]);let j=v,te={slots:h,slotProps:g},[ne,re]=Tl(`transition`,{elementType:zh,externalForwardedProps:te,ownerState:S,getSlotProps:e=>({...e,onEntering:(t,n)=>{e.onEntering?.(t,n),ee()},onExited:t=>{e.onExited?.(t),A()}}),additionalProps:{appear:!0,in:m}});v===`auto`&&!ne.muiSupportAuto&&(j=void 0);let M=u||(i?Ec(Wg(i)).body:void 0),[N,{slots:ie,slotProps:ae,...oe}]=Tl(`root`,{ref:t,elementType:Kg,externalForwardedProps:{...te,...b},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:h.backdrop},slotProps:{backdrop:zc(typeof g.backdrop==`function`?g.backdrop(S):g.backdrop,{invisible:!0})},container:M,open:m},ownerState:S,className:H(C.root,l)}),[P,F]=Tl(`paper`,{ref:x,className:C.paper,elementType:qg,externalForwardedProps:te,shouldForwardComponentProp:!0,additionalProps:{elevation:f,style:D?void 0:{opacity:0}},ownerState:S});return(0,B.jsx)(N,{...oe,...!yl(N)&&{slots:ie,slotProps:ae,disableAutoFocus:d,disableScrollLock:y},children:(0,B.jsx)(ne,{...re,timeout:j,children:(0,B.jsx)(P,{...F,children:c})})})});function Yg(e){return U(`MuiMenu`,e)}W(`MuiMenu`,[`root`,`paper`,`list`]);var Xg={vertical:`top`,horizontal:`right`},Zg={vertical:`top`,horizontal:`left`},Qg=e=>{let{classes:t}=e;return q({root:[`root`],paper:[`paper`],list:[`list`]},Yg,t)},$g=Y(Jg,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiMenu`,slot:`Root`})({}),e_=Y(qg,{name:`MuiMenu`,slot:`Paper`})({maxHeight:`calc(100% - 96px)`,WebkitOverflowScrolling:`touch`}),t_=Y(zg,{name:`MuiMenu`,slot:`List`})({outline:0}),n_=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiMenu`}),{autoFocus:r=!0,children:i,className:a,disableAutoFocusItem:o=!1,onClose:s,open:c,PopoverClasses:l,transitionDuration:u=`auto`,variant:d=`selectedMenu`,slots:f={},slotProps:p={},...m}=n,h=co(),g={...n,autoFocus:r,disableAutoFocusItem:o,transitionDuration:u,variant:d},_=Qg(g),v=r&&c,y=v&&!o,b=z.useRef(null),x=(e,t)=>{b.current&&(b.current.adjustStyleForScrollbar(e,{direction:h?`rtl`:`ltr`}),v&&b.current.focusInitialTarget?.())},S=e=>{e.key===`Tab`&&(e.preventDefault(),s&&s(e,`tabKeyDown`))},C={slots:f,slotProps:p},w=Hf({elementType:f.root,externalSlotProps:p.root,ownerState:g,className:[_.root,a]}),[T,E]=Tl(`paper`,{className:_.paper,elementType:e_,externalForwardedProps:C,shouldForwardComponentProp:!0,ownerState:g}),[D,O]=Tl(`list`,{className:_.list,elementType:t_,shouldForwardComponentProp:!0,externalForwardedProps:C,getSlotProps:e=>({...e,onKeyDown:t=>{S(t),e.onKeyDown?.(t)}}),ownerState:g}),k=typeof p.transition==`function`?p.transition(g):p.transition;return(0,B.jsx)($g,{disableAutoFocus:r,onClose:s,anchorOrigin:{vertical:`bottom`,horizontal:h?`right`:`left`},transformOrigin:h?Xg:Zg,slots:{root:f.root,paper:T,backdrop:f.backdrop,transition:f.transition},slotProps:{root:w,paper:E,backdrop:typeof p.backdrop==`function`?p.backdrop(g):p.backdrop,transition:{...k,onEntering:(...e)=>{x(...e),k?.onEntering?.(...e)}}},open:c,ref:t,transitionDuration:u,ownerState:g,...m,classes:l,children:(0,B.jsx)(D,{actions:b,autoFocus:v,autoFocusItem:y,variant:d,...O,children:i})})});function r_(e){return U(`MuiMenuItem`,e)}var i_=W(`MuiMenuItem`,[`root`,`focusVisible`,`dense`,`disabled`,`divider`,`gutters`,`selected`]),a_=(e,t)=>{let{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},o_=e=>{let{disabled:t,dense:n,divider:r,disableGutters:i,selected:a,classes:o}=e,s=q({root:[`root`,n&&`dense`,t&&`disabled`,!i&&`gutters`,r&&`divider`,a&&`selected`]},r_,o);return{...o,...s}},s_=Y(Yl,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiMenuItem`,slot:`Root`,overridesResolver:a_})(pc(({theme:e})=>({...e.typography.body1,display:`flex`,justifyContent:`flex-start`,alignItems:`center`,position:`relative`,textDecoration:`none`,minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:`border-box`,whiteSpace:`nowrap`,"&:hover":{textDecoration:`none`,backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:`transparent`}},[`&.${i_.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${i_.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${i_.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${i_.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${i_.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${mh.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${mh.inset}`]:{marginLeft:52},[`& .${tg.root}`]:{marginTop:0,marginBottom:0},[`& .${tg.inset}`]:{paddingLeft:36},[`& .${eg.root}`]:{minWidth:36},variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:`padding-box`}},{props:({ownerState:e})=>!e.dense,style:{[e.breakpoints.up(`sm`)]:{minHeight:`auto`}}},{props:({ownerState:e})=>e.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${eg.root} svg`]:{fontSize:`1.25rem`}}}]}))),c_=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiMenuItem`}),{autoFocus:r=!1,component:i=`li`,dense:a=!1,divider:o=!1,disableGutters:s=!1,focusVisibleClassName:c,role:l=`menuitem`,tabIndex:u,className:d,...f}=n,p=jg(),m=z.useContext(Yh),h=z.useMemo(()=>({dense:a||m.dense||!1,disableGutters:s}),[m.dense,a,s]),g=Pg(),_=jc(),v=g.suppressInitialFocusVisible,y=g.itemsFocusableWhenDisabled,b=z.useRef(null);Ac(()=>{r&&b.current&&Eg(b.current,p)},[r]);let x={...n,dense:h.dense,divider:o,disableGutters:s},S=o_(n),C=cg({id:_,ref:t,disabled:n.disabled,focusableWhenDisabled:y,selected:n.selected}),w=Lc(b,C.ref),T;return u===void 0?g.variant===`selectedMenu`?T=C.tabIndex:(!n.disabled||y)&&(T=-1):T=u,(0,B.jsx)(Yh.Provider,{value:h,children:(0,B.jsx)(s_,{ref:w,role:l,tabIndex:T,component:i,internalNativeButton:!1,focusableWhenDisabled:y,suppressFocusVisible:v,focusVisibleClassName:H(S.focusVisible,c),className:H(S.root,d),...f,ownerState:x,classes:S})})});function l_(e){return U(`MuiNativeSelect`,e)}var u_=W(`MuiNativeSelect`,[`root`,`select`,`multiple`,`filled`,`outlined`,`standard`,`disabled`,`icon`,`iconOpen`,`iconFilled`,`iconOutlined`,`iconStandard`,`nativeInput`,`error`]),d_=e=>{let{classes:t,variant:n,disabled:r,multiple:i,open:a,error:o}=e;return q({select:[`select`,n,r&&`disabled`,i&&`multiple`,o&&`error`],icon:[`icon`,`icon${X(n)}`,a&&`iconOpen`,r&&`disabled`]},l_,t)},f_=Y(`select`,{name:`MuiNativeSelect`})(({theme:e})=>({MozAppearance:`none`,WebkitAppearance:`none`,userSelect:`none`,borderRadius:0,cursor:`pointer`,"&:focus":{borderRadius:0},[`&.${u_.disabled}`]:{cursor:`default`},"&[multiple]":{height:`auto`},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:e})=>e.variant!==`filled`&&e.variant!==`outlined`,style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:`filled`},style:{"&&&":{paddingRight:32}}},{props:{variant:`outlined`},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),p_=Y(f_,{name:`MuiNativeSelect`,slot:`Select`,shouldForwardProp:lc,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${u_.multiple}`]:t.multiple}]}})({}),m_=Y(`svg`,{name:`MuiNativeSelect`})(({theme:e})=>({position:`absolute`,right:0,top:`calc(50% - .5em)`,pointerEvents:`none`,color:(e.vars||e).palette.action.active,[`&.${u_.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:e})=>e.open,style:{transform:`rotate(180deg)`}},{props:{variant:`filled`},style:{right:7}},{props:{variant:`outlined`},style:{right:7}}]})),h_=Y(m_,{name:`MuiNativeSelect`,slot:`Icon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${X(n.variant)}`],n.open&&t.iconOpen]}})({}),g_=z.forwardRef(function(e,t){let{className:n,disabled:r,error:i,IconComponent:a,inputRef:o,variant:s=`standard`,...c}=e,l={...e,disabled:r,variant:s,error:i},u=d_(l);return(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(p_,{ownerState:l,className:H(u.select,n),disabled:r,ref:o||t,...c}),e.multiple?null:(0,B.jsx)(h_,{as:a,ownerState:l,className:u.icon})]})}),__,v_=Y(`fieldset`,{name:`MuiNotchedOutlined`,shouldForwardProp:lc})({textAlign:`left`,position:`absolute`,bottom:0,right:0,top:-5,left:0,margin:0,padding:`0 8px`,pointerEvents:`none`,borderRadius:`inherit`,borderStyle:`solid`,borderWidth:1,overflow:`hidden`,minWidth:`0%`}),y_=Y(`legend`,{name:`MuiNotchedOutlined`,shouldForwardProp:lc})(pc(({theme:e})=>({float:`unset`,width:`auto`,overflow:`hidden`,variants:[{props:({ownerState:e})=>!e.withLabel,style:{padding:0,lineHeight:`11px`,transition:e.transitions.create(`width`,{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:e})=>e.withLabel,style:{display:`block`,padding:0,height:11,fontSize:`0.75em`,visibility:`hidden`,maxWidth:.01,transition:e.transitions.create(`max-width`,{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:`nowrap`,"& > span":{paddingLeft:5,paddingRight:5,display:`inline-block`,opacity:0,visibility:`visible`}}},{props:({ownerState:e})=>e.withLabel&&e.notched,style:{maxWidth:`100%`,transition:e.transitions.create(`max-width`,{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function b_(e){let{children:t,classes:n,className:r,label:i,notched:a,...o}=e,s=i!=null&&i!==``,c={...e,notched:a,withLabel:s};return(0,B.jsx)(v_,{"aria-hidden":!0,className:r,ownerState:c,...o,children:(0,B.jsx)(y_,{ownerState:c,children:s?(0,B.jsx)(`span`,{children:i}):__||=(0,B.jsx)(`span`,{className:`notranslate`,"aria-hidden":!0,children:`​`})})})}var x_=e=>{let{classes:t}=e,n=q({root:[`root`],notchedOutline:[`notchedOutline`],input:[`input`]},Ip,t);return{...t,...n}},S_=Y(Ap,{shouldForwardProp:e=>lc(e)||e===`classes`,name:`MuiOutlinedInput`,slot:`Root`,overridesResolver:Dp})(pc(({theme:e})=>{let t=e.palette.mode===`light`?`rgba(0, 0, 0, 0.23)`:`rgba(255, 255, 255, 0.23)`;return{position:`relative`,borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${Lp.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${Lp.notchedOutline}`]:{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}},[`&.${Lp.focused} .${Lp.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter($l()).map(([t])=>({props:{color:t},style:{[`&.${Lp.focused} .${Lp.notchedOutline}`]:{borderColor:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Lp.error} .${Lp.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${Lp.disabled} .${Lp.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:14}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:14}},{props:({ownerState:e})=>e.multiline,style:{padding:`16.5px 14px`}},{props:({ownerState:e,size:t})=>e.multiline&&t===`small`,style:{padding:`8.5px 14px`}}]}})),C_=Y(b_,{name:`MuiOutlinedInput`,slot:`NotchedOutline`})(pc(({theme:e})=>{let t=e.palette.mode===`light`?`rgba(0, 0, 0, 0.23)`:`rgba(255, 255, 255, 0.23)`;return{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}})),w_=Y(jp,{name:`MuiOutlinedInput`,slot:`Input`,overridesResolver:Op})(pc(({theme:e})=>({padding:`16.5px 14px`,...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode===`light`?null:`0 0 0 100px #266798 inset`,WebkitTextFillColor:e.palette.mode===`light`?null:`#fff`,caretColor:e.palette.mode===`light`?null:`#fff`,borderRadius:`inherit`}},...e.vars&&{"&:-webkit-autofill":{borderRadius:`inherit`},[e.getColorSchemeSelector(`dark`)]:{"&:-webkit-autofill":{WebkitBoxShadow:`0 0 0 100px #266798 inset`,WebkitTextFillColor:`#fff`,caretColor:`#fff`}}},variants:[{props:{size:`small`},style:{padding:`8.5px 14px`}},{props:({ownerState:e})=>e.multiline,style:{padding:0}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}}]}))),T_=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiOutlinedInput`}),{fullWidth:r=!1,inputComponent:i=`input`,label:a,multiline:o=!1,notched:s,slots:c={},slotProps:l={},type:u=`text`,...d}=n,f=x_(n),p=bp(),m=vp({props:n,muiFormControl:p,states:[`color`,`disabled`,`error`,`focused`,`hiddenLabel`,`size`,`required`]}),h={...n,color:m.color||`primary`,disabled:m.disabled,error:m.error,focused:m.focused,formControl:p,fullWidth:r,hiddenLabel:m.hiddenLabel,multiline:o,size:m.size,type:u},g=c.root??S_,_=c.input??w_,[v,y]=Tl(`notchedOutline`,{elementType:C_,className:f.notchedOutline,shouldForwardComponentProp:!0,ownerState:h,externalForwardedProps:{slots:c,slotProps:l},additionalProps:{label:a!=null&&a!==``&&m.required?(0,B.jsxs)(z.Fragment,{children:[a,` `,`*`]}):a}});return(0,B.jsx)(Np,{slots:{root:g,input:_},slotProps:l,renderSuffix:e=>(0,B.jsx)(v,{...y,notched:s===void 0?!!(e.startAdornment||e.filled||e.focused):s}),fullWidth:r,inputComponent:i,multiline:o,ref:t,type:u,...d,classes:{...f,notchedOutline:null}})});T_.muiName=`Input`;function E_(e){return U(`MuiSelect`,e)}var D_=W(`MuiSelect`,[`root`,`select`,`multiple`,`filled`,`outlined`,`standard`,`disabled`,`focused`,`icon`,`iconOpen`,`nativeInput`,`error`]),O_,k_=Y(f_,{name:`MuiSelect`,slot:`Select`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[{[`&.${D_.select}`]:t.select},{[`&.${D_.select}`]:t[n.variant]},{[`&.${D_.error}`]:t.error},{[`&.${D_.multiple}`]:t.multiple}]}})({[`&.${D_.select}`]:{height:`auto`,minHeight:`1.4375em`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,overflow:`hidden`}}),A_=Y(m_,{name:`MuiSelect`,slot:`Icon`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.icon,n.open&&t.iconOpen]}})({}),j_=Y(`input`,{shouldForwardProp:e=>cc(e)&&e!==`classes`,name:`MuiSelect`,slot:`NativeInput`})({bottom:0,left:0,position:`absolute`,opacity:0,pointerEvents:`none`,width:`100%`,boxSizing:`border-box`}),M_=e=>{let{classes:t,variant:n,disabled:r,multiple:i,open:a,error:o}=e;return q({select:[`select`,n,r&&`disabled`,i&&`multiple`,o&&`error`],icon:[`icon`,a&&`iconOpen`,r&&`disabled`],nativeInput:[`nativeInput`]},E_,t)},N_=z.forwardRef(function(e,t){let{"aria-describedby":n,"aria-label":r,autoFocus:i,autoWidth:a,children:o,className:s,defaultOpen:c,defaultValue:l,disabled:u,displayEmpty:d,error:f=!1,IconComponent:p,inputRef:m,labelId:h,MenuProps:g={},multiple:_,name:v,onBlur:y,onChange:b,onClose:x,onFocus:S,onKeyDown:C,onMouseDown:w,onOpen:T,open:E,readOnly:D,renderValue:O,required:k,SelectDisplayProps:ee={},tabIndex:A,type:j,value:te,variant:ne=`standard`,...re}=e,[M,N]=Nc({controlled:te,default:l,name:`Select`}),[ie,ae]=Nc({controlled:E,default:c,name:`Select`}),oe=z.useRef(null),P=z.useRef(null),[F,I]=z.useState(null),{current:se}=z.useRef(E!=null),[ce,le]=z.useState(),[ue,de]=z.useState(null),fe=Lc(t,m),pe=z.useCallback(e=>{P.current=e,e&&I(e)},[]),me=F?.parentNode;z.useImperativeHandle(fe,()=>({focus:()=>{P.current.focus()},node:oe.current,value:M}),[M]);let he=F!==null&&ie;z.useEffect(()=>{if(!he||!me||a||typeof ResizeObserver>`u`)return;let e=new ResizeObserver(()=>{le(me.clientWidth)});return e.observe(me),()=>{e.disconnect()}},[he,me,a]),z.useEffect(()=>{c&&ie&&F&&!se&&(le(a?null:me.clientWidth),P.current.focus())},[F,a]),z.useEffect(()=>{i&&P.current.focus()},[i]),z.useEffect(()=>{if(!h)return;let e=Ec(P.current).getElementById(h);if(e){let t=()=>{getSelection().isCollapsed&&P.current.focus()};return e.addEventListener(`click`,t),()=>{e.removeEventListener(`click`,t)}}},[h]);let ge=(e,t)=>{e?(de(Dg(t)),T&&T(t)):(de(null),x&&x(t)),se||(le(a?null:me.clientWidth),ae(e))},_e=e=>{w?.(e),e.button===0&&(e.preventDefault(),P.current.focus(),ge(!0,e))},L=e=>{ge(!1,e)},ve=z.Children.toArray(o),R=e=>{let t=ve.find(t=>t.props.value===e.target.value);t!==void 0&&(N(t.props.value),b&&b(e,t))},ye=e=>t=>{let n;if(t.currentTarget.hasAttribute(`tabindex`)){if(_){n=Array.isArray(M)?M.slice():[];let t=M.indexOf(e.props.value);t===-1?n.push(e.props.value):n.splice(t,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),M!==n&&(N(n),b)){let r=t.nativeEvent||t,i=new r.constructor(r.type,r);Object.defineProperty(i,`target`,{writable:!0,value:{value:n,name:v}}),b(i,e)}_||ge(!1,t)}},be=e=>{D||([` `,`ArrowUp`,`ArrowDown`,`Enter`].includes(e.key)&&(e.preventDefault(),ge(!0,e)),C?.(e))},xe=e=>{!he&&y&&(Object.defineProperty(e,`target`,{writable:!0,value:{value:M,name:v}}),y(e))};delete re[`aria-invalid`];let Se,Ce,we=[],Te=!1;(Sp({value:M})||d)&&(O?Se=O(M):Te=!0);let Ee=ve.map(e=>{if(!z.isValidElement(e))return null;let t;if(_){if(!Array.isArray(M))throw Error(pt(2));t=M.some(t=>kg(t,e.props.value)),t&&Te&&we.push(e.props.children)}else t=kg(M,e.props.value),t&&Te&&(Ce=e.props.children);return z.cloneElement(e,{"aria-selected":t?`true`:`false`,onClick:ye(e),onKeyUp:t=>{t.key===` `&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:`option`,selected:t,value:void 0,"data-value":e.props.value})});Te&&(Se=_?we.length===0?null:we.reduce((e,t,n)=>(e.push(t),n{let{classes:t}=e,n=q({root:[`root`]},E_,t);return{...t,...n}},F_={name:`MuiSelect`,slot:`Root`,shouldForwardProp:e=>lc(e)&&e!==`variant`},I_=Y(Gh,F_)(``),L_=Y(T_,F_)(``),R_=Y(vh,F_)(``),z_=z.forwardRef(function(e,t){let n=mc({name:`MuiSelect`,props:e}),{autoWidth:r=!1,children:i,classes:a={},className:o,defaultOpen:s=!1,displayEmpty:c=!1,IconComponent:l=Bp,id:u,input:d,inputProps:f,label:p,labelId:m,MenuProps:h,multiple:g=!1,native:_=!1,onClose:v,onOpen:y,open:b,renderValue:x,SelectDisplayProps:S,variant:C=`outlined`,...w}=n,T=_?g_:N_,E=vp({props:n,muiFormControl:bp(),states:[`variant`,`error`]}),D=E.variant||C,O={...n,variant:D,classes:a},k=P_(O),{root:ee,...A}=k,j=d||{standard:(0,B.jsx)(I_,{ownerState:O}),outlined:(0,B.jsx)(L_,{label:p,ownerState:O}),filled:(0,B.jsx)(R_,{ownerState:O})}[D],te=Lc(t,Uf(j));return(0,B.jsx)(z.Fragment,{children:z.cloneElement(j,{inputComponent:T,inputProps:{children:i,error:E.error,IconComponent:l,variant:D,type:void 0,multiple:g,..._?{id:u}:{autoWidth:r,defaultOpen:s,displayEmpty:c,labelId:m,MenuProps:h,onClose:v,onOpen:y,open:b,renderValue:x,SelectDisplayProps:{id:u,...S}},...f,classes:f?Lr(A,f.classes):A,...d?d.props.inputProps:{}},...(g&&_||c)&&D===`outlined`?{notched:!0}:{},ref:te,className:H(j.props.className,o,k.root),...!d&&{variant:D},...w})})});z_.muiName=`Select`;var B_=is({createStyledComponent:Y(`div`,{name:`MuiStack`,slot:`Root`}),useThemeProps:e=>mc({props:e,name:`MuiStack`})});function V_(e){return U(`MuiTextField`,e)}W(`MuiTextField`,[`root`]);var H_={standard:Gh,filled:vh,outlined:T_},U_=e=>{let{classes:t}=e;return q({root:[`root`]},V_,t)},W_=Y(Sh,{name:`MuiTextField`,slot:`Root`})({}),G_=z.forwardRef(function(e,t){let n=mc({props:e,name:`MuiTextField`}),{autoComplete:r,autoFocus:i=!1,children:a,className:o,color:s=`primary`,defaultValue:c,disabled:l=!1,error:u=!1,fullWidth:d=!1,helperText:f,id:p,inputRef:m,label:h,maxRows:g,minRows:_,multiline:v=!1,name:y,onBlur:b,onChange:x,onFocus:S,placeholder:C,required:w=!1,rows:T,select:E=!1,slots:D={},slotProps:O={},type:k,value:ee,variant:A=`outlined`,...j}=n,te={...n,autoFocus:i,color:s,disabled:l,error:u,fullWidth:d,multiline:v,required:w,select:E,variant:A},ne=U_(te),re=go(p),M=f&&re?`${re}-helper-text`:void 0,N=h&&re?`${re}-label`:void 0,ie=H_[A],ae={slots:D,slotProps:O},[oe,P]=Tl(`select`,{elementType:z_,externalForwardedProps:ae,ownerState:te}),F=E&&P.native,I={},se=ae.slotProps.inputLabel;A===`outlined`&&(se&&se.shrink!==void 0&&(I.notched=se.shrink),I.label=h),E&&(F||(I.id=void 0),I[`aria-describedby`]=void 0);let[ce,le]=Tl(`root`,{elementType:W_,shouldForwardComponentProp:!0,externalForwardedProps:{...ae,...j},ownerState:te,className:H(ne.root,o),ref:t,additionalProps:{disabled:l,error:u,fullWidth:d,required:w,color:s,variant:A}}),[ue,de]=Tl(`input`,{elementType:ie,externalForwardedProps:ae,additionalProps:I,ownerState:te}),[fe,pe]=Tl(`inputLabel`,{elementType:Jh,externalForwardedProps:ae,ownerState:te}),[me,he]=Tl(`htmlInput`,{elementType:`input`,externalForwardedProps:ae,ownerState:te}),[ge,_e]=Tl(`formHelperText`,{elementType:Oh,externalForwardedProps:ae,ownerState:te}),L=(0,B.jsx)(ue,{"aria-describedby":M,autoComplete:r,autoFocus:i,defaultValue:c,fullWidth:d,multiline:v,name:y,rows:T,maxRows:g,minRows:_,type:k,value:ee,id:re,inputRef:m,onBlur:b,onChange:x,onFocus:S,placeholder:C,inputProps:he,slots:{input:D.htmlInput?me:void 0},...de});return(0,B.jsxs)(ce,{...le,children:[h!=null&&h!==``&&(0,B.jsx)(fe,{htmlFor:E&&!F?void 0:re,id:N,...E&&!F&&{component:`div`},...pe,children:h}),E?(0,B.jsx)(oe,{"aria-describedby":M,id:re,labelId:N,value:ee,input:L,...P,children:a}):L,f&&(0,B.jsx)(ge,{id:M,..._e,children:f})]})}),K_=g(),q_=async e=>{let t=await fetch(e);if(!t.ok){let n=``;try{n=(await t.json()).message??``}catch{}throw Error(n||`Request failed for ${e} (${t.status})`)}return await t.json()},J_={locations:()=>q_(`/api/locations`),publishers:e=>q_(`/api/publishers?location=${encodeURIComponent(e)}`),offers:(e,t)=>q_(`/api/offers?location=${encodeURIComponent(e)}&publisher=${encodeURIComponent(t)}`),skus:(e,t,n)=>q_(`/api/skus?location=${encodeURIComponent(e)}&publisher=${encodeURIComponent(t)}&offer=${encodeURIComponent(n)}`),versions:(e,t,n,r)=>q_(`/api/versions?location=${encodeURIComponent(e)}&publisher=${encodeURIComponent(t)}&offer=${encodeURIComponent(n)}&sku=${encodeURIComponent(r)}`),templates:()=>q_(`/api/templates`),render:async(e,t)=>{let n=await fetch(`/api/render`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({templateFile:e,selection:t})});if(!n.ok)throw Error(`Failed to render template`);return(await n.json()).rendered},skuExport:async(e,t,n)=>(await q_(`/api/sku-export?location=${encodeURIComponent(e)}&publisher=${encodeURIComponent(t)}&offer=${encodeURIComponent(n)}`)).rendered},Y_={location:``,publisher:``,offer:``,sku:``,version:``},X_=()=>{let[e,t]=(0,z.useState)(Y_),[n,r]=(0,z.useState)(``),[i,a]=(0,z.useState)(``),[o,s]=(0,z.useState)(``),[c,l]=(0,z.useState)(``),u=it({queryKey:[`locations`],queryFn:J_.locations}),d=it({queryKey:[`publishers`,e.location],queryFn:()=>J_.publishers(e.location),enabled:!!e.location}),f=it({queryKey:[`offers`,e.location,e.publisher],queryFn:()=>J_.offers(e.location,e.publisher),enabled:!!(e.location&&e.publisher)}),p=it({queryKey:[`skus`,e.location,e.publisher,e.offer],queryFn:()=>J_.skus(e.location,e.publisher,e.offer),enabled:!!(e.location&&e.publisher&&e.offer)}),m=it({queryKey:[`versions`,e.location,e.publisher,e.offer,e.sku],queryFn:()=>J_.versions(e.location,e.publisher,e.offer,e.sku),enabled:!!(e.location&&e.publisher&&e.offer&&e.sku)}),h=it({queryKey:[`templates`],queryFn:J_.templates});(0,z.useEffect)(()=>{t(e=>({...e,publisher:``,offer:``,sku:``,version:``})),a(``),s(``)},[e.location]),(0,z.useEffect)(()=>{t(e=>({...e,offer:``,sku:``,version:``})),a(``),s(``)},[e.publisher]),(0,z.useEffect)(()=>{t(e=>({...e,sku:``,version:``})),a(``)},[e.offer]),(0,z.useEffect)(()=>{t(e=>({...e,version:``})),a(``)},[e.sku]);let g=(0,z.useMemo)(()=>!!(e.location&&e.publisher&&e.offer&&e.sku&&e.version&&n),[e,n]),_=(0,z.useMemo)(()=>[...d.data??[]].sort((e,t)=>e.localeCompare(t)),[d.data]),v=(0,z.useMemo)(()=>[...f.data??[]].sort((e,t)=>e.localeCompare(t)),[f.data]),y=(0,z.useMemo)(()=>[...p.data??[]].sort((e,t)=>e.localeCompare(t)),[p.data]),b=(0,z.useMemo)(()=>[...m.data??[]].sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:`base`})),[m.data]),x=(e,t)=>{let n=t.trim().toLowerCase();return n?e.filter(e=>e.toLowerCase().includes(n)):e},S=async()=>{l(``);try{let[t,r]=await Promise.all([J_.render(n,e),J_.skuExport(e.location,e.publisher,e.offer)]);a(t),s(r)}catch(e){l(e instanceof Error?e.message:`Unexpected render error`)}},C=u.isLoading||h.isLoading,w=u.error instanceof Error?u.error.message:`Failed to load locations`;return(0,B.jsx)(dm,{sx:{minHeight:`100vh`,py:4},children:(0,B.jsx)(Mm,{maxWidth:`lg`,children:(0,B.jsxs)(B_,{spacing:3,children:[(0,B.jsx)(Iu,{variant:`h4`,sx:{fontWeight:500},children:`Azure Image Chooser`}),(0,B.jsx)(Iu,{color:`text.secondary`,children:`Select a marketplace image and generate reusable snippets.`}),C?(0,B.jsx)(pu,{}):u.isError?(0,B.jsx)(ju,{severity:`error`,children:w}):(0,B.jsx)(Dm,{children:(0,B.jsx)(jm,{children:(0,B.jsxs)(Fh,{container:!0,spacing:2,children:[(0,B.jsx)(Fh,{size:{xs:12,md:6},children:(0,B.jsxs)(Sh,{fullWidth:!0,children:[(0,B.jsx)(Jh,{id:`location-label`,children:`Location`}),(0,B.jsx)(z_,{labelId:`location-label`,label:`Location`,value:e.location,onChange:e=>t(t=>({...t,location:e.target.value})),children:(u.data??[]).map(e=>(0,B.jsx)(c_,{value:e.name,children:e.displayName},e.name))})]})}),(0,B.jsx)(Fh,{size:{xs:12,md:6},children:(0,B.jsx)(nm,{options:_,value:e.publisher||null,disabled:!e.location,onChange:(e,n)=>t(e=>({...e,publisher:n??``})),filterOptions:(e,t)=>x(e,t.inputValue),renderInput:e=>(0,B.jsx)(G_,{...e,label:`Publisher`})})}),(0,B.jsx)(Fh,{size:{xs:12,md:4},children:(0,B.jsx)(nm,{options:v,value:e.offer||null,disabled:!e.publisher,onChange:(e,n)=>t(e=>({...e,offer:n??``})),filterOptions:(e,t)=>x(e,t.inputValue),renderInput:e=>(0,B.jsx)(G_,{...e,label:`Offer`})})}),(0,B.jsx)(Fh,{size:{xs:12,md:4},children:(0,B.jsx)(nm,{options:y,value:e.sku||null,disabled:!e.offer,onChange:(e,n)=>t(e=>({...e,sku:n??``})),filterOptions:(e,t)=>x(e,t.inputValue),renderInput:e=>(0,B.jsx)(G_,{...e,label:`SKU`})})}),(0,B.jsx)(Fh,{size:{xs:12,md:4},children:(0,B.jsxs)(Sh,{fullWidth:!0,disabled:!e.sku,children:[(0,B.jsx)(Jh,{id:`version-label`,children:`Version`}),(0,B.jsx)(z_,{labelId:`version-label`,label:`Version`,value:e.version,onChange:e=>t(t=>({...t,version:e.target.value})),children:b.map(e=>(0,B.jsx)(c_,{value:e,children:e},e))})]})}),(0,B.jsx)(Fh,{size:{xs:12,md:8},children:(0,B.jsxs)(Sh,{fullWidth:!0,children:[(0,B.jsx)(Jh,{id:`template-label`,children:`Usage scenario`}),(0,B.jsx)(z_,{labelId:`template-label`,label:`Usage scenario`,value:n,onChange:e=>r(e.target.value),children:(h.data??[]).map(e=>(0,B.jsx)(c_,{value:e.file,children:e.label},e.file))})]})}),(0,B.jsx)(Fh,{size:{xs:12,md:4},children:(0,B.jsx)(Cm,{fullWidth:!0,variant:`contained`,sx:{height:`100%`},color:`primary`,onClick:S,disabled:!g,children:`Generate usage`})})]})})}),c?(0,B.jsx)(ju,{severity:`error`,children:c}):null,i?(0,B.jsx)(Dm,{children:(0,B.jsxs)(jm,{children:[(0,B.jsx)(Iu,{variant:`h6`,children:`Usage snippet`}),(0,B.jsx)(dm,{component:`pre`,sx:{overflowX:`auto`,p:2,bgcolor:`grey.100`,color:`text.primary`,borderRadius:1,border:1,borderColor:`divider`},children:i})]})}):null,o?(0,B.jsx)(Dm,{children:(0,B.jsxs)(jm,{children:[(0,B.jsx)(Iu,{variant:`h6`,children:`Available SKUs`}),(0,B.jsx)(dm,{component:`pre`,sx:{overflowX:`auto`,p:2,bgcolor:`grey.100`,color:`text.primary`,borderRadius:1,border:1,borderColor:`divider`},children:o})]})}):null]})})})},Z_=new ze;(0,K_.createRoot)(document.getElementById(`root`)).render((0,B.jsx)(z.StrictMode,{children:(0,B.jsxs)(We,{client:Z_,children:[(0,B.jsx)(Bm,{}),(0,B.jsx)(X_,{})]})})); \ No newline at end of file diff --git a/app-new/dist/frontend/index.html b/app-new/dist/frontend/index.html deleted file mode 100644 index bb6c535..0000000 --- a/app-new/dist/frontend/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Azure Image Chooser - - - -
- - diff --git a/app-new/frontend/src/App.tsx b/app-new/frontend/src/App.tsx index fcc264d..6bd896f 100644 --- a/app-new/frontend/src/App.tsx +++ b/app-new/frontend/src/App.tsx @@ -36,6 +36,7 @@ const App = () => { const [skuExport, setSkuExport] = useState(""); const [renderError, setRenderError] = useState(""); + const healthQuery = useQuery({ queryKey: ["health"], queryFn: api.health }); const locationsQuery = useQuery({ queryKey: ["locations"], queryFn: api.locations }); const publishersQuery = useQuery({ queryKey: ["publishers", selection.location], @@ -127,6 +128,8 @@ const App = () => { }; const loading = locationsQuery.isLoading || templatesQuery.isLoading; + const healthError = healthQuery.error instanceof Error ? healthQuery.error.message : ""; + const appNotConfigured = healthError.includes("Missing AZURE_SUBSCRIPTION_ID"); const locationsError = locationsQuery.error instanceof Error ? locationsQuery.error.message : "Failed to load locations"; return ( @@ -140,10 +143,16 @@ const App = () => { Select a marketplace image and generate reusable snippets.
+ {appNotConfigured ? ( + + App is not configured. Set AZURE_SUBSCRIPTION_ID (and Azure credentials) in the container start environment, then restart the app. + + ) : null} + {loading ? ( ) : locationsQuery.isError ? ( - {locationsError} + {locationsError} ) : ( diff --git a/app-new/frontend/src/api.ts b/app-new/frontend/src/api.ts index 6536cf3..2cc7a31 100644 --- a/app-new/frontend/src/api.ts +++ b/app-new/frontend/src/api.ts @@ -18,6 +18,7 @@ const json = async (path: string): Promise => { }; export const api = { + health: () => json<{ status: string; message?: string }>("/api/health"), locations: () => json("/api/locations"), publishers: (location: string) => json(`/api/publishers?location=${encodeURIComponent(location)}`), offers: (location: string, publisher: string) => -- 2.49.1 From 5fd91a96e8e45fc6e012cceaead46851b630774f Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Sun, 19 Apr 2026 23:10:40 +0200 Subject: [PATCH 06/15] feat: add health check script and update Dockerfile for health check integration --- Dockerfile | 4 +++- healthcheck.js | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 healthcheck.js diff --git a/Dockerfile b/Dockerfile index f345109..98f291a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,7 +26,9 @@ COPY --from=build /app/backend/node_modules dist/backend/node_modules WORKDIR /app COPY entrypoint.sh entrypoint.sh +COPY healthcheck.js healthcheck.js RUN chmod +x entrypoint.sh EXPOSE 3000 -CMD ["./entrypoint.sh"] +HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 CMD ["node", "/app/healthcheck.js"] +ENTRYPOINT ["./entrypoint.sh"] diff --git a/healthcheck.js b/healthcheck.js new file mode 100644 index 0000000..9febd4a --- /dev/null +++ b/healthcheck.js @@ -0,0 +1,39 @@ +#!/usr/bin/env node +"use strict"; + +const http = require("node:http"); + +const port = Number.parseInt(process.env.PORT || "3000", 10); +const path = process.env.HEALTHCHECK_PATH || "/api/templates"; +const timeoutMs = Number.parseInt(process.env.HEALTHCHECK_TIMEOUT_MS || "3000", 10); + +const req = http.request( + { + host: "127.0.0.1", + port, + path, + method: "GET", + timeout: timeoutMs + }, + (res) => { + // Drain the response so the socket can close cleanly. + res.resume(); + + if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) { + process.exit(0); + return; + } + + process.exit(1); + } +); + +req.on("timeout", () => { + req.destroy(new Error("healthcheck timeout")); +}); + +req.on("error", () => { + process.exit(1); +}); + +req.end(); -- 2.49.1 From 8087daa518136459b41dd4c4f9ab8380545b3b90 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Sun, 19 Apr 2026 23:15:21 +0200 Subject: [PATCH 07/15] fix: update health check path to correct endpoint --- healthcheck.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/healthcheck.js b/healthcheck.js index 9febd4a..0e6b91a 100644 --- a/healthcheck.js +++ b/healthcheck.js @@ -4,7 +4,7 @@ const http = require("node:http"); const port = Number.parseInt(process.env.PORT || "3000", 10); -const path = process.env.HEALTHCHECK_PATH || "/api/templates"; +const path = process.env.HEALTHCHECK_PATH || "/api/health"; const timeoutMs = Number.parseInt(process.env.HEALTHCHECK_TIMEOUT_MS || "3000", 10); const req = http.request( -- 2.49.1 From 055f51aa553e5ed5a39a5c6743997a4dc7054865 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Mon, 20 Apr 2026 07:01:28 +0200 Subject: [PATCH 08/15] feat: implement Dockerfile, entrypoint, and health check for Node.js application --- Dockerfile => app-new/Dockerfile | 0 entrypoint.sh => app-new/entrypoint.sh | 0 healthcheck.js => app-new/healthcheck.js | 0 migration-plan/plan.md | 103 ----------------------- migration-plan/version-manifest.md | 57 ------------- 5 files changed, 160 deletions(-) rename Dockerfile => app-new/Dockerfile (100%) rename entrypoint.sh => app-new/entrypoint.sh (100%) rename healthcheck.js => app-new/healthcheck.js (100%) delete mode 100644 migration-plan/plan.md delete mode 100644 migration-plan/version-manifest.md diff --git a/Dockerfile b/app-new/Dockerfile similarity index 100% rename from Dockerfile rename to app-new/Dockerfile diff --git a/entrypoint.sh b/app-new/entrypoint.sh similarity index 100% rename from entrypoint.sh rename to app-new/entrypoint.sh diff --git a/healthcheck.js b/app-new/healthcheck.js similarity index 100% rename from healthcheck.js rename to app-new/healthcheck.js diff --git a/migration-plan/plan.md b/migration-plan/plan.md deleted file mode 100644 index 8400914..0000000 --- a/migration-plan/plan.md +++ /dev/null @@ -1,103 +0,0 @@ -## Plan: React + Vite Rewrite of Azure Image Chooser - -Rewrite the current Streamlit application into a two-tier web app (React + Vite frontend and Node.js backend) while preserving core image-discovery behavior (location -> publisher -> offer -> SKU -> version) and generated usage outputs, and redesigning UX and template architecture, with strict non-destructive workspace constraints. - -**Hard constraints** -1. Existing workspace files must remain untouched, except .gitignore. -2. All new application source must live under src/. -3. Build artifacts must be emitted only to dist/. -4. A new Dockerfile and entrypoint.sh must be added at the workspace root. -5. The container runtime must use Node.js 24 LTS on Debian trixie-slim (node:24-trixie-slim). -6. All new source code must be TypeScript and use the TypeScript 6 transpiler (latest revision). -7. Frontend UI must use plain Material UI v9.x.x. -8. All MUI-related questions and implementation decisions must be resolved using mui-mcp as the primary source/tool. -9. Frontend must use the latest stable React line (React 19.2.x), with no legacy compatibility or migration work included. -10. Docker is not available in the target environment; container lifecycle operations must use Apple-sponsored container CLI only. - -**Steps** -1. Phase 0 - Planning artifact handoff -1. After plan mode is turned off, copy plan artifacts to workspace directory migration-plan/ for future reference: - - migration-plan/plan.md - - migration-plan/version-manifest.md -2. Keep session/repo memory files as source-of-truth backups. - -1. Phase 1 - Baseline and migration contract -1. Capture current functional contract from existing app behavior in app/image-chooser.py: cascading selectors, semantic version sorting, empty-state behavior, and SKU export format. -2. Define backend API contract for frontend consumption: locations, publishers, offers, skus, versions, templates, rendered output, and SKU export endpoints, including error payloads. -3. Lock frontend framework prerequisites from current MUI status before scaffolding: Material UI v9.x.x, React 19.2.x (latest stable), Emotion styling engine defaults, and required companion packages. -4. Explicitly exclude legacy React compatibility paths and migration workarounds from scope (no legacy shims, no backward-compat migration tracks). -5. Define target repository layout under src/ for frontend and backend packages, with dist/ as the fixed artifact directory. -6. Define non-destructive execution guardrails: no edits to legacy files except .gitignore updates for node_modules and artifact outputs. - -1. Phase 2 - Node backend in src -1. Scaffold backend under src/backend in TypeScript (mandatory) with modules for Azure compute discovery, template catalog, rendering, and validation, compiled with TypeScript 6. -2. Implement Azure integration equivalent to current data loaders, including region_type=Physical filtering and conditional semantic version sorting when all versions match X.Y.Z. -3. Implement endpoint caching (TTL by endpoint+params) and structured logging. -4. Implement redesigned template subsystem with metadata model and render endpoint. -5. Add backend tests under src/backend aligned to the API contract. - -1. Phase 3 - React + Vite frontend in src -1. Scaffold frontend under src/frontend using Vite with TypeScript (mandatory), configure output directory to dist/, compile with TypeScript 6, use React 19.2.x (latest stable), and use plain Material UI v9.x.x as the UI component library. -2. Build cascading async selectors with deterministic reset behavior (location -> publisher -> offer -> sku -> version). -3. Implement API-driven state management (for example TanStack Query) with loading, empty, and error states. -4. Implement usage output UI with template selection, rendered snippet display, copy action, and SKU export display, using plain Material UI v9.x.x components and styling primitives (Emotion-based engine). -5. Add frontend tests under src/frontend for cascade behavior and output rendering. - -1. Phase 4 - Root runtime wrapper and cutover -1. Add new root Dockerfile that builds/runs the new src-based application stack on Node.js 24 LTS with Debian trixie-slim (node:24-trixie-slim), and ensure runtime commands are documented/executed via Apple container CLI (not Docker). -2. Add new root entrypoint.sh that starts the new runtime components. -3. Update .gitignore for node_modules, dist artifacts, and any new temporary outputs. -4. Validate core behavior parity against Streamlit baseline using representative selections and generated outputs. -5. Keep legacy assets in place (untouched) during and after migration unless separately approved for cleanup. - -**Parallelism and dependencies** -1. Phase 0 runs first and gates execution handoff artifacts in workspace. -2. Phase 1 blocks implementation. -3. After API contract freeze, backend (Phase 2) and frontend scaffold (Phase 3) can run in parallel. -4. Phase 4 depends on stable frontend/backend run commands and artifact paths. - -**Relevant files** -- /Users/slawek/src/azure-image-chooser/app/image-chooser.py - source-of-truth behavior reference only; do not modify. -- /Users/slawek/src/azure-image-chooser/app/templates.json - current template catalog reference only; do not modify. -- /Users/slawek/src/azure-image-chooser/app/templates/arm_vm.jsonc - output reference only; do not modify. -- /Users/slawek/src/azure-image-chooser/app/templates/azurerm_hcl.tpl - output reference only; do not modify. -- /Users/slawek/src/azure-image-chooser/app/templates/shell.tpl - output reference only; do not modify. -- /Users/slawek/src/azure-image-chooser/.gitignore - only existing file allowed to be changed. -- /Users/slawek/src/azure-image-chooser/src/ - new source tree for rewritten application. -- /Users/slawek/src/azure-image-chooser/dist/ - artifact output directory. -- /Users/slawek/src/azure-image-chooser/Dockerfile - new root runtime image definition. -- /Users/slawek/src/azure-image-chooser/entrypoint.sh - new root runtime entrypoint. - -**Verification** -1. Workspace contains migration-plan/plan.md and migration-plan/version-manifest.md after plan mode is off. -2. Git diff check confirms only new files plus .gitignore modifications; no edits in legacy files. -3. Backend tests pass for API contract, validation, filtering, sorting, and rendering. -4. Type-check/transpile verification passes with TypeScript 6 for both backend and frontend packages. -5. Frontend tests pass for selector cascade and output rendering. -6. Frontend dependency and implementation checks confirm plain Material UI v9.x.x is used (no alternate UI framework). -7. Verification confirms MUI installation prerequisites are met for React 19.2.x and Emotion packages. -8. Verification confirms there are no legacy compatibility layers or migration-specific workarounds in frontend dependencies/configuration. -9. Local run verifies UI flow and generated outputs match baseline behavior for representative scenarios. -10. Image build inspection via Apple container CLI confirms the runtime base image is Node.js 24 LTS on Debian trixie-slim (node:24-trixie-slim). -11. Artifact generation confirms outputs land only in dist/ directory. - -**Decisions** -- Use Node.js backend (confirmed). -- Keep only core functionality unchanged; UX and architecture can be redesigned (confirmed). -- Redesign template system now (confirmed). -- Enforce non-destructive migration: existing files untouched except .gitignore (confirmed). -- Place all new application code in src/ and add new root Dockerfile + entrypoint.sh (confirmed). -- Use Node.js 24 LTS on Debian trixie-slim as container runtime base image (confirmed). -- Use TypeScript-only source with TypeScript 6 transpiler across backend and frontend (confirmed). -- Use plain Material UI v9.x.x for frontend UI implementation (confirmed). -- Use mui-mcp as the primary tool/source for all MUI-related implementation questions (confirmed). -- Use latest stable React (19.2.x at planning time) and exclude legacy compatibility/migration paths (confirmed). -- Use Apple container CLI (macOS 26, Apple silicon) for container operations; no Docker dependency (confirmed). - -**Scope boundaries** -- In scope: functional core parity for image lookup and output generation, new frontend/backend architecture in src/, root runtime wrappers, and .gitignore updates. -- Out of scope: modifying existing legacy app/ and terraform/ files, removing legacy code, or altering old deployment definitions. - -**Further Considerations** -1. Artifact output is fixed to dist/ for consistency with the chosen convention. -2. If backend and frontend are separate runtime processes, define entrypoint process model early (single-process with static serve vs process manager). diff --git a/migration-plan/version-manifest.md b/migration-plan/version-manifest.md deleted file mode 100644 index 6ed2ee3..0000000 --- a/migration-plan/version-manifest.md +++ /dev/null @@ -1,57 +0,0 @@ -## Version Manifest: React + Vite + MUI Rewrite - -### Environment and container tooling -- macOS: 26 (host requirement) -- Container CLI: apple/container (latest release observed: 0.11.0) -- Container runtime command: container (Docker unavailable by constraint) -- Base image: node:24-trixie-slim (Node 24 LTS on Debian trixie-slim; OCI-compatible) - -### Frontend stack -- Node.js runtime: 24.x LTS -- React: 19.2.5 -- React DOM: 19.2.5 -- TypeScript: 6.0.3 -- Vite: 8.0.8 -- @vitejs/plugin-react: 6.0.1 -- @types/react: 19.2.14 -- @types/react-dom: 19.2.3 -- Material UI core: @mui/material 9.0.0 -- Material UI styling engine: @emotion/react 11.14.0, @emotion/styled 11.14.1 -- Optional state-fetching utility selected in plan: @tanstack/react-query 5.99.2 - -### Backend stack (planned) -- Node.js runtime: 24.x LTS -- Express: 5.2.1 -- Zod: 4.3.6 -- TypeScript: 6.0.3 - -### MUI knowledge/tooling -- MUI docs index for LLM consumption: https://mui.com/material-ui/llms.txt -- MUI MCP package invocation model: npx -y @mui/mcp@latest - -## Compatibility Audit - -### Hard compatibility checks -1. Node 24 vs Vite 8: compatible (Vite requires Node 20.19+ or 22.12+). -2. React 19.2.x vs MUI 9: compatible (MUI supports React ^17 || ^18 || ^19). -3. React 19.2.x vs react-dom 19.2.5: compatible (same major/minor line). -4. TypeScript 6 vs MUI 9: compatible (MUI requires TS >=4.9). -5. Node 24 vs Express 5.2.1: compatible (Express requires Node >=18). -6. Apple container vs Dockerfile workflow: compatible (container build supports Dockerfile and Containerfile). - -### Environment-specific incompatibilities / risks -1. Docker command compatibility: incompatible by environment constraint. - - Any script that assumes docker build/run must be translated to container build/run. -2. Apple container stability: medium risk. - - Project is pre-1.0 and may introduce breaking changes in minor releases. - - Mitigation: pin CLI release during execution and document upgrade policy. -3. Slim Debian runtime package availability: low-to-medium operational risk. - - trixie-slim is smaller than full images and may omit convenience packages. - - Mitigation: install only required OS packages explicitly and validate build/runtime dependencies. -4. @mui/mcp@latest floating version: reproducibility risk. - - Mitigation: pin exact MCP package version for CI/repeatable local behavior once selected. - -### Migration-policy compatibility with user constraints -1. Latest stable React only: satisfied by React 19.2.x. -2. No legacy/migration support tracks: satisfied; no React 18 fallback assumptions included. -3. MUI usage policy: satisfied with plain Material UI v9.x.x and mui-mcp-first guidance. -- 2.49.1 From 0d12f24dec81f368e25407c9d3bed55bdcbc7a36 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Mon, 20 Apr 2026 07:15:16 +0200 Subject: [PATCH 09/15] Moved old files to a new directory. --- {app => app-streamlit}/Dockerfile | 0 {app => app-streamlit}/entrypoint.sh | 0 {app => app-streamlit}/image-chooser.py | 0 {app => app-streamlit}/requirements.txt | 0 {app => app-streamlit}/templates.json | 0 {app => app-streamlit}/templates/arm_vm.jsonc | 0 {app => app-streamlit}/templates/azurerm_hcl.tpl | 0 {app => app-streamlit}/templates/shell.tpl | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {app => app-streamlit}/Dockerfile (100%) rename {app => app-streamlit}/entrypoint.sh (100%) rename {app => app-streamlit}/image-chooser.py (100%) rename {app => app-streamlit}/requirements.txt (100%) rename {app => app-streamlit}/templates.json (100%) rename {app => app-streamlit}/templates/arm_vm.jsonc (100%) rename {app => app-streamlit}/templates/azurerm_hcl.tpl (100%) rename {app => app-streamlit}/templates/shell.tpl (100%) diff --git a/app/Dockerfile b/app-streamlit/Dockerfile similarity index 100% rename from app/Dockerfile rename to app-streamlit/Dockerfile diff --git a/app/entrypoint.sh b/app-streamlit/entrypoint.sh similarity index 100% rename from app/entrypoint.sh rename to app-streamlit/entrypoint.sh diff --git a/app/image-chooser.py b/app-streamlit/image-chooser.py similarity index 100% rename from app/image-chooser.py rename to app-streamlit/image-chooser.py diff --git a/app/requirements.txt b/app-streamlit/requirements.txt similarity index 100% rename from app/requirements.txt rename to app-streamlit/requirements.txt diff --git a/app/templates.json b/app-streamlit/templates.json similarity index 100% rename from app/templates.json rename to app-streamlit/templates.json diff --git a/app/templates/arm_vm.jsonc b/app-streamlit/templates/arm_vm.jsonc similarity index 100% rename from app/templates/arm_vm.jsonc rename to app-streamlit/templates/arm_vm.jsonc diff --git a/app/templates/azurerm_hcl.tpl b/app-streamlit/templates/azurerm_hcl.tpl similarity index 100% rename from app/templates/azurerm_hcl.tpl rename to app-streamlit/templates/azurerm_hcl.tpl diff --git a/app/templates/shell.tpl b/app-streamlit/templates/shell.tpl similarity index 100% rename from app/templates/shell.tpl rename to app-streamlit/templates/shell.tpl -- 2.49.1 From 9100f71ab58784f60799f4be02f3cb6e443f02de Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Mon, 20 Apr 2026 07:17:30 +0200 Subject: [PATCH 10/15] Moved the NodeJS version of the application to the app/ directory. --- {app-new => app}/Dockerfile | 0 {app-new => app}/backend/package-lock.json | 0 {app-new => app}/backend/package.json | 0 {app-new => app}/backend/src/azure-service.ts | 0 {app-new => app}/backend/src/cache.ts | 0 {app-new => app}/backend/src/server.ts | 0 {app-new => app}/backend/src/template-service.ts | 0 {app-new => app}/backend/src/types.ts | 0 {app-new => app}/backend/src/version.ts | 0 {app-new => app}/backend/test/version.test.ts | 0 {app-new => app}/backend/tsconfig.json | 0 {app-new => app}/entrypoint.sh | 0 {app-new => app}/frontend/index.html | 0 {app-new => app}/frontend/package-lock.json | 0 {app-new => app}/frontend/package.json | 0 {app-new => app}/frontend/src/App.tsx | 0 {app-new => app}/frontend/src/api.ts | 0 {app-new => app}/frontend/src/main.tsx | 0 {app-new => app}/frontend/src/types.ts | 0 {app-new => app}/frontend/test/app.test.tsx | 0 {app-new => app}/frontend/test/setup.ts | 0 {app-new => app}/frontend/tsconfig.json | 0 {app-new => app}/frontend/vite.config.ts | 0 {app-new => app}/frontend/vitest.config.ts | 0 {app-new => app}/healthcheck.js | 0 {app-new => app}/templates.json | 0 {app-new => app}/templates/arm_vm.jsonc | 0 {app-new => app}/templates/azurerm_hcl.tpl | 0 {app-new => app}/templates/bicep_vm.tpl | 0 {app-new => app}/templates/shell.tpl | 0 30 files changed, 0 insertions(+), 0 deletions(-) rename {app-new => app}/Dockerfile (100%) rename {app-new => app}/backend/package-lock.json (100%) rename {app-new => app}/backend/package.json (100%) rename {app-new => app}/backend/src/azure-service.ts (100%) rename {app-new => app}/backend/src/cache.ts (100%) rename {app-new => app}/backend/src/server.ts (100%) rename {app-new => app}/backend/src/template-service.ts (100%) rename {app-new => app}/backend/src/types.ts (100%) rename {app-new => app}/backend/src/version.ts (100%) rename {app-new => app}/backend/test/version.test.ts (100%) rename {app-new => app}/backend/tsconfig.json (100%) rename {app-new => app}/entrypoint.sh (100%) rename {app-new => app}/frontend/index.html (100%) rename {app-new => app}/frontend/package-lock.json (100%) rename {app-new => app}/frontend/package.json (100%) rename {app-new => app}/frontend/src/App.tsx (100%) rename {app-new => app}/frontend/src/api.ts (100%) rename {app-new => app}/frontend/src/main.tsx (100%) rename {app-new => app}/frontend/src/types.ts (100%) rename {app-new => app}/frontend/test/app.test.tsx (100%) rename {app-new => app}/frontend/test/setup.ts (100%) rename {app-new => app}/frontend/tsconfig.json (100%) rename {app-new => app}/frontend/vite.config.ts (100%) rename {app-new => app}/frontend/vitest.config.ts (100%) rename {app-new => app}/healthcheck.js (100%) rename {app-new => app}/templates.json (100%) rename {app-new => app}/templates/arm_vm.jsonc (100%) rename {app-new => app}/templates/azurerm_hcl.tpl (100%) rename {app-new => app}/templates/bicep_vm.tpl (100%) rename {app-new => app}/templates/shell.tpl (100%) diff --git a/app-new/Dockerfile b/app/Dockerfile similarity index 100% rename from app-new/Dockerfile rename to app/Dockerfile diff --git a/app-new/backend/package-lock.json b/app/backend/package-lock.json similarity index 100% rename from app-new/backend/package-lock.json rename to app/backend/package-lock.json diff --git a/app-new/backend/package.json b/app/backend/package.json similarity index 100% rename from app-new/backend/package.json rename to app/backend/package.json diff --git a/app-new/backend/src/azure-service.ts b/app/backend/src/azure-service.ts similarity index 100% rename from app-new/backend/src/azure-service.ts rename to app/backend/src/azure-service.ts diff --git a/app-new/backend/src/cache.ts b/app/backend/src/cache.ts similarity index 100% rename from app-new/backend/src/cache.ts rename to app/backend/src/cache.ts diff --git a/app-new/backend/src/server.ts b/app/backend/src/server.ts similarity index 100% rename from app-new/backend/src/server.ts rename to app/backend/src/server.ts diff --git a/app-new/backend/src/template-service.ts b/app/backend/src/template-service.ts similarity index 100% rename from app-new/backend/src/template-service.ts rename to app/backend/src/template-service.ts diff --git a/app-new/backend/src/types.ts b/app/backend/src/types.ts similarity index 100% rename from app-new/backend/src/types.ts rename to app/backend/src/types.ts diff --git a/app-new/backend/src/version.ts b/app/backend/src/version.ts similarity index 100% rename from app-new/backend/src/version.ts rename to app/backend/src/version.ts diff --git a/app-new/backend/test/version.test.ts b/app/backend/test/version.test.ts similarity index 100% rename from app-new/backend/test/version.test.ts rename to app/backend/test/version.test.ts diff --git a/app-new/backend/tsconfig.json b/app/backend/tsconfig.json similarity index 100% rename from app-new/backend/tsconfig.json rename to app/backend/tsconfig.json diff --git a/app-new/entrypoint.sh b/app/entrypoint.sh similarity index 100% rename from app-new/entrypoint.sh rename to app/entrypoint.sh diff --git a/app-new/frontend/index.html b/app/frontend/index.html similarity index 100% rename from app-new/frontend/index.html rename to app/frontend/index.html diff --git a/app-new/frontend/package-lock.json b/app/frontend/package-lock.json similarity index 100% rename from app-new/frontend/package-lock.json rename to app/frontend/package-lock.json diff --git a/app-new/frontend/package.json b/app/frontend/package.json similarity index 100% rename from app-new/frontend/package.json rename to app/frontend/package.json diff --git a/app-new/frontend/src/App.tsx b/app/frontend/src/App.tsx similarity index 100% rename from app-new/frontend/src/App.tsx rename to app/frontend/src/App.tsx diff --git a/app-new/frontend/src/api.ts b/app/frontend/src/api.ts similarity index 100% rename from app-new/frontend/src/api.ts rename to app/frontend/src/api.ts diff --git a/app-new/frontend/src/main.tsx b/app/frontend/src/main.tsx similarity index 100% rename from app-new/frontend/src/main.tsx rename to app/frontend/src/main.tsx diff --git a/app-new/frontend/src/types.ts b/app/frontend/src/types.ts similarity index 100% rename from app-new/frontend/src/types.ts rename to app/frontend/src/types.ts diff --git a/app-new/frontend/test/app.test.tsx b/app/frontend/test/app.test.tsx similarity index 100% rename from app-new/frontend/test/app.test.tsx rename to app/frontend/test/app.test.tsx diff --git a/app-new/frontend/test/setup.ts b/app/frontend/test/setup.ts similarity index 100% rename from app-new/frontend/test/setup.ts rename to app/frontend/test/setup.ts diff --git a/app-new/frontend/tsconfig.json b/app/frontend/tsconfig.json similarity index 100% rename from app-new/frontend/tsconfig.json rename to app/frontend/tsconfig.json diff --git a/app-new/frontend/vite.config.ts b/app/frontend/vite.config.ts similarity index 100% rename from app-new/frontend/vite.config.ts rename to app/frontend/vite.config.ts diff --git a/app-new/frontend/vitest.config.ts b/app/frontend/vitest.config.ts similarity index 100% rename from app-new/frontend/vitest.config.ts rename to app/frontend/vitest.config.ts diff --git a/app-new/healthcheck.js b/app/healthcheck.js similarity index 100% rename from app-new/healthcheck.js rename to app/healthcheck.js diff --git a/app-new/templates.json b/app/templates.json similarity index 100% rename from app-new/templates.json rename to app/templates.json diff --git a/app-new/templates/arm_vm.jsonc b/app/templates/arm_vm.jsonc similarity index 100% rename from app-new/templates/arm_vm.jsonc rename to app/templates/arm_vm.jsonc diff --git a/app-new/templates/azurerm_hcl.tpl b/app/templates/azurerm_hcl.tpl similarity index 100% rename from app-new/templates/azurerm_hcl.tpl rename to app/templates/azurerm_hcl.tpl diff --git a/app-new/templates/bicep_vm.tpl b/app/templates/bicep_vm.tpl similarity index 100% rename from app-new/templates/bicep_vm.tpl rename to app/templates/bicep_vm.tpl diff --git a/app-new/templates/shell.tpl b/app/templates/shell.tpl similarity index 100% rename from app-new/templates/shell.tpl rename to app/templates/shell.tpl -- 2.49.1 From 4f97dc33621516d9e667172b437cd6c671c15444 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Mon, 20 Apr 2026 07:21:56 +0200 Subject: [PATCH 11/15] refactor: update findAppRoot function and adjust Dockerfile paths for consistency --- app/Dockerfile | 6 +++--- app/backend/src/server.ts | 6 +++--- app/backend/src/template-service.ts | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/Dockerfile b/app/Dockerfile index 98f291a..61fd09c 100644 --- a/app/Dockerfile +++ b/app/Dockerfile @@ -2,12 +2,12 @@ FROM node:24-trixie-slim AS build WORKDIR /app -COPY app-new/backend/package*.json backend/ -COPY app-new/frontend/package*.json frontend/ +COPY backend/package*.json backend/ +COPY frontend/package*.json frontend/ RUN cd backend && npm ci RUN cd frontend && npm ci -COPY app-new . +COPY . . RUN cd backend && npm run build RUN cd frontend && npm run build diff --git a/app/backend/src/server.ts b/app/backend/src/server.ts index 561b92a..ff0a469 100644 --- a/app/backend/src/server.ts +++ b/app/backend/src/server.ts @@ -6,7 +6,7 @@ import { z } from "zod"; import { AzureImageService } from "./azure-service"; import { TemplateService } from "./template-service"; -const findAppNewRoot = (): string => { +const findAppRoot = (): string => { const candidates = [join(__dirname, "../../.."), join(__dirname, "../..")]; for (const candidate of candidates) { @@ -15,7 +15,7 @@ const findAppNewRoot = (): string => { } } - throw new Error("Unable to resolve app-new root"); + throw new Error("Unable to resolve app root"); }; const queryLocation = z.object({ location: z.string().min(1) }); @@ -143,7 +143,7 @@ const makeApp = () => { res.status(500).json({ message }); }); - const frontendRoot = join(findAppNewRoot(), "dist/frontend"); + const frontendRoot = join(findAppRoot(), "dist/frontend"); if (existsSync(frontendRoot)) { app.use(express.static(frontendRoot)); app.get(/^(?!\/api).*/, (_req, res) => { diff --git a/app/backend/src/template-service.ts b/app/backend/src/template-service.ts index 28434a4..f119c4d 100644 --- a/app/backend/src/template-service.ts +++ b/app/backend/src/template-service.ts @@ -3,7 +3,7 @@ import { join } from "node:path"; import nunjucks from "nunjucks"; import type { ImageSelection, UsageTemplate } from "./types"; -const findAppNewRoot = (): string => { +const findAppRoot = (): string => { const candidates = [join(__dirname, "../../.."), join(__dirname, "../..")]; for (const candidate of candidates) { @@ -12,19 +12,19 @@ const findAppNewRoot = (): string => { } } - throw new Error("Unable to resolve app-new template root"); + throw new Error("Unable to resolve app template root"); }; export class TemplateService { - private readonly appNewRoot = findAppNewRoot(); + private readonly appRoot = findAppRoot(); - private readonly env = nunjucks.configure(join(this.appNewRoot, "templates"), { + private readonly env = nunjucks.configure(join(this.appRoot, "templates"), { autoescape: false, noCache: true }); private readonly templates: UsageTemplate[] = JSON.parse( - readFileSync(join(this.appNewRoot, "templates.json"), "utf8") + readFileSync(join(this.appRoot, "templates.json"), "utf8") ) as UsageTemplate[]; public getTemplates(): UsageTemplate[] { -- 2.49.1 From 85dd574991f042d825eca8765aeca5808377e4cd Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Mon, 20 Apr 2026 07:24:53 +0200 Subject: [PATCH 12/15] chore: update package versions to 1.0.0 and add LICENSE file --- LICENSE | 21 +++++++++++++++++++++ app/backend/package.json | 4 +++- app/frontend/package.json | 4 +++- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a08c824 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Sławomir Koszewski + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/app/backend/package.json b/app/backend/package.json index 8d7b712..b69956a 100644 --- a/app/backend/package.json +++ b/app/backend/package.json @@ -1,6 +1,8 @@ { "name": "azure-image-chooser-backend", - "version": "0.1.0", + "version": "1.0.0", + "author": "Sławomir Koszewski", + "license": "MIT", "private": true, "type": "commonjs", "scripts": { diff --git a/app/frontend/package.json b/app/frontend/package.json index 667f69d..8136d14 100644 --- a/app/frontend/package.json +++ b/app/frontend/package.json @@ -1,6 +1,8 @@ { "name": "azure-image-chooser-frontend", - "version": "0.1.0", + "version": "1.0.0", + "author": "Sławomir Koszewski", + "license": "MIT", "private": true, "type": "module", "scripts": { -- 2.49.1 From 5561f109585b9ce5103322477195b51fc97646ba Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Mon, 20 Apr 2026 07:25:31 +0200 Subject: [PATCH 13/15] Moved old root repository files. --- README.md => app-streamlit/README.md | 0 build.sh => app-streamlit/build.sh | 0 run-container.sh => app-streamlit/run-container.sh | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename README.md => app-streamlit/README.md (100%) rename build.sh => app-streamlit/build.sh (100%) rename run-container.sh => app-streamlit/run-container.sh (100%) diff --git a/README.md b/app-streamlit/README.md similarity index 100% rename from README.md rename to app-streamlit/README.md diff --git a/build.sh b/app-streamlit/build.sh similarity index 100% rename from build.sh rename to app-streamlit/build.sh diff --git a/run-container.sh b/app-streamlit/run-container.sh similarity index 100% rename from run-container.sh rename to app-streamlit/run-container.sh -- 2.49.1 From 287dfc0b8b07f3e0b43cc99b2311d96387beaf53 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Mon, 20 Apr 2026 07:35:02 +0200 Subject: [PATCH 14/15] docs: add README.md with setup instructions and environment variables --- README.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..51bbd16 --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +# Azure Image Chooser + +Azure Image Chooser is a Node.js application that allows users to select Azure VM images from the Azure Marketplace. + +Azure Image Chooser has a TypeScript backend (Express) and a React frontend (Vite). At the time of writing this, Node.js 24 is used by the container image and is the recommended version for local runs. + +You can run it on your local machine or deploy to any platform that runs containers. + +## Environment variables + +Required for both local and container run: + +- `AZURE_SUBSCRIPTION_ID`: Azure subscription used for Marketplace queries. + +Authentication variables (only needed when identity is not provided by the environment): + +- `AZURE_TENANT_ID`: Microsoft Entra tenant ID for service principal auth. +- `AZURE_CLIENT_ID`: Service principal (app registration) client ID. +- `AZURE_CLIENT_SECRET`: Service principal client secret. + +Optional: + +- `PORT`: Backend listening port. Default is `3000`. + +Local run notes: + +- `AZURE_SUBSCRIPTION_ID` must be set. +- Use either Azure CLI login (`az login`) or the service principal variables above. + +Container run notes: + +- `AZURE_SUBSCRIPTION_ID` must be passed to the container. +- Pass `AZURE_TENANT_ID`, `AZURE_CLIENT_ID`, and `AZURE_CLIENT_SECRET` unless your container runtime provides identity (for example Managed Identity / Workload Identity). + +## Running on a local machine + +Load environment variables from the repository environment file: + +```shell +set -a; source azure.env; set +a +``` + +Execute the following commands to install dependencies, build, and run the app: + +```shell +cd app/backend +npm ci + +cd ../frontend +npm ci + +cd backend +npm run build + +cd ../frontend +npm run build + +cd ../backend +npm run start +``` + +The app will block the terminal and start a web server on port 3000. Open http://localhost:3000 in your browser. + +## Running with Docker + +Build and run the container: + +```shell +docker build -t azure-image-chooser-node ./app +docker run --rm -p 3000:3000 \ + -e AZURE_SUBSCRIPTION_ID="subscription_id" \ + -e AZURE_CLIENT_ID="client_id" \ + -e AZURE_CLIENT_SECRET="client_secret" \ + -e AZURE_TENANT_ID="tenant_id" \ + azure-image-chooser-node +``` + +> NOTE: As with local runs, you can omit AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID when the runtime environment already provides Azure credentials. -- 2.49.1 From 3c4e10eda77fc507f19c51a530b84ed7deb85f16 Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Mon, 20 Apr 2026 07:54:46 +0200 Subject: [PATCH 15/15] refactor: optimize Dockerfile by restructuring build steps and improving clarity --- app/Dockerfile | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/app/Dockerfile b/app/Dockerfile index 61fd09c..d7b3a9b 100644 --- a/app/Dockerfile +++ b/app/Dockerfile @@ -1,34 +1,50 @@ +# Build stage FROM node:24-trixie-slim AS build WORKDIR /app -COPY backend/package*.json backend/ -COPY frontend/package*.json frontend/ -RUN cd backend && npm ci -RUN cd frontend && npm ci +# Copy sources required for build +COPY backend/*.json backend/ +COPY backend/src backend/src -COPY . . +COPY frontend/*.json frontend/ +COPY frontend/vite.config.ts frontend/vite.config.ts +COPY frontend/index.html frontend/index.html +COPY frontend/src frontend/src +COPY frontend/test frontend/test -RUN cd backend && npm run build -RUN cd frontend && npm run build -RUN cd backend && npm prune --omit=dev +COPY templates templates +COPY templates.json templates.json +# Build backend and frontend +RUN cd backend && npm ci && npm run build && npm prune --omit=dev +RUN cd frontend && npm ci && npm run build + +# Build the container FROM node:24-trixie-slim AS runtime WORKDIR /app -ENV NODE_ENV=production -ENV PORT=3000 +# Copy built artifacts COPY --from=build /app/dist dist COPY --from=build /app/templates templates COPY --from=build /app/templates.json templates.json COPY --from=build /app/backend/node_modules dist/backend/node_modules -WORKDIR /app +# Copy entrypoint and healthcheck scripts COPY entrypoint.sh entrypoint.sh COPY healthcheck.js healthcheck.js + +# Ensure entrypoint script is executable RUN chmod +x entrypoint.sh +# Set environment variables and expose port +ENV NODE_ENV=production +ENV PORT=3000 EXPOSE 3000 + +# Configure health check HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 CMD ["node", "/app/healthcheck.js"] + +# Configure entrypoint ENTRYPOINT ["./entrypoint.sh"] -- 2.49.1