From b5bdde23c46a57039b293a556fbe3164abd50e1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20=C5=9Al=C4=99zak?= <102536422+filipslezaklab@users.noreply.github.com> Date: Mon, 16 Dec 2024 15:07:32 +0100 Subject: [PATCH] location devices ui static (#907) * add standalone device modal init * add standalone device modal complete UI * update ui module * remove web3 remnants * devices list item actions * upgrade node to 22 in Dockerfile * update ui module * up --- Dockerfile | 2 +- web/.eslintrc.cjs | 2 +- web/.gitignore | 1 + web/.nvmrc | 2 +- web/package.json | 109 +- web/pnpm-lock.yaml | 4943 +++++++---------- web/src/components/App/App.tsx | 11 + web/src/i18n/en/index.ts | 127 +- web/src/i18n/i18n-types.ts | 543 +- web/src/i18n/pl/index.ts | 11 - .../pages/auth/MFARoute/MFAWeb3/MFAWeb3.tsx | 126 - .../pages/auth/shared/hooks/useMFAStore.tsx | 3 +- web/src/pages/devices/DevicesPage.tsx | 76 + .../devices/components/AddDeviceIcon.tsx | 49 + .../components/DevicesList/DevicesList.tsx | 129 + .../modals/ConfirmDeviceDeleteModal.tsx | 37 + .../devices/components/DevicesList/style.scss | 105 + .../hooks/useDeleteStandaloneDeviceModal.tsx | 30 + .../pages/devices/hooks/useDevicesPage.tsx | 33 + web/src/pages/devices/mock.ts | 338 ++ web/src/pages/devices/style.scss | 0 web/src/pages/devices/types.ts | 0 .../OverviewHeader/OverviewHeader.tsx | 30 +- web/src/pages/overview/OverviewPage.tsx | 41 +- .../AddStandaloneDeviceModal.tsx | 65 + .../steps/FinishCliStep/FinishCliStep.tsx | 60 + .../steps/FinishCliStep/style.scss | 21 + .../FinishManualStep/FinishManualStep.tsx | 173 + .../steps/FinishManualStep/style.scss | 51 + .../steps/MethodStep/MethodStep.tsx | 167 + .../steps/MethodStep/style.scss | 15 + .../steps/SetupCliStep/SetupCliStep.tsx | 157 + .../steps/SetupManualStep/SetupManualStep.tsx | 184 + .../steps/SetupManualStep/style.scss | 7 + .../modals/AddStandaloneDeviceModal/store.tsx | 50 + .../AddStandaloneDeviceModal/style.scss | 59 + .../modals/AddStandaloneDeviceModal/types.ts | 17 + .../BrandingSettings/BrandingSettings.tsx | 4 +- .../components/UsersList/style.scss | 4 +- .../ManagementPageLayout.tsx | 53 + .../Layout/ManagementPageLayout/style.scss | 80 + .../Layout/ManagementPageLayout/types.ts | 20 + .../Layout/VersionUpdateToast/types.ts | 7 + web/src/shared/defguard-ui | 2 +- .../shared/hooks/store/useUpdatesStore.tsx | 36 +- web/src/shared/hooks/useApi.tsx | 22 - web/src/shared/mutations.ts | 2 - web/src/shared/types.ts | 16 +- web/src/shared/validators.ts | 18 +- .../Web3ContextProvider.tsx | 151 - .../shared/web3/Web3ContextProvider/types.ts | 3 - .../web3/Web3ContextProvider/web3Context.ts | 16 - web/src/shared/web3/hooks/useWeb3Account.ts | 16 - .../shared/web3/hooks/useWeb3Connection.ts | 17 - web/src/shared/web3/hooks/useWeb3Signer.ts | 11 - web/src/web3.d.ts | 12 - web/svgo.config.json | 13 - web/tsconfig.app.json | 39 + web/tsconfig.json | 40 +- web/tsconfig.node.json | 28 +- 60 files changed, 4738 insertions(+), 3646 deletions(-) create mode 100644 web/.gitignore delete mode 100644 web/src/pages/auth/MFARoute/MFAWeb3/MFAWeb3.tsx create mode 100644 web/src/pages/devices/DevicesPage.tsx create mode 100644 web/src/pages/devices/components/AddDeviceIcon.tsx create mode 100644 web/src/pages/devices/components/DevicesList/DevicesList.tsx create mode 100644 web/src/pages/devices/components/DevicesList/modals/ConfirmDeviceDeleteModal.tsx create mode 100644 web/src/pages/devices/components/DevicesList/style.scss create mode 100644 web/src/pages/devices/hooks/useDeleteStandaloneDeviceModal.tsx create mode 100644 web/src/pages/devices/hooks/useDevicesPage.tsx create mode 100644 web/src/pages/devices/mock.ts create mode 100644 web/src/pages/devices/style.scss create mode 100644 web/src/pages/devices/types.ts create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/AddStandaloneDeviceModal.tsx create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishCliStep/FinishCliStep.tsx create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishCliStep/style.scss create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishManualStep/FinishManualStep.tsx create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishManualStep/style.scss create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/MethodStep/MethodStep.tsx create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/MethodStep/style.scss create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupCliStep/SetupCliStep.tsx create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupManualStep/SetupManualStep.tsx create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupManualStep/style.scss create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/store.tsx create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/style.scss create mode 100644 web/src/pages/overview/modals/AddStandaloneDeviceModal/types.ts create mode 100644 web/src/shared/components/Layout/ManagementPageLayout/ManagementPageLayout.tsx create mode 100644 web/src/shared/components/Layout/ManagementPageLayout/style.scss create mode 100644 web/src/shared/components/Layout/ManagementPageLayout/types.ts create mode 100644 web/src/shared/components/Layout/VersionUpdateToast/types.ts delete mode 100644 web/src/shared/web3/Web3ContextProvider/Web3ContextProvider.tsx delete mode 100644 web/src/shared/web3/Web3ContextProvider/types.ts delete mode 100644 web/src/shared/web3/Web3ContextProvider/web3Context.ts delete mode 100644 web/src/shared/web3/hooks/useWeb3Account.ts delete mode 100644 web/src/shared/web3/hooks/useWeb3Connection.ts delete mode 100644 web/src/shared/web3/hooks/useWeb3Signer.ts delete mode 100644 web/src/web3.d.ts delete mode 100644 web/svgo.config.json create mode 100644 web/tsconfig.app.json diff --git a/Dockerfile b/Dockerfile index f56c358e3..95124babb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20-alpine as web +FROM node:22-alpine as web WORKDIR /app COPY web/package.json web/pnpm-lock.yaml web/.npmrc . diff --git a/web/.eslintrc.cjs b/web/.eslintrc.cjs index 9deeca903..72cf8bff1 100644 --- a/web/.eslintrc.cjs +++ b/web/.eslintrc.cjs @@ -16,7 +16,7 @@ module.exports = { parserOptions: { ecmaVersion: 'latest', sourceType: 'module', - project: ['./tsconfig.json', './tsconfig.node.json'], + project: ['./tsconfig.json', './tsconfig.node.json', './tsconfig.app.json'], tsconfigRootDir: __dirname, }, plugins: ['react-refresh', 'react-hooks', 'simple-import-sort'], diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 000000000..07c27a65e --- /dev/null +++ b/web/.gitignore @@ -0,0 +1 @@ +*.local* diff --git a/web/.nvmrc b/web/.nvmrc index f1ec9875f..53d1c14db 100644 --- a/web/.nvmrc +++ b/web/.nvmrc @@ -1 +1 @@ -v21.6 +v22 diff --git a/web/package.json b/web/package.json index 8b284ff41..dbffb4a94 100644 --- a/web/package.json +++ b/web/package.json @@ -8,13 +8,9 @@ "generate-translation-types": "typesafe-i18n --no-watch", "lint": "eslint -c ./.eslintrc.cjs --ignore-path .eslintignore --ext .ts --ext .tsx src/ && prettier --check 'src/**/*.{ts,tsx,scss}' && tsc", "fix": "prettier -w 'src/**/*.{ts,tsx,scss}' && eslint -c ./.eslintrc.cjs --ignore-path .eslintignore --fix --ext .ts --ext .tsx src/", - "parse-core-svgs": "svgr --no-index --jsx-runtime 'automatic' --svgo-config ./svgo.config.json --prettier-config ./.prettierrc --out-dir ./src/shared/components/svg/ --typescript ./src/shared/images/svg/", - "parse-ui-svgs": "svgr --no-index --jsx-runtime 'automatic' --svgo-config ./svgo.config.json --prettier-config ./.prettierrc --out-dir ./src/shared/defguard-ui/components/svg/ --typescript ./src/shared/defguard-ui/images/svg/", - "parse-svgs": "pnpm parse-ui-svgs && pnpm parse-core-svgs", "build-doc-ci": "typedoc --readme ./docs/README.md --out ./docs --entryPointStrategy expand --tsconfig ./tsconfig.json ./src/shared/components/layout ./src/shared/components/modals ./src/shared/components/Router ./src/shared/components/Toasts", "typesafe-i18n": "typesafe-i18n", "vite": "vite", - "svgr": "svgr", "eslint": "eslint", "prettier": "prettier" }, @@ -35,118 +31,101 @@ "ignoreMissing": [ "react-native" ] - }, - "overrides": { - "rollup": "npm:@rollup/wasm-node" } }, "dependencies": { - "@floating-ui/react": "^0.26.7", + "@floating-ui/react": "^0.27.0", "@github/webauthn-json": "^2.1.1", - "@hookform/resolvers": "^3.3.4", + "@hookform/resolvers": "^3.9.1", "@ladle/react": "^4.0.2", - "@metamask/detect-provider": "^2.0.0", "@react-rxjs/core": "^0.10.7", - "@stablelib/base64": "^1.0.1", - "@stablelib/x25519": "^1.0.3", + "@stablelib/base64": "^2.0.0", + "@stablelib/x25519": "^2.0.0", "@tanstack/query-core": "^4.36.1", "@tanstack/react-query": "^4.36.1", "@tanstack/react-virtual": "3.0.0-beta.9", "@tanstack/virtual-core": "3.0.0-beta.9", - "@tauri-apps/api": "^1.5.3", - "@types/react-virtualized-auto-sizer": "^1.0.4", - "@types/react-window": "^1.8.8", - "@vitejs/plugin-legacy": "^5.3.0", - "@vitejs/plugin-react": "^4.2.1", - "axios": "^1.6.7", - "byte-size": "^8.1.1", + "axios": "^1.7.9", + "byte-size": "^9.0.1", "classnames": "^2.5.1", - "dayjs": "^1.11.10", + "clsx": "^2.1.1", + "dayjs": "^1.11.13", "detect-browser": "^5.3.0", - "ethers": "^6.10.0", "events": "^3.3.0", "fast-deep-equal": "^3.1.3", "file-saver": "^2.0.5", "framer-motion": "^11.0.3", "get-text-width": "^1.0.3", "hex-rgb": "^5.0.0", - "html-react-parser": "^5.1.1", + "html-react-parser": "^5.2.0", "ipaddr.js": "^2.2.0", - "itertools": "^2.2.3", + "itertools": "^2.3.2", "lodash-es": "^4.17.21", - "numbro": "^2.4.0", - "qrcode": "^1.5.3", - "radash": "^11.0.0", + "numbro": "^2.5.0", + "qrcode": "^1.5.4", + "radash": "^12.1.0", "react": "^18.2.0", - "react-click-away-listener": "^2.2.3", + "react-click-away-listener": "^2.2.4", "react-dom": "^18.2.0", - "react-hook-form": "^7.49.3", + "react-hook-form": "^7.54.0", "react-idle-timer": "^5.7.2", "react-is": "^18.2.0", - "react-loading-skeleton": "^3.3.1", + "react-loading-skeleton": "^3.5.0", "react-markdown": "^9.0.1", - "react-qr-code": "^2.0.12", + "react-qr-code": "^2.0.15", + "react-resize-detector": "^12.0.1", "react-router": "^6.21.3", "react-router-dom": "^6.21.3", - "react-virtualized-auto-sizer": "^1.0.21", + "react-tracked": "^2.0.1", + "react-virtualized-auto-sizer": "^1.0.24", "react-window": "^1.8.10", "recharts": "^2.10.4", "rxjs": "^7.8.1", - "terser": "^5.27.0", "typesafe-i18n": "^5.26.2", - "use-breakpoint": "^4.0.1", - "zod": "^3.22.4", - "zustand": "^4.5.0" + "use-breakpoint": "^4.0.5", + "zod": "^3.24.1", + "zustand": "^5.0.2" }, "devDependencies": { - "@babel/core": "^7.23.9", - "@csstools/css-parser-algorithms": "^2.5.0", - "@csstools/css-tokenizer": "^2.2.3", + "@babel/core": "^7.26.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", "@hookform/devtools": "^4.3.1", - "@rollup/wasm-node": "^4.28.1", - "@svgr/cli": "^8.1.0", "@tanstack/react-query-devtools": "^4.36.1", "@types/byte-size": "^8.1.2", "@types/file-saver": "^2.0.7", "@types/lodash-es": "^4.17.12", - "@types/node": "^20.11.7", + "@types/node": "^22.10.2", "@types/react": "^18.2.48", "@types/react-dom": "^18.2.18", "@types/react-router-dom": "^5.3.3", + "@types/react-virtualized-auto-sizer": "^1.0.4", + "@types/react-window": "^1.8.8", "@typescript-eslint/eslint-plugin": "^6.19.1", "@typescript-eslint/parser": "^6.19.1", - "@vitejs/plugin-react-swc": "^3.5.0", - "autoprefixer": "^10.4.17", - "concurrently": "^8.2.2", + "@vitejs/plugin-react-swc": "^3.7.2", + "autoprefixer": "^10.4.20", + "concurrently": "^9.1.0", "dotenv": "^16.4.7", - "esbuild": "^0.19.12", + "esbuild": "^0.24.0", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.5", - "eslint-plugin-simple-import-sort": "^10.0.0", - "postcss": "^8.4.33", - "prettier": "^3.2.4", - "prop-types": "^15.8.1", - "rollup": "npm:@rollup/wasm-node@^4.28.1", - "rollup-plugin-preserve-directives": "^0.3.1", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-react": "^7.37.2", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.16", + "eslint-plugin-simple-import-sort": "^12.1.1", + "postcss": "^8.4.49", + "prettier": "^3.4.2", "sass": "^1.70.0", "standard-version": "^9.5.0", - "stylelint-config-prettier-scss": "^1.0.0", - "stylelint-config-standard-scss": "^13.0.0", - "stylelint-scss": "^6.1.0", - "typedoc": "^0.25.7", + "typedoc": "^0.27.4", "typescript": "~5.3.3", "typescript-eslint-language-service": "^5.0.5", - "vite": "^5.0.12", + "vite": "^6.0.3", "vite-plugin-eslint": "^1.8.1", "vite-plugin-package-version": "^1.1.0" - }, - "volta": { - "node": "20.5.1" } } diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index ed8b52def..1f794eb15 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -4,37 +4,31 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - rollup: npm:@rollup/wasm-node - importers: .: dependencies: '@floating-ui/react': - specifier: ^0.26.7 - version: 0.26.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^0.27.0 + version: 0.27.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@github/webauthn-json': specifier: ^2.1.1 version: 2.1.1 '@hookform/resolvers': - specifier: ^3.3.4 - version: 3.3.4(react-hook-form@7.49.3(react@18.2.0)) + specifier: ^3.9.1 + version: 3.9.1(react-hook-form@7.54.0(react@18.2.0)) '@ladle/react': specifier: ^4.0.2 - version: 4.0.2(@types/node@20.11.7)(@types/react@18.2.48)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.70.0)(terser@5.27.0)(typescript@5.3.3) - '@metamask/detect-provider': - specifier: ^2.0.0 - version: 2.0.0 + version: 4.0.2(@types/node@22.10.2)(@types/react@18.2.48)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.70.0)(terser@5.37.0)(typescript@5.3.3) '@react-rxjs/core': specifier: ^0.10.7 version: 0.10.7(react@18.2.0)(rxjs@7.8.1) '@stablelib/base64': - specifier: ^1.0.1 - version: 1.0.1 + specifier: ^2.0.0 + version: 2.0.0 '@stablelib/x25519': - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^2.0.0 + version: 2.0.0 '@tanstack/query-core': specifier: ^4.36.1 version: 4.36.1 @@ -47,39 +41,24 @@ importers: '@tanstack/virtual-core': specifier: 3.0.0-beta.9 version: 3.0.0-beta.9 - '@tauri-apps/api': - specifier: ^1.5.3 - version: 1.5.3 - '@types/react-virtualized-auto-sizer': - specifier: ^1.0.4 - version: 1.0.4 - '@types/react-window': - specifier: ^1.8.8 - version: 1.8.8 - '@vitejs/plugin-legacy': - specifier: ^5.3.0 - version: 5.3.0(esbuild@0.19.12)(terser@5.27.0)(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)) - '@vitejs/plugin-react': - specifier: ^4.2.1 - version: 4.2.1(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)) axios: - specifier: ^1.6.7 - version: 1.6.7 + specifier: ^1.7.9 + version: 1.7.9 byte-size: - specifier: ^8.1.1 - version: 8.1.1 + specifier: ^9.0.1 + version: 9.0.1 classnames: specifier: ^2.5.1 version: 2.5.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 dayjs: - specifier: ^1.11.10 - version: 1.11.10 + specifier: ^1.11.13 + version: 1.11.13 detect-browser: specifier: ^5.3.0 version: 5.3.0 - ethers: - specifier: ^6.10.0 - version: 6.10.0 events: specifier: ^3.3.0 version: 3.3.0 @@ -91,7 +70,7 @@ importers: version: 2.0.5 framer-motion: specifier: ^11.0.3 - version: 11.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 11.14.0(@emotion/is-prop-valid@1.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) get-text-width: specifier: ^1.0.3 version: 1.0.3 @@ -99,38 +78,38 @@ importers: specifier: ^5.0.0 version: 5.0.0 html-react-parser: - specifier: ^5.1.1 - version: 5.1.1(react@18.2.0) + specifier: ^5.2.0 + version: 5.2.0(@types/react@18.2.48)(react@18.2.0) ipaddr.js: specifier: ^2.2.0 version: 2.2.0 itertools: - specifier: ^2.2.3 - version: 2.2.3 + specifier: ^2.3.2 + version: 2.3.2 lodash-es: specifier: ^4.17.21 version: 4.17.21 numbro: - specifier: ^2.4.0 - version: 2.4.0 + specifier: ^2.5.0 + version: 2.5.0 qrcode: - specifier: ^1.5.3 - version: 1.5.3 + specifier: ^1.5.4 + version: 1.5.4 radash: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^12.1.0 + version: 12.1.0 react: specifier: ^18.2.0 version: 18.2.0 react-click-away-listener: - specifier: ^2.2.3 - version: 2.2.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^2.2.4 + version: 2.2.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) react-hook-form: - specifier: ^7.49.3 - version: 7.49.3(react@18.2.0) + specifier: ^7.54.0 + version: 7.54.0(react@18.2.0) react-idle-timer: specifier: ^5.7.2 version: 5.7.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -138,23 +117,29 @@ importers: specifier: ^18.2.0 version: 18.2.0 react-loading-skeleton: - specifier: ^3.3.1 - version: 3.3.1(react@18.2.0) + specifier: ^3.5.0 + version: 3.5.0(react@18.2.0) react-markdown: specifier: ^9.0.1 version: 9.0.1(@types/react@18.2.48)(react@18.2.0) react-qr-code: - specifier: ^2.0.12 - version: 2.0.12(react@18.2.0) + specifier: ^2.0.15 + version: 2.0.15(react@18.2.0) + react-resize-detector: + specifier: ^12.0.1 + version: 12.0.1(react@18.2.0) react-router: specifier: ^6.21.3 version: 6.21.3(react@18.2.0) react-router-dom: specifier: ^6.21.3 version: 6.21.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-tracked: + specifier: ^2.0.1 + version: 2.0.1(react@18.2.0)(scheduler@0.23.0) react-virtualized-auto-sizer: - specifier: ^1.0.21 - version: 1.0.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^1.0.24 + version: 1.0.24(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-window: specifier: ^1.8.10 version: 1.8.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -164,40 +149,31 @@ importers: rxjs: specifier: ^7.8.1 version: 7.8.1 - terser: - specifier: ^5.27.0 - version: 5.27.0 typesafe-i18n: specifier: ^5.26.2 version: 5.26.2(typescript@5.3.3) use-breakpoint: - specifier: ^4.0.1 - version: 4.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^4.0.5 + version: 4.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) zod: - specifier: ^3.22.4 - version: 3.22.4 + specifier: ^3.24.1 + version: 3.24.1 zustand: - specifier: ^4.5.0 - version: 4.5.0(@types/react@18.2.48)(react@18.2.0) + specifier: ^5.0.2 + version: 5.0.2(@types/react@18.2.48)(react@18.2.0)(use-sync-external-store@1.2.0(react@18.2.0)) devDependencies: '@babel/core': - specifier: ^7.23.9 - version: 7.23.9 + specifier: ^7.26.0 + version: 7.26.0 '@csstools/css-parser-algorithms': - specifier: ^2.5.0 - version: 2.5.0(@csstools/css-tokenizer@2.2.3) + specifier: ^3.0.4 + version: 3.0.4(@csstools/css-tokenizer@3.0.3) '@csstools/css-tokenizer': - specifier: ^2.2.3 - version: 2.2.3 + specifier: ^3.0.3 + version: 3.0.3 '@hookform/devtools': specifier: ^4.3.1 version: 4.3.1(@types/react@18.2.48)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@rollup/wasm-node': - specifier: ^4.28.1 - version: 4.28.1 - '@svgr/cli': - specifier: ^8.1.0 - version: 8.1.0(typescript@5.3.3) '@tanstack/react-query-devtools': specifier: ^4.36.1 version: 4.36.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -211,8 +187,8 @@ importers: specifier: ^4.17.12 version: 4.17.12 '@types/node': - specifier: ^20.11.7 - version: 20.11.7 + specifier: ^22.10.2 + version: 22.10.2 '@types/react': specifier: ^18.2.48 version: 18.2.48 @@ -222,6 +198,12 @@ importers: '@types/react-router-dom': specifier: ^5.3.3 version: 5.3.3 + '@types/react-virtualized-auto-sizer': + specifier: ^1.0.4 + version: 1.0.4 + '@types/react-window': + specifier: ^1.8.8 + version: 1.8.8 '@typescript-eslint/eslint-plugin': specifier: ^6.19.1 version: 6.19.1(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3) @@ -229,20 +211,20 @@ importers: specifier: ^6.19.1 version: 6.19.1(eslint@8.56.0)(typescript@5.3.3) '@vitejs/plugin-react-swc': - specifier: ^3.5.0 - version: 3.5.0(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)) + specifier: ^3.7.2 + version: 3.7.2(vite@6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1)) autoprefixer: - specifier: ^10.4.17 - version: 10.4.17(postcss@8.4.33) + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.49) concurrently: - specifier: ^8.2.2 - version: 8.2.2 + specifier: ^9.1.0 + version: 9.1.0 dotenv: specifier: ^16.4.7 version: 16.4.7 esbuild: - specifier: ^0.19.12 - version: 0.19.12 + specifier: ^0.24.0 + version: 0.24.0 eslint: specifier: ^8.56.0 version: 8.56.0 @@ -250,59 +232,41 @@ importers: specifier: ^9.1.0 version: 9.1.0(eslint@8.56.0) eslint-plugin-import: - specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0) + specifier: ^2.31.0 + version: 2.31.0(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0) eslint-plugin-jsx-a11y: - specifier: ^6.8.0 - version: 6.8.0(eslint@8.56.0) + specifier: ^6.10.2 + version: 6.10.2(eslint@8.56.0) eslint-plugin-prettier: - specifier: ^5.1.3 - version: 5.1.3(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.2.4) + specifier: ^5.2.1 + version: 5.2.1(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.4.2) eslint-plugin-react: - specifier: ^7.33.2 - version: 7.33.2(eslint@8.56.0) + specifier: ^7.37.2 + version: 7.37.2(eslint@8.56.0) eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.56.0) + specifier: ^5.1.0 + version: 5.1.0(eslint@8.56.0) eslint-plugin-react-refresh: - specifier: ^0.4.5 - version: 0.4.5(eslint@8.56.0) + specifier: ^0.4.16 + version: 0.4.16(eslint@8.56.0) eslint-plugin-simple-import-sort: - specifier: ^10.0.0 - version: 10.0.0(eslint@8.56.0) + specifier: ^12.1.1 + version: 12.1.1(eslint@8.56.0) postcss: - specifier: ^8.4.33 - version: 8.4.33 + specifier: ^8.4.49 + version: 8.4.49 prettier: - specifier: ^3.2.4 - version: 3.2.4 - prop-types: - specifier: ^15.8.1 - version: 15.8.1 - rollup: - specifier: npm:@rollup/wasm-node - version: '@rollup/wasm-node@4.28.1' - rollup-plugin-preserve-directives: - specifier: ^0.3.1 - version: 0.3.1(@rollup/wasm-node@4.28.1) + specifier: ^3.4.2 + version: 3.4.2 sass: specifier: ^1.70.0 version: 1.70.0 standard-version: specifier: ^9.5.0 version: 9.5.0 - stylelint-config-prettier-scss: - specifier: ^1.0.0 - version: 1.0.0(stylelint@16.2.0(typescript@5.3.3)) - stylelint-config-standard-scss: - specifier: ^13.0.0 - version: 13.0.0(postcss@8.4.33)(stylelint@16.2.0(typescript@5.3.3)) - stylelint-scss: - specifier: ^6.1.0 - version: 6.1.0(stylelint@16.2.0(typescript@5.3.3)) typedoc: - specifier: ^0.25.7 - version: 0.25.7(typescript@5.3.3) + specifier: ^0.27.4 + version: 0.27.4(typescript@5.3.3) typescript: specifier: ~5.3.3 version: 5.3.3 @@ -310,14 +274,14 @@ importers: specifier: ^5.0.5 version: 5.0.5(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3) vite: - specifier: ^5.0.12 - version: 5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0) + specifier: ^6.0.3 + version: 6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.56.0)(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)) + version: 1.8.1(eslint@8.56.0)(vite@6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1)) vite-plugin-package-version: specifier: ^1.1.0 - version: 1.1.0(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)) + version: 1.1.0(vite@6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1)) packages: @@ -325,9 +289,6 @@ packages: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - '@adraffy/ens-normalize@1.10.0': - resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} - '@ampproject/remapping@2.2.1': resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -336,51 +297,29 @@ packages: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.23.5': - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.23.9': - resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} + '@babel/compat-data@7.26.3': + resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} engines: {node: '>=6.9.0'} - '@babel/generator@7.23.6': - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.23.6': - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + '@babel/generator@7.23.6': + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.23.7': - resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} + '@babel/generator@7.26.3': + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.22.15': - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.4.4': - resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-define-polyfill-provider@0.5.0': - resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 '@babel/helper-environment-visitor@7.22.20': resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} @@ -394,46 +333,22 @@ packages: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.23.0': - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.22.15': resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.23.3': - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.22.5': - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.22.5': - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.22.20': - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.22.20': - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} '@babel/helper-split-export-declaration@7.22.6': @@ -444,20 +359,24 @@ packages: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.22.20': resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.23.5': - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.22.20': - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.23.9': - resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.23.4': @@ -474,576 +393,150 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3': - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3': - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7': - resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + engines: {node: '>=6.0.0'} + hasBin: true - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.23.3': - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + '@babel/runtime@7.23.8': + resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.23.3': - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + '@babel/template@7.22.15': + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + '@babel/template@7.23.9': + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + '@babel/traverse@7.23.7': + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.23.3': - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + '@babel/traverse@7.26.4': + resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.23.7': - resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==} + '@babel/types@7.23.6': + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.23.3': - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + '@babel/types@7.23.9': + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.23.3': - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.23.4': - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@bundled-es-modules/cookie@2.0.0': + resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} - '@babel/plugin-transform-class-properties@7.23.3': - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@bundled-es-modules/statuses@1.0.1': + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} - '@babel/plugin-transform-class-static-block@7.23.4': - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} - engines: {node: '>=6.9.0'} + '@csstools/css-parser-algorithms@3.0.4': + resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + engines: {node: '>=18'} peerDependencies: - '@babel/core': ^7.12.0 + '@csstools/css-tokenizer': ^3.0.3 - '@babel/plugin-transform-classes@7.23.8': - resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@csstools/css-tokenizer@3.0.3': + resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + engines: {node: '>=18'} - '@babel/plugin-transform-computed-properties@7.23.3': - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/babel-plugin@11.11.0': + resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} - '@babel/plugin-transform-destructuring@7.23.3': - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/cache@11.11.0': + resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} - '@babel/plugin-transform-dotall-regex@7.23.3': - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/hash@0.9.1': + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - '@babel/plugin-transform-duplicate-keys@7.23.3': - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/is-prop-valid@1.2.1': + resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} - '@babel/plugin-transform-dynamic-import@7.23.4': - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/memoize@0.8.1': + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - '@babel/plugin-transform-exponentiation-operator@7.23.3': - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} - engines: {node: '>=6.9.0'} + '@emotion/react@11.11.3': + resolution: {integrity: sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true - '@babel/plugin-transform-export-namespace-from@7.23.4': - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/serialize@1.1.3': + resolution: {integrity: sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==} - '@babel/plugin-transform-for-of@7.23.6': - resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/sheet@1.2.2': + resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} - '@babel/plugin-transform-function-name@7.23.3': - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} - engines: {node: '>=6.9.0'} + '@emotion/styled@11.11.0': + resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true - '@babel/plugin-transform-json-strings@7.23.4': - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/unitless@0.8.1': + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - '@babel/plugin-transform-literals@7.23.3': - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} - engines: {node: '>=6.9.0'} + '@emotion/use-insertion-effect-with-fallbacks@1.0.1': + resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} peerDependencies: - '@babel/core': ^7.0.0-0 + react: '>=16.8.0' - '@babel/plugin-transform-logical-assignment-operators@7.23.4': - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/utils@1.2.1': + resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} - '@babel/plugin-transform-member-expression-literals@7.23.3': - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/weak-memoize@0.3.1': + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} - '@babel/plugin-transform-modules-amd@7.23.3': - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] - '@babel/plugin-transform-modules-commonjs@7.23.3': - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] - '@babel/plugin-transform-modules-systemjs@7.23.3': - resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] - '@babel/plugin-transform-modules-umd@7.23.3': - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.23.3': - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.23.4': - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.23.4': - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.23.4': - resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.23.3': - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.23.4': - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.23.4': - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.23.3': - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.23.3': - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.23.4': - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.23.3': - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-self@7.23.3': - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.23.3': - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.23.3': - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-reserved-words@7.23.3': - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.23.3': - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.23.3': - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.23.3': - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.23.3': - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.23.3': - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.23.3': - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.23.3': - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.23.3': - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.23.3': - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.23.8': - resolution: {integrity: sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - '@babel/runtime@7.23.8': - resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.22.15': - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.23.9': - resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.23.7': - resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.23.9': - resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.23.6': - resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.23.9': - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} - engines: {node: '>=6.9.0'} - - '@bundled-es-modules/cookie@2.0.0': - resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} - - '@bundled-es-modules/statuses@1.0.1': - resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} - - '@csstools/css-parser-algorithms@2.5.0': - resolution: {integrity: sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-tokenizer': ^2.2.3 - - '@csstools/css-parser-algorithms@2.7.1': - resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-tokenizer': ^2.4.1 - - '@csstools/css-tokenizer@2.2.3': - resolution: {integrity: sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==} - engines: {node: ^14 || ^16 || >=18} - - '@csstools/css-tokenizer@2.4.1': - resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} - engines: {node: ^14 || ^16 || >=18} - - '@csstools/media-query-list-parser@2.1.13': - resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.1 - '@csstools/css-tokenizer': ^2.4.1 - - '@csstools/selector-specificity@3.1.1': - resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss-selector-parser: ^6.0.13 - - '@emotion/babel-plugin@11.11.0': - resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} - - '@emotion/cache@11.11.0': - resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} - - '@emotion/hash@0.9.1': - resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - - '@emotion/is-prop-valid@0.8.8': - resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} - - '@emotion/is-prop-valid@1.2.1': - resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} - - '@emotion/memoize@0.7.4': - resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} - - '@emotion/memoize@0.8.1': - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - - '@emotion/react@11.11.3': - resolution: {integrity: sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==} - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/serialize@1.1.3': - resolution: {integrity: sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==} - - '@emotion/sheet@1.2.2': - resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} - - '@emotion/styled@11.11.0': - resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} - peerDependencies: - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/unitless@0.8.1': - resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - - '@emotion/use-insertion-effect-with-fallbacks@1.0.1': - resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} - peerDependencies: - react: '>=16.8.0' - - '@emotion/utils@1.2.1': - resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} - - '@emotion/weak-memoize@0.3.1': - resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} - - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1053,126 +546,258 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.19.12': resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.19.12': resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.19.12': resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.19.12': resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.19.12': resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.19.12': resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.19.12': resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.19.12': resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.19.12': resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.19.12': resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.19.12': resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.19.12': resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.19.12': resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.19.12': resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.19.12': resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.19.12': resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.19.12': resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.19.12': resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.19.12': resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.19.12': resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1197,20 +822,23 @@ packages: '@floating-ui/dom@1.6.0': resolution: {integrity: sha512-SZ0BEXzsaaS6THZfZJUcAobbZTD+MvfGM42bxgeg0Tnkp4/an/avqwAXiVLsFtIBZtfsx3Ymvwx0+KnnhdA/9g==} - '@floating-ui/react-dom@2.0.7': - resolution: {integrity: sha512-B5GJxKUyPcGsvE1vua+Abvw0t6zVMyTbtG+Jk7BoI4hfc5Ahv50dstRIAn0nS0274kR9gnKwxIXyGA8EzBZJrA==} + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/react@0.26.7': - resolution: {integrity: sha512-0uMI9IBJBPPt8N+8uRg4gazJvQReWTu/fVUHHLfAOuy1WB6f242jtjWm52hLJG8nzuZVuU+2crW4lJbJQoqeIA==} + '@floating-ui/react@0.27.0': + resolution: {integrity: sha512-WLEksq7fJapXSJbmfiyq9pAW0a7ZFMEJToFE4oTDESxGjoa+nZu3YMjmZE2KvoUtQhqOK2yMMfWQFZyeWD0wGQ==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: '>=17.0.0' + react-dom: '>=17.0.0' + + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} - '@floating-ui/utils@0.2.1': - resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + '@gerrit0/mini-shiki@1.24.3': + resolution: {integrity: sha512-odxt2MTJvlT5NUmGOPXz5OW4D8SFL2+KeXBkmjVtdOXfA5aRZX6jgP/17jp6wu2r3KdW0wx3Bk5HDehgeV1Yng==} '@github/webauthn-json@2.1.1': resolution: {integrity: sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ==} @@ -1222,8 +850,8 @@ packages: react: ^16.8.0 || ^17 || ^18 react-dom: ^16.8.0 || ^17 || ^18 - '@hookform/resolvers@3.3.4': - resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==} + '@hookform/resolvers@3.9.1': + resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==} peerDependencies: react-hook-form: ^7.0.0 @@ -1248,6 +876,10 @@ packages: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.1': resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} @@ -1256,6 +888,10 @@ packages: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.5': resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} @@ -1265,6 +901,9 @@ packages: '@jridgewell/trace-mapping@0.3.22': resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@ladle/react-context@1.0.1': resolution: {integrity: sha512-xVQ8siyOEQG6e4Knibes1uA3PTyXnqiMmfSmd5pIbkzeDty8NCBtYHhTXSlfmcDNEsw/G8OzNWo4VbyQAVDl2A==} peerDependencies: @@ -1288,10 +927,6 @@ packages: '@types/react': '>=16' react: '>=16' - '@metamask/detect-provider@2.0.0': - resolution: {integrity: sha512-sFpN+TX13E9fdBDh9lvQeZdJn4qYoRb/6QF2oZZK/Pn559IhCFacPMU1rMuqyXoFQF3JSJfii2l98B87QDPeCQ==} - engines: {node: '>=14.0.0'} - '@mswjs/cookies@1.1.0': resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==} engines: {node: '>=18'} @@ -1300,13 +935,6 @@ packages: resolution: {integrity: sha512-2dnIxl+obqIqjoPXTFldhe6pcdOrqiz+GcLaQQ6hmL02OldAF7nIC+rUgTWm+iF6lvmyCVhFFqbgbapNhR8eag==} engines: {node: '>=18'} - '@noble/curves@1.2.0': - resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} - - '@noble/hashes@1.3.2': - resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} - engines: {node: '>= 16'} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1354,201 +982,128 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@rx-state/core@0.1.4': resolution: {integrity: sha512-Z+3hjU2xh1HisLxt+W5hlYX/eGSDaXXP+ns82gq/PLZpkXLu0uwcNUh9RLY3Clq4zT+hSsA3vcpIGt6+UAb8rQ==} peerDependencies: rxjs: '>=7' - '@sindresorhus/merge-streams@1.0.0': - resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} - engines: {node: '>=18'} + '@shikijs/engine-oniguruma@1.24.2': + resolution: {integrity: sha512-ZN6k//aDNWRJs1uKB12pturKHh7GejKugowOFGAuG7TxDRLod1Bd5JhpOikOiFqPmKjKEPtEA6mRCf7q3ulDyQ==} - '@stablelib/base64@1.0.1': - resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} + '@shikijs/types@1.24.2': + resolution: {integrity: sha512-bdeWZiDtajGLG9BudI0AHet0b6e7FbR0EsE4jpGaI0YwHm/XJunI9+3uZnzFtX65gsyJ6ngCIWUfA4NWRPnBkQ==} - '@stablelib/binary@1.0.1': - resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} + '@shikijs/vscode-textmate@9.3.1': + resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} - '@stablelib/bytes@1.0.1': - resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==} - - '@stablelib/int@1.0.1': - resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} - - '@stablelib/keyagreement@1.0.1': - resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==} - - '@stablelib/random@1.0.2': - resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} - - '@stablelib/wipe@1.0.1': - resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} - - '@stablelib/x25519@1.0.3': - resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0': - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0': - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0': - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@sindresorhus/merge-streams@1.0.0': + resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + engines: {node: '>=18'} - '@svgr/babel-plugin-transform-svg-component@8.0.0': - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@stablelib/base64@2.0.0': + resolution: {integrity: sha512-ffSfySa1ZpZYzM5FQ2xILQ2jifQ+GlgbDJzRTCtaB0sqta88KYghB/tlSV2VS2iHRCvMdUvJlLOW1rmSkziWnw==} - '@svgr/babel-preset@8.1.0': - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@stablelib/binary@2.0.0': + resolution: {integrity: sha512-dHejKHMtq5OtNwDSMcFx+djhixVAnZ76Rqga3WOOKe6KV3NlnE7JBXlmdLIn04G4FxqhRSEx+zkoO4Izdw10ZA==} - '@svgr/cli@8.1.0': - resolution: {integrity: sha512-SnlaLspB610XFXvs3PmhzViHErsXp0yIy4ERyZlHDlO1ro2iYtHMWYk2mztdLD/lBjiA4ZXe4RePON3qU/Tc4A==} - engines: {node: '>=14'} - hasBin: true + '@stablelib/bytes@2.0.0': + resolution: {integrity: sha512-oSfT6VTfk/XK5s/BUi1L8Obp1Uoh/RFJHWDAG9Yj5D/kiGTnR7sEnzJIRenbIFDbzkb+lXP3OSDp+ttgI51Nng==} - '@svgr/core@8.1.0': - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} + '@stablelib/int@2.0.0': + resolution: {integrity: sha512-EiSYDisTYKk1wuCqoh7wuBySmE0A1isq7TQbsijQ6XFi6nIAozchgAT7Zv2PCl2iY8BTe0URScC4PdYHOe3Yow==} - '@svgr/hast-util-to-babel-ast@8.0.0': - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} + '@stablelib/keyagreement@2.0.0': + resolution: {integrity: sha512-SryWYB3S8w9EyjSJ1OdJb375Foj1Ujxgd4S6mh7L+ESiPVD/24EQWMbFANyhtpaPmpsAmgIBGyXlR+LfHW5X0Q==} - '@svgr/plugin-jsx@8.1.0': - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@stablelib/random@2.0.0': + resolution: {integrity: sha512-qvOSbiPq2B3ajvn/IDftC1mzL/W89OGv59gdJ7klMjm327Yk/54NyGl4Jtrwcz35GjCPy/ScVnQXC8YQk8uAUQ==} - '@svgr/plugin-prettier@8.1.0': - resolution: {integrity: sha512-o4/uFI8G64tAjBZ4E7gJfH+VP7Qi3T0+M4WnIsP91iFnGPqs5WvPDkpZALXPiyWEtzfYs1Rmwy1Zdfu8qoZuKw==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@stablelib/wipe@2.0.0': + resolution: {integrity: sha512-VBMpCJx8py9j9F5DxV5dGmSSO+vkYDnXHXG4alkfpaD08UTfNTqsQoRlUh5obeqBNHiO+3Iv40GxKpM0gfd5xA==} - '@svgr/plugin-svgo@8.1.0': - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' + '@stablelib/x25519@2.0.0': + resolution: {integrity: sha512-mnl4U+1dE73rgrnhL2jPuT2u6TVOJPCwWKnC+A18JkYZaRKXERKVXJzuhc+jSNEnWHdv3BDMut50v8bpIdZCCQ==} - '@swc/core-darwin-arm64@1.3.106': - resolution: {integrity: sha512-XYcbViNyHnnm7RWOAO1YipMmthM7m2aXF32b0y+JMLYFBEyFpjVX9btLkzeL7wRx/5B3I35yJNhE+xyx0Q1Gkw==} + '@swc/core-darwin-arm64@1.10.1': + resolution: {integrity: sha512-NyELPp8EsVZtxH/mEqvzSyWpfPJ1lugpTQcSlMduZLj1EASLO4sC8wt8hmL1aizRlsbjCX+r0PyL+l0xQ64/6Q==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.3.106': - resolution: {integrity: sha512-YKDPhUdfuwhmOUS9+CaIwl/0Tp+f1b73BH2EIESuxSNsogZf18a8HQ8O0fQEwdiwmA5LEqw47cj+kfOWV/0+kw==} + '@swc/core-darwin-x64@1.10.1': + resolution: {integrity: sha512-L4BNt1fdQ5ZZhAk5qoDfUnXRabDOXKnXBxMDJ+PWLSxOGBbWE6aJTnu4zbGjJvtot0KM46m2LPAPY8ttknqaZA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.3.106': - resolution: {integrity: sha512-bHxxJXogvFfocLL5inZxxtx/x/WgKozigp80Vbx0viac1fPDJrqKBw2X4MzpMiuTRAGVQ03jJI6pDwbSBf+yDw==} + '@swc/core-linux-arm-gnueabihf@1.10.1': + resolution: {integrity: sha512-Y1u9OqCHgvVp2tYQAJ7hcU9qO5brDMIrA5R31rwWQIAKDkJKtv3IlTHF0hrbWk1wPR0ZdngkQSJZple7G+Grvw==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.3.106': - resolution: {integrity: sha512-c7jue++CHLgtpeaakEukoCLT9eNrImizbleE9Y7Is8CHqLq/7DG4s+7ma9DFKXIzW2MpTg9byIEQfpqSphVW6A==} + '@swc/core-linux-arm64-gnu@1.10.1': + resolution: {integrity: sha512-tNQHO/UKdtnqjc7o04iRXng1wTUXPgVd8Y6LI4qIbHVoVPwksZydISjMcilKNLKIwOoUQAkxyJ16SlOAeADzhQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.3.106': - resolution: {integrity: sha512-51EaC3Q8qAhLtWVnAVqoYX/gk3tK31cCBzUpwCcmhianhEBM2/WtKRAS4MqPhE8VVZuN3WjO2c2JaF2mX0yuoA==} + '@swc/core-linux-arm64-musl@1.10.1': + resolution: {integrity: sha512-x0L2Pd9weQ6n8dI1z1Isq00VHFvpBClwQJvrt3NHzmR+1wCT/gcYl1tp9P5xHh3ldM8Cn4UjWCw+7PaUgg8FcQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.3.106': - resolution: {integrity: sha512-tOUi8BB6jAeCXgx7ESLNnX7nrbMVKQ/XajK77v7Ad4SXf9HYArnimBJpXUUyVFJTXLSv4e6c7s6XHHqXb5Lwcg==} + '@swc/core-linux-x64-gnu@1.10.1': + resolution: {integrity: sha512-yyYEwQcObV3AUsC79rSzN9z6kiWxKAVJ6Ntwq2N9YoZqSPYph+4/Am5fM1xEQYf/kb99csj0FgOelomJSobxQA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.3.106': - resolution: {integrity: sha512-binLw4Lbd83NPy4/m/teH2nbaifxveSD+sKDvpxywRbvYW2I0w/iCBpUBcbnl16TQF4TPOGpq5YwG9lVxPVw5g==} + '@swc/core-linux-x64-musl@1.10.1': + resolution: {integrity: sha512-tcaS43Ydd7Fk7sW5ROpaf2Kq1zR+sI5K0RM+0qYLYYurvsJruj3GhBCaiN3gkzd8m/8wkqNqtVklWaQYSDsyqA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.3.106': - resolution: {integrity: sha512-n4ttBWr8tM7DPzwcEOIBTyTMHZTzCmbic/HTtxEsPyMAf/Daen+yrTKzjPP6k2usfSrjkxA780RSJJxI1N8r2w==} + '@swc/core-win32-arm64-msvc@1.10.1': + resolution: {integrity: sha512-D3Qo1voA7AkbOzQ2UGuKNHfYGKL6eejN8VWOoQYtGHHQi1p5KK/Q7V1ku55oxXBsj79Ny5FRMqiRJpVGad7bjQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.3.106': - resolution: {integrity: sha512-GhDNIwxE5FhkujESI6h/4ysT3wxwmrzTUlZYaR8rRui6a6SdX9feIPUHPEE5o5hpyp+xqlmvRxKkRxOnwsq8iA==} + '@swc/core-win32-ia32-msvc@1.10.1': + resolution: {integrity: sha512-WalYdFoU3454Og+sDKHM1MrjvxUGwA2oralknXkXL8S0I/8RkWZOB++p3pLaGbTvOO++T+6znFbQdR8KRaa7DA==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.3.106': - resolution: {integrity: sha512-2M6yWChuMS1+/MPo3Dor0SOMkvmiugonWlzsZBAu/oZboH2xKrHSRv7brsBujb2Oe47r+NsbV+vq9tnnP9Vl1Q==} + '@swc/core-win32-x64-msvc@1.10.1': + resolution: {integrity: sha512-JWobfQDbTnoqaIwPKQ3DVSywihVXlQMbDuwik/dDWlj33A8oEHcjPOGs4OqcA3RHv24i+lfCQpM3Mn4FAMfacA==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.3.106': - resolution: {integrity: sha512-++QPSPkFq2qELYVScxNHJC42hKQChjiTWS2P0QQ5JWT4NHb9lmNSfrc1ylFIyImwRnxsW2MTBALLYLf95EFAsg==} + '@swc/core@1.10.1': + resolution: {integrity: sha512-rQ4dS6GAdmtzKiCRt3LFVxl37FaY1cgL9kSUTnhQ2xc3fmHOd7jdJK/V4pSZMG1ruGTd0bsi34O2R0Olg9Zo/w==} engines: {node: '>=10'} peerDependencies: - '@swc/helpers': ^0.5.0 + '@swc/helpers': '*' peerDependenciesMeta: '@swc/helpers': optional: true - '@swc/counter@0.1.2': - resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/types@0.1.5': - resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} + '@swc/types@0.1.17': + resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} - '@tanstack/match-sorter-utils@8.11.7': - resolution: {integrity: sha512-4PUKgaaFpiB7MK406N5VAiLu2VUhDumojGWhEC8kNQ767RGU2vsJDI7Xp4D8lMBzijqswRWz3U8ioa2zUKnFeQ==} + '@tanstack/match-sorter-utils@8.19.4': + resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} '@tanstack/query-core@4.36.1': @@ -1583,14 +1138,6 @@ packages: resolution: {integrity: sha512-Aaku1DMatF8GNbAZj2ahGN9F3l6KLe2n1jzgAUO8IT07D1spoZ9jCeazOQ7gvCIIEZjceuL9klx08MnsFJdCqg==} engines: {node: '>=12'} - '@tauri-apps/api@1.5.3': - resolution: {integrity: sha512-zxnDjHHKjOsrIzZm6nO5Xapb/BxqUq1tc7cGkFXsFkGTsSWgCPH1D8mm0XS9weJY2OaR73I3k3S+b7eSzJDfqA==} - engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -1660,6 +1207,9 @@ packages: '@types/hast@3.0.3': resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/history@4.7.11': resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} @@ -1687,11 +1237,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@18.15.13': - resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} - - '@types/node@20.11.7': - resolution: {integrity: sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==} + '@types/node@22.10.2': + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1799,23 +1346,16 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitejs/plugin-legacy@5.3.0': - resolution: {integrity: sha512-BhW+WcJmEgW5G/1UQRiVQ7wz9/ZPnxqzExT9n0zAk4RlqQQ/26udIeXzdU8+03AGnaF61wmZlCspexgEnxFWMA==} - engines: {node: ^18.0.0 || >=20.0.0} + '@vitejs/plugin-react-swc@3.7.2': + resolution: {integrity: sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==} peerDependencies: - terser: ^5.4.0 - vite: ^5.0.0 + vite: ^4 || ^5 || ^6 - '@vitejs/plugin-react-swc@3.5.0': - resolution: {integrity: sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==} - peerDependencies: - vite: ^4 || ^5 - - '@vitejs/plugin-react@4.2.1': - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + '@vitejs/plugin-react@4.3.4': + resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -1838,15 +1378,9 @@ packages: add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - aes-js@4.0.0-beta.5: - resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -1862,9 +1396,6 @@ packages: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - ansi-sequence-parser@1.1.1: - resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} - ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -1884,25 +1415,34 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} array.prototype.flat@1.3.2: @@ -1913,13 +1453,18 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} arraybuffer.prototype.slice@1.0.2: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -1927,22 +1472,15 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true - asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - autoprefixer@10.4.17: - resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -1952,48 +1490,35 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} axe-core@4.8.3: resolution: {integrity: sha512-d5ZQHPSPkF9Tw+yfyDcRoUOc4g/8UloJJe5J8m4L5+c7AtDdjDLRxew/knnI4CxvtdxEUVgWz4x3OIQUIFiMfw==} engines: {node: '>=4'} - axios@1.6.7: - resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} + axios@1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - babel-plugin-polyfill-corejs2@0.4.8: - resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.8.7: - resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.5.5: - resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@2.0.0: - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -2035,8 +1560,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2050,17 +1575,30 @@ packages: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} - byte-size@8.1.1: - resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} + byte-size@9.0.1: + resolution: {integrity: sha512-YLe9x3rabBrcI0cueCdLS2l5ONUKywcRpTs02B8KP9/Cimhj7o3ZccGrPnRvcbyHMbb7W79/3MUJl7iGgTXKEw==} engines: {node: '>=12.17'} + peerDependencies: + '@75lb/nature': latest + peerDependenciesMeta: + '@75lb/nature': + optional: true cache-content-type@1.0.1: resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} engines: {node: '>= 6.0.0'} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2073,10 +1611,6 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - camelcase@7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} @@ -2151,8 +1685,8 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - clsx@2.1.0: - resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} co@4.6.0: @@ -2175,9 +1709,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2192,14 +1723,6 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} @@ -2210,9 +1733,9 @@ packages: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} - concurrently@8.2.2: - resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} - engines: {node: ^14.13.0 || >=16.0.0} + concurrently@9.1.0: + resolution: {integrity: sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==} + engines: {node: '>=18'} hasBin: true content-disposition@0.5.4: @@ -2311,12 +1834,6 @@ packages: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} - core-js-compat@3.35.1: - resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==} - - core-js@3.35.1: - resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2324,59 +1841,13 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - css-functions-list@3.2.3: - resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==} - engines: {node: '>=12 || >=16'} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - css-selector-parser@3.0.4: resolution: {integrity: sha512-pnmS1dbKsz6KA4EW4BznyPL2xxkNDRg62hcD0v8g6DEw2W7hxOln5M953jsp9hmw5Dg57S6o/A8GOn37mbAgcQ==} - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -2431,19 +1902,23 @@ packages: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} - dashify@2.0.0: - resolution: {integrity: sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A==} - engines: {node: '>=4'} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} @@ -2495,10 +1970,6 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} @@ -2514,6 +1985,10 @@ packages: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -2594,9 +2069,6 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -2609,14 +2081,18 @@ packages: resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==} engines: {node: '>=6'} + dunder-proto@1.0.0: + resolution: {integrity: sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==} + engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.645: - resolution: {integrity: sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw==} + electron-to-chromium@1.5.72: + resolution: {integrity: sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2624,9 +2100,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encode-utf8@1.0.3: - resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} - encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -2635,10 +2108,6 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -2646,13 +2115,34 @@ packages: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.0: + resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} es-set-tostringtag@2.0.2: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} @@ -2660,22 +2150,24 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild-plugin-browserslist@0.10.0: - resolution: {integrity: sha512-rZWFcp3l+73xDiJB+Vl9UqP1VVs+L4E0lygbwJl6UTmW2qQago7DLT56hBu0vocH/TtZsAcRHj0+qHqkkB5Gww==} - engines: {node: '>=18'} - peerDependencies: - browserslist: ^4.21.8 - esbuild: ~0.19.2 - esbuild@0.19.12: resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -2700,8 +2192,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.8.0: - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2721,24 +2213,24 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true - eslint-plugin-jsx-a11y@6.8.0: - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-prettier@5.1.3: - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -2751,25 +2243,25 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + eslint-plugin-react-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.4.5: - resolution: {integrity: sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==} + eslint-plugin-react-refresh@0.4.16: + resolution: {integrity: sha512-slterMlxAhov/DZO8NScf6mEeMBBXodFUolijDvrtTxyezyLoTQaa73FyYus/VbTdftd8wBgBxPMRk3poleXNQ==} peerDependencies: - eslint: '>=7' + eslint: '>=8.40' - eslint-plugin-react@7.33.2: - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-simple-import-sort@10.0.0: - resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} + eslint-plugin-simple-import-sort@12.1.1: + resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} peerDependencies: eslint: '>=5.0.0' @@ -2827,10 +2319,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - ethers@6.10.0: - resolution: {integrity: sha512-nMNwYHzs6V1FR3Y4cdfxSQmNgZsRj1RiTU25JwvnJLmyzw9z3SKxNc2XKDuiXXo/v9ds5Mp9m6HBabgYQQ26tA==} - engines: {node: '>=14.0.0'} - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -2873,13 +2361,6 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.0.3: - resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} - - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - fastq@1.16.0: resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} @@ -2891,10 +2372,6 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - file-saver@2.0.5: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} @@ -2929,18 +2406,11 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - - follow-redirects@1.15.5: - resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -2958,12 +2428,15 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.0.3: - resolution: {integrity: sha512-6x2poQpIWBdbZwLd73w6cKZ1I9IEPIU94C6/Swp1Zt3LJ+sB5bPe1E2wC6EH5hSISXNkMJ4afH7AdwS7MrtkWw==} + framer-motion@11.14.0: + resolution: {integrity: sha512-/cPWeZ4GXAJwNj3Z2cp+WtbVDlXyhBWmoIlorgn6FieOcEmoritPGvg+dqO6GaUlXHYgW6YLpsAPzdFfQqWQ5Q==} peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true react: optional: true react-dom: @@ -3002,6 +2475,10 @@ packages: get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-intrinsic@1.2.5: + resolution: {integrity: sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==} + engines: {node: '>= 0.4'} + get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} @@ -3019,6 +2496,10 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + get-text-width@1.0.3: resolution: {integrity: sha512-kv1MaexPcR/qaZ4kN8sUDjG5pRp5ptHvxcDGDBTeGld1cmo7MnlCMH22jevyvs/VV7Ran203o7qAOq2+kWw9cA==} @@ -3051,19 +2532,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -3076,6 +2544,10 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -3084,15 +2556,16 @@ packages: resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} engines: {node: '>=18'} - globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} - globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -3126,22 +2599,41 @@ packages: has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + hast-util-classnames@3.0.0: resolution: {integrity: sha512-tI3JjoGDEBVorMAWK4jNRsfLMYmih1BUOG3VV36pH36njs1IEl7xkNrVTD2mD2yYHmQCa5R/fj61a8IAF4bRaQ==} @@ -3198,17 +2690,17 @@ packages: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} - html-dom-parser@5.0.7: - resolution: {integrity: sha512-2YD2/yB0QgrlkBIn0CsGaRXC89E1gtuPVpiOGC52NTzPCC83n0WMdGD+5q7lpcKqbCpnWValQbovuy/NI/0kag==} + html-dom-parser@5.0.11: + resolution: {integrity: sha512-iORudm2K0c0DYeEj4AbrG9PFzgp1dpFGkJUAiBlVTkeyaNf2YYIs1b0dF7rQUPnDZimkLx+Jls+CvRIKO/++Tg==} - html-react-parser@5.1.1: - resolution: {integrity: sha512-L5VK0rKN3VM7uzRH+4wxAL9elvHuCNDjyWKKjcCDR+YWW5Qr7WWSK7+e627DcePVAFi5IMqc+rAU8j/1DpC/Tw==} + html-react-parser@5.2.0: + resolution: {integrity: sha512-t5IkGKTBYnjmYUzEV1RBT5twACepcf20u6Q0TylXQkb6NQKaBFSMebb/S/joxXrg8IHc+ROLirQIZc5DkD23hA==} peerDependencies: - react: 0.14 || 15 || 16 || 17 || 18 - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} + '@types/react': 0.14 || 15 || 16 || 17 || 18 || 19 + react: 0.14 || 15 || 16 || 17 || 18 || 19 + peerDependenciesMeta: + '@types/react': + optional: true html-url-attributes@3.0.0: resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} @@ -3246,10 +2738,6 @@ packages: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - immutable@4.3.4: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} @@ -3281,6 +2769,9 @@ packages: inline-style-parser@0.2.2: resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + inquirer@8.2.6: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} @@ -3289,6 +2780,10 @@ packages: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + internmap@2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} @@ -3306,6 +2801,10 @@ packages: is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -3335,6 +2834,14 @@ packages: is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -3359,6 +2866,10 @@ packages: is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.1.0: + resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} + engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -3386,10 +2897,18 @@ packages: is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} @@ -3417,10 +2936,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} @@ -3431,9 +2946,17 @@ packages: is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -3458,6 +2981,10 @@ packages: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -3465,12 +2992,20 @@ packages: is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} @@ -3488,11 +3023,12 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} - itertools@2.2.3: - resolution: {integrity: sha512-TV4TDJ2FrLxhRJDX/AgdyI76i6cHi2Z1hml/d+HLcGVHxmgfxsLpoQBN2ZE9OizPt10+VW+LamLfCDASlnxvNg==} + itertools@2.3.2: + resolution: {integrity: sha512-urRg24zOOKt4qQHm3gzQLK5Mima/kMSP3DUfcVw05W3veUHxxqHPTEW08aKY9GIZm9CKvnULVqXdjZWNYalJHQ==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3501,15 +3037,16 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -3522,9 +3059,6 @@ packages: json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -3540,9 +3074,6 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} @@ -3562,9 +3093,6 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - known-css-properties@0.29.0: - resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} - koa-compose@4.1.0: resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} @@ -3593,6 +3121,9 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + little-state-machine@4.8.0: resolution: {integrity: sha512-xfi5+iDxTLhu0hbnNubUs+qoQQqxhtEZeObP5ELjUlHnl74bbasY7mOonsGQrAouyrbag3ebNLSse5xX1T7buQ==} peerDependencies: @@ -3621,18 +3152,12 @@ packages: lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -3647,9 +3172,6 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -3660,10 +3182,6 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} @@ -3676,16 +3194,12 @@ packages: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} - markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - - marked@4.3.0: - resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} - engines: {node: '>= 12'} + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true - mathml-tag-names@2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} @@ -3735,11 +3249,8 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} @@ -3748,10 +3259,6 @@ packages: memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} - meow@8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -3872,10 +3379,6 @@ packages: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -3899,14 +3402,14 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -3918,6 +3421,12 @@ packages: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} + motion-dom@11.14.0: + resolution: {integrity: sha512-K7utJZxeMfUJNp/7VNtyasmj4AsqmX6dxT01ox2M9kndcww9soP4gFpf4n0wz7m249+c2ZRfWPnWdInzaxv03w==} + + motion-utils@11.13.0: + resolution: {integrity: sha512-lq6TzXkH5c/ysJQBxgLXgM01qwBH1b4goTPh57VvZWJbVJZF/0SB31UWEn4EIqbVPf3au88n2rvK17SpDTja1A==} + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -3937,11 +3446,6 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3957,11 +3461,8 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -3992,8 +3493,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - numbro@2.4.0: - resolution: {integrity: sha512-t6rVkO1CcKvffvOJJu/zMo70VIcQSR6w3AmIhfHGvmk4vHbNe6zHgomB0aWFAPZWM9JBVWBM0efJv9DBiRoSTA==} + numbro@2.5.0: + resolution: {integrity: sha512-xDcctDimhzko/e+y+Q2/8i3qNC9Svw1QgOkSkQoO0kIPI473tR9QRbo2KP88Ty9p8WbPy+3OpTaAIzehtuHq+A==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -4002,6 +3503,10 @@ packages: object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4010,24 +3515,26 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} - object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - - object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} object.values@1.1.7: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -4164,9 +3671,6 @@ packages: periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -4186,42 +3690,13 @@ packages: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} - postcss-media-query-parser@0.2.3: - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - - postcss-resolve-nested-selector@0.1.1: - resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} - - postcss-resolve-nested-selector@0.1.6: - resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} - - postcss-safe-parser@7.0.1: - resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.4.31 - - postcss-scss@4.0.9: - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.4.29 - - postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} - engines: {node: '>=4'} - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.49: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} @@ -4234,13 +3709,8 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - prettier@3.2.4: - resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true @@ -4258,9 +3728,16 @@ packages: property-information@6.4.1: resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + proxy-compare@3.0.1: + resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -4276,8 +3753,8 @@ packages: qr.js@0.0.0: resolution: {integrity: sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ==} - qrcode@1.5.3: - resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + qrcode@1.5.4: + resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} engines: {node: '>=10.13.0'} hasBin: true @@ -4292,12 +3769,12 @@ packages: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} - radash@11.0.0: - resolution: {integrity: sha512-CRWxTFTDff0IELGJ/zz58yY4BDgyI14qSM5OLNKbCItJrff7m7dXbVF0kWYVCXQtPb3SXIVhXvAImH6eT7VLSg==} + radash@12.1.0: + resolution: {integrity: sha512-b0Zcf09AhqKS83btmUeYBS8tFK7XL2e3RvLmZcm0sTdF1/UUlHSsjXdCcWNxe7yfmAlPve5ym0DmKGtTzP6kVQ==} engines: {node: '>=14.18.0'} - react-click-away-listener@2.2.3: - resolution: {integrity: sha512-p63JRQtK9d085+QHUJ2Pje22P/N4tEaXsS2x7tbbptriQqZ9o8xEk7G1JrxwND5YmEVc/VO4fC3+cSBsqqgLUQ==} + react-click-away-listener@2.2.4: + resolution: {integrity: sha512-cwdiIPt5dlNATewJIj/oro9aHg61vjnpkMzL4TfA3+lY4zNWV6d9PxWDSXFCYlADcb0bnVlGWVFkyY+WzFXznA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4307,11 +3784,11 @@ packages: peerDependencies: react: ^18.2.0 - react-hook-form@7.49.3: - resolution: {integrity: sha512-foD6r3juidAT1cOZzpmD/gOKt7fRsDhXXZ0y28+Al1CHgX+AY1qIN9VSIIItXRq1dN68QrRwl1ORFlwjBaAqeQ==} - engines: {node: '>=18', pnpm: '8'} + react-hook-form@7.54.0: + resolution: {integrity: sha512-PS05+UQy/IdSbJNojBypxAo9wllhHgGmyr8/dyGQcPoiMf3e7Dfb9PWYVRco55bLbxH9S+1yDDJeTdlYCSxO3A==} + engines: {node: '>=18.0.0'} peerDependencies: - react: ^16.8.0 || ^17 || ^18 + react: ^16.8.0 || ^17 || ^18 || ^19 react-hotkeys-hook@4.4.4: resolution: {integrity: sha512-wzZmqb/Obr0ds9Myc1sIFPJ52GA/Eeg/vXBWV0HA1LvHlVAW5Va3KB0q6EZNlNSHQWscWZ2K8+6w0GYSie2o7A==} @@ -4339,8 +3816,8 @@ packages: react-lifecycles-compat@3.0.4: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - react-loading-skeleton@3.3.1: - resolution: {integrity: sha512-NilqqwMh2v9omN7LteiDloEVpFyMIa0VGqF+ukqp0ncVlYu1sKYbYGX9JEl+GtOT9TKsh04zCHAbavnQ2USldA==} + react-loading-skeleton@3.5.0: + resolution: {integrity: sha512-gxxSyLbrEAdXTKgfbpBEFZCO/P153DnqSCQau2+o6lNy1jgMRr2MmRmOzMmyrwSaSYLRB8g7b0waYPmUjz7IhQ==} peerDependencies: react: '>=16.8.0' @@ -4353,19 +3830,20 @@ packages: react-property@2.0.2: resolution: {integrity: sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==} - react-qr-code@2.0.12: - resolution: {integrity: sha512-k+pzP5CKLEGBRwZsDPp98/CAJeXlsYRHM2iZn1Sd5Th/HnKhIZCSg27PXO58zk8z02RaEryg+60xa4vyywMJwg==} + react-qr-code@2.0.15: + resolution: {integrity: sha512-MkZcjEXqVKqXEIMVE0mbcGgDpkfSdd8zhuzXEl9QzYeNcw8Hq2oVIzDLWuZN2PQBwM5PWjc2S31K8Q1UbcFMfw==} peerDependencies: - react: ^16.x || ^17.x || ^18.x - react-native-svg: '*' - peerDependenciesMeta: - react-native-svg: - optional: true + react: '*' - react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-resize-detector@12.0.1: + resolution: {integrity: sha512-qOzOEn8AC4i60L29sPeUtw3RRsdDYZAGOBDwg3vzUQ34fpP+JOBlf1x0Q8Wv85IPQ3nBNL4NNr12e2caiIK1Lg==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-router-dom@6.21.3: resolution: {integrity: sha512-kNzubk7n4YHSrErzjLK72j0B5i969GsuCGazRl3G6j1zqZBLjuSlYBdVdkDOgzGdPIffUOc9nmgiadTEVoq91g==} engines: {node: '>=14.0.0'} @@ -4391,14 +3869,20 @@ packages: react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-tracked@2.0.1: + resolution: {integrity: sha512-qjbmtkO2IcW+rB2cFskRWDTjKs/w9poxvNnduacjQA04LWxOoLy9J8WfIEq1ahifQ/tVJQECrQPBm+UEzKRDtg==} + peerDependencies: + react: '>=18.0.0' + scheduler: '>=0.19.0' + react-transition-group@2.9.0: resolution: {integrity: sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==} peerDependencies: react: '>=15.0.0' react-dom: '>=15.0.0' - react-virtualized-auto-sizer@1.0.21: - resolution: {integrity: sha512-RedZxj452+ITLfqIrR02BjvCaXV63YVIcVrvmruDZXFpJGazg4gHNs1AShPGVLvEuLGZdZ9AtkGKhWvzEujL8g==} + react-virtualized-auto-sizer@1.0.24: + resolution: {integrity: sha512-3kCn7N9NEb3FlvJrSHWGQ4iVl+ydQObq2fHMn12i5wbtm74zHOPhz/i64OL3c1S1vi9i2GXtZqNqUJTQ+BnNfg==} peerDependencies: react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 @@ -4460,30 +3944,20 @@ packages: resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + reflect.getprototypeof@1.0.8: + resolution: {integrity: sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==} + engines: {node: '>= 0.4'} regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + engines: {node: '>= 0.4'} rehype-class-names@1.0.14: resolution: {integrity: sha512-eFBt6Qxb7K77y6P82tUtN9rKpU7guWlaK4XA4RrrSFHkUTCvr2D3cgb9OR5d4t1AaGOvR59FH9nRwUnbpn9AEg==} @@ -4506,17 +3980,13 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - remove-accents@0.4.2: - resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} + remove-accents@0.5.0: + resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} @@ -4524,10 +3994,6 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -4549,10 +4015,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-preserve-directives@0.3.1: - resolution: {integrity: sha512-Jn1gWU7G55A1sU6eFpXmwknfBasF0XbBzRqsE6nqrb/gun+mGV7nx++CwOSGPJQpFzFqvKm5U4XNKo3LTLi4Hg==} - peerDependencies: - rollup: npm:@rollup/wasm-node + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} + engines: {node: '>=10.0.0'} + hasBin: true run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} @@ -4572,6 +4038,10 @@ packages: resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} engines: {node: '>=0.4'} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -4582,6 +4052,10 @@ packages: resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} engines: {node: '>= 0.4'} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -4613,10 +4087,18 @@ packages: resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} engines: {node: '>= 0.4'} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -4631,19 +4113,16 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - shiki@0.14.7: - resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} - side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -4652,13 +4131,6 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -4685,9 +4157,6 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spawn-command@0.0.2: - resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} - spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -4734,19 +4203,35 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -4788,8 +4273,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - style-to-js@1.1.10: - resolution: {integrity: sha512-VC7MBJa+y0RZhpnLKDPmVRLRswsASLmixkiZ5R8xZpNT9VyjeRzwnXd2pBzAWdgSGv/pCNNH01gPCCUsB9exYg==} + style-to-js@1.1.16: + resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} @@ -4797,55 +4282,8 @@ packages: style-to-object@1.0.5: resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} - stylelint-config-prettier-scss@1.0.0: - resolution: {integrity: sha512-Gr2qLiyvJGKeDk0E/+awNTrZB/UtNVPLqCDOr07na/sLekZwm26Br6yYIeBYz3ulsEcQgs5j+2IIMXCC+wsaQA==} - engines: {node: 14.* || 16.* || >= 18} - hasBin: true - peerDependencies: - stylelint: '>=15.0.0' - - stylelint-config-recommended-scss@14.0.0: - resolution: {integrity: sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw==} - engines: {node: '>=18.12.0'} - peerDependencies: - postcss: ^8.3.3 - stylelint: ^16.0.2 - peerDependenciesMeta: - postcss: - optional: true - - stylelint-config-recommended@14.0.0: - resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.0.0 - - stylelint-config-standard-scss@13.0.0: - resolution: {integrity: sha512-WaLvkP689qSYUpJQPCo30TFJSSc3VzvvoWnrgp+7PpVby5o8fRUY1cZcP0sePZfjrFl9T8caGhcKg0GO34VDiQ==} - engines: {node: '>=18.12.0'} - peerDependencies: - postcss: ^8.3.3 - stylelint: ^16.1.0 - peerDependenciesMeta: - postcss: - optional: true - - stylelint-config-standard@36.0.0: - resolution: {integrity: sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.1.0 - - stylelint-scss@6.1.0: - resolution: {integrity: sha512-kCfK8TQzthGwb4vaZniZgxRsVbCM4ZckmT1b/H5m4FU3I8Dz0id9llKsy1NMp3XXqC8+OPD4rVKtUbSxXlJb5g==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.0.2 - - stylelint@16.2.0: - resolution: {integrity: sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==} - engines: {node: '>=18.12.0'} - hasBin: true + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} @@ -4866,41 +4304,19 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-hyperlinks@3.1.0: - resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} - engines: {node: '>=14.18'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - - svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - - svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} - engines: {node: '>=14.0.0'} - hasBin: true - - synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} - systemjs@6.14.3: - resolution: {integrity: sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w==} - tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - table@6.9.0: - resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} - engines: {node: '>=10.0.0'} - - terser@5.27.0: - resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==} + terser@5.37.0: + resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} engines: {node: '>=10'} hasBin: true @@ -4976,9 +4392,6 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tslib@2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -5026,26 +4439,42 @@ packages: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.3: + resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==} + engines: {node: '>= 0.4'} + typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typedoc@0.25.7: - resolution: {integrity: sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==} - engines: {node: '>= 16'} + typedoc@0.27.4: + resolution: {integrity: sha512-wXPQs1AYC2Crk+1XFpNuutLIkNWleokZf1UNf/X8w9KsMnirkvT+LzxTXDvfF6ug3TSLf3Xu5ZXRKGfoXPX7IA==} + engines: {node: '>= 18'} hasBin: true peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x typesafe-i18n@5.26.2: resolution: {integrity: sha512-2QAriFmiY5JwUAJtG7yufoE/XZ1aFBY++wj7YFS2yo89a3jLBfKoWSdq5JfQYk1V2BS7V2c/u+KEcaCQoE65hw==} @@ -5065,6 +4494,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -5073,24 +4505,8 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} @@ -5130,8 +4546,8 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -5139,12 +4555,18 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - use-breakpoint@4.0.1: - resolution: {integrity: sha512-Fa5Duxv3BY3bw8kmj/lmryTETXVUmBQeYJpBgPJ2yJRiIaGVG8rlMNKQE+JS2rywCZHWaggVUz+ytbr7sH/yyg==} + use-breakpoint@4.0.5: + resolution: {integrity: sha512-f/VVthAzRM8PYBK2bqDpsP0/farfDYAFiqVcVbyIBpbafNi1pNFEPqHa87Nqnp3NtnME8ScBpOL6grOhSggenw==} peerDependencies: react: '>=18' react-dom: '>=18' + use-context-selector@2.0.0: + resolution: {integrity: sha512-owfuSmUNd3eNp3J9CdDl0kMgfidV+MkDvHPpvthN5ThqM+ibMccNE0k+Iq7TWC6JPFvGZqanqiGCuQx6DyV24g==} + peerDependencies: + react: '>=18.0.0' + scheduler: '>=0.19.0' + use-deep-compare-effect@1.8.1: resolution: {integrity: sha512-kbeNVZ9Zkc0RFGpfMN3MNfaKNvcLNyxOAAd9O4CBZ+kCBXXscn9s/4I+8ytUER4RDpEYs5+O6Rs4PqiZ+rHr5Q==} engines: {node: '>=10', npm: '>=6'} @@ -5234,12 +4656,46 @@ packages: optional: true terser: optional: true - - vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - - vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + + vite@6.0.3: + resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + 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 wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -5254,9 +4710,17 @@ packages: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} engines: {node: '>= 0.4'} + which-builtin-type@1.2.0: + resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} + engines: {node: '>= 0.4'} + which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} @@ -5264,9 +4728,9 @@ packages: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which-typed-array@1.1.16: + resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} + engines: {node: '>= 0.4'} which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -5295,22 +4759,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ws@8.5.0: - resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} - 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 - xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -5332,6 +4780,11 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -5345,752 +4798,193 @@ packages: engines: {node: '>=12'} yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - ylru@1.3.2: - resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==} - engines: {node: '>= 4.0.0'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - - zustand@4.5.0: - resolution: {integrity: sha512-zlVFqS5TQ21nwijjhJlx4f9iGrXSL0o/+Dpy4txAP22miJ8Ti6c1Ol1RLNN98BMib83lmDH/2KmLwaNXpjrO1A==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@aashutoshrathi/word-wrap@1.2.6': {} - - '@adraffy/ens-normalize@1.10.0': {} - - '@ampproject/remapping@2.2.1': - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 - - '@babel/code-frame@7.23.5': - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - '@babel/compat-data@7.23.5': {} - - '@babel/core@7.23.9': - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helpers': 7.23.9 - '@babel/parser': 7.23.9 - '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.23.6': - dependencies: - '@babel/types': 7.23.6 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 - jsesc: 2.5.2 - - '@babel/helper-annotate-as-pure@7.22.5': - dependencies: - '@babel/types': 7.23.6 - - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - dependencies: - '@babel/types': 7.23.6 - - '@babel/helper-compilation-targets@7.23.6': - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.2 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-environment-visitor@7.22.20': {} - - '@babel/helper-function-name@7.23.0': - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - - '@babel/helper-hoist-variables@7.22.5': - dependencies: - '@babel/types': 7.23.6 - - '@babel/helper-member-expression-to-functions@7.23.0': - dependencies: - '@babel/types': 7.23.6 - - '@babel/helper-module-imports@7.22.15': - dependencies: - '@babel/types': 7.23.6 - - '@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - '@babel/helper-optimise-call-expression@7.22.5': - dependencies: - '@babel/types': 7.23.6 - - '@babel/helper-plugin-utils@7.22.5': {} - - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - - '@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - - '@babel/helper-simple-access@7.22.5': - dependencies: - '@babel/types': 7.23.9 - - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - dependencies: - '@babel/types': 7.23.6 - - '@babel/helper-split-export-declaration@7.22.6': - dependencies: - '@babel/types': 7.23.6 - - '@babel/helper-string-parser@7.23.4': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/helper-validator-option@7.23.5': {} - - '@babel/helper-wrap-function@7.22.20': - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - - '@babel/helpers@7.23.9': - dependencies: - '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9 - '@babel/types': 7.23.9 - transitivePeerDependencies: - - supports-color - - '@babel/highlight@7.23.4': - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - '@babel/parser@7.23.6': - dependencies: - '@babel/types': 7.23.6 - - '@babel/parser@7.23.9': - dependencies: - '@babel/types': 7.23.9 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - - '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - - '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} - '@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} - '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} - '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + ylru@1.3.2: + resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==} + engines: {node: '>= 4.0.0'} - '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} - '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} - '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + zustand@5.0.2: + resolution: {integrity: sha512-8qNdnJVJlHlrKXi50LDqqUNmUbuBjoKLrYQBnoChIbVph7vni+sY+YpvdjXG9YLd/Bxr6scMcR+rm5H3aSqPaw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true - '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) +snapshots: - '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@aashutoshrathi/word-wrap@1.2.6': {} - '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9)': + '@ampproject/remapping@2.2.1': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 - '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9)': + '@babel/code-frame@7.23.5': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/highlight': 7.23.4 + chalk: 2.4.2 - '@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9)': + '@babel/code-frame@7.26.2': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/compat-data@7.26.3': {} - '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9)': + '@babel/core@7.26.0': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9)': + '@babel/generator@7.23.6': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.9 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 + jsesc: 2.5.2 - '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9)': + '@babel/generator@7.26.3': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 - '@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.9)': + '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/compat-data': 7.26.3 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-environment-visitor@7.22.20': {} - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9)': + '@babel/helper-function-name@7.23.0': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 - '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9)': + '@babel/helper-hoist-variables@7.22.5': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.9 - '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9)': + '@babel/helper-module-imports@7.22.15': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/types': 7.23.6 - '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9)': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.4 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-plugin-utils@7.25.9': {} - '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9)': + '@babel/helper-split-export-declaration@7.22.6': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/types': 7.23.9 - '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/helper-string-parser@7.23.4': {} - '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-string-parser@7.25.9': {} - '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier@7.22.20': {} - '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + '@babel/helper-validator-identifier@7.25.9': {} - '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option@7.25.9': {} - '@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.9)': + '@babel/helpers@7.26.0': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.25.9 + '@babel/types': 7.26.3 - '@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.9)': + '@babel/highlight@7.23.4': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 - '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9)': + '@babel/parser@7.23.6': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 + '@babel/types': 7.23.9 - '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9)': + '@babel/parser@7.23.9': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.9 - '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9)': + '@babel/parser@7.26.3': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.26.3 - '@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9)': + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - - '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.22.5 - - '@babel/preset-env@7.23.8(@babel/core@7.23.9)': - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.9) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.9) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) - core-js-compat: 3.35.1 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9)': + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.6 - esutils: 2.0.3 - - '@babel/regjsgen@0.8.0': {} + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 '@babel/runtime@7.23.8': dependencies: @@ -6099,8 +4993,8 @@ snapshots: '@babel/template@7.22.15': dependencies: '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 '@babel/template@7.23.9': dependencies: @@ -6108,6 +5002,12 @@ snapshots: '@babel/parser': 7.23.9 '@babel/types': 7.23.9 + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@babel/traverse@7.23.7': dependencies: '@babel/code-frame': 7.23.5 @@ -6116,24 +5016,21 @@ snapshots: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - debug: 4.3.4 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.23.9': + '@babel/traverse@7.26.4': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - debug: 4.3.4 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 + '@babel/template': 7.25.9 + '@babel/types': 7.26.3 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6150,6 +5047,11 @@ snapshots: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + '@babel/types@7.26.3': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@bundled-es-modules/cookie@2.0.0': dependencies: cookie: 0.5.0 @@ -6158,26 +5060,11 @@ snapshots: dependencies: statuses: 2.0.1 - '@csstools/css-parser-algorithms@2.5.0(@csstools/css-tokenizer@2.2.3)': - dependencies: - '@csstools/css-tokenizer': 2.2.3 - - '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': - dependencies: - '@csstools/css-tokenizer': 2.4.1 - - '@csstools/css-tokenizer@2.2.3': {} - - '@csstools/css-tokenizer@2.4.1': {} - - '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 + '@csstools/css-tokenizer': 3.0.3 - '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.2)': - dependencies: - postcss-selector-parser: 6.1.2 + '@csstools/css-tokenizer@3.0.3': {} '@emotion/babel-plugin@11.11.0': dependencies: @@ -6203,18 +5090,10 @@ snapshots: '@emotion/hash@0.9.1': {} - '@emotion/is-prop-valid@0.8.8': - dependencies: - '@emotion/memoize': 0.7.4 - optional: true - '@emotion/is-prop-valid@1.2.1': dependencies: '@emotion/memoize': 0.8.1 - '@emotion/memoize@0.7.4': - optional: true - '@emotion/memoize@0.8.1': {} '@emotion/react@11.11.3(@types/react@18.2.48)(react@18.2.0)': @@ -6267,72 +5146,144 @@ snapshots: '@esbuild/aix-ppc64@0.19.12': optional: true + '@esbuild/aix-ppc64@0.24.0': + optional: true + '@esbuild/android-arm64@0.19.12': optional: true + '@esbuild/android-arm64@0.24.0': + optional: true + '@esbuild/android-arm@0.19.12': optional: true + '@esbuild/android-arm@0.24.0': + optional: true + '@esbuild/android-x64@0.19.12': optional: true + '@esbuild/android-x64@0.24.0': + optional: true + '@esbuild/darwin-arm64@0.19.12': optional: true + '@esbuild/darwin-arm64@0.24.0': + optional: true + '@esbuild/darwin-x64@0.19.12': optional: true + '@esbuild/darwin-x64@0.24.0': + optional: true + '@esbuild/freebsd-arm64@0.19.12': optional: true + '@esbuild/freebsd-arm64@0.24.0': + optional: true + '@esbuild/freebsd-x64@0.19.12': optional: true + '@esbuild/freebsd-x64@0.24.0': + optional: true + '@esbuild/linux-arm64@0.19.12': optional: true + '@esbuild/linux-arm64@0.24.0': + optional: true + '@esbuild/linux-arm@0.19.12': optional: true + '@esbuild/linux-arm@0.24.0': + optional: true + '@esbuild/linux-ia32@0.19.12': optional: true + '@esbuild/linux-ia32@0.24.0': + optional: true + '@esbuild/linux-loong64@0.19.12': optional: true + '@esbuild/linux-loong64@0.24.0': + optional: true + '@esbuild/linux-mips64el@0.19.12': optional: true + '@esbuild/linux-mips64el@0.24.0': + optional: true + '@esbuild/linux-ppc64@0.19.12': optional: true + '@esbuild/linux-ppc64@0.24.0': + optional: true + '@esbuild/linux-riscv64@0.19.12': optional: true + '@esbuild/linux-riscv64@0.24.0': + optional: true + '@esbuild/linux-s390x@0.19.12': optional: true + '@esbuild/linux-s390x@0.24.0': + optional: true + '@esbuild/linux-x64@0.19.12': optional: true + '@esbuild/linux-x64@0.24.0': + optional: true + '@esbuild/netbsd-x64@0.19.12': optional: true + '@esbuild/netbsd-x64@0.24.0': + optional: true + + '@esbuild/openbsd-arm64@0.24.0': + optional: true + '@esbuild/openbsd-x64@0.19.12': optional: true + '@esbuild/openbsd-x64@0.24.0': + optional: true + '@esbuild/sunos-x64@0.19.12': optional: true + '@esbuild/sunos-x64@0.24.0': + optional: true + '@esbuild/win32-arm64@0.19.12': optional: true + '@esbuild/win32-arm64@0.24.0': + optional: true + '@esbuild/win32-ia32@0.19.12': optional: true + '@esbuild/win32-ia32@0.24.0': + optional: true + '@esbuild/win32-x64@0.19.12': optional: true + '@esbuild/win32-x64@0.24.0': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': dependencies: eslint: 8.56.0 @@ -6358,28 +5309,34 @@ snapshots: '@floating-ui/core@1.6.0': dependencies: - '@floating-ui/utils': 0.2.1 + '@floating-ui/utils': 0.2.8 '@floating-ui/dom@1.6.0': dependencies: '@floating-ui/core': 1.6.0 - '@floating-ui/utils': 0.2.1 + '@floating-ui/utils': 0.2.8 - '@floating-ui/react-dom@2.0.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@floating-ui/react-dom@2.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@floating-ui/dom': 1.6.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@floating-ui/react@0.26.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@floating-ui/react@0.27.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@floating-ui/react-dom': 2.0.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@floating-ui/utils': 0.2.1 + '@floating-ui/react-dom': 2.1.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@floating-ui/utils': 0.2.8 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tabbable: 6.2.0 - '@floating-ui/utils@0.2.1': {} + '@floating-ui/utils@0.2.8': {} + + '@gerrit0/mini-shiki@1.24.3': + dependencies: + '@shikijs/engine-oniguruma': 1.24.2 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 '@github/webauthn-json@2.1.1': {} @@ -6398,9 +5355,9 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@hookform/resolvers@3.3.4(react-hook-form@7.49.3(react@18.2.0))': + '@hookform/resolvers@3.9.1(react-hook-form@7.54.0(react@18.2.0))': dependencies: - react-hook-form: 7.49.3(react@18.2.0) + react-hook-form: 7.54.0(react@18.2.0) '@humanwhocodes/config-array@0.11.14': dependencies: @@ -6422,14 +5379,23 @@ snapshots: '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.1': {} '@jridgewell/set-array@1.1.2': {} + '@jridgewell/set-array@1.2.1': {} + '@jridgewell/source-map@0.3.5': dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + optional: true '@jridgewell/sourcemap-codec@1.4.15': {} @@ -6438,15 +5404,20 @@ snapshots: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@ladle/react-context@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@ladle/react@4.0.2(@types/node@20.11.7)(@types/react@18.2.48)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.70.0)(terser@5.27.0)(typescript@5.3.3)': + '@ladle/react@4.0.2(@types/node@22.10.2)(@types/react@18.2.48)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.70.0)(terser@5.37.0)(typescript@5.3.3)': dependencies: '@babel/code-frame': 7.23.5 - '@babel/core': 7.23.9 + '@babel/core': 7.26.0 '@babel/generator': 7.23.6 '@babel/parser': 7.23.6 '@babel/template': 7.22.15 @@ -6455,8 +5426,8 @@ snapshots: '@ladle/react-context': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mdx-js/mdx': 3.0.0 '@mdx-js/react': 3.0.0(@types/react@18.2.48)(react@18.2.0) - '@vitejs/plugin-react': 4.2.1(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)) - '@vitejs/plugin-react-swc': 3.5.0(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)) + '@vitejs/plugin-react': 4.3.4(vite@5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)) + '@vitejs/plugin-react-swc': 3.7.2(vite@5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)) axe-core: 4.8.3 boxen: 7.1.1 chokidar: 3.5.3 @@ -6484,8 +5455,8 @@ snapshots: remark-gfm: 4.0.0 source-map: 0.7.4 vfile: 6.0.1 - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0) - vite-tsconfig-paths: 4.3.1(typescript@5.3.3)(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)) + vite: 5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0) + vite-tsconfig-paths: 4.3.1(typescript@5.3.3)(vite@5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)) transitivePeerDependencies: - '@swc/helpers' - '@types/node' @@ -6533,8 +5504,6 @@ snapshots: '@types/react': 18.2.48 react: 18.2.0 - '@metamask/detect-provider@2.0.0': {} - '@mswjs/cookies@1.1.0': {} '@mswjs/interceptors@0.25.14': @@ -6546,12 +5515,6 @@ snapshots: outvariant: 1.4.2 strict-event-emitter: 0.5.1 - '@noble/curves@1.2.0': - dependencies: - '@noble/hashes': 1.3.2 - - '@noble/hashes@1.3.2': {} - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -6597,199 +5560,114 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + '@rtsao/scc@1.1.0': {} + '@rx-state/core@0.1.4(rxjs@7.8.1)': dependencies: rxjs: 7.8.1 - '@sindresorhus/merge-streams@1.0.0': {} - - '@stablelib/base64@1.0.1': {} - - '@stablelib/binary@1.0.1': - dependencies: - '@stablelib/int': 1.0.1 - - '@stablelib/bytes@1.0.1': {} - - '@stablelib/int@1.0.1': {} - - '@stablelib/keyagreement@1.0.1': - dependencies: - '@stablelib/bytes': 1.0.1 - - '@stablelib/random@1.0.2': - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/wipe': 1.0.1 - - '@stablelib/wipe@1.0.1': {} - - '@stablelib/x25519@1.0.3': - dependencies: - '@stablelib/keyagreement': 1.0.1 - '@stablelib/random': 1.0.2 - '@stablelib/wipe': 1.0.1 - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.23.9)': + '@shikijs/engine-oniguruma@1.24.2': dependencies: - '@babel/core': 7.23.9 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.23.9)': + '@shikijs/types@1.24.2': dependencies: - '@babel/core': 7.23.9 + '@shikijs/vscode-textmate': 9.3.1 + '@types/hast': 3.0.4 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 + '@shikijs/vscode-textmate@9.3.1': {} - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 + '@sindresorhus/merge-streams@1.0.0': {} - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.23.9)': - dependencies: - '@babel/core': 7.23.9 + '@stablelib/base64@2.0.0': {} - '@svgr/babel-preset@8.1.0(@babel/core@7.23.9)': + '@stablelib/binary@2.0.0': dependencies: - '@babel/core': 7.23.9 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.23.9) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.23.9) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.23.9) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.23.9) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.23.9) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.23.9) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.23.9) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.23.9) + '@stablelib/int': 2.0.0 - '@svgr/cli@8.1.0(typescript@5.3.3)': - dependencies: - '@svgr/core': 8.1.0(typescript@5.3.3) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.3.3)) - '@svgr/plugin-prettier': 8.1.0(@svgr/core@8.1.0(typescript@5.3.3)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.3.3))(typescript@5.3.3) - camelcase: 6.3.0 - chalk: 4.1.2 - commander: 9.5.0 - dashify: 2.0.0 - glob: 8.1.0 - snake-case: 3.0.4 - transitivePeerDependencies: - - supports-color - - typescript + '@stablelib/bytes@2.0.0': {} - '@svgr/core@8.1.0(typescript@5.3.3)': - dependencies: - '@babel/core': 7.23.9 - '@svgr/babel-preset': 8.1.0(@babel/core@7.23.9) - camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.3.3) - snake-case: 3.0.4 - transitivePeerDependencies: - - supports-color - - typescript + '@stablelib/int@2.0.0': {} - '@svgr/hast-util-to-babel-ast@8.0.0': + '@stablelib/keyagreement@2.0.0': dependencies: - '@babel/types': 7.23.6 - entities: 4.5.0 + '@stablelib/bytes': 2.0.0 - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.3.3))': + '@stablelib/random@2.0.0': dependencies: - '@babel/core': 7.23.9 - '@svgr/babel-preset': 8.1.0(@babel/core@7.23.9) - '@svgr/core': 8.1.0(typescript@5.3.3) - '@svgr/hast-util-to-babel-ast': 8.0.0 - svg-parser: 2.0.4 - transitivePeerDependencies: - - supports-color + '@stablelib/binary': 2.0.0 + '@stablelib/wipe': 2.0.0 - '@svgr/plugin-prettier@8.1.0(@svgr/core@8.1.0(typescript@5.3.3))': - dependencies: - '@svgr/core': 8.1.0(typescript@5.3.3) - deepmerge: 4.3.1 - prettier: 2.8.8 + '@stablelib/wipe@2.0.0': {} - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.3.3))(typescript@5.3.3)': + '@stablelib/x25519@2.0.0': dependencies: - '@svgr/core': 8.1.0(typescript@5.3.3) - cosmiconfig: 8.3.6(typescript@5.3.3) - deepmerge: 4.3.1 - svgo: 3.2.0 - transitivePeerDependencies: - - typescript + '@stablelib/keyagreement': 2.0.0 + '@stablelib/random': 2.0.0 + '@stablelib/wipe': 2.0.0 - '@swc/core-darwin-arm64@1.3.106': + '@swc/core-darwin-arm64@1.10.1': optional: true - '@swc/core-darwin-x64@1.3.106': + '@swc/core-darwin-x64@1.10.1': optional: true - '@swc/core-linux-arm-gnueabihf@1.3.106': + '@swc/core-linux-arm-gnueabihf@1.10.1': optional: true - '@swc/core-linux-arm64-gnu@1.3.106': + '@swc/core-linux-arm64-gnu@1.10.1': optional: true - '@swc/core-linux-arm64-musl@1.3.106': + '@swc/core-linux-arm64-musl@1.10.1': optional: true - '@swc/core-linux-x64-gnu@1.3.106': + '@swc/core-linux-x64-gnu@1.10.1': optional: true - '@swc/core-linux-x64-musl@1.3.106': + '@swc/core-linux-x64-musl@1.10.1': optional: true - '@swc/core-win32-arm64-msvc@1.3.106': + '@swc/core-win32-arm64-msvc@1.10.1': optional: true - '@swc/core-win32-ia32-msvc@1.3.106': + '@swc/core-win32-ia32-msvc@1.10.1': optional: true - '@swc/core-win32-x64-msvc@1.3.106': + '@swc/core-win32-x64-msvc@1.10.1': optional: true - '@swc/core@1.3.106': + '@swc/core@1.10.1': dependencies: - '@swc/counter': 0.1.2 - '@swc/types': 0.1.5 + '@swc/counter': 0.1.3 + '@swc/types': 0.1.17 optionalDependencies: - '@swc/core-darwin-arm64': 1.3.106 - '@swc/core-darwin-x64': 1.3.106 - '@swc/core-linux-arm-gnueabihf': 1.3.106 - '@swc/core-linux-arm64-gnu': 1.3.106 - '@swc/core-linux-arm64-musl': 1.3.106 - '@swc/core-linux-x64-gnu': 1.3.106 - '@swc/core-linux-x64-musl': 1.3.106 - '@swc/core-win32-arm64-msvc': 1.3.106 - '@swc/core-win32-ia32-msvc': 1.3.106 - '@swc/core-win32-x64-msvc': 1.3.106 + '@swc/core-darwin-arm64': 1.10.1 + '@swc/core-darwin-x64': 1.10.1 + '@swc/core-linux-arm-gnueabihf': 1.10.1 + '@swc/core-linux-arm64-gnu': 1.10.1 + '@swc/core-linux-arm64-musl': 1.10.1 + '@swc/core-linux-x64-gnu': 1.10.1 + '@swc/core-linux-x64-musl': 1.10.1 + '@swc/core-win32-arm64-msvc': 1.10.1 + '@swc/core-win32-ia32-msvc': 1.10.1 + '@swc/core-win32-x64-msvc': 1.10.1 - '@swc/counter@0.1.2': {} + '@swc/counter@0.1.3': {} - '@swc/types@0.1.5': {} + '@swc/types@0.1.17': + dependencies: + '@swc/counter': 0.1.3 - '@tanstack/match-sorter-utils@8.11.7': + '@tanstack/match-sorter-utils@8.19.4': dependencies: - remove-accents: 0.4.2 + remove-accents: 0.5.0 '@tanstack/query-core@4.36.1': {} '@tanstack/react-query-devtools@4.36.1(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@tanstack/match-sorter-utils': 8.11.7 + '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/react-query': 4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6813,34 +5691,30 @@ snapshots: dependencies: '@reach/observe-rect': 1.2.0 - '@tauri-apps/api@1.5.3': {} - - '@trysound/sax@0.2.0': {} - '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.6 '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 '@types/babel__traverse@7.20.5': dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.9 '@types/byte-size@8.1.2': {} @@ -6893,6 +5767,10 @@ snapshots: dependencies: '@types/unist': 3.0.2 + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.2 + '@types/history@4.7.11': {} '@types/json-schema@7.0.15': {} @@ -6915,11 +5793,9 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@18.15.13': {} - - '@types/node@20.11.7': + '@types/node@22.10.2': dependencies: - undici-types: 5.26.5 + undici-types: 6.20.0 '@types/normalize-package-data@2.4.4': {} @@ -7056,37 +5932,28 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-legacy@5.3.0(esbuild@0.19.12)(terser@5.27.0)(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0))': + '@vitejs/plugin-react-swc@3.7.2(vite@5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0))': dependencies: - '@babel/core': 7.23.9 - '@babel/preset-env': 7.23.8(@babel/core@7.23.9) - browserslist: 4.22.2 - core-js: 3.35.1 - esbuild-plugin-browserslist: 0.10.0(browserslist@4.22.2)(esbuild@0.19.12) - magic-string: 0.30.5 - regenerator-runtime: 0.14.1 - systemjs: 6.14.3 - terser: 5.27.0 - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0) + '@swc/core': 1.10.1 + vite: 5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0) transitivePeerDependencies: - - esbuild - - supports-color + - '@swc/helpers' - '@vitejs/plugin-react-swc@3.5.0(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0))': + '@vitejs/plugin-react-swc@3.7.2(vite@6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1))': dependencies: - '@swc/core': 1.3.106 - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0) + '@swc/core': 1.10.1 + vite: 6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.2.1(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0))': + '@vitejs/plugin-react@4.3.4(vite@5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0))': dependencies: - '@babel/core': 7.23.9 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0) + react-refresh: 0.14.2 + vite: 5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0) transitivePeerDependencies: - supports-color @@ -7108,8 +5975,6 @@ snapshots: add-stream@1.0.0: {} - aes-js@4.0.0-beta.5: {} - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -7117,13 +5982,6 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.17.1: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.0.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - ansi-align@3.0.1: dependencies: string-width: 4.2.3 @@ -7136,8 +5994,6 @@ snapshots: ansi-regex@6.0.1: {} - ansi-sequence-parser@1.1.1: {} - ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -7155,34 +6011,48 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 + aria-query@5.3.2: {} array-buffer-byte-length@1.0.0: dependencies: call-bind: 1.0.5 is-array-buffer: 3.0.2 + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.8 + is-array-buffer: 3.0.4 + array-ify@1.0.0: {} - array-includes@3.1.7: + array-includes@3.1.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.5 is-string: 1.0.7 array-union@2.1.0: {} - array.prototype.findlastindex@1.2.3: + array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 array.prototype.flat@1.3.2: dependencies: @@ -7198,13 +6068,13 @@ snapshots: es-abstract: 1.22.3 es-shim-unscopables: 1.0.2 - array.prototype.tosorted@1.1.2: + array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.5 + es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 arraybuffer.prototype.slice@1.0.2: dependencies: @@ -7216,47 +6086,54 @@ snapshots: is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.5 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + arrify@1.0.1: {} ast-types-flow@0.0.8: {} - astral-regex@2.0.0: {} - astring@1.8.6: {} - asynciterator.prototype@1.0.0: - dependencies: - has-symbols: 1.0.3 - asynckit@0.4.0: {} - autoprefixer@10.4.17(postcss@8.4.33): + autoprefixer@10.4.20(postcss@8.4.49): dependencies: - browserslist: 4.22.2 + browserslist: 4.24.2 caniuse-lite: 1.0.30001687 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.33 + picocolors: 1.1.1 + postcss: 8.4.49 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.5: {} - axe-core@4.7.0: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axe-core@4.10.2: {} axe-core@4.8.3: {} - axios@1.6.7: + axios@1.7.9: dependencies: - follow-redirects: 1.15.5 + follow-redirects: 1.15.9 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - axobject-query@3.2.1: - dependencies: - dequal: 2.0.3 + axobject-query@4.1.0: {} babel-plugin-macros@3.1.0: dependencies: @@ -7264,36 +6141,10 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.8 - babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.9): - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.9) - core-js-compat: 3.35.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) - transitivePeerDependencies: - - supports-color - bail@2.0.2: {} balanced-match@1.0.2: {} - balanced-match@2.0.0: {} - base64-js@1.5.1: {} bcp-47-match@2.0.3: {} @@ -7340,12 +6191,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.22.2: + browserslist@4.24.2: dependencies: caniuse-lite: 1.0.30001687 - electron-to-chromium: 1.4.645 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) + electron-to-chromium: 1.5.72 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.2) buffer-from@1.1.2: {} @@ -7358,19 +6209,31 @@ snapshots: dependencies: run-applescript: 5.0.0 - byte-size@8.1.1: {} + byte-size@9.0.1: {} cache-content-type@1.0.1: dependencies: mime-types: 2.1.35 ylru: 1.3.2 + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + call-bind@1.0.5: dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 set-function-length: 1.2.0 + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.5 + set-function-length: 1.2.2 + callsites@3.1.0: {} camelcase-keys@6.2.2: @@ -7381,8 +6244,6 @@ snapshots: camelcase@5.3.1: {} - camelcase@6.3.0: {} - camelcase@7.0.1: {} caniuse-lite@1.0.30001687: {} @@ -7456,7 +6317,7 @@ snapshots: clone@1.0.4: {} - clsx@2.1.0: {} + clsx@2.1.1: {} co@4.6.0: {} @@ -7474,8 +6335,6 @@ snapshots: color-name@1.1.4: {} - colord@2.9.3: {} - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -7484,11 +6343,8 @@ snapshots: commander@11.1.0: {} - commander@2.20.3: {} - - commander@7.2.0: {} - - commander@9.5.0: {} + commander@2.20.3: + optional: true compare-func@2.0.0: dependencies: @@ -7504,14 +6360,12 @@ snapshots: readable-stream: 3.6.2 typedarray: 0.0.6 - concurrently@8.2.2: + concurrently@9.1.0: dependencies: chalk: 4.1.2 - date-fns: 2.30.0 lodash: 4.17.21 rxjs: 7.8.1 shell-quote: 1.8.1 - spawn-command: 0.0.2 supports-color: 8.1.1 tree-kill: 1.2.2 yargs: 17.7.2 @@ -7649,12 +6503,6 @@ snapshots: dependencies: is-what: 4.1.16 - core-js-compat@3.35.1: - dependencies: - browserslist: 4.22.2 - - core-js@3.35.1: {} - core-util-is@1.0.3: {} cosmiconfig@7.1.0: @@ -7665,60 +6513,14 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@8.3.6(typescript@5.3.3): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.3.3 - - cosmiconfig@9.0.0(typescript@5.3.3): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.3.3 - cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - css-functions-list@3.2.3: {} - - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 - css-selector-parser@3.0.4: {} - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.0.2 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.0.2 - - css-what@6.1.0: {} - - cssesc@3.0.0: {} - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - csstype@3.1.3: {} d3-array@3.2.4: @@ -7763,15 +6565,27 @@ snapshots: dargs@7.0.0: {} - dashify@2.0.0: {} + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + is-data-view: 1.0.1 - date-fns@2.30.0: + data-view-byte-length@1.0.1: dependencies: - '@babel/runtime': 7.23.8 + call-bind: 1.0.8 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + is-data-view: 1.0.1 dateformat@3.0.3: {} - dayjs@1.11.10: {} + dayjs@1.11.13: {} debug@3.2.7: dependencies: @@ -7804,8 +6618,6 @@ snapshots: deep-is@0.1.4: {} - deepmerge@4.3.1: {} - default-browser-id@3.0.0: dependencies: bplist-parser: 0.2.0 @@ -7824,10 +6636,16 @@ snapshots: define-data-property@1.1.1: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.5 gopd: 1.0.1 has-property-descriptors: 1.0.1 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.0.1 + define-lazy-prop@3.0.0: {} define-properties@1.2.1: @@ -7896,11 +6714,6 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 - dot-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.6.2 - dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -7912,24 +6725,26 @@ snapshots: find-up: 3.0.0 minimatch: 3.1.2 + dunder-proto@1.0.0: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + eastasianwidth@0.2.0: {} ee-first@1.1.1: {} - electron-to-chromium@1.4.645: {} + electron-to-chromium@1.5.72: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - encode-utf8@1.0.3: {} - encodeurl@1.0.2: {} entities@4.5.0: {} - env-paths@2.2.1: {} - error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -7950,7 +6765,7 @@ snapshots: has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 internal-slot: 1.0.6 is-array-buffer: 3.0.2 is-callable: 1.2.7 @@ -7967,7 +6782,7 @@ snapshots: safe-array-concat: 1.1.0 safe-regex-test: 1.0.2 string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 + string.prototype.trimend: 1.0.8 string.prototype.trimstart: 1.0.7 typed-array-buffer: 1.0.0 typed-array-byte-length: 1.0.0 @@ -7976,32 +6791,96 @@ snapshots: unbox-primitive: 1.0.2 which-typed-array: 1.1.13 - es-iterator-helpers@1.0.15: + es-abstract@1.23.5: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.5 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.3 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.3 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.3 + typed-array-length: 1.0.7 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.16 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.0: dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 - es-set-tostringtag: 2.0.2 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + get-intrinsic: 1.2.5 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 has-symbols: 1.0.3 - internal-slot: 1.0.6 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.0 + internal-slot: 1.0.7 + iterator.prototype: 1.1.3 + safe-array-concat: 1.1.2 + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 es-set-tostringtag@2.0.2: dependencies: get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 - hasown: 2.0.0 + hasown: 2.0.2 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.5 + has-tostringtag: 1.0.2 + hasown: 2.0.2 es-shim-unscopables@1.0.2: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 es-to-primitive@1.2.1: dependencies: @@ -8009,15 +6888,6 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild-plugin-browserslist@0.10.0(browserslist@4.22.2)(esbuild@0.19.12): - dependencies: - browserslist: 4.22.2 - debug: 4.3.4 - esbuild: 0.19.12 - zod: 3.22.4 - transitivePeerDependencies: - - supports-color - esbuild@0.19.12: optionalDependencies: '@esbuild/aix-ppc64': 0.19.12 @@ -8044,8 +6914,37 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + escalade@3.1.1: {} + escalade@3.2.0: {} + escape-html@1.0.3: {} escape-string-regexp@1.0.5: {} @@ -8061,12 +6960,12 @@ snapshots: eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.15.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): dependencies: debug: 3.2.7 optionalDependencies: @@ -8076,25 +6975,27 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0): dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.0 - is-core-module: 2.13.1 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + hasown: 2.0.2 + is-core-module: 2.15.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) @@ -8103,65 +7004,66 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@8.56.0): dependencies: - '@babel/runtime': 7.23.8 - aria-query: 5.3.0 - array-includes: 3.1.7 + aria-query: 5.3.2 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 + axe-core: 4.10.2 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.15 eslint: 8.56.0 - hasown: 2.0.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.1 - eslint-plugin-prettier@5.1.3(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.2.4): + eslint-plugin-prettier@5.2.1(@types/eslint@8.56.2)(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.4.2): dependencies: eslint: 8.56.0 - prettier: 3.2.4 + prettier: 3.4.2 prettier-linter-helpers: 1.0.0 - synckit: 0.8.8 + synckit: 0.9.2 optionalDependencies: '@types/eslint': 8.56.2 eslint-config-prettier: 9.1.0(eslint@8.56.0) - eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): + eslint-plugin-react-hooks@5.1.0(eslint@8.56.0): dependencies: eslint: 8.56.0 - eslint-plugin-react-refresh@0.4.5(eslint@8.56.0): + eslint-plugin-react-refresh@0.4.16(eslint@8.56.0): dependencies: eslint: 8.56.0 - eslint-plugin-react@7.33.2(eslint@8.56.0): + eslint-plugin-react@7.37.2(eslint@8.56.0): dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 + es-iterator-helpers: 1.2.0 eslint: 8.56.0 estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 - eslint-plugin-simple-import-sort@10.0.0(eslint@8.56.0): + eslint-plugin-simple-import-sort@12.1.1(eslint@8.56.0): dependencies: eslint: 8.56.0 @@ -8263,19 +7165,6 @@ snapshots: esutils@2.0.3: {} - ethers@6.10.0: - dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@types/node': 18.15.13 - aes-js: 4.0.0-beta.5 - tslib: 2.4.0 - ws: 8.5.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - eventemitter3@4.0.7: {} events@3.3.0: {} @@ -8330,10 +7219,6 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.0.3: {} - - fastest-levenshtein@1.0.16: {} - fastq@1.16.0: dependencies: reusify: 1.0.4 @@ -8346,10 +7231,6 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - file-saver@2.0.5: {} fill-range@7.1.1: @@ -8384,16 +7265,9 @@ snapshots: keyv: 4.5.4 rimraf: 3.0.2 - flat-cache@4.0.1: - dependencies: - flatted: 3.3.2 - keyv: 4.5.4 - flatted@3.2.9: {} - flatted@3.3.2: {} - - follow-redirects@1.15.5: {} + follow-redirects@1.15.9: {} for-each@0.3.3: dependencies: @@ -8407,11 +7281,13 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.0.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + framer-motion@11.14.0(@emotion/is-prop-valid@1.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: + motion-dom: 11.14.0 + motion-utils: 11.13.0 tslib: 2.6.2 optionalDependencies: - '@emotion/is-prop-valid': 0.8.8 + '@emotion/is-prop-valid': 1.2.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -8426,9 +7302,9 @@ snapshots: function.prototype.name@1.1.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.5 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} @@ -8442,7 +7318,18 @@ snapshots: function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 + + get-intrinsic@1.2.5: + dependencies: + call-bind-apply-helpers: 1.0.1 + dunder-proto: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + function-bind: 1.1.2 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 get-pkg-repo@4.2.1: dependencies: @@ -8460,6 +7347,12 @@ snapshots: call-bind: 1.0.5 get-intrinsic: 1.2.2 + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + get-intrinsic: 1.2.5 + get-text-width@1.0.3: {} git-raw-commits@2.0.11: @@ -8501,24 +7394,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - - global-modules@2.0.0: - dependencies: - global-prefix: 3.0.0 - - global-prefix@3.0.0: - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - globals@11.12.0: {} globals@13.24.0: @@ -8529,6 +7404,11 @@ snapshots: dependencies: define-properties: 1.2.1 + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -8547,13 +7427,13 @@ snapshots: slash: 5.1.0 unicorn-magic: 0.1.0 - globjoin@0.1.4: {} - globrex@0.1.2: {} gopd@1.0.1: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.5 + + gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -8580,20 +7460,38 @@ snapshots: has-property-descriptors@1.0.1: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.5 + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 has-proto@1.0.1: {} + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.0 + has-symbols@1.0.3: {} + has-symbols@1.1.0: {} + has-tostringtag@1.0.0: dependencies: has-symbols: 1.0.3 + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + hasown@2.0.0: dependencies: function-bind: 1.1.2 + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + hast-util-classnames@3.0.0: dependencies: '@types/hast': 3.0.3 @@ -8738,20 +7636,20 @@ snapshots: dependencies: lru-cache: 6.0.0 - html-dom-parser@5.0.7: + html-dom-parser@5.0.11: dependencies: domhandler: 5.0.3 htmlparser2: 9.1.0 - html-react-parser@5.1.1(react@18.2.0): + html-react-parser@5.2.0(@types/react@18.2.48)(react@18.2.0): dependencies: domhandler: 5.0.3 - html-dom-parser: 5.0.7 + html-dom-parser: 5.0.11 react: 18.2.0 react-property: 2.0.2 - style-to-js: 1.1.10 - - html-tags@3.3.1: {} + style-to-js: 1.1.16 + optionalDependencies: + '@types/react': 18.2.48 html-url-attributes@3.0.0: {} @@ -8789,8 +7687,6 @@ snapshots: ignore@5.3.0: {} - ignore@5.3.2: {} - immutable@4.3.4: {} import-fresh@3.3.0: @@ -8815,6 +7711,8 @@ snapshots: inline-style-parser@0.2.2: {} + inline-style-parser@0.2.4: {} + inquirer@8.2.6: dependencies: ansi-escapes: 4.3.2 @@ -8836,7 +7734,13 @@ snapshots: internal-slot@1.0.6: dependencies: get-intrinsic: 1.2.2 - hasown: 2.0.0 + hasown: 2.0.2 + side-channel: 1.0.4 + + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 side-channel: 1.0.4 internmap@2.0.3: {} @@ -8856,6 +7760,11 @@ snapshots: get-intrinsic: 1.2.2 is-typed-array: 1.1.12 + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + is-arrayish@0.2.1: {} is-async-function@2.0.0: @@ -8872,7 +7781,7 @@ snapshots: is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 has-tostringtag: 1.0.0 is-buffer@2.0.5: {} @@ -8883,6 +7792,14 @@ snapshots: dependencies: hasown: 2.0.0 + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.0 @@ -8897,7 +7814,11 @@ snapshots: is-finalizationregistry@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 + + is-finalizationregistry@1.1.0: + dependencies: + call-bind: 1.0.8 is-fullwidth-code-point@3.0.0: {} @@ -8919,8 +7840,12 @@ snapshots: is-map@2.0.2: {} + is-map@2.0.3: {} + is-negative-zero@2.0.2: {} + is-negative-zero@2.0.3: {} + is-node-process@1.2.0: {} is-number-object@1.0.7: @@ -8937,23 +7862,27 @@ snapshots: is-plain-obj@4.1.0: {} - is-plain-object@5.0.0: {} - is-reference@3.0.2: dependencies: '@types/estree': 1.0.5 is-regex@1.1.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 has-tostringtag: 1.0.0 is-set@2.0.2: {} + is-set@2.0.3: {} + is-shared-array-buffer@1.0.2: dependencies: call-bind: 1.0.5 + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.8 + is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -8974,18 +7903,29 @@ snapshots: dependencies: which-typed-array: 1.1.13 + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.16 + is-unicode-supported@0.1.0: {} is-weakmap@2.0.1: {} + is-weakmap@2.0.2: {} + is-weakref@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 is-weakset@2.0.2: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + + is-weakset@2.0.3: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.2.5 is-what@4.1.16: {} @@ -8999,15 +7939,15 @@ snapshots: isexe@2.0.0: {} - iterator.prototype@1.1.2: + iterator.prototype@1.1.3: dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.5 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 set-function-name: 2.0.1 - itertools@2.2.3: {} + itertools@2.3.2: {} js-tokens@4.0.0: {} @@ -9015,10 +7955,10 @@ snapshots: dependencies: argparse: 2.0.1 - jsesc@0.5.0: {} - jsesc@2.5.2: {} + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-parse-better-errors@1.0.2: {} @@ -9027,8 +7967,6 @@ snapshots: json-schema-traverse@0.4.1: {} - json-schema-traverse@1.0.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} json-stringify-safe@5.0.1: {} @@ -9039,13 +7977,11 @@ snapshots: json5@2.2.3: {} - jsonc-parser@3.2.1: {} - jsonparse@1.3.1: {} jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.1.7 @@ -9060,8 +7996,6 @@ snapshots: kind-of@6.0.3: {} - known-css-properties@0.29.0: {} - koa-compose@4.1.0: {} koa-connect@2.1.0: {} @@ -9078,7 +8012,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.3.4 + debug: 4.4.0 delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -9112,6 +8046,10 @@ snapshots: lines-and-columns@1.2.4: {} + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + little-state-machine@4.8.0(react@18.2.0): dependencies: react: 18.2.0 @@ -9143,14 +8081,10 @@ snapshots: lodash-es@4.17.21: {} - lodash.debounce@4.0.8: {} - lodash.ismatch@4.4.0: {} lodash.merge@4.6.2: {} - lodash.truncate@4.4.2: {} - lodash@4.17.21: {} log-symbols@4.1.0: @@ -9164,10 +8098,6 @@ snapshots: dependencies: js-tokens: 4.0.0 - lower-case@2.0.2: - dependencies: - tslib: 2.6.2 - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -9178,21 +8108,22 @@ snapshots: lunr@2.3.9: {} - magic-string@0.30.5: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - map-obj@1.0.1: {} map-obj@4.3.0: {} markdown-extensions@2.0.0: {} - markdown-table@3.0.3: {} - - marked@4.3.0: {} + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 - mathml-tag-names@2.1.3: {} + markdown-table@3.0.3: {} mdast-util-find-and-replace@3.0.1: dependencies: @@ -9357,16 +8288,12 @@ snapshots: dependencies: '@types/mdast': 4.0.3 - mdn-data@2.0.28: {} - - mdn-data@2.0.30: {} + mdurl@2.0.0: {} media-typer@0.3.0: {} memoize-one@5.2.1: {} - meow@13.2.0: {} - meow@8.1.2: dependencies: '@types/minimist': 1.2.5 @@ -9654,11 +8581,6 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - mime-db@1.52.0: {} mime-types@2.1.35: @@ -9675,11 +8597,11 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@5.1.6: + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.3: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -9693,6 +8615,10 @@ snapshots: modify-values@1.0.1: {} + motion-dom@11.14.0: {} + + motion-utils@11.13.0: {} + ms@2.1.2: {} ms@2.1.3: {} @@ -9722,8 +8648,6 @@ snapshots: mute-stream@0.0.8: {} - nanoid@3.3.7: {} - nanoid@3.3.8: {} natural-compare@1.4.0: {} @@ -9732,12 +8656,7 @@ snapshots: neo-async@2.6.2: {} - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.6.2 - - node-releases@2.0.14: {} + node-releases@2.0.19: {} normalize-package-data@2.5.0: dependencies: @@ -9771,7 +8690,7 @@ snapshots: dependencies: boolbase: 1.0.0 - numbro@2.4.0: + numbro@2.5.0: dependencies: bignumber.js: 9.1.2 @@ -9779,6 +8698,8 @@ snapshots: object-inspect@1.13.1: {} + object-inspect@1.13.3: {} + object-keys@1.1.1: {} object.assign@4.1.5: @@ -9788,35 +8709,36 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.7: + object.entries@1.1.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 - object.fromentries@2.0.7: + object.fromentries@2.0.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 - object.groupby@1.0.1: + object.groupby@1.0.3: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.5 - object.hasown@1.1.3: + object.values@1.1.7: dependencies: + call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - object.values@1.1.7: + object.values@1.2.0: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 on-finished@2.4.1: dependencies: @@ -9961,8 +8883,6 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.0: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -9973,38 +8893,10 @@ snapshots: pngjs@5.0.0: {} - postcss-media-query-parser@0.2.3: {} - - postcss-resolve-nested-selector@0.1.1: {} - - postcss-resolve-nested-selector@0.1.6: {} - - postcss-safe-parser@7.0.1(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - - postcss-scss@4.0.9(postcss@8.4.33): - dependencies: - postcss: 8.4.33 - - postcss-selector-parser@6.0.15: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 + possible-typed-array-names@1.0.0: {} postcss-value-parser@4.2.0: {} - postcss@8.4.33: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - postcss@8.4.49: dependencies: nanoid: 3.3.8 @@ -10017,14 +8909,12 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@2.8.8: {} - - prettier@3.2.4: {} + prettier@3.4.2: {} prism-react-renderer@2.3.1(react@18.2.0): dependencies: '@types/prismjs': 1.26.3 - clsx: 2.1.0 + clsx: 2.1.1 react: 18.2.0 process-nextick-args@2.0.1: {} @@ -10037,18 +8927,21 @@ snapshots: property-information@6.4.1: {} + proxy-compare@3.0.1: {} + proxy-from-env@1.1.0: {} + punycode.js@2.3.1: {} + punycode@2.3.1: {} q@1.5.1: {} qr.js@0.0.0: {} - qrcode@1.5.3: + qrcode@1.5.4: dependencies: dijkstrajs: 1.0.3 - encode-utf8: 1.0.3 pngjs: 5.0.0 yargs: 15.4.1 @@ -10062,9 +8955,9 @@ snapshots: quick-lru@4.0.1: {} - radash@11.0.0: {} + radash@12.1.0: {} - react-click-away-listener@2.2.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-click-away-listener@2.2.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -10075,7 +8968,7 @@ snapshots: react: 18.2.0 scheduler: 0.23.0 - react-hook-form@7.49.3(react@18.2.0): + react-hook-form@7.54.0(react@18.2.0): dependencies: react: 18.2.0 @@ -10099,7 +8992,7 @@ snapshots: react-lifecycles-compat@3.0.4: {} - react-loading-skeleton@3.3.1(react@18.2.0): + react-loading-skeleton@3.5.0(react@18.2.0): dependencies: react: 18.2.0 @@ -10122,13 +9015,18 @@ snapshots: react-property@2.0.2: {} - react-qr-code@2.0.12(react@18.2.0): + react-qr-code@2.0.15(react@18.2.0): dependencies: prop-types: 15.8.1 qr.js: 0.0.0 react: 18.2.0 - react-refresh@0.14.0: {} + react-refresh@0.14.2: {} + + react-resize-detector@12.0.1(react@18.2.0): + dependencies: + lodash: 4.17.21 + react: 18.2.0 react-router-dom@6.21.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: @@ -10154,6 +9052,13 @@ snapshots: react-dom: 18.2.0(react@18.2.0) react-transition-group: 2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-tracked@2.0.1(react@18.2.0)(scheduler@0.23.0): + dependencies: + proxy-compare: 3.0.1 + react: 18.2.0 + scheduler: 0.23.0 + use-context-selector: 2.0.0(react@18.2.0)(scheduler@0.23.0) + react-transition-group@2.9.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: dom-helpers: 3.4.0 @@ -10163,7 +9068,7 @@ snapshots: react-dom: 18.2.0(react@18.2.0) react-lifecycles-compat: 3.0.4 - react-virtualized-auto-sizer@1.0.21(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + react-virtualized-auto-sizer@1.0.24(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -10229,7 +9134,7 @@ snapshots: recharts@2.10.4(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - clsx: 2.1.0 + clsx: 2.1.1 eventemitter3: 4.0.7 lodash: 4.17.21 prop-types: 15.8.1 @@ -10248,43 +9153,38 @@ snapshots: reflect.getprototypeof@1.0.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 + es-abstract: 1.23.5 + get-intrinsic: 1.2.5 + globalthis: 1.0.4 which-builtin-type: 1.1.3 - regenerate-unicode-properties@10.1.1: + reflect.getprototypeof@1.0.8: dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} + call-bind: 1.0.8 + define-properties: 1.2.1 + dunder-proto: 1.0.0 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.5 + gopd: 1.2.0 + which-builtin-type: 1.2.0 regenerator-runtime@0.14.1: {} - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.23.8 - regexp.prototype.flags@1.5.1: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 - regexpu-core@5.3.2: - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - - regjsparser@0.9.1: + regexp.prototype.flags@1.5.3: dependencies: - jsesc: 0.5.0 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 rehype-class-names@1.0.14: dependencies: @@ -10340,18 +9240,14 @@ snapshots: mdast-util-to-markdown: 2.1.0 unified: 11.0.4 - remove-accents@0.4.2: {} + remove-accents@0.5.0: {} require-directory@2.1.1: {} - require-from-string@2.0.2: {} - require-main-filename@2.0.0: {} resolve-from@4.0.0: {} - resolve-from@5.0.0: {} - resolve@1.22.8: dependencies: is-core-module: 2.13.1 @@ -10375,10 +9271,9 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-preserve-directives@0.3.1(@rollup/wasm-node@4.28.1): - dependencies: - magic-string: 0.30.5 - rollup: '@rollup/wasm-node@4.28.1' + rollup@2.79.2: + optionalDependencies: + fsevents: 2.3.3 run-applescript@5.0.0: dependencies: @@ -10401,6 +9296,13 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + has-symbols: 1.0.3 + isarray: 2.0.5 + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -10411,6 +9313,12 @@ snapshots: get-intrinsic: 1.2.2 is-regex: 1.1.4 + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + is-regex: 1.1.4 + safer-buffer@2.1.2: {} sass@1.70.0: @@ -10441,11 +9349,27 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.1 + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.5 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + set-function-name@2.0.1: dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 setprototypeof@1.2.0: {} @@ -10457,38 +9381,25 @@ snapshots: shell-quote@1.8.1: {} - shiki@0.14.7: + side-channel@1.0.4: dependencies: - ansi-sequence-parser: 1.1.1 - jsonc-parser: 3.2.1 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + object-inspect: 1.13.1 - side-channel@1.0.4: + side-channel@1.0.6: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.8 + es-errors: 1.3.0 + get-intrinsic: 1.2.5 object-inspect: 1.13.1 signal-exit@3.0.7: {} - signal-exit@4.1.0: {} - slash@3.0.0: {} slash@5.1.0: {} - slice-ansi@4.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - - snake-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.6.2 - source-map-js@1.0.2: {} source-map-js@1.2.1: {} @@ -10497,6 +9408,7 @@ snapshots: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + optional: true source-map@0.5.7: {} @@ -10506,8 +9418,6 @@ snapshots: space-separated-tokens@2.0.2: {} - spawn-command@0.0.2: {} - spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -10567,36 +9477,63 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.matchall@4.0.10: + string.prototype.includes@2.0.1: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.5 + + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.5 + gopd: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.3 + set-function-name: 2.0.2 + side-channel: 1.0.6 - string.prototype.trim@1.2.8: + string.prototype.repeat@1.0.0: dependencies: - call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - string.prototype.trimend@1.0.7: + string.prototype.trim@1.2.8: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + string.prototype.trimstart@1.0.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -10632,9 +9569,9 @@ snapshots: strip-json-comments@3.1.1: {} - style-to-js@1.1.10: + style-to-js@1.1.16: dependencies: - style-to-object: 1.0.5 + style-to-object: 1.0.8 style-to-object@0.4.4: dependencies: @@ -10644,88 +9581,9 @@ snapshots: dependencies: inline-style-parser: 0.2.2 - stylelint-config-prettier-scss@1.0.0(stylelint@16.2.0(typescript@5.3.3)): - dependencies: - stylelint: 16.2.0(typescript@5.3.3) - - stylelint-config-recommended-scss@14.0.0(postcss@8.4.33)(stylelint@16.2.0(typescript@5.3.3)): - dependencies: - postcss-scss: 4.0.9(postcss@8.4.33) - stylelint: 16.2.0(typescript@5.3.3) - stylelint-config-recommended: 14.0.0(stylelint@16.2.0(typescript@5.3.3)) - stylelint-scss: 6.1.0(stylelint@16.2.0(typescript@5.3.3)) - optionalDependencies: - postcss: 8.4.33 - - stylelint-config-recommended@14.0.0(stylelint@16.2.0(typescript@5.3.3)): - dependencies: - stylelint: 16.2.0(typescript@5.3.3) - - stylelint-config-standard-scss@13.0.0(postcss@8.4.33)(stylelint@16.2.0(typescript@5.3.3)): + style-to-object@1.0.8: dependencies: - stylelint: 16.2.0(typescript@5.3.3) - stylelint-config-recommended-scss: 14.0.0(postcss@8.4.33)(stylelint@16.2.0(typescript@5.3.3)) - stylelint-config-standard: 36.0.0(stylelint@16.2.0(typescript@5.3.3)) - optionalDependencies: - postcss: 8.4.33 - - stylelint-config-standard@36.0.0(stylelint@16.2.0(typescript@5.3.3)): - dependencies: - stylelint: 16.2.0(typescript@5.3.3) - stylelint-config-recommended: 14.0.0(stylelint@16.2.0(typescript@5.3.3)) - - stylelint-scss@6.1.0(stylelint@16.2.0(typescript@5.3.3)): - dependencies: - known-css-properties: 0.29.0 - postcss-media-query-parser: 0.2.3 - postcss-resolve-nested-selector: 0.1.1 - postcss-selector-parser: 6.0.15 - postcss-value-parser: 4.2.0 - stylelint: 16.2.0(typescript@5.3.3) - - stylelint@16.2.0(typescript@5.3.3): - dependencies: - '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) - '@csstools/css-tokenizer': 2.4.1 - '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) - balanced-match: 2.0.0 - colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.3.3) - css-functions-list: 3.2.3 - css-tree: 2.3.1 - debug: 4.4.0 - fast-glob: 3.3.2 - fastest-levenshtein: 1.0.16 - file-entry-cache: 8.0.0 - global-modules: 2.0.0 - globby: 11.1.0 - globjoin: 0.1.4 - html-tags: 3.3.1 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-plain-object: 5.0.0 - known-css-properties: 0.29.0 - mathml-tag-names: 2.1.3 - meow: 13.2.0 - micromatch: 4.0.8 - normalize-path: 3.0.0 - picocolors: 1.1.1 - postcss: 8.4.49 - postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.4.49) - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - resolve-from: 5.0.0 - string-width: 4.2.3 - strip-ansi: 7.1.0 - supports-hyperlinks: 3.1.0 - svg-tags: 1.0.0 - table: 6.9.0 - write-file-atomic: 5.0.1 - transitivePeerDependencies: - - supports-color - - typescript + inline-style-parser: 0.2.4 stylis@4.2.0: {} @@ -10745,50 +9603,22 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@3.1.0: - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - supports-preserve-symlinks-flag@1.0.0: {} - svg-parser@2.0.4: {} - - svg-tags@1.0.0: {} - - svgo@3.2.0: - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.1.0 - css-tree: 2.3.1 - css-what: 6.1.0 - csso: 5.0.5 - picocolors: 1.0.0 - - synckit@0.8.8: + synckit@0.9.2: dependencies: '@pkgr/core': 0.1.1 tslib: 2.6.2 - systemjs@6.14.3: {} - tabbable@6.2.0: {} - table@6.9.0: - dependencies: - ajv: 8.17.1 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - terser@5.27.0: + terser@5.37.0: dependencies: '@jridgewell/source-map': 0.3.5 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 + optional: true text-extensions@1.9.0: {} @@ -10844,8 +9674,6 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@2.4.0: {} - tslib@2.6.2: {} tsscmp@1.0.6: {} @@ -10879,6 +9707,12 @@ snapshots: get-intrinsic: 1.2.2 is-typed-array: 1.1.12 + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + typed-array-byte-length@1.0.0: dependencies: call-bind: 1.0.5 @@ -10886,6 +9720,14 @@ snapshots: has-proto: 1.0.1 is-typed-array: 1.1.12 + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.2.0 + is-typed-array: 1.1.13 + typed-array-byte-offset@1.0.0: dependencies: available-typed-arrays: 1.0.5 @@ -10894,21 +9736,41 @@ snapshots: has-proto: 1.0.1 is-typed-array: 1.1.12 + typed-array-byte-offset@1.0.3: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.2.0 + is-typed-array: 1.1.13 + reflect.getprototypeof: 1.0.8 + typed-array-length@1.0.4: dependencies: call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.0.1 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.8 + typedarray@0.0.6: {} - typedoc@0.25.7(typescript@5.3.3): + typedoc@0.27.4(typescript@5.3.3): dependencies: + '@gerrit0/mini-shiki': 1.24.3 lunr: 2.3.9 - marked: 4.3.0 - minimatch: 9.0.3 - shiki: 0.14.7 + markdown-it: 14.1.0 + minimatch: 9.0.5 typescript: 5.3.3 + yaml: 2.6.1 typesafe-i18n@5.26.2(typescript@5.3.3): dependencies: @@ -10922,28 +9784,19 @@ snapshots: typescript@5.3.3: {} + uc.micro@2.1.0: {} + uglify-js@3.17.4: optional: true unbox-primitive@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - undici-types@5.26.5: {} - - unicode-canonical-property-names-ecmascript@2.0.0: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - - unicode-match-property-value-ecmascript@2.1.0: {} - - unicode-property-aliases-ecmascript@2.1.0: {} + undici-types@6.20.0: {} unicorn-magic@0.1.0: {} @@ -11005,21 +9858,26 @@ snapshots: untildify@4.0.0: {} - update-browserslist-db@1.0.13(browserslist@4.22.2): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.22.2 - escalade: 3.1.1 - picocolors: 1.0.0 + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 uri-js@4.4.1: dependencies: punycode: 2.3.1 - use-breakpoint@4.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + use-breakpoint@4.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + use-context-selector@2.0.0(react@18.2.0)(scheduler@0.23.0): + dependencies: + react: 18.2.0 + scheduler: 0.23.0 + use-deep-compare-effect@1.8.1(react@18.2.0): dependencies: '@babel/runtime': 7.23.8 @@ -11086,43 +9944,51 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)): + vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.2 eslint: 8.56.0 - rollup: '@rollup/wasm-node@4.28.1' - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0) + rollup: 2.79.2 + vite: 6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1) - vite-plugin-package-version@1.1.0(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)): + vite-plugin-package-version@1.1.0(vite@6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1)): dependencies: - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0) + vite: 6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1) - vite-tsconfig-paths@4.3.1(typescript@5.3.3)(vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0)): + vite-tsconfig-paths@4.3.1(typescript@5.3.3)(vite@5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)): dependencies: - debug: 4.3.4 + debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.0.1(typescript@5.3.3) optionalDependencies: - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0) + vite: 5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0) transitivePeerDependencies: - supports-color - typescript - vite@5.0.12(@types/node@20.11.7)(sass@1.70.0)(terser@5.27.0): + vite@5.0.12(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0): dependencies: esbuild: 0.19.12 - postcss: 8.4.33 + postcss: 8.4.49 rollup: '@rollup/wasm-node@4.28.1' optionalDependencies: - '@types/node': 20.11.7 + '@types/node': 22.10.2 fsevents: 2.3.3 sass: 1.70.0 - terser: 5.27.0 + terser: 5.37.0 - vscode-oniguruma@1.7.0: {} - - vscode-textmate@8.0.0: {} + vite@6.0.3(@types/node@22.10.2)(sass@1.70.0)(terser@5.37.0)(yaml@2.6.1): + dependencies: + esbuild: 0.24.0 + postcss: 8.4.49 + rollup: '@rollup/wasm-node@4.28.1' + optionalDependencies: + '@types/node': 22.10.2 + fsevents: 2.3.3 + sass: 1.70.0 + terser: 5.37.0 + yaml: 2.6.1 wcwidth@1.0.1: dependencies: @@ -11153,6 +10019,22 @@ snapshots: which-collection: 1.0.1 which-typed-array: 1.1.13 + which-builtin-type@1.2.0: + dependencies: + call-bind: 1.0.8 + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.1.0 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.16 + which-collection@1.0.1: dependencies: is-map: 2.0.2 @@ -11160,6 +10042,13 @@ snapshots: is-weakmap: 2.0.1 is-weakset: 2.0.2 + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + which-module@2.0.1: {} which-typed-array@1.1.13: @@ -11170,9 +10059,13 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.0 - which@1.3.1: + which-typed-array@1.1.16: dependencies: - isexe: 2.0.0 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 which@2.0.2: dependencies: @@ -11204,13 +10097,6 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@5.0.1: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 4.1.0 - - ws@8.5.0: {} - xtend@4.0.2: {} y18n@4.0.3: {} @@ -11223,6 +10109,8 @@ snapshots: yaml@1.10.2: {} + yaml@2.6.1: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 @@ -11270,13 +10158,12 @@ snapshots: yocto-queue@0.1.0: {} - zod@3.22.4: {} + zod@3.24.1: {} - zustand@4.5.0(@types/react@18.2.48)(react@18.2.0): - dependencies: - use-sync-external-store: 1.2.0(react@18.2.0) + zustand@5.0.2(@types/react@18.2.48)(react@18.2.0)(use-sync-external-store@1.2.0(react@18.2.0)): optionalDependencies: '@types/react': 18.2.48 react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) zwitch@2.0.4: {} diff --git a/web/src/components/App/App.tsx b/web/src/components/App/App.tsx index b5160d21f..3d6a1059a 100644 --- a/web/src/components/App/App.tsx +++ b/web/src/components/App/App.tsx @@ -6,10 +6,12 @@ import { BrowserRouter as Router, Navigate, Route, Routes } from 'react-router-d import { AddDevicePage } from '../../pages/addDevice/AddDevicePage'; import { OpenidAllowPage } from '../../pages/allow/OpenidAllowPage'; import { AuthPage } from '../../pages/auth/AuthPage'; +import { DevicesPage } from '../../pages/devices/DevicesPage'; import { EnrollmentPage } from '../../pages/enrollment/EnrollmentPage'; import { GroupsPage } from '../../pages/groups/GroupsPage'; import { NetworkPage } from '../../pages/network/NetworkPage'; import { OpenidClientsListPage } from '../../pages/openid/OpenidClientsListPage/OpenidClientsListPage'; +import { AddStandaloneDeviceModal } from '../../pages/overview/modals/AddStandaloneDeviceModal/AddStandaloneDeviceModal'; import { OverviewPage } from '../../pages/overview/OverviewPage'; import { ProvisionersPage } from '../../pages/provisioners/ProvisionersPage'; import { SettingsPage } from '../../pages/settings/SettingsPage'; @@ -148,6 +150,14 @@ const App = () => { } /> + + + + } + /> } /> { + diff --git a/web/src/i18n/en/index.ts b/web/src/i18n/en/index.ts index 3cdacf4ac..e4cefa6b0 100644 --- a/web/src/i18n/en/index.ts +++ b/web/src/i18n/en/index.ts @@ -25,6 +25,7 @@ const en: BaseTranslation = { copy: 'Copy', edit: 'Edit', dismiss: 'Dismiss', + show: 'Show', }, key: 'Key', name: 'Name', @@ -41,6 +42,88 @@ const en: BaseTranslation = { }, }, modals: { + deleteStandaloneDevice: { + title: 'Delete network device', + content: 'Device {name: string} will be deleted.', + }, + addStandaloneDevice: { + infoBox: { + setup: + 'Here you can add definitions or generate configurations for devices that can connect to your VPN. Only locations without Multi-Factor Authentication are available here, as MFA is only supported in Defguard Desktop Client for now.', + }, + steps: { + method: { + title: 'Choose a proffered method', + cards: { + cli: { + title: 'defguard Command Line Client', + subtitle: + 'When using defguard-cli your device will automatically have VPN configuration up-to-date (real time-sync).', + download: 'Download defguard CLI Client', + }, + manual: { + title: 'Manual WireGuard Client', + subtitle: + 'If your device does not support our cli binaries you can always generate a WireGuard configuration file and configure it manually - but any updates to the VPN Location configuration will require manual changes in device configuration.', + }, + }, + }, + manual: { + title: 'Add new VPN device using WireGuard Client', + setup: { + form: { + submit: 'Add Device', + labels: { + deviceName: 'Device Name', + location: 'Location', + assignedAddress: 'Assigned IP', + description: 'Description', + generation: { + auto: 'Generate key pair', + manual: 'Use my own public key', + }, + publicKey: 'Provide Your Public Key', + }, + }, + }, + finish: { + messageTop: + 'Download the provided configuration file to your device and import it into your VPN client to complete the setup.', + ctaInstruction: + 'Use provided configuration file below by scanning QR Code or importing it as file on your devices WireGuard app.', + // MD + warningMessage: ` + Please remember that defguard **doesn't store private keys**. We will securely generate the public&private key pare in your browser, and only store the public key in defguard database. Please download the configuration generated with the private key for the device, as later it will not be accessible. + `, + actionCard: { + title: 'Config', + }, + }, + }, + cli: { + title: 'Add device using defguard Command Line Client', + finish: { + topMessage: + 'First download defguard command line client binaries and install them on your server.', + downloadButton: 'Download defguard CLI Client', + commandCopy: 'Copy and paste this command in your terminal on the device', + }, + setup: { + stepMessage: + 'Here you can add definitions or generate configurations for devices that can connect to your VPN. Only locations without Multi-Factor Authentication are available here, as MFA is only supported in Defguard Desktop Client for now.', + form: { + labels: { + deviceName: 'Device Name', + location: 'Location', + assignedAddress: 'Assigned IP', + description: 'Description', + }, + submit: 'Add Device', + }, + }, + }, + }, + }, updatesNotificationToaster: { title: 'New version available {version: string}', controls: { @@ -868,7 +951,9 @@ const en: BaseTranslation = { required: 'Field is required.', invalidCode: 'Submitted code is invalid.', maximumLength: 'Maximum length exceeded.', + maximumLengthOf: `Field length cannot exceed {length: number}`, minimumLength: 'Minimum length not reached.', + minimumLengthOf: `Minimum length of {length: number} not reached.`, noSpecialChars: 'No special characters are allowed.', oneDigit: 'One digit required.', oneSpecial: 'Special character required.', @@ -1106,17 +1191,6 @@ const en: BaseTranslation = { list: 'List view', }, }, - web3Settings: { - header: 'Web3 / Wallet connect', - fields: { - signMessage: { - label: 'Default sign message template', - }, - }, - controls: { - save: 'Save changes', - }, - }, instanceBranding: { header: 'Instance Branding', form: { @@ -1913,6 +1987,37 @@ Any other requests you can reach us at: support@defguard.net `, }, }, + devicesPage: { + title: 'Devices', + search: { + placeholder: 'Find', + }, + bar: { + itemsCount: 'All devices', + filters: {}, + actions: { + addNewDevice: 'Add new', + }, + }, + list: { + columns: { + labels: { + name: 'Device name', + location: 'Location', + assignedIp: 'IP', + description: 'Description', + addedBy: 'Added by', + addedAt: 'Add date', + edit: 'Edit', + }, + edit: { + actionLabels: { + edit: 'Edit', + }, + }, + }, + }, + }, }; export default en; diff --git a/web/src/i18n/i18n-types.ts b/web/src/i18n/i18n-types.ts index e1c0dbc08..06e7cd42b 100644 --- a/web/src/i18n/i18n-types.ts +++ b/web/src/i18n/i18n-types.ts @@ -95,6 +95,10 @@ type RootTranslation = { * D​i​s​m​i​s​s */ dismiss: string + /** + * S​h​o​w + */ + show: string } /** * K​e​y @@ -138,6 +142,177 @@ type RootTranslation = { } } modals: { + deleteStandaloneDevice: { + /** + * D​e​l​e​t​e​ ​n​e​t​w​o​r​k​ ​d​e​v​i​c​e + */ + title: string + /** + * D​e​v​i​c​e​ ​{​n​a​m​e​}​ ​w​i​l​l​ ​b​e​ ​d​e​l​e​t​e​d​. + * @param {string} name + */ + content: RequiredParams<'name'> + } + addStandaloneDevice: { + infoBox: { + /** + * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​a​d​d​ ​d​e​f​i​n​i​t​i​o​n​s​ ​o​r​ ​g​e​n​e​r​a​t​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​s​ ​f​o​r​ ​d​e​v​i​c​e​s​ ​t​h​a​t​ ​c​a​n​ ​c​o​n​n​e​c​t​ ​t​o​ ​y​o​u​r​ ​V​P​N​.​ ​O​n​l​y​ ​l​o​c​a​t​i​o​n​s​ ​w​i​t​h​o​u​t​ ​M​u​l​t​i​-​F​a​c​t​o​r​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​a​r​e​ ​a​v​a​i​l​a​b​l​e​ ​h​e​r​e​,​ ​a​s​ ​M​F​A​ ​i​s​ ​o​n​l​y​ ​s​u​p​p​o​r​t​e​d​ ​i​n​ ​D​e​f​g​u​a​r​d​ ​D​e​s​k​t​o​p​ ​C​l​i​e​n​t​ ​f​o​r​ ​n​o​w​. + */ + setup: string + } + steps: { + method: { + /** + * C​h​o​o​s​e​ ​a​ ​p​r​o​f​f​e​r​e​d​ ​m​e​t​h​o​d + */ + title: string + cards: { + cli: { + /** + * d​e​f​g​u​a​r​d​ ​C​o​m​m​a​n​d​ ​L​i​n​e​ ​C​l​i​e​n​t + */ + title: string + /** + * W​h​e​n​ ​u​s​i​n​g​ ​d​e​f​g​u​a​r​d​-​c​l​i​ ​y​o​u​r​ ​d​e​v​i​c​e​ ​w​i​l​l​ ​a​u​t​o​m​a​t​i​c​a​l​l​y​ ​h​a​v​e​ ​V​P​N​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​u​p​-​t​o​-​d​a​t​e​ ​(​r​e​a​l​ ​t​i​m​e​-​s​y​n​c​)​. + */ + subtitle: string + /** + * D​o​w​n​l​o​a​d​ ​d​e​f​g​u​a​r​d​ ​C​L​I​ ​C​l​i​e​n​t + */ + download: string + } + manual: { + /** + * M​a​n​u​a​l​ ​W​i​r​e​G​u​a​r​d​ ​C​l​i​e​n​t + */ + title: string + /** + * I​f​ ​y​o​u​r​ ​d​e​v​i​c​e​ ​d​o​e​s​ ​n​o​t​ ​s​u​p​p​o​r​t​ ​o​u​r​ ​c​l​i​ ​b​i​n​a​r​i​e​s​ ​y​o​u​ ​c​a​n​ ​a​l​w​a​y​s​ ​g​e​n​e​r​a​t​e​ ​a​ ​W​i​r​e​G​u​a​r​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​i​l​e​ ​a​n​d​ ​c​o​n​f​i​g​u​r​e​ ​i​t​ ​m​a​n​u​a​l​l​y​ ​-​ ​b​u​t​ ​a​n​y​ ​u​p​d​a​t​e​s​ ​t​o​ ​t​h​e​ ​V​P​N​ ​L​o​c​a​t​i​o​n​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​w​i​l​l​ ​r​e​q​u​i​r​e​ ​m​a​n​u​a​l​ ​c​h​a​n​g​e​s​ ​i​n​ ​d​e​v​i​c​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​. + */ + subtitle: string + } + } + } + manual: { + /** + * A​d​d​ ​n​e​w​ ​V​P​N​ ​d​e​v​i​c​e​ ​u​s​i​n​g​ ​W​i​r​e​G​u​a​r​d​ ​C​l​i​e​n​t + */ + title: string + setup: { + form: { + /** + * A​d​d​ ​D​e​v​i​c​e + */ + submit: string + labels: { + /** + * D​e​v​i​c​e​ ​N​a​m​e + */ + deviceName: string + /** + * L​o​c​a​t​i​o​n + */ + location: string + /** + * A​s​s​i​g​n​e​d​ ​I​P + */ + assignedAddress: string + /** + * D​e​s​c​r​i​p​t​i​o​n + */ + description: string + generation: { + /** + * G​e​n​e​r​a​t​e​ ​k​e​y​ ​p​a​i​r + */ + auto: string + /** + * U​s​e​ ​m​y​ ​o​w​n​ ​p​u​b​l​i​c​ ​k​e​y + */ + manual: string + } + /** + * P​r​o​v​i​d​e​ ​Y​o​u​r​ ​P​u​b​l​i​c​ ​K​e​y + */ + publicKey: string + } + } + } + finish: { + /** + * D​o​w​n​l​o​a​d​ ​t​h​e​ ​p​r​o​v​i​d​e​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​i​l​e​ ​t​o​ ​y​o​u​r​ ​d​e​v​i​c​e​ ​a​n​d​ ​i​m​p​o​r​t​ ​i​t​ ​i​n​t​o​ ​y​o​u​r​ ​V​P​N​ ​c​l​i​e​n​t​ ​t​o​ ​c​o​m​p​l​e​t​e​ ​t​h​e​ ​s​e​t​u​p​. + */ + messageTop: string + /** + * U​s​e​ ​p​r​o​v​i​d​e​d​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​f​i​l​e​ ​b​e​l​o​w​ ​b​y​ ​s​c​a​n​n​i​n​g​ ​Q​R​ ​C​o​d​e​ ​o​r​ ​i​m​p​o​r​t​i​n​g​ ​i​t​ ​a​s​ ​f​i​l​e​ ​o​n​ ​y​o​u​r​ ​d​e​v​i​c​e​s​ ​W​i​r​e​G​u​a​r​d​ ​a​p​p​. + */ + ctaInstruction: string + /** + * + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​P​l​e​a​s​e​ ​r​e​m​e​m​b​e​r​ ​t​h​a​t​ ​d​e​f​g​u​a​r​d​ ​*​*​d​o​e​s​n​'​t​ ​s​t​o​r​e​ ​p​r​i​v​a​t​e​ ​k​e​y​s​*​*​.​ ​ ​W​e​ ​w​i​l​l​ ​s​e​c​u​r​e​l​y​ ​g​e​n​e​r​a​t​e​ ​t​h​e​ ​p​u​b​l​i​c​&​p​r​i​v​a​t​e​ ​k​e​y​ ​p​a​r​e​ ​i​n​ ​y​o​u​r​ ​b​r​o​w​s​e​r​,​ ​a​n​d​ ​o​n​l​y​ ​s​t​o​r​e​ ​t​h​e​ ​p​u​b​l​i​c​ ​k​e​y​ ​i​n​ ​d​e​f​g​u​a​r​d​ ​d​a​t​a​b​a​s​e​.​ ​P​l​e​a​s​e​ ​d​o​w​n​l​o​a​d​ ​t​h​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​ ​g​e​n​e​r​a​t​e​d​ ​w​i​t​h​ ​t​h​e​ ​p​r​i​v​a​t​e​ ​k​e​y​ ​f​o​r​ ​t​h​e​ ​d​e​v​i​c​e​,​ ​a​s​ ​l​a​t​e​r​ ​i​t​ ​w​i​l​l​ ​n​o​t​ ​b​e​ ​a​c​c​e​s​s​i​b​l​e​.​ + ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ + */ + warningMessage: string + actionCard: { + /** + * C​o​n​f​i​g + */ + title: string + } + } + } + cli: { + /** + * A​d​d​ ​d​e​v​i​c​e​ ​u​s​i​n​g​ ​d​e​f​g​u​a​r​d​ ​C​o​m​m​a​n​d​ ​L​i​n​e​ ​C​l​i​e​n​t + */ + title: string + finish: { + /** + * F​i​r​s​t​ ​d​o​w​n​l​o​a​d​ ​d​e​f​g​u​a​r​d​ ​c​o​m​m​a​n​d​ ​l​i​n​e​ ​c​l​i​e​n​t​ ​b​i​n​a​r​i​e​s​ ​a​n​d​ ​i​n​s​t​a​l​l​ ​t​h​e​m​ ​o​n​ ​y​o​u​r​ ​s​e​r​v​e​r​. + */ + topMessage: string + /** + * D​o​w​n​l​o​a​d​ ​d​e​f​g​u​a​r​d​ ​C​L​I​ ​C​l​i​e​n​t + */ + downloadButton: string + /** + * C​o​p​y​ ​a​n​d​ ​p​a​s​t​e​ ​t​h​i​s​ ​c​o​m​m​a​n​d​ ​i​n​ ​y​o​u​r​ ​t​e​r​m​i​n​a​l​ ​o​n​ ​t​h​e​ ​d​e​v​i​c​e + */ + commandCopy: string + } + setup: { + /** + * H​e​r​e​ ​y​o​u​ ​c​a​n​ ​a​d​d​ ​d​e​f​i​n​i​t​i​o​n​s​ ​o​r​ ​g​e​n​e​r​a​t​e​ ​c​o​n​f​i​g​u​r​a​t​i​o​n​s​ ​f​o​r​ ​d​e​v​i​c​e​s​ ​t​h​a​t​ ​c​a​n​ ​c​o​n​n​e​c​t​ ​t​o​ ​y​o​u​r​ ​V​P​N​.​ ​O​n​l​y​ ​l​o​c​a​t​i​o​n​s​ ​w​i​t​h​o​u​t​ ​M​u​l​t​i​-​F​a​c​t​o​r​ ​A​u​t​h​e​n​t​i​c​a​t​i​o​n​ ​a​r​e​ ​a​v​a​i​l​a​b​l​e​ ​h​e​r​e​,​ ​a​s​ ​M​F​A​ ​i​s​ ​o​n​l​y​ ​s​u​p​p​o​r​t​e​d​ ​i​n​ ​D​e​f​g​u​a​r​d​ ​D​e​s​k​t​o​p​ ​C​l​i​e​n​t​ ​f​o​r​ ​n​o​w​. + */ + stepMessage: string + form: { + labels: { + /** + * D​e​v​i​c​e​ ​N​a​m​e + */ + deviceName: string + /** + * L​o​c​a​t​i​o​n + */ + location: string + /** + * A​s​s​i​g​n​e​d​ ​I​P + */ + assignedAddress: string + /** + * D​e​s​c​r​i​p​t​i​o​n + */ + description: string + } + /** + * A​d​d​ ​D​e​v​i​c​e + */ + submit: string + } + } + } + } + } updatesNotificationToaster: { /** * N​e​w​ ​v​e​r​s​i​o​n​ ​a​v​a​i​l​a​b​l​e​ ​{​v​e​r​s​i​o​n​} @@ -2121,10 +2296,20 @@ type RootTranslation = { * M​a​x​i​m​u​m​ ​l​e​n​g​t​h​ ​e​x​c​e​e​d​e​d​. */ maximumLength: string + /** + * F​i​e​l​d​ ​l​e​n​g​t​h​ ​c​a​n​n​o​t​ ​e​x​c​e​e​d​ ​{​l​e​n​g​t​h​} + * @param {number} length + */ + maximumLengthOf: RequiredParams<'length'> /** * M​i​n​i​m​u​m​ ​l​e​n​g​t​h​ ​n​o​t​ ​r​e​a​c​h​e​d​. */ minimumLength: string + /** + * M​i​n​i​m​u​m​ ​l​e​n​g​t​h​ ​o​f​ ​{​l​e​n​g​t​h​}​ ​n​o​t​ ​r​e​a​c​h​e​d​. + * @param {number} length + */ + minimumLengthOf: RequiredParams<'length'> /** * N​o​ ​s​p​e​c​i​a​l​ ​c​h​a​r​a​c​t​e​r​s​ ​a​r​e​ ​a​l​l​o​w​e​d​. */ @@ -2704,26 +2889,6 @@ type RootTranslation = { list: string } } - web3Settings: { - /** - * W​e​b​3​ ​/​ ​W​a​l​l​e​t​ ​c​o​n​n​e​c​t - */ - header: string - fields: { - signMessage: { - /** - * D​e​f​a​u​l​t​ ​s​i​g​n​ ​m​e​s​s​a​g​e​ ​t​e​m​p​l​a​t​e - */ - label: string - } - } - controls: { - /** - * S​a​v​e​ ​c​h​a​n​g​e​s - */ - save: string - } - } instanceBranding: { /** * I​n​s​t​a​n​c​e​ ​B​r​a​n​d​i​n​g @@ -4501,6 +4666,74 @@ type RootTranslation = { body: string } } + devicesPage: { + /** + * D​e​v​i​c​e​s + */ + title: string + search: { + /** + * F​i​n​d + */ + placeholder: string + } + bar: { + /** + * A​l​l​ ​d​e​v​i​c​e​s + */ + itemsCount: string + filters: { + } + actions: { + /** + * A​d​d​ ​n​e​w + */ + addNewDevice: string + } + } + list: { + columns: { + labels: { + /** + * D​e​v​i​c​e​ ​n​a​m​e + */ + name: string + /** + * L​o​c​a​t​i​o​n + */ + location: string + /** + * I​P + */ + assignedIp: string + /** + * D​e​s​c​r​i​p​t​i​o​n + */ + description: string + /** + * A​d​d​e​d​ ​b​y + */ + addedBy: string + /** + * A​d​d​ ​d​a​t​e + */ + addedAt: string + /** + * E​d​i​t + */ + edit: string + } + edit: { + actionLabels: { + /** + * E​d​i​t + */ + edit: string + } + } + } + } + } } export type TranslationFunctions = { @@ -4584,6 +4817,10 @@ export type TranslationFunctions = { * Dismiss */ dismiss: () => LocalizedString + /** + * Show + */ + show: () => LocalizedString } /** * Key @@ -4627,6 +4864,176 @@ export type TranslationFunctions = { } } modals: { + deleteStandaloneDevice: { + /** + * Delete network device + */ + title: () => LocalizedString + /** + * Device {name} will be deleted. + */ + content: (arg: { name: string }) => LocalizedString + } + addStandaloneDevice: { + infoBox: { + /** + * Here you can add definitions or generate configurations for devices that can connect to your VPN. Only locations without Multi-Factor Authentication are available here, as MFA is only supported in Defguard Desktop Client for now. + */ + setup: () => LocalizedString + } + steps: { + method: { + /** + * Choose a proffered method + */ + title: () => LocalizedString + cards: { + cli: { + /** + * defguard Command Line Client + */ + title: () => LocalizedString + /** + * When using defguard-cli your device will automatically have VPN configuration up-to-date (real time-sync). + */ + subtitle: () => LocalizedString + /** + * Download defguard CLI Client + */ + download: () => LocalizedString + } + manual: { + /** + * Manual WireGuard Client + */ + title: () => LocalizedString + /** + * If your device does not support our cli binaries you can always generate a WireGuard configuration file and configure it manually - but any updates to the VPN Location configuration will require manual changes in device configuration. + */ + subtitle: () => LocalizedString + } + } + } + manual: { + /** + * Add new VPN device using WireGuard Client + */ + title: () => LocalizedString + setup: { + form: { + /** + * Add Device + */ + submit: () => LocalizedString + labels: { + /** + * Device Name + */ + deviceName: () => LocalizedString + /** + * Location + */ + location: () => LocalizedString + /** + * Assigned IP + */ + assignedAddress: () => LocalizedString + /** + * Description + */ + description: () => LocalizedString + generation: { + /** + * Generate key pair + */ + auto: () => LocalizedString + /** + * Use my own public key + */ + manual: () => LocalizedString + } + /** + * Provide Your Public Key + */ + publicKey: () => LocalizedString + } + } + } + finish: { + /** + * Download the provided configuration file to your device and import it into your VPN client to complete the setup. + */ + messageTop: () => LocalizedString + /** + * Use provided configuration file below by scanning QR Code or importing it as file on your devices WireGuard app. + */ + ctaInstruction: () => LocalizedString + /** + * + Please remember that defguard **doesn't store private keys**. We will securely generate the public&private key pare in your browser, and only store the public key in defguard database. Please download the configuration generated with the private key for the device, as later it will not be accessible. + + */ + warningMessage: () => LocalizedString + actionCard: { + /** + * Config + */ + title: () => LocalizedString + } + } + } + cli: { + /** + * Add device using defguard Command Line Client + */ + title: () => LocalizedString + finish: { + /** + * First download defguard command line client binaries and install them on your server. + */ + topMessage: () => LocalizedString + /** + * Download defguard CLI Client + */ + downloadButton: () => LocalizedString + /** + * Copy and paste this command in your terminal on the device + */ + commandCopy: () => LocalizedString + } + setup: { + /** + * Here you can add definitions or generate configurations for devices that can connect to your VPN. Only locations without Multi-Factor Authentication are available here, as MFA is only supported in Defguard Desktop Client for now. + */ + stepMessage: () => LocalizedString + form: { + labels: { + /** + * Device Name + */ + deviceName: () => LocalizedString + /** + * Location + */ + location: () => LocalizedString + /** + * Assigned IP + */ + assignedAddress: () => LocalizedString + /** + * Description + */ + description: () => LocalizedString + } + /** + * Add Device + */ + submit: () => LocalizedString + } + } + } + } + } updatesNotificationToaster: { /** * New version available {version} @@ -6590,10 +6997,18 @@ export type TranslationFunctions = { * Maximum length exceeded. */ maximumLength: () => LocalizedString + /** + * Field length cannot exceed {length} + */ + maximumLengthOf: (arg: { length: number }) => LocalizedString /** * Minimum length not reached. */ minimumLength: () => LocalizedString + /** + * Minimum length of {length} not reached. + */ + minimumLengthOf: (arg: { length: number }) => LocalizedString /** * No special characters are allowed. */ @@ -7169,26 +7584,6 @@ export type TranslationFunctions = { list: () => LocalizedString } } - web3Settings: { - /** - * Web3 / Wallet connect - */ - header: () => LocalizedString - fields: { - signMessage: { - /** - * Default sign message template - */ - label: () => LocalizedString - } - } - controls: { - /** - * Save changes - */ - save: () => LocalizedString - } - } instanceBranding: { /** * Instance Branding @@ -8954,6 +9349,74 @@ export type TranslationFunctions = { body: () => LocalizedString } } + devicesPage: { + /** + * Devices + */ + title: () => LocalizedString + search: { + /** + * Find + */ + placeholder: () => LocalizedString + } + bar: { + /** + * All devices + */ + itemsCount: () => LocalizedString + filters: { + } + actions: { + /** + * Add new + */ + addNewDevice: () => LocalizedString + } + } + list: { + columns: { + labels: { + /** + * Device name + */ + name: () => LocalizedString + /** + * Location + */ + location: () => LocalizedString + /** + * IP + */ + assignedIp: () => LocalizedString + /** + * Description + */ + description: () => LocalizedString + /** + * Added by + */ + addedBy: () => LocalizedString + /** + * Add date + */ + addedAt: () => LocalizedString + /** + * Edit + */ + edit: () => LocalizedString + } + edit: { + actionLabels: { + /** + * Edit + */ + edit: () => LocalizedString + } + } + } + } + } } export type Formatters = {} diff --git a/web/src/i18n/pl/index.ts b/web/src/i18n/pl/index.ts index 8ac796cf3..b25645e0d 100644 --- a/web/src/i18n/pl/index.ts +++ b/web/src/i18n/pl/index.ts @@ -1096,17 +1096,6 @@ Uwaga, podane tutaj konfiguracje nie posiadają klucza prywatnego. Musisz uzupe list: 'Widok listy', }, }, - web3Settings: { - header: 'Web3 / Wallet connect', - fields: { - signMessage: { - label: 'Domyślna wiadomość do podpisu', - }, - }, - controls: { - save: 'Zapisz zmiany', - }, - }, instanceBranding: { header: 'Brandowanie instancji', form: { diff --git a/web/src/pages/auth/MFARoute/MFAWeb3/MFAWeb3.tsx b/web/src/pages/auth/MFARoute/MFAWeb3/MFAWeb3.tsx deleted file mode 100644 index 11e5557f0..000000000 --- a/web/src/pages/auth/MFARoute/MFAWeb3/MFAWeb3.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import { useMutation } from '@tanstack/react-query'; -import { isUndefined, omit } from 'lodash-es'; -import { useEffect, useState } from 'react'; -import { useNavigate } from 'react-router'; - -import { useI18nContext } from '../../../../i18n/i18n-react'; -import { Button } from '../../../../shared/defguard-ui/components/Layout/Button/Button'; -import { - ButtonSize, - ButtonStyleVariant, -} from '../../../../shared/defguard-ui/components/Layout/Button/types'; -import { useAuthStore } from '../../../../shared/hooks/store/useAuthStore'; -import useApi from '../../../../shared/hooks/useApi'; -import { useToaster } from '../../../../shared/hooks/useToaster'; -import { MutationKeys } from '../../../../shared/mutations'; -import { useWeb3Account } from '../../../../shared/web3/hooks/useWeb3Account'; -import { useWeb3Connection } from '../../../../shared/web3/hooks/useWeb3Connection'; -import { useWeb3Signer } from '../../../../shared/web3/hooks/useWeb3Signer'; -import { useMFAStore } from '../../shared/hooks/useMFAStore'; - -export const MFAWeb3 = () => { - const { - auth: { - mfa: { - web3: { start, finish }, - }, - }, - } = useApi(); - const { LL } = useI18nContext(); - - const { signer } = useWeb3Signer(); - const { address } = useWeb3Account(); - const { isConnected, connect } = useWeb3Connection(); - const toaster = useToaster(); - const [isSigning, setIsSigning] = useState(false); - const [connecting, setConnecting] = useState(false); - const web3Available = useMFAStore((state) => state.web3_available); - const loginSubject = useAuthStore((state) => state.loginSubject); - - const { mutate: mfaFinishMutation, isLoading: finishLoading } = useMutation( - [MutationKeys.WEB3_MFA_FINISH], - finish, - { - onSuccess: (data) => loginSubject.next(data), - onError: (err) => { - console.error(err); - toaster.error(LL.loginPage.mfa.wallet.messages.walletErrorMfa()); - }, - }, - ); - - const { mutate: mfaStartMutation, isLoading: startLoading } = useMutation( - [MutationKeys.WEB3_MFA_START], - start, - { - onSuccess: async (data) => { - if (isConnected && signer && address) { - const message = JSON.parse(data.challenge); - const types = omit(message.types, ['EIP712Domain']); - const domain = message.domain; - const value = message.message; - signer - .signTypedData(domain, types, value) - .then((signature: string) => { - setIsSigning(false); - mfaFinishMutation({ - address, - signature, - }); - }) - .catch((e) => { - setIsSigning(false); - toaster.error(LL.loginPage.mfa.wallet.messages.walletError()); - console.error(e); - }); - } else { - toaster.error(LL.loginPage.mfa.wallet.messages.walletError()); - } - }, - }, - ); - - const navigate = useNavigate(); - - useEffect(() => { - if (!web3Available) { - navigate('../'); - } - }, [navigate, web3Available]); - - const handleSigning = () => { - if (address && isConnected) { - mfaStartMutation({ address }); - } - }; - - return ( - <> - {LL.loginPage.mfa.wallet.header()} - { - if (!isConnected && connect) { - connect() - .then(({ address }) => { - setConnecting(false); - mfaStartMutation({ - address, - }); - }) - .catch((e) => { - setConnecting(false); - console.error(e); - }); - } else { - handleSigning(); - } - }} - /> - > - ); -}; diff --git a/web/src/pages/auth/shared/hooks/useMFAStore.tsx b/web/src/pages/auth/shared/hooks/useMFAStore.tsx index 4cad16471..ff7f714f6 100644 --- a/web/src/pages/auth/shared/hooks/useMFAStore.tsx +++ b/web/src/pages/auth/shared/hooks/useMFAStore.tsx @@ -11,9 +11,9 @@ interface MFAStore extends MFALoginResponse { const defaultState: MFALoginResponse = { mfa_method: UserMFAMethod.NONE, totp_available: false, - web3_available: false, webauthn_available: false, email_available: false, + web3_available: false, }; export const useMFAStore = createWithEqualityFn< @@ -29,6 +29,7 @@ export const useMFAStore = createWithEqualityFn< { name: 'mfa-storage', storage: createJSONStorage(() => sessionStorage), + version: 2, }, ), Object.is, diff --git a/web/src/pages/devices/DevicesPage.tsx b/web/src/pages/devices/DevicesPage.tsx new file mode 100644 index 000000000..a497a1f41 --- /dev/null +++ b/web/src/pages/devices/DevicesPage.tsx @@ -0,0 +1,76 @@ +import { PropsWithChildren, useEffect } from 'react'; + +import { useI18nContext } from '../../i18n/i18n-react'; +import { ManagementPageLayout } from '../../shared/components/Layout/ManagementPageLayout/ManagementPageLayout'; +import { Button } from '../../shared/defguard-ui/components/Layout/Button/Button'; +import { ButtonStyleVariant } from '../../shared/defguard-ui/components/Layout/Button/types'; +import { AddStandaloneDeviceModal } from '../overview/modals/AddStandaloneDeviceModal/AddStandaloneDeviceModal'; +import { useAddStandaloneDeviceModal } from '../overview/modals/AddStandaloneDeviceModal/store'; +import { AddDeviceIcon } from './components/AddDeviceIcon'; +import { DevicesList } from './components/DevicesList/DevicesList'; +import { ConfirmDeviceDeleteModal } from './components/DevicesList/modals/ConfirmDeviceDeleteModal'; +import { DevicesPageProvider, useDevicesPage } from './hooks/useDevicesPage'; +import { mockDevices } from './mock'; + +export const DevicesPage = () => { + return ( + + + {/* Add modals here */} + + + + ); +}; + +const PageContext = (props: PropsWithChildren) => { + return {props.children}; +}; + +const PageActions = () => { + const { LL } = useI18nContext(); + const localLL = LL.devicesPage.bar.actions; + const openStandaloneDeviceModal = useAddStandaloneDeviceModal((s) => s.open); + return ( + <> + } + onClick={() => openStandaloneDeviceModal()} + /> + > + ); +}; + +const Page = () => { + const { LL } = useI18nContext(); + const localLL = LL.devicesPage; + const [{ devices }, setPageState] = useDevicesPage(); + + useEffect(() => { + setPageState((s) => ({ + ...s, + devices: mockDevices, + })); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + return ( + { + console.log(v); + }, + }} + actions={} + itemsCount={{ + label: localLL.bar.itemsCount(), + itemsCount: devices.length, + }} + > + + + ); +}; diff --git a/web/src/pages/devices/components/AddDeviceIcon.tsx b/web/src/pages/devices/components/AddDeviceIcon.tsx new file mode 100644 index 000000000..9d2b1aa04 --- /dev/null +++ b/web/src/pages/devices/components/AddDeviceIcon.tsx @@ -0,0 +1,49 @@ +export const AddDeviceIcon = () => { + return ( + + + + + + + + + + + + ); +}; diff --git a/web/src/pages/devices/components/DevicesList/DevicesList.tsx b/web/src/pages/devices/components/DevicesList/DevicesList.tsx new file mode 100644 index 000000000..7262512e9 --- /dev/null +++ b/web/src/pages/devices/components/DevicesList/DevicesList.tsx @@ -0,0 +1,129 @@ +import './style.scss'; + +import dayjs from 'dayjs'; +import { useCallback, useMemo } from 'react'; + +import { useI18nContext } from '../../../../i18n/i18n-react'; +import { DeviceAvatar } from '../../../../shared/defguard-ui/components/Layout/DeviceAvatar/DeviceAvatar'; +import { EditButton } from '../../../../shared/defguard-ui/components/Layout/EditButton/EditButton'; +import { EditButtonOption } from '../../../../shared/defguard-ui/components/Layout/EditButton/EditButtonOption'; +import { EditButtonOptionStyleVariant } from '../../../../shared/defguard-ui/components/Layout/EditButton/types'; +import { LimitedText } from '../../../../shared/defguard-ui/components/Layout/LimitedText/LimitedText'; +import { + ListHeader, + ListSortDirection, +} from '../../../../shared/defguard-ui/components/Layout/VirtualizedList/types'; +import { VirtualizedList } from '../../../../shared/defguard-ui/components/Layout/VirtualizedList/VirtualizedList'; +import { MockDevice, useDevicesPage } from '../../hooks/useDevicesPage'; + +export const DevicesList = () => { + const { LL } = useI18nContext(); + const localLL = LL.devicesPage.list; + const labels = localLL.columns.labels; + const [{ devices, search }] = useDevicesPage(); + + const renderRow = useCallback( + (device: MockDevice) => , + [], + ); + + const listHeaders = useMemo( + (): ListHeader[] => [ + { + key: 0, + text: labels.name(), + active: true, + sortable: true, + sortDirection: ListSortDirection.DESC, + }, + { key: 1, text: labels.location() }, + { key: 2, text: labels.assignedIp() }, + { key: 3, text: labels.description() }, + { key: 4, text: labels.addedBy() }, + { key: 5, text: labels.addedAt() }, + { key: 6, text: labels.edit() }, + ], + [labels], + ); + + const dataAfterFilter = useMemo( + () => + devices.filter((d) => d.name.toLowerCase().includes(search.trim().toLowerCase())), + [devices, search], + ); + + return ( + + ); +}; + +const DeviceRow = ({ + addedBy, + addedDate, + assignedIp, + description, + id, + location, + name, +}: MockDevice) => { + const formatDate = useMemo(() => { + const day = dayjs(addedDate); + return day.format('DD.MM.YYYY | HH:mm'); + }, [addedDate]); + return ( + + + + + + + + + + {assignedIp} + + + + + + + + + {formatDate} + + + + + + ); +}; + +const DeviceRowEditButton = () => { + const { LL } = useI18nContext(); + return ( + + + + + ); +}; diff --git a/web/src/pages/devices/components/DevicesList/modals/ConfirmDeviceDeleteModal.tsx b/web/src/pages/devices/components/DevicesList/modals/ConfirmDeviceDeleteModal.tsx new file mode 100644 index 000000000..541fb4c14 --- /dev/null +++ b/web/src/pages/devices/components/DevicesList/modals/ConfirmDeviceDeleteModal.tsx @@ -0,0 +1,37 @@ +import { shallow } from 'zustand/shallow'; + +import { useI18nContext } from '../../../../../i18n/i18n-react'; +import { ConfirmModal } from '../../../../../shared/defguard-ui/components/Layout/modals/ConfirmModal/ConfirmModal'; +import { useDeleteStandaloneDeviceModal } from '../../../hooks/useDeleteStandaloneDeviceModal'; + +export const ConfirmDeviceDeleteModal = () => { + const { LL } = useI18nContext(); + const localLL = LL.modals.deleteStandaloneDevice; + const [visible, device] = useDeleteStandaloneDeviceModal( + (s) => [s.visible, s.device], + shallow, + ); + const [close, reset] = useDeleteStandaloneDeviceModal( + (s) => [s.close, s.reset], + shallow, + ); + + const isOpen = visible && device !== undefined; + + return ( + { + console.warn('Delete device not implemented!'); + }} + onClose={close} + afterClose={reset} + /> + ); +}; diff --git a/web/src/pages/devices/components/DevicesList/style.scss b/web/src/pages/devices/components/DevicesList/style.scss new file mode 100644 index 000000000..751bcc6e3 --- /dev/null +++ b/web/src/pages/devices/components/DevicesList/style.scss @@ -0,0 +1,105 @@ +@mixin spacing { + display: inline-grid; + grid-template-rows: 1fr; + grid-template-columns: 250px repeat(2, 150px) 1fr 180px 200px 50px; + column-gap: 15px; +} + +#devices-page-devices-list { + overflow-x: auto; + min-width: 1540px; + + .scroll-container { + max-height: 650px; + } + + .headers { + @include spacing; + + & > :nth-child(1) { + padding-left: 50px; + } + + & > :nth-child(7) { + align-items: center; + justify-content: center; + + span { + text-align: center; + } + } + } + + .device-row { + width: 100%; + height: 60px; + box-sizing: border-box; + padding: 0 15px; + border: 1px solid transparent; + background-color: var(--surface-default-modal); + border-radius: 15px; + transition-property: border; + transition-duration: 100ms; + transition-timing-function: ease-in-out; + align-items: center; + + &:hover, + &.active { + border-color: var(--border-primary); + } + + @include spacing; + } +} + +.device-item-floating { + font-family: 'Roboto'; + font-size: 15px; + font-weight: 500; +} + +#devices-page-devices-list .device-row { + p, + span { + font-family: 'Roboto'; + font-size: 15px; + font-weight: 500; + } + + [class^='cell-'] { + height: 100%; + width: 100%; + max-width: 100%; + overflow: hidden; + display: flex; + flex-flow: row; + align-items: center; + justify-content: flex-start; + } + + .text-limited { + height: 100%; + } + + .cell-7 { + justify-content: center; + } + + .cell-1 { + display: flex; + flex-flow: row; + align-items: center; + justify-content: flex-start; + column-gap: 10px; + + .avatar-icon { + width: 40px; + height: 40px; + + svg { + width: 30px; + height: 30px; + } + } + } +} diff --git a/web/src/pages/devices/hooks/useDeleteStandaloneDeviceModal.tsx b/web/src/pages/devices/hooks/useDeleteStandaloneDeviceModal.tsx new file mode 100644 index 000000000..7ef658ebc --- /dev/null +++ b/web/src/pages/devices/hooks/useDeleteStandaloneDeviceModal.tsx @@ -0,0 +1,30 @@ +import { createWithEqualityFn } from 'zustand/traditional'; + +import { MockDevice } from './useDevicesPage'; + +const defaultValues: StoreValues = { + visible: false, + device: undefined, +}; + +export const useDeleteStandaloneDeviceModal = createWithEqualityFn( + (set) => ({ + ...defaultValues, + open: (device) => set({ visible: true, device }), + close: () => set({ visible: false }), + reset: () => set(defaultValues), + }), + Object.is, +); + +type Store = StoreValues & StoreMethods; + +type StoreValues = { + visible: boolean; + device?: MockDevice; +}; +type StoreMethods = { + open: (device: MockDevice) => void; + close: () => void; + reset: () => void; +}; diff --git a/web/src/pages/devices/hooks/useDevicesPage.tsx b/web/src/pages/devices/hooks/useDevicesPage.tsx new file mode 100644 index 000000000..b292eaa90 --- /dev/null +++ b/web/src/pages/devices/hooks/useDevicesPage.tsx @@ -0,0 +1,33 @@ +import { useState } from 'react'; +import { createContainer } from 'react-tracked'; + +type MockedLocation = { + id: number; + name: string; +}; + +export type MockDevice = { + id: number; + name: string; + assignedIp: string; + description: string; + addedBy: string; + // ISO date + addedDate: string; + location: MockedLocation[]; +}; + +export type DevicesPageContext = { + devices: MockDevice[]; + search: string; +}; + +const initialState: DevicesPageContext = { + devices: [], + search: '', +}; + +const useValue = () => useState(initialState); + +export const { Provider: DevicesPageProvider, useTracked: useDevicesPage } = + createContainer(useValue); diff --git a/web/src/pages/devices/mock.ts b/web/src/pages/devices/mock.ts new file mode 100644 index 000000000..9abd2758e --- /dev/null +++ b/web/src/pages/devices/mock.ts @@ -0,0 +1,338 @@ +/* eslint-disable max-len */ +import { MockDevice } from './hooks/useDevicesPage'; + +export const mockDevices: MockDevice[] = [ + { + id: 1, + name: 'Server 1', + assignedIp: '10.10.10.1', + description: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque nec varius velit. Integer at ligula non sapien facilisis dictum. Sed vitae turpis vitae urna placerat venenatis.', + addedBy: 'Alice Johnson', + addedDate: '2023-01-15T08:30:00Z', + location: [ + { id: 1, name: 'New York' }, + { id: 2, name: 'Los Angeles' }, + ], + }, + { + id: 2, + name: 'Printer', + assignedIp: '10.10.10.2', + description: + 'Suspendisse potenti. Curabitur non libero nec lorem tincidunt tristique. Praesent euismod, nunc at sollicitudin ullamcorper, urna neque vestibulum libero, at malesuada risus massa ut nulla.', + addedBy: 'Michael Smith', + addedDate: '2023-03-22T14:45:00Z', + location: [{ id: 3, name: 'Chicago' }], + }, + { + id: 3, + name: 'Router', + assignedIp: '10.10.10.3', + description: + 'Fusce ut urna vitae odio consequat commodo. Nulla facilisi. Aenean tincidunt, sapien nec egestas gravida, ligula urna tincidunt dui, a dictum lacus nunc eget arcu.', + addedBy: 'Emily Davis', + addedDate: '2023-06-10T09:20:00Z', + location: [ + { id: 4, name: 'Houston' }, + { id: 5, name: 'Phoenix' }, + ], + }, + { + id: 4, + name: 'Switch', + assignedIp: '10.10.10.4', + description: + 'Maecenas eget metus at metus ultrices lacinia. Donec vel magna vitae urna egestas bibendum. Integer ac nibh non turpis volutpat pulvinar.', + addedBy: 'Christopher Brown', + addedDate: '2023-09-05T16:00:00Z', + location: [{ id: 6, name: 'Philadelphia' }], + }, + { + id: 5, + name: 'Workstation 1', + assignedIp: '10.10.10.5', + description: + 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.', + addedBy: 'Jessica Wilson', + addedDate: '2023-11-18T11:15:00Z', + location: [ + { id: 7, name: 'San Antonio' }, + { id: 8, name: 'San Diego' }, + ], + }, + { + id: 6, + name: 'Server 2', + assignedIp: '10.10.10.6', + description: + 'Nullam tincidunt, nisl eget bibendum consectetur, sapien justo cursus urna, at ultrices ligula dui non massa. Integer vitae metus a arcu venenatis luctus.', + addedBy: 'David Martinez', + addedDate: '2023-02-10T10:00:00Z', + location: [{ id: 9, name: 'Dallas' }], + }, + { + id: 7, + name: 'Printer 2', + assignedIp: '10.10.10.7', + description: + 'Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem.', + addedBy: 'Sarah Lee', + addedDate: '2023-04-25T13:30:00Z', + location: [{ id: 10, name: 'San Jose' }], + }, + { + id: 8, + name: 'Router 2', + assignedIp: '10.10.10.8', + description: + 'Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Nulla porttitor accumsan tincidunt. Nulla quis lorem ut libero malesuada feugiat.', + addedBy: 'James Anderson', + addedDate: '2023-05-18T09:45:00Z', + location: [ + { id: 11, name: 'Austin' }, + { id: 12, name: 'Jacksonville' }, + ], + }, + { + id: 9, + name: 'Switch 2', + assignedIp: '10.10.10.9', + description: + 'Curabitur aliquet quam id dui posuere blandit. Donec sollicitudin molestie malesuada. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.', + addedBy: 'Patricia Thomas', + addedDate: '2023-07-12T15:20:00Z', + location: [{ id: 13, name: 'Fort Worth' }], + }, + { + id: 10, + name: 'Workstation 2', + assignedIp: '10.10.10.10', + description: + 'Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula.', + addedBy: 'Robert Taylor', + addedDate: '2023-08-30T12:10:00Z', + location: [{ id: 14, name: 'Columbus' }], + }, + { + id: 11, + name: 'Server 3', + assignedIp: '10.10.10.11', + description: + 'Quisque velit nisi, pretium ut lacinia in, elementum id enim. Nulla quis lorem ut libero malesuada feugiat. Donec sollicitudin molestie malesuada.', + addedBy: 'Linda Moore', + addedDate: '2023-01-22T07:50:00Z', + location: [ + { id: 15, name: 'Charlotte' }, + { id: 16, name: 'San Francisco' }, + ], + }, + { + id: 12, + name: 'Printer 3', + assignedIp: '10.10.10.12', + description: + 'Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada.', + addedBy: 'Barbara Jackson', + addedDate: '2023-03-14T10:30:00Z', + location: [{ id: 17, name: 'Indianapolis' }], + }, + { + id: 13, + name: 'Router 3', + assignedIp: '10.10.10.13', + description: + 'Sed porttitor lectus nibh. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.', + addedBy: 'Thomas Harris', + addedDate: '2023-04-27T14:00:00Z', + location: [{ id: 18, name: 'Seattle' }], + }, + { + id: 14, + name: 'Switch 3', + assignedIp: '10.10.10.14', + description: + 'Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla quis lorem ut libero malesuada feugiat.', + addedBy: 'Daniel Clark', + addedDate: '2023-06-05T11:25:00Z', + location: [ + { id: 19, name: 'Denver' }, + { id: 20, name: 'Washington' }, + ], + }, + { + id: 15, + name: 'Workstation 3', + assignedIp: '10.10.10.15', + description: + 'Vivamus suscipit tortor eget felis porttitor volutpat. Nulla quis lorem ut libero malesuada feugiat. Nulla porttitor accumsan tincidunt.', + addedBy: 'Susan Lewis', + addedDate: '2023-07-19T09:15:00Z', + location: [{ id: 21, name: 'Boston' }], + }, + { + id: 16, + name: 'Server 4', + assignedIp: '10.10.10.16', + description: + 'Proin eget tortor risus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt.', + addedBy: 'Kevin Walker', + addedDate: '2023-09-23T16:40:00Z', + location: [ + { id: 22, name: 'El Paso' }, + { id: 23, name: 'Nashville' }, + ], + }, + { + id: 17, + name: 'Printer 4', + assignedIp: '10.10.10.17', + description: + 'Donec rutrum congue leo eget malesuada. Donec sollicitudin molestie malesuada. Nulla quis lorem ut libero malesuada feugiat.', + addedBy: 'Karen Hall', + addedDate: '2023-10-12T13:55:00Z', + location: [{ id: 24, name: 'Detroit' }], + }, + { + id: 18, + name: 'Router 4', + assignedIp: '10.10.10.18', + description: + 'Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Nulla porttitor accumsan tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.', + addedBy: 'Brian Allen', + addedDate: '2023-11-05T08:20:00Z', + location: [{ id: 25, name: 'Oklahoma City' }], + }, + { + id: 19, + name: 'Switch 4', + assignedIp: '10.10.10.19', + description: + 'Curabitur aliquet quam id dui posuere blandit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Donec rutrum congue leo eget malesuada.', + addedBy: 'Nancy Young', + addedDate: '2023-12-01T17:35:00Z', + location: [ + { id: 26, name: 'Portland' }, + { id: 27, name: 'Las Vegas' }, + ], + }, + { + id: 20, + name: 'Workstation 4', + assignedIp: '10.10.10.20', + description: + 'Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Donec sollicitudin molestie malesuada.', + addedBy: 'George Hernandez', + addedDate: '2023-02-28T12:50:00Z', + location: [{ id: 28, name: 'Memphis' }], + }, + { + id: 21, + name: 'Server 5', + assignedIp: '10.10.10.21', + description: + 'Donec rutrum congue leo eget malesuada. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Donec rutrum congue leo eget malesuada.', + addedBy: 'Donna King', + addedDate: '2023-03-10T10:10:00Z', + location: [{ id: 29, name: 'Louisville' }], + }, + { + id: 22, + name: 'Printer 5', + assignedIp: '10.10.10.22', + description: + 'Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt. Pellentesque in ipsum id orci porta dapibus.', + addedBy: 'Steven Wright', + addedDate: '2023-04-18T14:25:00Z', + location: [ + { id: 30, name: 'Baltimore' }, + { id: 31, name: 'Milwaukee' }, + ], + }, + { + id: 23, + name: 'Router 5', + assignedIp: '10.10.10.23', + description: + 'Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla quis lorem ut libero malesuada feugiat.', + addedBy: 'Laura Lopez', + addedDate: '2023-05-30T09:05:00Z', + location: [{ id: 32, name: 'Albuquerque' }], + }, + { + id: 24, + name: 'Switch 5', + assignedIp: '10.10.10.24', + description: + 'Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Donec sollicitudin molestie malesuada. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus.', + addedBy: 'Paul Hill', + addedDate: '2023-06-20T11:45:00Z', + location: [{ id: 33, name: 'Tucson' }], + }, + { + id: 25, + name: 'Workstation 5', + assignedIp: '10.10.10.25', + description: + 'Proin eget tortor risus. Donec sollicitudin molestie malesuada. Nulla porttitor accumsan tincidunt.', + addedBy: 'Jennifer Scott', + addedDate: '2023-07-08T16:30:00Z', + location: [{ id: 34, name: 'Fresno' }], + }, + { + id: 26, + name: 'Server 6', + assignedIp: '10.10.10.26', + description: + 'Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Nulla porttitor accumsan tincidunt. Nulla quis lorem ut libero malesuada feugiat.', + addedBy: 'Mark Green', + addedDate: '2023-08-14T13:00:00Z', + location: [ + { id: 35, name: 'Sacramento' }, + { id: 36, name: 'Kansas City' }, + ], + }, + { + id: 27, + name: 'Printer 6', + assignedIp: '10.10.10.27', + description: + 'Donec rutrum congue leo eget malesuada. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt.', + addedBy: 'Elizabeth Adams', + addedDate: '2023-09-19T10:40:00Z', + location: [{ id: 37, name: 'Long Beach' }], + }, + { + id: 28, + name: 'Router 6', + assignedIp: '10.10.10.28', + description: + 'Pellentesque in ipsum id orci porta dapibus. Donec rutrum congue leo eget malesuada. Nulla quis lorem ut libero malesuada feugiat.', + addedBy: 'Charles Baker', + addedDate: '2023-10-25T15:15:00Z', + location: [{ id: 38, name: 'Mesa' }], + }, + { + id: 29, + name: 'Switch 6', + assignedIp: '10.10.10.29', + description: + 'Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada.', + addedBy: 'Barbara Gonzalez', + addedDate: '2023-11-30T12:05:00Z', + location: [ + { id: 39, name: 'Atlanta' }, + { id: 40, name: 'Omaha' }, + ], + }, + { + id: 30, + name: 'Workstation 6', + assignedIp: '10.10.10.30', + description: + 'Vivamus suscipit tortor eget felis porttitor volutpat. Nulla quis lorem ut libero malesuada feugiat. Donec sollicitudin molestie malesuada.', + addedBy: 'Richard Nelson', + addedDate: '2023-12-12T09:50:00Z', + location: [{ id: 41, name: 'Colorado Springs' }], + }, +]; diff --git a/web/src/pages/devices/style.scss b/web/src/pages/devices/style.scss new file mode 100644 index 000000000..e69de29bb diff --git a/web/src/pages/devices/types.ts b/web/src/pages/devices/types.ts new file mode 100644 index 000000000..e69de29bb diff --git a/web/src/pages/overview/OverviewHeader/OverviewHeader.tsx b/web/src/pages/overview/OverviewHeader/OverviewHeader.tsx index 205ca7188..e0233d514 100644 --- a/web/src/pages/overview/OverviewHeader/OverviewHeader.tsx +++ b/web/src/pages/overview/OverviewHeader/OverviewHeader.tsx @@ -1,5 +1,5 @@ import { isUndefined } from 'lodash-es'; -import { useMemo } from 'react'; +import { useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router'; import { useBreakpoint } from 'use-breakpoint'; import { shallow } from 'zustand/shallow'; @@ -34,24 +34,26 @@ export const OverviewHeader = ({ loading = false }: Props) => { [networks, selectedNetworkId], ); - const handleNetworkAction = () => { + const handleNetworkAction = useCallback(() => { if (selectedNetwork) { setNetworkPageStore({ selectedNetworkId: selectedNetworkId }); navigate('../network'); } - }; + }, [navigate, selectedNetwork, selectedNetworkId, setNetworkPageStore]); - const renderEditNetworks = () => { + const renderEditNetworks = useMemo(() => { return ( - } - loading={loading || isUndefined(selectedNetwork)} - onClick={handleNetworkAction} - /> + <> + } + loading={loading || isUndefined(selectedNetwork)} + onClick={handleNetworkAction} + /> + > ); - }; + }, [LL.networkOverview.controls, handleNetworkAction, loading, selectedNetwork]); return ( <> @@ -59,7 +61,7 @@ export const OverviewHeader = ({ loading = false }: Props) => { {selectedNetworkId && } - {renderEditNetworks()} + {renderEditNetworks} @@ -71,7 +73,7 @@ export const OverviewHeader = ({ loading = false }: Props) => { - {renderEditNetworks()} + {renderEditNetworks} )} diff --git a/web/src/pages/overview/OverviewPage.tsx b/web/src/pages/overview/OverviewPage.tsx index 338737e89..cf9aad956 100644 --- a/web/src/pages/overview/OverviewPage.tsx +++ b/web/src/pages/overview/OverviewPage.tsx @@ -111,25 +111,28 @@ export const OverviewPage = () => { }, [setOverViewStore, viewMode]); return ( - - - {breakpoint === 'desktop' && !isUndefined(selectedNetworkId) && ( - - )} - {networkStats && networkUsersStats && ( - - )} - - {userStatsLoading ? ( - - - - ) : getNetworkUsers.length > 0 ? ( - - ) : ( - + <> + + + {breakpoint === 'desktop' && !isUndefined(selectedNetworkId) && ( + )} - - + {networkStats && networkUsersStats && ( + + )} + + {userStatsLoading ? ( + + + + ) : getNetworkUsers.length > 0 ? ( + + ) : ( + + )} + + + {/* Modals */} + > ); }; diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/AddStandaloneDeviceModal.tsx b/web/src/pages/overview/modals/AddStandaloneDeviceModal/AddStandaloneDeviceModal.tsx new file mode 100644 index 000000000..b508c2e14 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/AddStandaloneDeviceModal.tsx @@ -0,0 +1,65 @@ +import './style.scss'; + +import { useEffect, useMemo } from 'react'; +import { shallow } from 'zustand/shallow'; + +import { useI18nContext } from '../../../../i18n/i18n-react'; +import { ModalWithTitle } from '../../../../shared/defguard-ui/components/Layout/modals/ModalWithTitle/ModalWithTitle'; +import { FinishCliStep } from './steps/FinishCliStep/FinishCliStep'; +import { FinishManualStep } from './steps/FinishManualStep/FinishManualStep'; +import { MethodStep } from './steps/MethodStep/MethodStep'; +import { SetupCliStep } from './steps/SetupCliStep/SetupCliStep'; +import { SetupManualStep } from './steps/SetupManualStep/SetupManualStep'; +import { useAddStandaloneDeviceModal } from './store'; + +const steps = [ + , + , + , + , + , +]; + +export const AddStandaloneDeviceModal = () => { + const { LL } = useI18nContext(); + const localLL = LL.modals.addStandaloneDevice; + const [currentStep, visible] = useAddStandaloneDeviceModal( + (s) => [s.currentStep, s.visible], + shallow, + ); + const [close, reset] = useAddStandaloneDeviceModal((s) => [s.close, s.reset], shallow); + + const getTitle = useMemo(() => { + switch (currentStep) { + case 0: + return localLL.steps.method.title(); + case 1: + return localLL.steps.cli.title(); + case 2: + return localLL.steps.cli.title(); + case 3: + return localLL.steps.manual.title(); + case 4: + return localLL.steps.manual.title(); + } + }, [currentStep, localLL.steps.cli, localLL.steps.manual, localLL.steps.method]); + + useEffect(() => { + return () => { + reset(); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + return ( + close()} + afterClose={() => reset()} + /> + ); +}; diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishCliStep/FinishCliStep.tsx b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishCliStep/FinishCliStep.tsx new file mode 100644 index 000000000..d7d1db669 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishCliStep/FinishCliStep.tsx @@ -0,0 +1,60 @@ +import './style.scss'; + +import { shallow } from 'zustand/shallow'; + +import { useI18nContext } from '../../../../../../i18n/i18n-react'; +import { ActionButton } from '../../../../../../shared/defguard-ui/components/Layout/ActionButton/ActionButton'; +import { ActionButtonVariant } from '../../../../../../shared/defguard-ui/components/Layout/ActionButton/types'; +import { Button } from '../../../../../../shared/defguard-ui/components/Layout/Button/Button'; +import { + ButtonSize, + ButtonStyleVariant, +} from '../../../../../../shared/defguard-ui/components/Layout/Button/types'; +import { ExpandableCard } from '../../../../../../shared/defguard-ui/components/Layout/ExpandableCard/ExpandableCard'; +import { MessageBox } from '../../../../../../shared/defguard-ui/components/Layout/MessageBox/MessageBox'; +import { MessageBoxType } from '../../../../../../shared/defguard-ui/components/Layout/MessageBox/types'; +import { useAddStandaloneDeviceModal } from '../../store'; + +export const FinishCliStep = () => { + const { LL } = useI18nContext(); + const localLL = LL.modals.addStandaloneDevice.steps.cli.finish; + const [closeModal] = useAddStandaloneDeviceModal((s) => [s.close], shallow); + return ( + + + + + + + + {}} key={0} />, + ]} + expanded={true} + disableExpand={true} + > + {'defguard -u https://enrollment.defguard.net -t sdf$&9234&8dfsk345LSD3'} + + + { + closeModal(); + }} + /> + + + ); +}; diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishCliStep/style.scss b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishCliStep/style.scss new file mode 100644 index 000000000..88e8bdc39 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishCliStep/style.scss @@ -0,0 +1,21 @@ +#add-standalone-device-modal { + .finish-cli-step { + .download { + width: 100%; + display: flex; + flex-flow: row; + align-items: center; + justify-content: center; + padding-bottom: 30px; + + a { + text-decoration: none; + cursor: pointer; + } + + .btn { + height: 47px; + } + } + } +} diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishManualStep/FinishManualStep.tsx b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishManualStep/FinishManualStep.tsx new file mode 100644 index 000000000..b03a46171 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishManualStep/FinishManualStep.tsx @@ -0,0 +1,173 @@ +import './style.scss'; + +import { ReactNode, useCallback, useMemo, useState } from 'react'; +import QRCode from 'react-qr-code'; +import { shallow } from 'zustand/shallow'; + +import { useI18nContext } from '../../../../../../i18n/i18n-react'; +import { RenderMarkdown } from '../../../../../../shared/components/Layout/RenderMarkdown/RenderMarkdown'; +import { ActionButton } from '../../../../../../shared/defguard-ui/components/Layout/ActionButton/ActionButton'; +import { ActionButtonVariant } from '../../../../../../shared/defguard-ui/components/Layout/ActionButton/types'; +import { Button } from '../../../../../../shared/defguard-ui/components/Layout/Button/Button'; +import { + ButtonSize, + ButtonStyleVariant, +} from '../../../../../../shared/defguard-ui/components/Layout/Button/types'; +import { ExpandableCard } from '../../../../../../shared/defguard-ui/components/Layout/ExpandableCard/ExpandableCard'; +import { MessageBox } from '../../../../../../shared/defguard-ui/components/Layout/MessageBox/MessageBox'; +import { MessageBoxType } from '../../../../../../shared/defguard-ui/components/Layout/MessageBox/types'; +import { useClipboard } from '../../../../../../shared/hooks/useClipboard'; +import { downloadWGConfig } from '../../../../../../shared/utils/downloadWGConfig'; +import { useAddStandaloneDeviceModal } from '../../store'; + +const mockConfig = `[Interface] +PrivateKey = YOUR_PRIVATE_KEY +Address = 10.2.0.16/24 +DNS = 10.2.0.1 + +[Peer] +PublicKey = 2LYRr2HgSScFe0UucpGCdXKDDAluNc9VAE= +AllowedIPs = 10.6.0.0/24, 10.2.0.0/24, 10.3.0.0/24, 10.4.0.0/24, 256.23.12.12/23 +Endpoint = 123.223.23.123:8596 +PersistentKeepalive = 23`; + +export const FinishManualStep = () => { + const { LL } = useI18nContext(); + const localLL = LL.modals.addStandaloneDevice.steps.manual.finish; + const [closeModal] = useAddStandaloneDeviceModal((s) => [s.close], shallow); + + return ( + + + + + {LL.modals.addStandaloneDevice.steps.manual.setup.form.labels.deviceName()}: + + Mocked name + + + {localLL.ctaInstruction()} + + + + + + + { + closeModal(); + }} + /> + + + ); +}; + +type ConfigCardProps = { + config: string; + privateKey?: string; + publicKey: string; + deviceName: string; +}; + +enum ConfigCardView { + FILE, + QR, +} + +const DeviceConfigCard = ({ + config, + privateKey, + publicKey, + deviceName, +}: ConfigCardProps) => { + const { LL } = useI18nContext(); + const { writeToClipboard } = useClipboard(); + const localLL = LL.modals.addStandaloneDevice.steps.manual.finish; + const [view, setView] = useState(ConfigCardView.FILE); + + const configForExport = useMemo(() => { + if (privateKey) { + return config.replace('YOUR_PRIVATE_KEY', privateKey); + } + return config; + }, [config, privateKey]); + + const getQRConfig = useMemo((): string => { + if (privateKey) { + return config.replace('YOUR_PRIVATE_KEY', privateKey); + } + return config.replace('YOUR_PRIVATE_KEY', publicKey); + }, [config, privateKey, publicKey]); + + const renderTextConfig = () => { + const content = configForExport.split('\n'); + return ( + + {content.map((text, index) => ( + <> + {text} + {index !== content.length - 1 && } + > + ))} + + ); + }; + + const handleConfigCopy = useCallback(() => { + writeToClipboard( + configForExport, + LL.components.deviceConfigsCard.messages.copyConfig(), + ); + }, [LL.components.deviceConfigsCard.messages, configForExport, writeToClipboard]); + + const handleConfigDownload = useCallback(() => { + downloadWGConfig(configForExport, deviceName.toLowerCase().replace(' ', '-')); + }, [configForExport, deviceName]); + + const actions = useMemo( + (): ReactNode[] => [ + setView(ConfigCardView.FILE)} + />, + setView(ConfigCardView.QR)} + />, + , + , + ], + [handleConfigCopy, handleConfigDownload, view], + ); + return ( + + {view === ConfigCardView.FILE && renderTextConfig()} + {view === ConfigCardView.QR && } + + ); +}; diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishManualStep/style.scss b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishManualStep/style.scss new file mode 100644 index 000000000..4b8dd1a5d --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/FinishManualStep/style.scss @@ -0,0 +1,51 @@ +#add-standalone-device-modal { + .finish-manual-step { + & > .device-name { + padding-bottom: 20px; + + .label { + color: var(--text-body-tertiary); + @include typography(app-wizard-1); + user-select: none; + padding-bottom: 10px; + } + + .name { + color: var(--text-body-primary); + @include typography(app-input); + } + } + + & > .cta { + width: 100%; + display: flex; + flex-flow: row; + align-items: center; + justify-content: center; + padding-bottom: 20px; + + p { + color: var(--text-body-secondary); + text-align: center; + width: 100%; + max-width: 410px; + text-wrap: balance; + @include typography(app-input); + } + } + + .expandable-card { + .expanded-content { + display: flex; + flex-flow: column; + align-items: center; + + .config { + width: 100%; + color: var(--text-button-primary); + @include typography(app-code); + } + } + } + } +} diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/MethodStep/MethodStep.tsx b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/MethodStep/MethodStep.tsx new file mode 100644 index 000000000..a256531b6 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/MethodStep/MethodStep.tsx @@ -0,0 +1,167 @@ +import './style.scss'; + +import { useQuery } from '@tanstack/react-query'; +import { useCallback, useEffect } from 'react'; +import { shallow } from 'zustand/shallow'; + +import { useI18nContext } from '../../../../../../i18n/i18n-react'; +import SvgWireguardLogo from '../../../../../../shared/components/svg/WireguardLogo'; +import { Button } from '../../../../../../shared/defguard-ui/components/Layout/Button/Button'; +import { + ButtonSize, + ButtonStyleVariant, +} from '../../../../../../shared/defguard-ui/components/Layout/Button/types'; +import { SelectOption } from '../../../../../../shared/defguard-ui/components/Layout/Select/types'; +import useApi from '../../../../../../shared/hooks/useApi'; +import { QueryKeys } from '../../../../../../shared/queries'; +import { DeviceSetupMethodCard } from '../../../../../addDevice/steps/AddDeviceSetupMethodStep/components/DeviceSetupMethodCard/DeviceSetupMethodCard'; +import { useAddStandaloneDeviceModal } from '../../store'; +import { + AddStandaloneDeviceModalChoice, + AddStandaloneDeviceModalStep, +} from '../../types'; + +export const MethodStep = () => { + const { LL } = useI18nContext(); + const localLL = LL.modals.addStandaloneDevice.steps.method; + const choice = useAddStandaloneDeviceModal((s) => s.choice); + const { + network: { getNetworks }, + } = useApi(); + const { data: networks } = useQuery({ + queryKey: [QueryKeys.FETCH_NETWORKS], + queryFn: getNetworks, + refetchOnWindowFocus: false, + refetchOnMount: true, + }); + const [setState, close, next] = useAddStandaloneDeviceModal( + (s) => [s.setStore, s.close, s.changeStep], + shallow, + ); + + const handleChange = useCallback( + (choice: AddStandaloneDeviceModalChoice) => { + setState({ choice }); + }, + [setState], + ); + + useEffect(() => { + if (networks && networks.length) { + const options: SelectOption[] = networks.map((n) => ({ + key: n.id, + value: n.id, + label: n.name, + })); + setState({ networks, networkOptions: options }); + } + }, [networks, setState]); + + return ( + + + } + selected={choice === AddStandaloneDeviceModalChoice.CLI} + onSelect={() => handleChange(AddStandaloneDeviceModalChoice.CLI)} + /> + } + selected={choice === AddStandaloneDeviceModalChoice.MANUAL} + onSelect={() => handleChange(AddStandaloneDeviceModalChoice.MANUAL)} + /> + + + close()} + size={ButtonSize.LARGE} + /> + { + switch (choice) { + case AddStandaloneDeviceModalChoice.CLI: + next(AddStandaloneDeviceModalStep.SETUP_CLI); + break; + case AddStandaloneDeviceModalChoice.MANUAL: + next(AddStandaloneDeviceModalStep.SETUP_MANUAL); + break; + } + }} + /> + + + ); +}; + +const DefguardIcon = () => { + return ( + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/MethodStep/style.scss b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/MethodStep/style.scss new file mode 100644 index 000000000..b56e73483 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/MethodStep/style.scss @@ -0,0 +1,15 @@ +#add-standalone-device-modal .method-step { + box-sizing: border-box; + padding: 0 55px; + + .choices { + display: grid; + grid-template-columns: 1fr 1fr; + padding-bottom: 40px; + column-gap: 50px; + + .device-setup-method { + padding: 68px 27px; + } + } +} diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupCliStep/SetupCliStep.tsx b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupCliStep/SetupCliStep.tsx new file mode 100644 index 000000000..dea2daef4 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupCliStep/SetupCliStep.tsx @@ -0,0 +1,157 @@ +import { zodResolver } from '@hookform/resolvers/zod'; +import { useCallback, useEffect, useMemo } from 'react'; +import { SubmitHandler, useForm } from 'react-hook-form'; +import { z } from 'zod'; +import { shallow } from 'zustand/shallow'; + +import { useI18nContext } from '../../../../../../i18n/i18n-react'; +import { FormInput } from '../../../../../../shared/defguard-ui/components/Form/FormInput/FormInput'; +import { FormSelect } from '../../../../../../shared/defguard-ui/components/Form/FormSelect/FormSelect'; +import { Button } from '../../../../../../shared/defguard-ui/components/Layout/Button/Button'; +import { + ButtonSize, + ButtonStyleVariant, +} from '../../../../../../shared/defguard-ui/components/Layout/Button/types'; +import { MessageBox } from '../../../../../../shared/defguard-ui/components/Layout/MessageBox/MessageBox'; +import { MessageBoxType } from '../../../../../../shared/defguard-ui/components/Layout/MessageBox/types'; +import { + SelectOption, + SelectSelectedValue, +} from '../../../../../../shared/defguard-ui/components/Layout/Select/types'; +import { useAddStandaloneDeviceModal } from '../../store'; +import { AddStandaloneDeviceModalStep } from '../../types'; + +type FormFields = { + name: string; + location: number; + description: string; + assignedAddress: string; +}; + +export const SetupCliStep = () => { + const { LL } = useI18nContext(); + const localLL = LL.modals.addStandaloneDevice.steps.cli.setup; + const labels = localLL.form.labels; + const locationOptions = useAddStandaloneDeviceModal((s) => s.networkOptions); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const [setState, close, next] = useAddStandaloneDeviceModal( + (s) => [s.setStore, s.close, s.changeStep], + shallow, + ); + + const schema = useMemo( + () => + z.object({ + name: z + .string() + .min(1, LL.form.error.required()) + .min(2, LL.form.error.minimumLength()), + location: z.number({ + required_error: LL.form.error.required(), + invalid_type_error: LL.form.error.invalid(), + }), + assignedAddress: z.string().min(1, LL.form.error.required()), + publicKey: z.string().optional(), + }), + [LL.form.error], + ); + + const renderLocationOption = useCallback( + (value: number): SelectSelectedValue => { + if (locationOptions) { + const option = locationOptions.find((o) => o.value === value); + if (option) { + return { + displayValue: option.label, + key: option.key, + }; + } + return { + displayValue: '', + key: 'unknown', + }; + } + return { + displayValue: '', + key: 'unknown', + }; + }, + [locationOptions], + ); + + const { control, handleSubmit, setValue, getValues } = useForm({ + resolver: zodResolver(schema), + mode: 'all', + defaultValues: { + assignedAddress: '', + description: '', + location: 0, + name: '', + }, + }); + + const validSubmit: SubmitHandler = (values) => { + console.table(values); + next(AddStandaloneDeviceModalStep.FINISH_CLI); + }; + + useEffect(() => { + if (locationOptions && locationOptions.length) { + const firstId = locationOptions[0].value; + if (getValues().location !== firstId) { + setValue('location', firstId); + } + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [locationOptions]); + + return ( + + + + + + []>} + renderSelected={renderLocationOption} + label={labels.location()} + /> + + + + + close()} + size={ButtonSize.LARGE} + type="button" + /> + { + next(AddStandaloneDeviceModalStep.FINISH_CLI); + }} + type="submit" + /> + + + + ); +}; diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupManualStep/SetupManualStep.tsx b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupManualStep/SetupManualStep.tsx new file mode 100644 index 000000000..daa1b9db7 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupManualStep/SetupManualStep.tsx @@ -0,0 +1,184 @@ +import './style.scss'; + +import { zodResolver } from '@hookform/resolvers/zod'; +import { useCallback, useMemo } from 'react'; +import { SubmitHandler, useForm } from 'react-hook-form'; +import { z } from 'zod'; +import { shallow } from 'zustand/shallow'; + +import { useI18nContext } from '../../../../../../i18n/i18n-react'; +import { FormInput } from '../../../../../../shared/defguard-ui/components/Form/FormInput/FormInput'; +import { FormSelect } from '../../../../../../shared/defguard-ui/components/Form/FormSelect/FormSelect'; +import { FormToggle } from '../../../../../../shared/defguard-ui/components/Form/FormToggle/FormToggle'; +import { Button } from '../../../../../../shared/defguard-ui/components/Layout/Button/Button'; +import { + ButtonSize, + ButtonStyleVariant, +} from '../../../../../../shared/defguard-ui/components/Layout/Button/types'; +import { + SelectOption, + SelectSelectedValue, +} from '../../../../../../shared/defguard-ui/components/Layout/Select/types'; +import { ToggleOption } from '../../../../../../shared/defguard-ui/components/Layout/Toggle/types'; +import { validateWireguardPublicKey } from '../../../../../../shared/validators'; +import { useAddStandaloneDeviceModal } from '../../store'; +import { AddStandaloneDeviceModalStep, WGConfigGenChoice } from '../../types'; + +type FormFields = { + name: string; + location: number; + description: string; + assignedAddress: string; + generationChoice: WGConfigGenChoice; + publicKey?: string; +}; + +export const SetupManualStep = () => { + const { LL } = useI18nContext(); + const localLL = LL.modals.addStandaloneDevice.steps.manual.setup; + const errors = LL.form.error; + const labels = localLL.form.labels; + const locationOptions = useAddStandaloneDeviceModal((s) => s.networkOptions); + const [setState, next] = useAddStandaloneDeviceModal( + (s) => [s.setStore, s.changeStep], + shallow, + ); + const renderSelectedOption = useCallback( + (val?: number): SelectSelectedValue => { + const empty: SelectSelectedValue = { + displayValue: '', + key: 'empty', + }; + if (val !== undefined) { + const option = locationOptions.find((n) => n.value === val); + if (option) { + return { + displayValue: option.label, + key: option.key, + }; + } + } + return empty; + }, + [locationOptions], + ); + + const toggleOptions = useMemo( + (): ToggleOption[] => [ + { + text: labels.generation.auto(), + value: WGConfigGenChoice.AUTO, + disabled: false, + }, + { + text: labels.generation.manual(), + value: WGConfigGenChoice.MANUAL, + disabled: false, + }, + ], + [labels.generation], + ); + + const schema = useMemo( + () => + z + .object({ + name: z.string(), + location: z.number(), + description: z.string(), + assignedAddress: z.string(), + generationChoice: z.nativeEnum(WGConfigGenChoice), + publicKey: z.string().optional(), + }) + .superRefine((vals, ctx) => { + if (vals.generationChoice === WGConfigGenChoice.MANUAL) { + const result = validateWireguardPublicKey({ + requiredError: errors.required(), + maxError: errors.maximumLengthOf({ length: 44 }), + minError: errors.minimumLengthOf({ length: 44 }), + validKeyError: errors.invalid(), + }).safeParse(vals.publicKey); + if (!result.success) { + ctx.addIssue({ + path: ['publicKey'], + message: result.error.message, + code: 'custom', + }); + } + } + }), + [errors], + ); + + const { handleSubmit, control, watch } = useForm({ + resolver: zodResolver(schema), + mode: 'all', + defaultValues: { + assignedAddress: '', + description: '', + generationChoice: WGConfigGenChoice.AUTO, + name: '', + publicKey: '', + location: locationOptions[0].value, + }, + }); + + const generationChoiceValue = watch('generationChoice'); + + const validSubmit: SubmitHandler = (values) => { + console.table(values); + setState({ genChoice: values.generationChoice }); + next(AddStandaloneDeviceModalStep.FINISH_MANUAL); + }; + + return ( + + + + + []>} + renderSelected={renderSelectedOption} + label={labels.location()} + /> + + + + + + + close()} + size={ButtonSize.LARGE} + type="button" + /> + { + next(AddStandaloneDeviceModalStep.FINISH_MANUAL); + }} + type="submit" + /> + + + + ); +}; diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupManualStep/style.scss b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupManualStep/style.scss new file mode 100644 index 000000000..d6d0f5e91 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/steps/SetupManualStep/style.scss @@ -0,0 +1,7 @@ +#add-standalone-device-modal { + .setup-manual { + .toggle { + margin-bottom: 20px; + } + } +} diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/store.tsx b/web/src/pages/overview/modals/AddStandaloneDeviceModal/store.tsx new file mode 100644 index 000000000..6f18d1ef2 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/store.tsx @@ -0,0 +1,50 @@ +import { isObject } from 'lodash-es'; +import { createWithEqualityFn } from 'zustand/traditional'; + +import { SelectOption } from '../../../../shared/defguard-ui/components/Layout/Select/types'; +import { Network } from '../../../../shared/types'; +import { + AddStandaloneDeviceModalChoice, + AddStandaloneDeviceModalStep, + WGConfigGenChoice, +} from './types'; + +const defaultValues: StoreValues = { + visible: false, + currentStep: AddStandaloneDeviceModalStep.METHOD_CHOICE, + choice: AddStandaloneDeviceModalChoice.CLI, + networks: undefined, + networkOptions: [], + genChoice: WGConfigGenChoice.AUTO, +}; + +export const useAddStandaloneDeviceModal = createWithEqualityFn( + (set) => ({ + ...defaultValues, + setStore: (v) => set(v), + reset: () => set(defaultValues), + close: () => set({ visible: false }), + open: () => set({ ...defaultValues, visible: true }), + changeStep: (step) => set({ currentStep: step }), + }), + isObject, +); + +type Store = StoreValues & StoreMethods; + +type StoreValues = { + visible: boolean; + currentStep: AddStandaloneDeviceModalStep; + choice: AddStandaloneDeviceModalChoice; + networkOptions: SelectOption[]; + networks?: Network[]; + genChoice: WGConfigGenChoice; +}; + +type StoreMethods = { + setStore: (values: Partial) => void; + reset: () => void; + close: () => void; + open: () => void; + changeStep: (step: AddStandaloneDeviceModalStep) => void; +}; diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/style.scss b/web/src/pages/overview/modals/AddStandaloneDeviceModal/style.scss new file mode 100644 index 000000000..a309d2999 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/style.scss @@ -0,0 +1,59 @@ +#add-standalone-device-modal { + width: 100%; + max-width: 920px; + + & > .header { + padding-left: 55px; + } + + .controls { + display: flex; + flex-flow: row; + align-items: center; + justify-content: flex-start; + width: 100%; + column-gap: 20px; + padding-top: 40px; + + .btn { + width: 100%; + height: 47px; + } + + &.solo { + width: 100%; + align-items: center; + justify-content: center; + + .btn { + width: 50%; + } + } + } + + .step-content > div { + box-sizing: border-box; + padding: 0 55px; + + .message-box { + margin-bottom: 20px; + } + } + + .step-content { + form { + .row { + width: 100%; + display: flex; + flex-flow: column; + row-gap: 0; + + @include media-breakpoint-up(lg) { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 20px; + } + } + } + } +} diff --git a/web/src/pages/overview/modals/AddStandaloneDeviceModal/types.ts b/web/src/pages/overview/modals/AddStandaloneDeviceModal/types.ts new file mode 100644 index 000000000..93714fe54 --- /dev/null +++ b/web/src/pages/overview/modals/AddStandaloneDeviceModal/types.ts @@ -0,0 +1,17 @@ +export enum AddStandaloneDeviceModalStep { + METHOD_CHOICE, + SETUP_CLI, + FINISH_CLI, + SETUP_MANUAL, + FINISH_MANUAL, +} + +export enum AddStandaloneDeviceModalChoice { + CLI, + MANUAL, +} + +export enum WGConfigGenChoice { + MANUAL, + AUTO, +} diff --git a/web/src/pages/settings/components/GlobalSettings/components/BrandingSettings/BrandingSettings.tsx b/web/src/pages/settings/components/GlobalSettings/components/BrandingSettings/BrandingSettings.tsx index 81e90852b..359732b1f 100644 --- a/web/src/pages/settings/components/GlobalSettings/components/BrandingSettings/BrandingSettings.tsx +++ b/web/src/pages/settings/components/GlobalSettings/components/BrandingSettings/BrandingSettings.tsx @@ -109,11 +109,11 @@ export const BrandingSettings = () => { main_logo_url: settings?.main_logo_url === defaultSettings.main_logo_url ? '' - : settings?.main_logo_url ?? '', + : (settings?.main_logo_url ?? ''), nav_logo_url: settings?.nav_logo_url === defaultSettings.nav_logo_url ? '' - : settings?.nav_logo_url ?? '', + : (settings?.nav_logo_url ?? ''), }; }, [settings?.instance_name, settings?.main_logo_url, settings?.nav_logo_url]); diff --git a/web/src/pages/users/UsersOverview/components/UsersList/style.scss b/web/src/pages/users/UsersOverview/components/UsersList/style.scss index 95cd783e4..2f87d17fa 100644 --- a/web/src/pages/users/UsersOverview/components/UsersList/style.scss +++ b/web/src/pages/users/UsersOverview/components/UsersList/style.scss @@ -5,9 +5,7 @@ @include media-breakpoint-up(lg) { grid-template-columns: - 33px minmax(100px, 1fr) - repeat(2, minmax(128px, 1fr)) - minmax(300px, 1fr) + 33px minmax(100px, 1fr) repeat(2, minmax(128px, 1fr)) minmax(300px, 1fr) 50px; } } diff --git a/web/src/shared/components/Layout/ManagementPageLayout/ManagementPageLayout.tsx b/web/src/shared/components/Layout/ManagementPageLayout/ManagementPageLayout.tsx new file mode 100644 index 000000000..fe5cfeff1 --- /dev/null +++ b/web/src/shared/components/Layout/ManagementPageLayout/ManagementPageLayout.tsx @@ -0,0 +1,53 @@ +import './style.scss'; + +import { clsx } from 'clsx'; + +import { useNavigationStore } from '../../../../components/Navigation/hooks/useNavigationStore'; +import { Search } from '../../../defguard-ui/components/Layout/Search/Search'; +import { ManagementPageProps } from './types'; + +export const ManagementPageLayout = ({ + children, + title, + actions, + itemsCount, + search, +}: ManagementPageProps) => { + const navOpen = useNavigationStore((s) => s.isOpen); + return ( + + + + {title} + {search && ( + + )} + + + {itemsCount && ( + + {itemsCount.label} + {itemsCount.itemsCount !== undefined && ( + + {itemsCount.itemsCount} + + )} + + )} + {actions} + + {children} + + + ); +}; diff --git a/web/src/shared/components/Layout/ManagementPageLayout/style.scss b/web/src/shared/components/Layout/ManagementPageLayout/style.scss new file mode 100644 index 000000000..becdb95a1 --- /dev/null +++ b/web/src/shared/components/Layout/ManagementPageLayout/style.scss @@ -0,0 +1,80 @@ +.management-page { + box-sizing: border-box; + width: 100%; + padding-top: 64px; + padding-left: 88px; + max-height: 100dvh; + overflow-y: auto; + + &.nav-open { + padding-left: 230px; + } + + & > .page-content { + & > header { + display: flex; + flex-flow: row wrap; + align-items: center; + justify-content: flex-start; + gap: 30px; + width: 100%; + box-sizing: border-box; + padding: 0 70px 48px; + + h1 { + @include typography(app-title); + } + + .search { + min-width: 360px; + max-width: 100%; + } + } + + & > .top-bar { + flex-flow: row; + display: flex; + box-sizing: border-box; + padding: 0 70px 30px; + width: 100%; + + .items-count { + display: flex; + flex-flow: row; + flex-grow: 0; + align-items: center; + justify-content: flex-start; + column-gap: 10px; + + & > p { + @include typography(app-body-1); + } + + .count-box { + display: flex; + align-items: center; + flex-flow: row; + align-items: center; + justify-content: center; + flex-grow: 0; + box-sizing: border-box; + padding: 0 8px; + height: 30px; + min-width: 30px; + background-color: var(--text-body-tertiary); + user-select: none; + border-radius: 35%; + + span { + color: var(--surface-frame-bg); + @include typography(app-number); + } + } + } + + & > .actions { + margin-left: auto; + } + } + } +} diff --git a/web/src/shared/components/Layout/ManagementPageLayout/types.ts b/web/src/shared/components/Layout/ManagementPageLayout/types.ts new file mode 100644 index 000000000..e7e8c6036 --- /dev/null +++ b/web/src/shared/components/Layout/ManagementPageLayout/types.ts @@ -0,0 +1,20 @@ +import { ReactNode } from 'react'; + +export type ManagementPageProps = { + children: ReactNode; + title: string; + search?: ManagementPageSearch; + actions?: ReactNode; + itemsCount?: ManagementPageItemsCount; +}; + +export type ManagementPageItemsCount = { + itemsCount?: number; + label: string; +}; + +export type ManagementPageSearch = { + onSearch: (searchValue: string) => void; + placeholder?: string; + loading?: boolean; +}; diff --git a/web/src/shared/components/Layout/VersionUpdateToast/types.ts b/web/src/shared/components/Layout/VersionUpdateToast/types.ts new file mode 100644 index 000000000..e4a251bc5 --- /dev/null +++ b/web/src/shared/components/Layout/VersionUpdateToast/types.ts @@ -0,0 +1,7 @@ +import { z } from 'zod'; + +export const versionUpdateToastMetaSchema = z.object({ + customId: z.string().min(1), +}); + +export type VersionUpdateToastMeta = z.infer; diff --git a/web/src/shared/defguard-ui b/web/src/shared/defguard-ui index 95acffb5b..6f06169d5 160000 --- a/web/src/shared/defguard-ui +++ b/web/src/shared/defguard-ui @@ -1 +1 @@ -Subproject commit 95acffb5bd8e12e836f75f8e659b0c3c9a9bea69 +Subproject commit 6f06169d535f05336d808d6a2a3faa8eb1c803bd diff --git a/web/src/shared/hooks/store/useUpdatesStore.tsx b/web/src/shared/hooks/store/useUpdatesStore.tsx index 8a3e749aa..4a494aa17 100644 --- a/web/src/shared/hooks/store/useUpdatesStore.tsx +++ b/web/src/shared/hooks/store/useUpdatesStore.tsx @@ -2,6 +2,10 @@ import { isObject, pick } from 'lodash-es'; import { persist } from 'zustand/middleware'; import { createWithEqualityFn } from 'zustand/traditional'; +import { + VersionUpdateToastMeta, + versionUpdateToastMetaSchema, +} from '../../components/Layout/VersionUpdateToast/types'; import { VersionUpdateToast } from '../../components/Layout/VersionUpdateToast/VersionUpdateToast'; import { ToastType } from '../../defguard-ui/components/Layout/ToastManager/Toast/types'; import { useToastsStore } from '../../defguard-ui/hooks/toasts/useToastStore'; @@ -14,6 +18,8 @@ const defaultState: StoreValues = { update: undefined, }; +const updateToastCustomId = 'version-update-toast'; + export const useUpdatesStore = createWithEqualityFn()( persist( (set, get) => ({ @@ -24,15 +30,31 @@ export const useUpdatesStore = createWithEqualityFn()( setUpdate: (update) => { const state = get(); if (!state.dismissal || state.dismissal.version !== update.version) { - useToastsStore.getState().addToast({ - customComponent: VersionUpdateToast, - message: '', - type: ToastType.INFO, + const { addToast, toasts } = useToastsStore.getState(); + // this is needed in order to not duplicate the version update toast upon page reload because toast is not dismissible and will otherwise appear again when update is checked for. + const isIn = toasts.find((t) => { + const meta = t.meta; + if (meta) { + const parseResult = versionUpdateToastMetaSchema.safeParse(meta); + if (parseResult.success) { + return parseResult.data.customId === updateToastCustomId; + } + } + return false; }); - set({ update: update }); - } else { - set({ update: update }); + if (!isIn) { + const meta: VersionUpdateToastMeta = { + customId: updateToastCustomId, + }; + addToast({ + customComponent: VersionUpdateToast, + message: '', + type: ToastType.INFO, + meta, + }); + } } + set({ update: update }); }, clearUpdate: () => set({ update: undefined }), }), diff --git a/web/src/shared/hooks/useApi.tsx b/web/src/shared/hooks/useApi.tsx index 9cc19d235..97f7bb7cc 100644 --- a/web/src/shared/hooks/useApi.tsx +++ b/web/src/shared/hooks/useApi.tsx @@ -333,23 +333,6 @@ const useApi = (props?: HookProps): ApiHook => { const mfaEmailMFAVerify: ApiHook['auth']['mfa']['email']['verify'] = (data) => client.post('/auth/email/verify', data).then(unpackRequest); - const mfaWeb3Start: ApiHook['auth']['mfa']['web3']['start'] = (data) => - client.post('/auth/web3/start', data).then(unpackRequest); - - const mfaWeb3Finish: ApiHook['auth']['mfa']['web3']['finish'] = (data) => - client.post('/auth/web3', data).then(unpackRequest); - - const editWalletMFA: ApiHook['auth']['mfa']['web3']['updateWalletMFA'] = ({ - address, - username, - ...rest - }) => - client - .put(`/user/${username}/wallet/${address}`, { - ...rest, - }) - .then(unpackRequest); - const mfaWebauthnDeleteKey: ApiHook['auth']['mfa']['webauthn']['deleteKey'] = ({ keyId, username, @@ -612,11 +595,6 @@ const useApi = (props?: HookProps): ApiHook => { sendCode: mfaEmailMFASendCode, verify: mfaEmailMFAVerify, }, - web3: { - start: mfaWeb3Start, - finish: mfaWeb3Finish, - updateWalletMFA: editWalletMFA, - }, }, }, provisioning: { diff --git a/web/src/shared/mutations.ts b/web/src/shared/mutations.ts index da00e7d9c..58795971d 100644 --- a/web/src/shared/mutations.ts +++ b/web/src/shared/mutations.ts @@ -37,8 +37,6 @@ export const MutationKeys = { DISABLE_EMAIL_MFA: 'DISABLE_EMAIL_MFA', VERIFY_EMAIL_MFA: 'VERIFY_EMAIL_MFA', EDIT_WALLET_MFA: 'EDIT_WALLET_MFA', - WEB3_MFA_START: 'WEB3_MFA_START', - WEB3_MFA_FINISH: 'WEB3_MFA_FINISH', WEBAUTHN_MFA_START: 'WEBAUTHN_MFA_START', WEBAUTHN_MFA_FINISH: 'WEBAUTHN_MFA_FINISH', WEBUAUTHN_DELETE_KEY: 'WEBAUTN_DELETE_KEY', diff --git a/web/src/shared/types.ts b/web/src/shared/types.ts index 7fc4d0b8f..61414114e 100644 --- a/web/src/shared/types.ts +++ b/web/src/shared/types.ts @@ -302,7 +302,7 @@ export interface EditWalletMFARequest { export interface MFALoginResponse { mfa_method: UserMFAMethod; totp_available: boolean; - web3_available: boolean; + web3_available?: boolean; webauthn_available: boolean; email_available: boolean; } @@ -549,11 +549,6 @@ export interface ApiHook { disable: () => EmptyApiResponse; verify: (data: TOTPRequest) => Promise; }; - web3: { - start: (data: Web3StartRequest) => Promise<{ challenge: string }>; - finish: (data: WalletSignature) => Promise; - updateWalletMFA: (data: EditWalletMFARequest) => MFARecoveryCodesResponse; - }; }; }; provisioning: { @@ -808,7 +803,6 @@ export interface UseOpenIDStore { * full defguard instance Settings */ export type Settings = SettingsModules & - SettingsWeb3 & SettingsSMTP & SettingsEnrollment & SettingsBranding & @@ -863,10 +857,6 @@ export type SettingsLDAP = { ldap_username_attr: string; }; -export type SettingsWeb3 = { - challenge_template: string; -}; - export type SettingsOpenID = { openid_create_account: boolean; }; @@ -1037,10 +1027,6 @@ export interface WalletSignature { signature: string; } -export interface Web3StartRequest { - address: string; -} - export interface TOTPRequest { code: string; } diff --git a/web/src/shared/validators.ts b/web/src/shared/validators.ts index b935329d2..4c4821318 100644 --- a/web/src/shared/validators.ts +++ b/web/src/shared/validators.ts @@ -1,6 +1,22 @@ import ipaddr from 'ipaddr.js'; +import { z } from 'zod'; -import { patternValidDomain } from './patterns'; +import { patternValidDomain, patternValidWireguardKey } from './patterns'; + +export const validateWireguardPublicKey = (props: { + requiredError: string; + minError: string; + maxError: string; + validKeyError: string; +}) => + z + .string({ + invalid_type_error: props.requiredError, + required_error: props.requiredError, + }) + .min(44, props.minError) + .max(44, props.maxError) + .regex(patternValidWireguardKey, props.validKeyError); // Returns flase when invalid export const validateIpOrDomain = ( diff --git a/web/src/shared/web3/Web3ContextProvider/Web3ContextProvider.tsx b/web/src/shared/web3/Web3ContextProvider/Web3ContextProvider.tsx deleted file mode 100644 index 2f045a432..000000000 --- a/web/src/shared/web3/Web3ContextProvider/Web3ContextProvider.tsx +++ /dev/null @@ -1,151 +0,0 @@ -import detectEthereumProvider from '@metamask/detect-provider'; -import { BrowserProvider, JsonRpcError, JsonRpcSigner } from 'ethers'; -import { ReactNode, useCallback, useEffect, useRef, useState } from 'react'; - -import { Web3Context } from './web3Context'; - -type Props = { - children: ReactNode; -}; - -export const Web3ContextProvider = ({ children }: Props) => { - const initRef = useRef(false); - const [isConnecting, setIsConnecting] = useState(false); - const [provider, setProvider] = useState(); - const [signer, setSigner] = useState(); - const [chainId, setChainId] = useState(); - const [address, setAddress] = useState(); - const [isConnected, setConnected] = useState(false); - - const connect = useCallback(async () => { - const detected = await detectEthereumProvider({ mustBeMetaMask: true, silent: true }); - if (detected && window.ethereum) { - setIsConnecting(true); - try { - const accounts = await (window.ethereum.request({ - method: 'eth_requestAccounts', - }) as Promise); - if (Array.isArray(accounts) && accounts && accounts.length) { - setAddress(accounts[0]); - setConnected(true); - const cId = await window.ethereum.request({ method: 'eth_chainId' }); - const id = parseInt(cId, 16); - setChainId(id); - setIsConnecting(false); - const p = new BrowserProvider(window.ethereum); - const s = await p.getSigner(); - setProvider(p); - setSigner(s); - return Promise.resolve({ - address: accounts[0], - chainId: id, - }); - } - } catch (e) { - setIsConnecting(false); - return Promise.reject(e as JsonRpcError); - } - } - return Promise.reject('Metamask not detected'); - }, []); - - const handleAccountsChange = useCallback((accounts: string[]) => { - const assignHandlers = async () => { - if (window.ethereum) { - const p = new BrowserProvider(window.ethereum); - const s = await p.getSigner(); - const cId = await window.ethereum.request({ - method: 'eth_chainId', - }); - const id = parseInt(cId, 16); - setChainId(id); - setProvider(p); - setSigner(s); - } - }; - - if (accounts.length) { - setAddress(accounts[0]); - setConnected(true); - assignHandlers(); - } - - // if list is empty user removed permissions to he's wallet - if (accounts.length === 0) { - setConnected(false); - setAddress(undefined); - setProvider(undefined); - setSigner(undefined); - setChainId(undefined); - } - }, []); - - // detect connected MM on mount - useEffect(() => { - const detectPermissions = async () => { - const detected = await detectEthereumProvider({ - mustBeMetaMask: true, - silent: true, - }); - if (detected && window.ethereum && window.ethereum.selectedAddress) { - window.ethereum - ?.request({ method: 'eth_requestAccounts' }) - .then(async (accounts: string[]) => { - if (accounts.length) { - setAddress(accounts[0]); - setConnected(true); - if (window.ethereum) { - const cId = await window.ethereum.request({ - method: 'eth_chainId', - }); - const id = parseInt(cId, 16); - setChainId(id); - setIsConnecting(false); - const p = new BrowserProvider(window.ethereum); - const s = await p.getSigner(); - setProvider(p); - setSigner(s); - } - } - }); - } - }; - detectPermissions(); - }, []); - - // watch for events - useEffect(() => { - const handleChainChange = () => { - window.location.reload(); - }; - const init = async () => { - const detected = await detectEthereumProvider({ - mustBeMetaMask: true, - silent: true, - }); - if (detected && window.ethereum) { - await window.ethereum.on('accountsChanged', handleAccountsChange); - await window.ethereum.on('chainChanged', handleChainChange); - } - initRef.current = false; - }; - - if (!initRef.current) { - initRef.current = true; - init(); - } - - return () => { - window.ethereum?.removeListener('accountsChanged', handleAccountsChange); - window.ethereum?.removeListener('chainChanged', handleChainChange); - }; - }, [handleAccountsChange]); - - return ( - - {children} - - ); -}; diff --git a/web/src/shared/web3/Web3ContextProvider/types.ts b/web/src/shared/web3/Web3ContextProvider/types.ts deleted file mode 100644 index bf3495d33..000000000 --- a/web/src/shared/web3/Web3ContextProvider/types.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type ConnectInfo = { - chainId: string; -}; diff --git a/web/src/shared/web3/Web3ContextProvider/web3Context.ts b/web/src/shared/web3/Web3ContextProvider/web3Context.ts deleted file mode 100644 index 061d9b5b4..000000000 --- a/web/src/shared/web3/Web3ContextProvider/web3Context.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Provider, Signer } from 'ethers'; -import { createContext } from 'react'; - -export const Web3Context = createContext(undefined); - -export type Web3ContextType = { - isConnected: boolean; - isConnecting?: boolean; - chainId?: number; - address?: string; - provider?: Provider; - signer?: Signer; - connect: () => Promise<{ - address: string; - }>; -}; diff --git a/web/src/shared/web3/hooks/useWeb3Account.ts b/web/src/shared/web3/hooks/useWeb3Account.ts deleted file mode 100644 index 72cdd8bea..000000000 --- a/web/src/shared/web3/hooks/useWeb3Account.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { useContext } from 'react'; - -import { Web3Context } from '../Web3ContextProvider/web3Context'; - -export const useWeb3Account = () => { - const contextData = useContext(Web3Context); - - if (!contextData) return {}; - - const { address, chainId } = contextData; - - return { - address, - chainId, - }; -}; diff --git a/web/src/shared/web3/hooks/useWeb3Connection.ts b/web/src/shared/web3/hooks/useWeb3Connection.ts deleted file mode 100644 index 83b7ec9cd..000000000 --- a/web/src/shared/web3/hooks/useWeb3Connection.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { useContext } from 'react'; - -import { Web3Context } from '../Web3ContextProvider/web3Context'; - -export const useWeb3Connection = () => { - const contextData = useContext(Web3Context); - - if (!contextData) return {}; - - const { isConnected, connect, isConnecting } = contextData; - - return { - isConnected, - connect, - isConnecting, - }; -}; diff --git a/web/src/shared/web3/hooks/useWeb3Signer.ts b/web/src/shared/web3/hooks/useWeb3Signer.ts deleted file mode 100644 index 9d2212cb2..000000000 --- a/web/src/shared/web3/hooks/useWeb3Signer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { useContext } from 'react'; - -import { Web3Context } from '../Web3ContextProvider/web3Context'; - -export const useWeb3Signer = () => { - const contextData = useContext(Web3Context); - - return { - signer: contextData?.signer, - }; -}; diff --git a/web/src/web3.d.ts b/web/src/web3.d.ts deleted file mode 100644 index b08629e84..000000000 --- a/web/src/web3.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { BrowserProvider, Eip1193Provider } from 'ethers'; - -declare global { - interface Window { - ethereum?: Eip1193Provider & - BrowserProvider & { - isMetaMask?: boolean; - isConnected?: () => boolean; - selectedAddress?: string; - }; - } -} diff --git a/web/svgo.config.json b/web/svgo.config.json deleted file mode 100644 index 24c20eaef..000000000 --- a/web/svgo.config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "plugins": [ - { - "name": "preset-default", - "params": { - "overrides": { - "removeViewBox": false - } - } - }, - "prefixIds" - ] -} diff --git a/web/tsconfig.app.json b/web/tsconfig.app.json new file mode 100644 index 000000000..b475641d1 --- /dev/null +++ b/web/tsconfig.app.json @@ -0,0 +1,39 @@ +{ + "compilerOptions": { + "target": "ES2022", + "useDefineForClassFields": true, + "lib": [ + "ESNext", + "DOM", + "DOM.Iterable" + ], + "module": "ESNext", + "skipLibCheck": true, + "allowSyntheticDefaultImports": true, + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "plugins": [ + { + "name": "typescript-eslint-language-service", + }, + ], + }, + "include": [ + "src" + ], + "exclude": [ + "node_modules", + "dist", + "build" + ], +} diff --git a/web/tsconfig.json b/web/tsconfig.json index 65e0c7c79..ea9d0cd82 100644 --- a/web/tsconfig.json +++ b/web/tsconfig.json @@ -1,33 +1,11 @@ { - "compilerOptions": { - "target": "ESNext", - "types": ["vite/client"], - "useDefineForClassFields": true, - "lib": ["ESNext", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - "allowSyntheticDefaultImports": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "plugins": [ - { - "name": "typescript-eslint-language-service", - }, - ], - }, - "include": ["src"], - "exclude": ["node_modules", "dist", "build"], - "references": [{ "path": "./tsconfig.node.json" }], + "files": [], + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.node.json" + } + ] } diff --git a/web/tsconfig.node.json b/web/tsconfig.node.json index 227c4532f..6513433be 100644 --- a/web/tsconfig.node.json +++ b/web/tsconfig.node.json @@ -1,8 +1,26 @@ { "compilerOptions": { - "composite": true, - "module": "esnext", - "moduleResolution": "node" + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": [ + "ES2023" + ], + "module": "ESNext", + "skipLibCheck": true, + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + // "noUncheckedSideEffectImports": true }, - "include": ["vite.config.mts"] -} + "include": [ + "vite.config.mts" + ] +} \ No newline at end of file
{LL.loginPage.mfa.wallet.header()}
{'defguard -u https://enrollment.defguard.net -t sdf$&9234&8dfsk345LSD3'}
+ {LL.modals.addStandaloneDevice.steps.manual.setup.form.labels.deviceName()}: +
Mocked name
{localLL.ctaInstruction()}
+ {content.map((text, index) => ( + <> + {text} + {index !== content.length - 1 && } + > + ))} +
{itemsCount.label}