diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..83a17c9b --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +/dist +/coverage +/node_modules diff --git a/dashboard/.env.example b/dashboard/.env.example new file mode 100644 index 00000000..80c613ad --- /dev/null +++ b/dashboard/.env.example @@ -0,0 +1,8 @@ +BOT_CLIENT_ID="" +BOT_CLIENT_SECRET="" + +# The absolute url of the dashboard (Production) +APP_URL="http://localhost:3000" + +# The absolute url of the api endpoint of your bot (Production) +NEXT_PUBLIC_API_ENDPOINT="http://localhost:8080" \ No newline at end of file diff --git a/dashboard/.eslintrc.json b/dashboard/.eslintrc.json new file mode 100644 index 00000000..4d765f28 --- /dev/null +++ b/dashboard/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals", "prettier"] +} diff --git a/dashboard/.gitignore b/dashboard/.gitignore new file mode 100644 index 00000000..a390f20b --- /dev/null +++ b/dashboard/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/dashboard/README.md b/dashboard/README.md new file mode 100644 index 00000000..f7d9ecd2 --- /dev/null +++ b/dashboard/README.md @@ -0,0 +1,215 @@ +# Discord Bot Dashboard Template + +![banner](./document/preview-new.png) + +Using Typescript, Next.js 13, React 18 and Chakra ui 2.0 + +- Support Light/Dark theme +- Multi languages support (i18n) +- Typescript support +- Nice UI & UX + Fast performance +- Flexiable and Customizable +- Detailed Documentation + +**Video:** \ +**Live Demo:** + +- Only 'Welcome message' Feature is Supported + +## Review (not the latest version) + +| Light | Dark | +| :--------------------------------------: | :------------------------------------: | +| ![light-mode](./document/home-light.png) | ![dark-mode](./document/home-dark.png) | + +## Getting Started + +As a template, you need to customize a few things in order to get it work + +### Before that + +- Install Node.js, and a Package Manager (ex: npm or pnpm) + +### Required Skills + +- Basic knowledge about React.js +- Able to read javascript/typescript + +### Set up + +1. **Clone the repo** + \ + `git clone https://github.com/fuma_nama/discord-bot-dashboard-next.git` +2. **Install dependencies** + \ + We always prefer [`PNpm`](https://pnpm.io) + + | NPM | PNPM | + | :-----------: | :------------: | + | `npm install` | `pnpm install` | + +3. **Customize files** + \ + The file structure of this project + | Path | Description | + | ------------------------------------- | ------------- | + | [src/pages/\*](./src/pages) | All the pages | + | [src/components/\*](./src/components) | Components | + | [src/api/\*](./src/api) | API utils | + | [src/config/\*](./src/api) | Common configurations | +4. **Define Features** + \ + The dashboard has built-in support for configuring features + \ + Users are able to enable/disable features and config the feature after enabling it + + **Customize all typings in [src/config/types/custom-types.ts](./src/config/types/custom-types.ts)** + \ + `CustomFeatures` is used for defining features and options, see the example for more details + + **Open [src/config/features](./src/config/features.tsx)** + \ + You can see how a feature is configured + + ```tsx + 'feature-id': { + name: 'Feature name', + description: 'Description about this feature', + icon: , //give it a cool icon + useRender: (data) => { + //render the form + }, + } + ``` + + The `useRender` property is used to render Feature Configuration Panel \ + Take a look at [here](./src/config/example/WelcomeMessageFeature.tsx) for examples + +5. **Configure General Information** + \ + Modify [src/config/common.tsx](./src/config/common.tsx) + - Bot name & icon + - Invite url _(example: )_ + - Guild settings +6. **Configure Environment variables** + \ + Those variables in [.env.example](./.env.example) are required + \ + You can define environment variables by creating a `.env` file +7. **Setup Backend Server** + \ + In order to let the dashboard connected with your discord bot, you will need a backend server + \ + You can implement it in any programming languages + + Read [here](#backend-development) for a guide to develop your own server + +8. **Done!** + \ + Start the app by `pnpm run dev` _(depends on your package manager)_ + \ + Then you should see the app started in port `3000` + + [Localization](./document/localization.md) | [Forms](./document/form.md) + +## Authorization + +We are using the [API Routes](https://nextjs.org/docs/api-routes/introduction) of Next.js to handle Authorization + +### Configure the Application + +1. Open Discord Developer Portal +2. Create your OAuth2 application in +3. In `` -> OAuth2 -> Redirects + + Add `/api/auth/callback` url to the redirects + + For Example: `http://localhost:3000/api/auth/callback` \ + **This is required for Authorization** + +### Authorization Flow + +**`Login -> Discord OAuth -> API Routes -> Client`** + +- Login (`/api/auth/login`) + \ + - Redirects user to discord oauth url +- Open Discord OAuth url + - User authorizes the application + - Redirect back to `/api/auth/callback` +- API Routes + - Store the access token in http-only cookies + - Redirect back to home page + +### Token Expiration + +The Discord access token can be expired or unauthorized by the user \ +We will require the user to login again after getting `401` error from the Discord API + +The refresh token won't be used, but you are able to customize the Authorization Flow + +## Backend Development + +Check [src/api/bot.ts](./src/api/bot.ts), it defined a built-in API for fetching data + +You can use `express.js` (Node.js), `Rocket` (Rust) or any libraries/languages to develop your own server +\ +Usually the server runs along with your discord bot (in the same program) +\ +Moreover, you can use redis instead of connecting to the bot server directly + +### Official Example + +[Node.js (Typescript)](https://github.com/fuma-nama/discord-dashboard-backend-next) + +### Authorization Header + +The client will pass their access token via the `Authorization` header + +```js +Bearer MY_TOKEN_1212112 +``` + +### Required Routes + +You may extend it for more functions + +GET `/guilds/{guild}` + +- Get guild info (`custom-types.ts > CustomGuildInfo`) +- **Respond 404 or `null` if bot hasn't joined the guild** + +GET `/guilds/{guild}/features/{feature}` + +- Get Feature options (`custom-types.ts > CustomFeatures[K]`) +- **Respond 404 if not enabled** + +PATCH `/guilds/{guild}/features/{feature}` + +- Update feature options +- With custom body (defined in `config/features`) +- Respond updated feature options + +POST `/guilds/{guild}/features/{feature}` + +- Enable a feature + +DELETE `/guilds/{guild}/features/{feature}` + +- Disable a feature + +GET `/guilds/{guild}/roles` + +- Get Roles of the guild +- Responds a list of [Role Object](https://discord.com/developers/docs/topics/permissions#role-object) _(Same as discord documentation)_ + +GET `/guilds/{guild}/channels` + +- Get Channels of the guild +- Responds a list of [Guild Channel](https://discord.com/developers/docs/resources/channel#channel-object) _(Same as discord documentation)_ + +## Any issues? + +Feel free to ask a question by opening a issue + +**Love this project?** Give this repo a star! diff --git a/dashboard/document/form.md b/dashboard/document/form.md new file mode 100644 index 00000000..881fcc4f --- /dev/null +++ b/dashboard/document/form.md @@ -0,0 +1,31 @@ +# The `useForm` hook + +We are using [`react-hook-form`](https://react-hook-form.com/) for forms, including feature configuration or settings page + +## Built-in Components + +There're some common components such as `` in the [src/components/forms/\*](./src/components/forms) folder + +## Controller + +We add `useController` into custom components so as to provides better code quality + +Therefore, You don't have to wrap the inputs into the `` component + +For example, the Color picker & Switch field can be used in this way + +```tsx + +``` + +[Learn More](https://react-hook-form.com/api/usecontroller/) + +## Example + +Take a look at [here](./src/config/example/WelcomeMessageFeature.tsx) for examples diff --git a/dashboard/document/home-dark.png b/dashboard/document/home-dark.png new file mode 100644 index 00000000..5f0a6b5c Binary files /dev/null and b/dashboard/document/home-dark.png differ diff --git a/dashboard/document/home-light.png b/dashboard/document/home-light.png new file mode 100644 index 00000000..e2e378b2 Binary files /dev/null and b/dashboard/document/home-light.png differ diff --git a/dashboard/document/localization.md b/dashboard/document/localization.md new file mode 100644 index 00000000..4eafe1fd --- /dev/null +++ b/dashboard/document/localization.md @@ -0,0 +1,46 @@ +# Localization + +We provide a built-in localization utils for you which is light-weight and type-safe + +## Add a New language + +We're using the built-in [Internationalized Routing](https://nextjs.org/docs/advanced-features/i18n-routing) from Next.js in order to setup i18n + +Please read their guide to more details + +## Define Translations + +Create the translation config (Default folder: [src/config/translations](./src/config/translations)) + +> test.ts + +```ts +import { provider } from './provider'; //import the provider +import { createI18n } from '@/utils/i18n'; + +export const test = createI18n(provider, { + en: { + hello: 'Hello', + }, + cn: { + hello: '你好', + }, +}); +``` + +## Use it in any places + +> component.tsx + +```tsx +import {test} from '@/config/translations/test' + +export function YourComponent() { + const t = test.useTranslations(); + + return <> +

{t.hello}

+ + +} +``` diff --git a/dashboard/document/preview-new.png b/dashboard/document/preview-new.png new file mode 100644 index 00000000..4a7e6751 Binary files /dev/null and b/dashboard/document/preview-new.png differ diff --git a/dashboard/next.config.js b/dashboard/next.config.js new file mode 100644 index 00000000..2d207b70 --- /dev/null +++ b/dashboard/next.config.js @@ -0,0 +1,17 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + async redirects() { + return [ + { source: '/auth', destination: '/auth/signin', permanent: false }, + { source: '/user', destination: '/user/home', permanent: false }, + { source: '/', destination: '/user/home', permanent: false }, + ]; + }, + i18n: { + locales: ['en', 'cn'], + defaultLocale: 'en', + }, +}; + +module.exports = nextConfig; diff --git a/dashboard/package.json b/dashboard/package.json new file mode 100644 index 00000000..116add71 --- /dev/null +++ b/dashboard/package.json @@ -0,0 +1,54 @@ +{ + "name": "dashboard", + "version": "1.2.0", + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "preinstall": "npx only-allow pnpm" + }, + "dependencies": { + "@chakra-ui/anatomy": "^2.0.1", + "@chakra-ui/form-control": "^2.0.0", + "@chakra-ui/icon": "^3.0.0", + "@chakra-ui/layout": "^2.0.0", + "@chakra-ui/menu": "^2.1.8", + "@chakra-ui/react": "^2.4.0", + "@chakra-ui/spinner": "^2.0.0", + "@chakra-ui/styled-system": "^2.0.0", + "@chakra-ui/system": "^2.0.0", + "@chakra-ui/theme-tools": "^2.0.0", + "@emotion/react": "^11.8.1", + "@emotion/styled": "^11.3.0", + "@hookform/resolvers": "^2.9.11", + "@tanstack/react-query": "^4.2.3", + "apexcharts": "^3.36.3", + "chakra-react-select": "^4.4.2", + "cookies-next": "^2.1.1", + "deepmerge-ts": "^4.2.2", + "framer-motion": "^6.0.0", + "next": "^13.2.1", + "react": "^18.2.0", + "react-apexcharts": "^1.4.0", + "react-calendar": "^3.7.0", + "react-colorful": "^5.6.1", + "react-dom": "^18.0.0", + "react-dropzone": "^14.2.3", + "react-hook-form": "^7.43.2", + "react-icons": "^4.3.1", + "zod": "^3.20.6", + "zustand": "^4.4.6" + }, + "devDependencies": { + "@babel/core": "^7.21.0", + "@types/node": "16.11.7", + "@types/react": "^18.0.0", + "@types/react-calendar": "^3.5.2", + "@types/react-dom": "^18.0.0", + "eslint": "^8.0.0", + "eslint-config-next": "^13.2.1", + "eslint-config-prettier": "8.1.0", + "prettier": "^2.6.2", + "typescript": "^4.8.2" + } +} diff --git a/dashboard/pnpm-lock.yaml b/dashboard/pnpm-lock.yaml new file mode 100644 index 00000000..7fd905b8 --- /dev/null +++ b/dashboard/pnpm-lock.yaml @@ -0,0 +1,4677 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@chakra-ui/anatomy': + specifier: ^2.0.1 + version: 2.1.0 + '@chakra-ui/form-control': + specifier: ^2.0.0 + version: 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/icon': + specifier: ^3.0.0 + version: 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/layout': + specifier: ^2.0.0 + version: 2.1.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/menu': + specifier: ^2.1.8 + version: 2.1.8(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0) + '@chakra-ui/react': + specifier: ^2.4.0 + version: 2.4.2(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@18.0.26)(framer-motion@6.5.1)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/spinner': + specifier: ^2.0.0 + version: 2.0.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/styled-system': + specifier: ^2.0.0 + version: 2.4.0 + '@chakra-ui/system': + specifier: ^2.0.0 + version: 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/theme-tools': + specifier: ^2.0.0 + version: 2.0.14(@chakra-ui/styled-system@2.4.0) + '@emotion/react': + specifier: ^11.8.1 + version: 11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0) + '@emotion/styled': + specifier: ^11.3.0 + version: 11.10.5(@babel/core@7.21.0)(@emotion/react@11.10.5)(@types/react@18.0.26)(react@18.2.0) + '@hookform/resolvers': + specifier: ^2.9.11 + version: 2.9.11(react-hook-form@7.43.2) + '@tanstack/react-query': + specifier: ^4.2.3 + version: 4.19.0(react-dom@18.2.0)(react@18.2.0) + apexcharts: + specifier: ^3.36.3 + version: 3.36.3 + chakra-react-select: + specifier: ^4.4.2 + version: 4.4.2(@babel/core@7.21.0)(@chakra-ui/form-control@2.0.13)(@chakra-ui/icon@3.0.13)(@chakra-ui/layout@2.1.11)(@chakra-ui/menu@2.1.8)(@chakra-ui/spinner@2.0.11)(@chakra-ui/system@2.3.4)(@emotion/react@11.10.5)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + cookies-next: + specifier: ^2.1.1 + version: 2.1.1 + deepmerge-ts: + specifier: ^4.2.2 + version: 4.2.2 + framer-motion: + specifier: ^6.0.0 + version: 6.5.1(react-dom@18.2.0)(react@18.2.0) + next: + specifier: ^13.2.1 + version: 13.2.1(@babel/core@7.21.0)(react-dom@18.2.0)(react@18.2.0) + react: + specifier: ^18.2.0 + version: 18.2.0 + react-apexcharts: + specifier: ^1.4.0 + version: 1.4.0(apexcharts@3.36.3)(react@18.2.0) + react-calendar: + specifier: ^3.7.0 + version: 3.9.0(react-dom@18.2.0)(react@18.2.0) + react-colorful: + specifier: ^5.6.1 + version: 5.6.1(react-dom@18.2.0)(react@18.2.0) + react-dom: + specifier: ^18.0.0 + version: 18.2.0(react@18.2.0) + react-dropzone: + specifier: ^14.2.3 + version: 14.2.3(react@18.2.0) + react-hook-form: + specifier: ^7.43.2 + version: 7.43.2(react@18.2.0) + react-icons: + specifier: ^4.3.1 + version: 4.7.1(react@18.2.0) + zod: + specifier: ^3.20.6 + version: 3.20.6 + zustand: + specifier: ^4.4.6 + version: 4.4.6(@types/react@18.0.26)(react@18.2.0) + +devDependencies: + '@babel/core': + specifier: ^7.21.0 + version: 7.21.0 + '@types/node': + specifier: 16.11.7 + version: 16.11.7 + '@types/react': + specifier: ^18.0.0 + version: 18.0.26 + '@types/react-calendar': + specifier: ^3.5.2 + version: 3.9.0 + '@types/react-dom': + specifier: ^18.0.0 + version: 18.0.9 + eslint: + specifier: ^8.0.0 + version: 8.29.0 + eslint-config-next: + specifier: ^13.2.1 + version: 13.2.1(eslint@8.29.0)(typescript@4.9.3) + eslint-config-prettier: + specifier: 8.1.0 + version: 8.1.0(eslint@8.29.0) + prettier: + specifier: ^2.6.2 + version: 2.8.0 + typescript: + specifier: ^4.8.2 + version: 4.9.3 + +packages: + + /@ampproject/remapping@2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + + /@babel/code-frame@7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + + /@babel/compat-data@7.21.0: + resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.21.0: + resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.1 + '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.21.0) + '@babel/helper-module-transforms': 7.21.2 + '@babel/helpers': 7.21.0 + '@babel/parser': 7.21.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.21.1: + resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + + /@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.0 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + + /@babel/helper-environment-visitor@7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.2 + + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + + /@babel/helper-module-imports@7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + + /@babel/helper-module-transforms@7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color + + /@babel/helper-plugin-utils@7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-simple-access@7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + + /@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.2 + + /@babel/helper-string-parser@7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + + /@babel/helpers@7.21.0: + resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.2 + '@babel/types': 7.21.2 + transitivePeerDependencies: + - supports-color + + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.21.2: + resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.2 + + /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: false + + /@babel/runtime@7.20.6: + resolution: {integrity: sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@babel/runtime@7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + + /@babel/template@7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.21.2 + '@babel/types': 7.21.2 + + /@babel/traverse@7.21.2: + resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.1 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.2 + '@babel/types': 7.21.2 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.21.2: + resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@chakra-ui/accordion@2.1.4(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-PQFW6kr+Bdru0DjKA8akC4BAz1VAJisLgo4TsJwjPO2gTS0zr99C+3bBs9uoDnjSJAf18/Q5zdXv11adA8n2XA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.0.11(react@18.2.0) + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/transition': 2.0.12(framer-motion@6.5.1)(react@18.2.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/alert@2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-7LqPv6EUBte4XM/Q2qBFIT5o4BC0dSlni9BHOH2BgAc5B1NF+pBAMDTUH7JNBiN7RHTV7EHAIWDziiX/NK28+Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/spinner': 2.0.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/anatomy@2.1.0: + resolution: {integrity: sha512-E3jMPGqKuGTbt7mKtc8g/MOOenw2c4wqRC1vOypyFgmC8wsewdY+DJJNENF3atXAK7p5VMBKQfZ7ipNlHnDAwA==} + dev: false + + /@chakra-ui/avatar@2.2.1(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-sgiogfLM8vas8QJTt7AJI4XxNXYdViCWj+xYJwyOwUN93dWKImqqx3O2ihCXoXTIqQWg1rcEgoJ5CxCg6rQaQQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/image': 2.0.12(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.4(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/breadcrumb@2.1.1(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-OSa+F9qJ1xmF0zVxC1GU46OWbbhGf0kurHioSB729d+tRw/OMzmqrrfCJ7KVUUN8NEnTZXT5FIgokMvHGEt+Hg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-children-utils': 2.0.4(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/breakpoint-utils@2.0.5: + resolution: {integrity: sha512-8uhrckMwoR/powlAhxiFZPM0s8vn0B2yEyEaRcwpy5NmRAJSTEotC2WkSyQl/Cjysx9scredumB5g+fBX7IqGQ==} + dev: false + + /@chakra-ui/button@2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-T9W/zHpHZVcbx/BMg0JIXCgRycut/eYoTYee/E+eBxyPCH45n308AsYU2bZ8TgZxUwbYNRgMp4qRL/KHUQDv5g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/spinner': 2.0.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/card@2.1.1(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-vvmfuNn6gkfv6bGcXQe6kvWHspziPZgYnnffiEjPaZYtaf98WRszpjyPbFv0oQR/2H1RSE1oaTqa/J1rHrzw3A==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/checkbox@2.2.5(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-7fNH+Q2nB2uMSnYAPtYxnuwZ1MOJqblZHa/ScfZ/fjiPDyEae1m068ZP/l9yJ5zlawYMTkp83m/JVcu5QFYurA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.3(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/visually-hidden': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@zag-js/focus-visible': 0.1.0 + react: 18.2.0 + dev: false + + /@chakra-ui/clickable@2.0.11(react@18.2.0): + resolution: {integrity: sha512-5Y2dl5cxNgOxHbjxyxsL6Vdze4wUUvwsMCCW3kXwgz2OUI2y5UsBZNcvhNJx3RchJEd0fylMKiKoKmnZMHN2aw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/clickable@2.0.14(react@18.2.0): + resolution: {integrity: sha512-jfsM1qaD74ZykLHmvmsKRhDyokLUxEfL8Il1VoZMNX5RBI0xW/56vKpLTFF/v/+vLPLS+Te2cZdD4+2O+G6ulA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + react: 18.2.0 + dev: false + + /@chakra-ui/close-button@2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-ZI/3p84FPlW0xoDCZYqsnIvR6bTc2d/TlhwyTHsDDxq9ZOWp9c2JicVn6WTdWGdshk8itnZZdG50IcnizGnimA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/color-mode@2.1.10(react@18.2.0): + resolution: {integrity: sha512-aUPouOUPn7IPm1v00/9AIkRuNrkCwJlbjVL1kJzLzxijYjbHvEHPxntITt+JWjtXPT8xdOq6mexLYCOGA67JwQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.0.3(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/control-box@2.0.11(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-UJb4vqq+/FPuwTCuaPeHa2lwtk6u7eFvLuwDCST2e/sBWGJC1R+1/Il5pHccnWs09FWxyZ9v/Oxkg/CG3jZR4Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/counter@2.0.11(react@18.2.0): + resolution: {integrity: sha512-1YRt/jom+m3iWw9J9trcM6rAHDvD4lwThiO9raxUK7BRsYUhnPZvsMpcXU1Moax218C4rRpbI9KfPLaig0m1xQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.5 + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/css-reset@2.0.10(@emotion/react@11.10.5)(react@18.2.0): + resolution: {integrity: sha512-FwHOfw2P4ckbpSahDZef2KoxcvHPUg09jlicWdp24/MjdsOO5PAB/apm2UBvQflY4WAJyOqYaOdnXFlR6nF4cQ==} + peerDependencies: + '@emotion/react': '>=10.0.35' + react: '>=18' + dependencies: + '@emotion/react': 11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/descendant@3.0.11(react@18.2.0): + resolution: {integrity: sha512-sNLI6NS6uUgrvYS6Imhoc1YlI6bck6pfxMBJcnXVSfdIjD6XjCmeY2YgzrtDS+o+J8bB3YJeIAG/vsVy5USE5Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/descendant@3.0.13(react@18.2.0): + resolution: {integrity: sha512-9nzxZVxUSMc4xPL5fSaRkEOQjDQWUGjGvrZI7VzWk9eq63cojOtIxtWMSW383G9148PzWJjJYt30Eud5tdZzlg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/dom-utils@2.0.4: + resolution: {integrity: sha512-P936+WKinz5fgHzfwiUQjE/t7NC8bU89Tceim4tbn8CIm/9b+CsHX64eNw4vyJqRwt78TXQK7aGBIbS18R0q5Q==} + dev: false + + /@chakra-ui/dom-utils@2.0.6: + resolution: {integrity: sha512-PVtDkPrDD5b8aoL6Atg7SLjkwhWb7BwMcLOF1L449L3nZN+DAO3nyAh6iUhZVJyunELj9d0r65CDlnMREyJZmA==} + dev: false + + /@chakra-ui/editable@2.0.16(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-kIFPufzIlViNv7qi2PxxWWBvjLb+3IP5hUGmqOA9qcYz5TAdqblQqDClm0iajlIDNUFWnS4h056o8jKsQ42a5A==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-focus-on-pointer-down': 2.0.4(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.3(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.5(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.3 + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/event-utils@2.0.6: + resolution: {integrity: sha512-ZIoqUbgJ5TcCbZRchMv4n7rOl1JL04doMebED88LO5mux36iVP9er/nnOY4Oke1bANKKURMrQf5VTT9hoYeA7A==} + dev: false + + /@chakra-ui/focus-lock@2.0.13(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-AVSJt+3Ukia/m9TCZZgyWvTY7pw88jArivWVJ2gySGYYIs6z/FJMnlwbCVldV2afS0g3cYaii7aARb/WrlG34Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.0.4 + react: 18.2.0 + react-focus-lock: 2.9.2(@types/react@18.0.26)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/form-control@2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-J964JlgrxP+LP3kYmLk1ttbl73u6ghT+JQDjEjkEUc8lSS9Iv4u9XkRDQHuz2t2y0KHjQdH12PUfUfBqcITbYw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/hooks@2.1.2(react@18.2.0): + resolution: {integrity: sha512-/vDBOqqnho9q++lay0ZcvnH8VuE0wT2OkZj+qDwFwjiHAtGPVxHCSpu9KC8BIHME5TlWjyO6riVyUCb2e2ip6w==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-utils': 2.0.9(react@18.2.0) + '@chakra-ui/utils': 2.0.12 + compute-scroll-into-view: 1.0.14 + copy-to-clipboard: 3.3.1 + react: 18.2.0 + dev: false + + /@chakra-ui/icon@3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-RaDLC4psd8qyInY2RX4AlYRfpLBNw3VsMih17BFf8EESVhBXNJcYy7Q9eMV/K4NvZfZT42vuVqGVNFmkG89lBQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.3 + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/image@2.0.12(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-uclFhs0+wq2qujGu8Wk4eEWITA3iZZQTitGiFSEkO9Ws5VUH+Gqtn3mUilH0orubrI5srJsXAmjVTuVwge1KJQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.0.3(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/input@2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-CkSrUJeKWogOSt2pUf2vVv5s0bUVcAi4/XGj1JVCCfyIX6a6h1m8R69MShTPxPiQ0Mdebq5ATrW/aZQQXZzRGQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/object-utils': 2.0.5 + '@chakra-ui/react-children-utils': 2.0.4(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.3 + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/layout@2.1.11(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-UP19V8EeI/DEODbWrZlqC0sg248bpFaWpMiM/+g9Bsxs9aof3yexpMD/7gb0yrfbIrkdvSBrcQeqxXGzbfoopw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.5 + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/object-utils': 2.0.5 + '@chakra-ui/react-children-utils': 2.0.4(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.3 + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/lazy-utils@2.0.3: + resolution: {integrity: sha512-SQ5I5rJrcHpVUcEftHLOh8UyeY+06R8Gv3k2RjcpvM6mb2Gktlz/4xl2GcUh3LWydgGQDW/7Rse5rQhKWgzmcg==} + dev: false + + /@chakra-ui/lazy-utils@2.0.5: + resolution: {integrity: sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==} + dev: false + + /@chakra-ui/live-region@2.0.11(react@18.2.0): + resolution: {integrity: sha512-ltObaKQekP75GCCbN+vt1/mGABSCaRdQELmotHTBc5AioA3iyCDHH69ev+frzEwLvKFqo+RomAdAAgqBIMJ02Q==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/media-query@3.2.8(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-djmEg/eJ5Qrjn7SArTqjsvlwF6mNeMuiawrTwnU+0EKq9Pq/wVSb7VaIhxdQYJLA/DbRhE/KPMogw1LNVKa4Rw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.5 + '@chakra-ui/react-env': 2.0.11(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/menu@2.1.5(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-2UusrQtxHcqcO9n/0YobNN3RJC8yAZU6oJbRPuvsQ9IL89scEWCTIxXEYrnIjeh/5zikcSEDGo9zM9Udg/XcsA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.0.11(react@18.2.0) + '@chakra-ui/descendant': 3.0.11(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.3 + '@chakra-ui/popper': 3.0.10(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.4(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-animation-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-focus-effect': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-outside-click': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/transition': 2.0.12(framer-motion@6.5.1)(react@18.2.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/menu@2.1.8(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-3Ysk1HwJTv6mzkT1dgsNObZnuZiySPJwLdmmCdv8+rpto8u0oCN+etenN0s7HQlAddvHxZ2Sm+1yKZOu6Wimrg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.0.14(react@18.2.0) + '@chakra-ui/descendant': 3.0.13(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/popper': 3.0.13(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-animation-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.0.8(react@18.2.0) + '@chakra-ui/react-use-focus-effect': 2.0.9(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-outside-click': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/transition': 2.0.15(framer-motion@6.5.1)(react@18.2.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/modal@2.2.4(@chakra-ui/system@2.3.4)(@types/react@18.0.26)(framer-motion@6.5.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-K2cafyNI0b4OSAB55qIXt5DLZqj7E1G0+Fza02ZOBZpgTCNQyDtc0KzdVMJZ9ryxKd16LUk5UmKHugY/VpHEWQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/close-button': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/focus-lock': 2.0.13(@types/react@18.0.26)(react@18.2.0) + '@chakra-ui/portal': 2.0.11(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/transition': 2.0.12(framer-motion@6.5.1)(react@18.2.0) + aria-hidden: 1.2.2(@types/react@18.0.26)(react@18.2.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.0.26)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/number-input@2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-IARUAbP4pn1gP5fY2dK4wtbR3ONjzHgTjH4Zj3ErZvdu/yTURLaZmlb6UGHwgqjWLyioactZ/+n4Njj5CRjs8w==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/counter': 2.0.11(react@18.2.0) + '@chakra-ui/form-control': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-event-listener': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-interval': 2.0.3(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.3(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/number-utils@2.0.5: + resolution: {integrity: sha512-Thhohnlqze0i5HBJO9xkfOPq1rv3ji/hNPf2xh1fh4hxrNzdm3HCkz0c6lyRQwGuVoeltEHysYZLH/uWLFTCSQ==} + dev: false + + /@chakra-ui/object-utils@2.0.5: + resolution: {integrity: sha512-/rIMoYI3c2uLtFIrnTFOPRAI8StUuu335WszqKM0KAW1lwG9H6uSbxqlpZT1Pxi/VQqZKfheGiMQOx5lfTmM/A==} + dev: false + + /@chakra-ui/pin-input@2.0.16(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-51cioNYpBSgi9/jq6CrzoDvo8fpMwFXu3SaFRbKO47s9Dz/OAW0MpjyabTfSpwOv0xKZE+ayrYGJopCzZSWXPg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.0.11(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.4(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/popover@2.1.4(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-NXVtyMxYzDKzzQph/+GFRSM3tEj3gNvlCX/xGRsCOt9I446zJ1InCd/boXQKAc813coEN9McSOjNWgo+NCBD+Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/close-button': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.3 + '@chakra-ui/popper': 3.0.10(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-animation-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-focus-effect': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-focus-on-pointer-down': 2.0.4(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/popper@3.0.10(react@18.2.0): + resolution: {integrity: sha512-6LacbBGX0piHWY/DYxOGCTTFAoRGRHpGIRzTgfNy8jxw4f+rukaVudd4Pc2fwjCTdobJKM8nGNYIYNv9/Dmq9Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@popperjs/core': 2.11.6 + react: 18.2.0 + dev: false + + /@chakra-ui/popper@3.0.13(react@18.2.0): + resolution: {integrity: sha512-FwtmYz80Ju8oK3Z1HQfisUE7JIMmDsCQsRBu6XuJ3TFQnBHit73yjZmxKjuRJ4JgyT4WBnZoTF3ATbRKSagBeg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.7(react@18.2.0) + '@popperjs/core': 2.11.6 + react: 18.2.0 + dev: false + + /@chakra-ui/portal@2.0.11(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Css61i4WKzKO8ou1aGjBzcsXMy9LnfnpkOFfvaNCpUUNEd6c47z6+FhZNq7Gc38PGNjSfMLAd4LmH+H0ZanYIA==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.3(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/progress@2.1.1(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-ddAXaYGNObGqH1stRAYxkdospf6J4CDOhB0uyw9BeHRSsYkCUQWkUBd/melJuZeGHEH2ItF9T7FZ4JhcepP3GA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/provider@2.0.24(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-32+DGfoXAOUOXwjLstdGQ+k/YoCwdFxWbwnEAp7WleislYsMcl0JeINDAbvksQH0piBty77swTuWfUU5cIox7g==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/css-reset': 2.0.10(@emotion/react@11.10.5)(react@18.2.0) + '@chakra-ui/portal': 2.0.11(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-env': 2.0.11(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/utils': 2.0.12 + '@emotion/react': 11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0) + '@emotion/styled': 11.10.5(@babel/core@7.21.0)(@emotion/react@11.10.5)(@types/react@18.0.26)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/radio@2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-e/hY1g92Xdu5d5A27NFfa1+ccE2q/A5H7sc/M7p0fId6KO33Dst25Hy+HThtqnYN0Y3Om58fiXEKo5SsdtvSfA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@zag-js/focus-visible': 0.1.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-children-utils@2.0.4(react@18.2.0): + resolution: {integrity: sha512-qsKUEfK/AhDbMexWo5JhmdlkxLg5WEw2dFh4XorvU1/dTYsRfP6cjFfO8zE+X3F0ZFNsgKz6rbN5oU349GLEFw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-children-utils@2.0.6(react@18.2.0): + resolution: {integrity: sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-context@2.0.5(react@18.2.0): + resolution: {integrity: sha512-WYS0VBl5Q3/kNShQ26BP+Q0OGMeTQWco3hSiJWvO2wYLY7N1BLq6dKs8vyKHZfpwKh2YL2bQeAObi+vSkXp6tQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-context@2.0.7(react@18.2.0): + resolution: {integrity: sha512-i7EGmSU+h2GB30cwrKB4t1R5BMHyGoJM5L2Zz7b+ZUX4aAqyPcfe97wPiQB6Rgr1ImGXrUeov4CDVrRZ2FPgLQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-env@2.0.11(react@18.2.0): + resolution: {integrity: sha512-rPwUHReSWh7rbCw0HePa8Pvc+Q82fUFvVjHTIbXKnE6d+01cCE7j4f1NLeRD9pStKPI6sIZm9xTGvOCzl8F8iw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-types@2.0.5(react@18.2.0): + resolution: {integrity: sha512-GApp+R/VjS1UV5ms5irrij5LOIgUM0dqSVHagyEFEz88LRKkqMD9RuO577ZsVd4Gn0ULsacVJCUA0HtNUBJNzA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-types@2.0.7(react@18.2.0): + resolution: {integrity: sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-animation-state@2.0.6(react@18.2.0): + resolution: {integrity: sha512-M2kUzZkSBgDpfvnffh3kTsMIM3Dvn+CTMqy9zfY97NL4P3LAWL1MuFtKdlKfQ8hs/QpwS/ew8CTmCtaywn4sKg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.0.4 + '@chakra-ui/react-use-event-listener': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-animation-state@2.0.8(react@18.2.0): + resolution: {integrity: sha512-xv9zSF2Rd1mHWQ+m5DLBWeh4atF8qrNvsOs3MNrvxKYBS3f79N3pqcQGrWAEvirXWXfiCeje2VAkEggqFRIo+Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.0.6 + '@chakra-ui/react-use-event-listener': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-callback-ref@2.0.5(react@18.2.0): + resolution: {integrity: sha512-vKnXleD2PzB0nGabY35fRtklMid4z7cecbMG0fkasNNsgWmrQcXJOuEKUUVCynL6FBU6gBnpKFi5Aqj6x+K4tw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-callback-ref@2.0.7(react@18.2.0): + resolution: {integrity: sha512-YjT76nTpfHAK5NxplAlZsQwNju5KmQExnqsWNPFeOR6vvbC34+iPSTr+r91i1Hdy7gBSbevsOsd5Wm6RN3GuMw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-controllable-state@2.0.6(react@18.2.0): + resolution: {integrity: sha512-7WuKrhQkpSRoiI5PKBvuIsO46IIP0wsRQgXtStSaIXv+FIvIJl9cxQXTbmZ5q1Ds641QdAUKx4+6v0K/zoZEHg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-controllable-state@2.0.8(react@18.2.0): + resolution: {integrity: sha512-F7rdCbLEmRjwwODqWZ3y+mKgSSHPcLQxeUygwk1BkZPXbKkJJKymOIjIynil2cbH7ku3hcSIWRvuhpCcfQWJ7Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-disclosure@2.0.6(react@18.2.0): + resolution: {integrity: sha512-4UPePL+OcCY37KZ585iLjg8i6J0sjpLm7iZG3PUwmb97oKHVHq6DpmWIM0VfSjcT6AbSqyGcd5BXZQBgwt8HWQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-disclosure@2.0.8(react@18.2.0): + resolution: {integrity: sha512-2ir/mHe1YND40e+FyLHnDsnDsBQPwzKDLzfe9GZri7y31oU83JSbHdlAXAhp3bpjohslwavtRCp+S/zRxfO9aQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-event-listener@2.0.5(react@18.2.0): + resolution: {integrity: sha512-etLBphMigxy/cm7Yg22y29gQ8u/K3PniR5ADZX7WVX61Cgsa8ciCqjTE9sTtlJQWAQySbWxt9+mjlT5zaf+6Zw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-event-listener@2.0.7(react@18.2.0): + resolution: {integrity: sha512-4wvpx4yudIO3B31pOrXuTHDErawmwiXnvAN7gLEOVREi16+YGNcFnRJ5X5nRrmB7j2MDUtsEDpRBFfw5Z9xQ5g==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-effect@2.0.7(react@18.2.0): + resolution: {integrity: sha512-wI8OUNwfbkusajLac8QtjfSyNmsNu1D5pANmnSHIntHhui6Jwv75Pxx7RgmBEnfBEpleBndhR9E75iCjPLhZ/A==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.0.4 + '@chakra-ui/react-use-event-listener': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.3(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-effect@2.0.9(react@18.2.0): + resolution: {integrity: sha512-20nfNkpbVwyb41q9wxp8c4jmVp6TUGAPE3uFTDpiGcIOyPW5aecQtPmTXPMJH+2aa8Nu1wyoT1btxO+UYiQM3g==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.0.6 + '@chakra-ui/react-use-event-listener': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-on-pointer-down@2.0.4(react@18.2.0): + resolution: {integrity: sha512-L3YKouIi77QbXH9mSLGEFzJbJDhyrPlcRcuu+TSC7mYaK9E+3Ap+RVSAVxj+CfQz7hCWpikPecKDuspIPWlyuA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-event-listener': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-interval@2.0.3(react@18.2.0): + resolution: {integrity: sha512-Orbij5c5QkL4NuFyU4mfY/nyRckNBgoGe9ic8574VVNJIXfassevZk0WB+lvqBn5XZeLf2Tj+OGJrg4j4H9wzw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-latest-ref@2.0.3(react@18.2.0): + resolution: {integrity: sha512-exNSQD4rPclDSmNwtcChUCJ4NuC2UJ4amyNGBqwSjyaK5jNHk2kkM7rZ6I0I8ul+26lvrXlSuhyv6c2PFwbFQQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-merge-refs@2.0.5(react@18.2.0): + resolution: {integrity: sha512-uc+MozBZ8asaUpO8SWcK6D4svRPACN63jv5uosUkXJR+05jQJkUofkfQbf2HeGVbrWCr0XZsftLIm4Mt/QMoVw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-merge-refs@2.0.7(react@18.2.0): + resolution: {integrity: sha512-zds4Uhsc+AMzdH8JDDkLVet9baUBgtOjPbhC5r3A0ZXjZvGhCztFAVE3aExYiVoMPoHLKbLcqvCWE6ioFKz1lw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-outside-click@2.0.5(react@18.2.0): + resolution: {integrity: sha512-WmtXUeVaMtxP9aUGGG+GQaDeUn/Bvf8TI3EU5mE1+TtqLHxyA9wtvQurynrogvpilLaBADwn/JeBeqs2wHpvqA==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-outside-click@2.0.7(react@18.2.0): + resolution: {integrity: sha512-MsAuGLkwYNxNJ5rb8lYNvXApXxYMnJ3MzqBpQj1kh5qP/+JSla9XMjE/P94ub4fSEttmNSqs43SmPPrmPuihsQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.7(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-pan-event@2.0.6(react@18.2.0): + resolution: {integrity: sha512-Vtgl3c+Mj4hdehFRFIgruQVXctwnG1590Ein1FiU8sVnlqO6bpug6Z+B14xBa+F+X0aK+DxnhkJFyWI93Pks2g==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/event-utils': 2.0.6 + '@chakra-ui/react-use-latest-ref': 2.0.3(react@18.2.0) + framesync: 5.3.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-previous@2.0.3(react@18.2.0): + resolution: {integrity: sha512-A2ODOa0rm2HM4aqXfxxI0zPLcn5Q7iBEjRyfIQhb+EH+d2OFuj3L2slVoIpp6e/km3Xzv2d+u/WbjgTzdQ3d0w==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-safe-layout-effect@2.0.3(react@18.2.0): + resolution: {integrity: sha512-dlTvQURzmdfyBbNdydgO4Wy2/HV8aJN8LszTtyb5vRZsyaslDM/ftcxo8E8QjHwRLD/V1Epb/A8731QfimfVaQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-safe-layout-effect@2.0.5(react@18.2.0): + resolution: {integrity: sha512-MwAQBz3VxoeFLaesaSEN87reVNVbjcQBDex2WGexAg6hUB6n4gc1OWYH/iXp4tzp4kuggBNhEHkk9BMYXWfhJQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-size@2.0.5(react@18.2.0): + resolution: {integrity: sha512-4arAApdiXk5uv5ZeFKltEUCs5h3yD9dp6gTIaXbAdq+/ENK3jMWTwlqzNbJtCyhwoOFrblLSdBrssBMIsNQfZQ==} + peerDependencies: + react: '>=18' + dependencies: + '@zag-js/element-size': 0.1.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-timeout@2.0.3(react@18.2.0): + resolution: {integrity: sha512-rBBUkZSQq3nJQ8fuMkgZNY2Sgg4vKiKNp05GxAwlT7TitOfVZyoTriqQpqz296bWlmkICTZxlqCWfE5fWpsTsg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-update-effect@2.0.5(react@18.2.0): + resolution: {integrity: sha512-y9tCMr1yuDl8ATYdh64Gv8kge5xE1DMykqPDZw++OoBsTaWr3rx40wblA8NIWuSyJe5ErtKP2OeglvJkYhryJQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-update-effect@2.0.7(react@18.2.0): + resolution: {integrity: sha512-vBM2bmmM83ZdDtasWv3PXPznpTUd+FvqBC8J8rxoRmvdMEfrxTiQRBJhiGHLpS9BPLLPQlosN6KdFU97csB6zg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-utils@2.0.9(react@18.2.0): + resolution: {integrity: sha512-nlwPBVlQmcl1PiLzZWyrT3FSnt3vKSkBMzQ0EF4SJWA/nOIqTvmffb5DCzCqPzgQaE/Da1Xgus+JufFGM8GLCQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/utils': 2.0.12 + react: 18.2.0 + dev: false + + /@chakra-ui/react@2.4.2(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(@types/react@18.0.26)(framer-motion@6.5.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lPDCCuY3S7XSeIK+P+ypGIL+lFqEZQt8H3Iyq4coblULMsj8skdSUqaoQ4I9fGgOi1koTPe4OlXb+rmqwQQ9MQ==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/accordion': 2.1.4(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0) + '@chakra-ui/alert': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/avatar': 2.2.1(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/breadcrumb': 2.1.1(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/button': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/card': 2.1.1(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/checkbox': 2.2.5(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/close-button': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/control-box': 2.0.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/counter': 2.0.11(react@18.2.0) + '@chakra-ui/css-reset': 2.0.10(@emotion/react@11.10.5)(react@18.2.0) + '@chakra-ui/editable': 2.0.16(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/form-control': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/hooks': 2.1.2(react@18.2.0) + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/image': 2.0.12(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/input': 2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/layout': 2.1.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/live-region': 2.0.11(react@18.2.0) + '@chakra-ui/media-query': 3.2.8(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/menu': 2.1.5(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0) + '@chakra-ui/modal': 2.2.4(@chakra-ui/system@2.3.4)(@types/react@18.0.26)(framer-motion@6.5.1)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/number-input': 2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/pin-input': 2.0.16(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/popover': 2.1.4(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0) + '@chakra-ui/popper': 3.0.10(react@18.2.0) + '@chakra-ui/portal': 2.0.11(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/progress': 2.1.1(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/provider': 2.0.24(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/radio': 2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-env': 2.0.11(react@18.2.0) + '@chakra-ui/select': 2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/skeleton': 2.0.18(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/slider': 2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/spinner': 2.0.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/stat': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/styled-system': 2.4.0 + '@chakra-ui/switch': 2.0.17(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/table': 2.0.12(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/tabs': 2.1.5(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/tag': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/textarea': 2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/theme': 2.2.2(@chakra-ui/styled-system@2.4.0) + '@chakra-ui/theme-utils': 2.0.5 + '@chakra-ui/toast': 4.0.4(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/tooltip': 2.2.2(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.0.12(framer-motion@6.5.1)(react@18.2.0) + '@chakra-ui/utils': 2.0.12 + '@chakra-ui/visually-hidden': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@emotion/react': 11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0) + '@emotion/styled': 11.10.5(@babel/core@7.21.0)(@emotion/react@11.10.5)(@types/react@18.0.26)(react@18.2.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/select@2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-fvVGxAtLaIXGOMicrzSa6imMw5h26S1ar3xyNmXgR40dbpTPHmtQJkbHBf9FwwQXgSgKWgBzsztw5iDHCpPVzA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/shared-utils@2.0.3: + resolution: {integrity: sha512-pCU+SUGdXzjAuUiUT8mriekL3tJVfNdwSTIaNeip7k/SWDzivrKGMwAFBxd3XVTDevtVusndkO4GJuQ3yILzDg==} + dev: false + + /@chakra-ui/shared-utils@2.0.5: + resolution: {integrity: sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==} + dev: false + + /@chakra-ui/skeleton@2.0.18(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-qjcD8BgVx4kL8Lmb8EvmmDGM2ICl6CqhVE2LShJrgG7PDM6Rt6rYM617kqLurLYZjbJUiwgf9VXWifS0IpT31Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/media-query': 3.2.8(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-use-previous': 2.0.3(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/slider@2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-z4Q5rWtYVTdFgBVvR6aUhSMg3CQuAgjJGHvLHEGDCUjYCuBXrb3SmWyvv03uKyjSbwRyKqSsvAnSCxtmHODt/w==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.5 + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-latest-ref': 2.0.3(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-pan-event': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-size': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/spinner@2.0.11(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-piO2ghWdJzQy/+89mDza7xLhPnW7pA+ADNbgCb1vmriInWedS41IBKe+pSPz4IidjCbFu7xwKE0AerFIbrocCA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/stat@2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-6XeuE/7w0BjyCHSxMbsf6/rNOOs8BSit1NS7g7+Jd/40Pc/SKlNWLd3kxXPid4eT3RwyNIdMPtm30OActr9nqQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/styled-system@2.4.0: + resolution: {integrity: sha512-G4HpbFERq4C1cBwKNDNkpCiliOICLXjYwKI/e/6hxNY+GlPxt8BCzz3uhd3vmEoG2vRM4qjidlVjphhWsf6vRQ==} + dependencies: + csstype: 3.1.1 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/switch@2.0.17(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-BQabfC6qYi5xBJvEFPzKq0yl6fTtTNNEHTid5r7h0PWcCnAiHwQJTpQRpxp+AjK569LMLtTXReTZvNBrzEwOrA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/checkbox': 2.2.5(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/system@2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0): + resolution: {integrity: sha512-/2m8hFfFzOMO2OlwHxTWqINOBJMjxWwU5V/AcB7C0qS51Dcj9c7kupilM6QdqiOLLdMS7mIVRSYr8jn8gMw9fA==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + dependencies: + '@chakra-ui/color-mode': 2.1.10(react@18.2.0) + '@chakra-ui/react-utils': 2.0.9(react@18.2.0) + '@chakra-ui/styled-system': 2.4.0 + '@chakra-ui/theme-utils': 2.0.5 + '@chakra-ui/utils': 2.0.12 + '@emotion/react': 11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0) + '@emotion/styled': 11.10.5(@babel/core@7.21.0)(@emotion/react@11.10.5)(@types/react@18.0.26)(react@18.2.0) + react: 18.2.0 + react-fast-compare: 3.2.0 + dev: false + + /@chakra-ui/table@2.0.12(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-TSxzpfrOoB+9LTdNTMnaQC6OTsp36TlCRxJ1+1nAiCmlk+m+FiNzTQsmBalDDhc29rm+6AdRsxSPsjGWB8YVwg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/tabs@2.1.5(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-XmnKDclAJe0FoW4tdC8AlnZpPN5fcj92l4r2sqiL9WyYVEM71hDxZueETIph/GTtfMelG7Z8e5vBHP4rh1RT5g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.0.11(react@18.2.0) + '@chakra-ui/descendant': 3.0.11(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.3 + '@chakra-ui/react-children-utils': 2.0.4(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.0.3(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/tag@2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-W1urf+tvGMt6J3cc31HudybYSl+B5jYUP5DJxzXM9p+n3JrvXWAo4D6LmpLBHY5zT2mNne14JF1rVeRcG4Rtdg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/react-context': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/textarea@2.0.14(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-r8hF1rCi+GseLtY/IGeVWXFN0Uve2b820UQumRj4qxj7PsPqw1hFg7Cecbbb9zwF38K/m+D3IdwFeJzI1MtgRA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/theme-tools@2.0.14(@chakra-ui/styled-system@2.4.0): + resolution: {integrity: sha512-lVcDmq5pyU0QbsIFKjt/iVUFDap7di2QHvPvGChA1YSjtg1PtuUi+BxEXWzp3Nfgw/N4rMvlBs+S0ynJypdwbg==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.0.0' + dependencies: + '@chakra-ui/anatomy': 2.1.0 + '@chakra-ui/styled-system': 2.4.0 + color2k: 2.0.0 + dev: false + + /@chakra-ui/theme-utils@2.0.5: + resolution: {integrity: sha512-QQowSM8fvQlTmT0w9wtqUlWOB4i+9eA7P4XRm4bfhBMZ7XpK4ctV95sPeGqaXVccsz5m0q1AuGWa+j6eMCbrrg==} + dependencies: + '@chakra-ui/styled-system': 2.4.0 + '@chakra-ui/theme': 2.2.2(@chakra-ui/styled-system@2.4.0) + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/theme@2.2.2(@chakra-ui/styled-system@2.4.0): + resolution: {integrity: sha512-7DlOQiXmnaqYyqXwqmfFSCWGkUonuqmNC5mmUCwxI435KgHNCaE2bIm6DI7N2NcIcuVcfc8Vn0UqrDoGU3zJBg==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.0.0' + dependencies: + '@chakra-ui/anatomy': 2.1.0 + '@chakra-ui/styled-system': 2.4.0 + '@chakra-ui/theme-tools': 2.0.14(@chakra-ui/styled-system@2.4.0) + dev: false + + /@chakra-ui/toast@4.0.4(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Gv52UQ4fJtziL9Qg0Yterb76C1GgzViryPDf2dxSzTlnCcKIbY4ktEhehyFBjDXYoGkFb47NZUEyhy+u8p3GUA==} + peerDependencies: + '@chakra-ui/system': 2.3.4 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/alert': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/close-button': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/portal': 2.0.11(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-use-timeout': 2.0.3(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.0.5(react@18.2.0) + '@chakra-ui/styled-system': 2.4.0 + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@chakra-ui/theme': 2.2.2(@chakra-ui/styled-system@2.4.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/tooltip@2.2.2(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-WDgQVEMHdsyUpKG9Nogy2FKLBgfdJG7hTSrSbH1WLvHsPkpPLknL4i5Z/pCvpa4A7SzTa6ps350mxtJ054MeMg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/popper': 3.0.10(react@18.2.0) + '@chakra-ui/portal': 2.0.11(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-types': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.0.6(react@18.2.0) + '@chakra-ui/react-use-event-listener': 2.0.5(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.0.5(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/transition@2.0.12(framer-motion@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-ff6eU+m08ccYfCkk0hKfY/XlmGxCrfbBgsKgV4mirZ4SKUL1GVye8CYuHwWQlBJo+8s0yIpsTNxAuX4n/cW9/w==} + peerDependencies: + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/transition@2.0.15(framer-motion@6.5.1)(react@18.2.0): + resolution: {integrity: sha512-o9LBK/llQfUDHF/Ty3cQ6nShpekKTqHUoJlUOzNKhoTsNpoRerr9v0jwojrX1YI02KtVjfhFU6PiqXlDfREoNw==} + peerDependencies: + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/utils@2.0.12: + resolution: {integrity: sha512-1Z1MgsrfMQhNejSdrPJk8v5J4gCefHo+1wBmPPHTz5bGEbAAbZ13aXAfXy8w0eFy0Nvnawn0EHW7Oynp/MdH+Q==} + dependencies: + '@types/lodash.mergewith': 4.6.6 + css-box-model: 1.2.1 + framesync: 5.3.0 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/visually-hidden@2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0): + resolution: {integrity: sha512-sDEeeEjLfID333EC46NdCbhK2HyMXlpl5HzcJjuwWIpyVz4E1gKQ9hlwpq6grijvmzeSywQ5D3tTwUrvZck4KQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + react: 18.2.0 + dev: false + + /@emotion/babel-plugin@11.10.5(@babel/core@7.21.0): + resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.0 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.0) + '@babel/runtime': 7.21.0 + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/serialize': 1.1.1 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.1.3 + dev: false + + /@emotion/cache@11.10.5: + resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} + dependencies: + '@emotion/memoize': 0.8.0 + '@emotion/sheet': 1.2.1 + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + stylis: 4.1.3 + dev: false + + /@emotion/hash@0.9.0: + resolution: {integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==} + dev: false + + /@emotion/is-prop-valid@0.8.8: + resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + requiresBuild: true + dependencies: + '@emotion/memoize': 0.7.4 + dev: false + optional: true + + /@emotion/is-prop-valid@1.2.0: + resolution: {integrity: sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==} + dependencies: + '@emotion/memoize': 0.8.0 + dev: false + + /@emotion/memoize@0.7.4: + resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + requiresBuild: true + dev: false + optional: true + + /@emotion/memoize@0.8.0: + resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} + dev: false + + /@emotion/react@11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.21.0 + '@babel/runtime': 7.20.6 + '@emotion/babel-plugin': 11.10.5(@babel/core@7.21.0) + '@emotion/cache': 11.10.5 + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) + '@emotion/utils': 1.2.0 + '@emotion/weak-memoize': 0.3.0 + '@types/react': 18.0.26 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: false + + /@emotion/serialize@1.1.1: + resolution: {integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==} + dependencies: + '@emotion/hash': 0.9.0 + '@emotion/memoize': 0.8.0 + '@emotion/unitless': 0.8.0 + '@emotion/utils': 1.2.0 + csstype: 3.1.1 + dev: false + + /@emotion/sheet@1.2.1: + resolution: {integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==} + dev: false + + /@emotion/styled@11.10.5(@babel/core@7.21.0)(@emotion/react@11.10.5)(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==} + peerDependencies: + '@babel/core': ^7.0.0 + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/core': 7.21.0 + '@babel/runtime': 7.20.6 + '@emotion/babel-plugin': 11.10.5(@babel/core@7.21.0) + '@emotion/is-prop-valid': 1.2.0 + '@emotion/react': 11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0) + '@emotion/serialize': 1.1.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) + '@emotion/utils': 1.2.0 + '@types/react': 18.0.26 + react: 18.2.0 + dev: false + + /@emotion/unitless@0.8.0: + resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + dev: false + + /@emotion/use-insertion-effect-with-fallbacks@1.0.0(react@18.2.0): + resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /@emotion/utils@1.2.0: + resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} + dev: false + + /@emotion/weak-memoize@0.3.0: + resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} + dev: false + + /@eslint/eslintrc@1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.18.0 + ignore: 5.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@floating-ui/core@1.0.2: + resolution: {integrity: sha512-Skfy0YS3NJ5nV9us0uuPN0HDk1Q4edljaOhRBJGDWs9EBa7ZVMYBHRFlhLvvmwEoaIM9BlH6QJFn9/uZg0bACg==} + dev: false + + /@floating-ui/dom@1.0.7: + resolution: {integrity: sha512-6RsqvCYe0AYWtsGvuWqCm7mZytnXAZCjWtsWu1Kg8dI3INvj/DbKlDsZO+mKSaQdPT12uxIW9W2dAWJkPx4Y5g==} + dependencies: + '@floating-ui/core': 1.0.2 + dev: false + + /@hookform/resolvers@2.9.11(react-hook-form@7.43.2): + resolution: {integrity: sha512-bA3aZ79UgcHj7tFV7RlgThzwSSHZgvfbt2wprldRkYBcMopdMvHyO17Wwp/twcJasNFischFfS7oz8Katz8DdQ==} + peerDependencies: + react-hook-form: ^7.0.0 + dependencies: + react-hook-form: 7.43.2(react@18.2.0) + dev: false + + /@humanwhocodes/config-array@0.11.7: + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@jridgewell/gen-mapping@0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@jridgewell/gen-mapping@0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/trace-mapping@0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@motionone/animation@10.14.0: + resolution: {integrity: sha512-h+1sdyBP8vbxEBW5gPFDnj+m2DCqdlAuf2g6Iafb1lcMnqjsRXWlPw1AXgvUMXmreyhqmPbJqoNfIKdytampRQ==} + dependencies: + '@motionone/easing': 10.14.0 + '@motionone/types': 10.14.0 + '@motionone/utils': 10.14.0 + tslib: 2.5.0 + dev: false + + /@motionone/dom@10.12.0: + resolution: {integrity: sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==} + dependencies: + '@motionone/animation': 10.14.0 + '@motionone/generators': 10.14.0 + '@motionone/types': 10.14.0 + '@motionone/utils': 10.14.0 + hey-listen: 1.0.8 + tslib: 2.5.0 + dev: false + + /@motionone/easing@10.14.0: + resolution: {integrity: sha512-2vUBdH9uWTlRbuErhcsMmt1jvMTTqvGmn9fHq8FleFDXBlHFs5jZzHJT9iw+4kR1h6a4SZQuCf72b9ji92qNYA==} + dependencies: + '@motionone/utils': 10.14.0 + tslib: 2.5.0 + dev: false + + /@motionone/generators@10.14.0: + resolution: {integrity: sha512-6kRHezoFfIjFN7pPpaxmkdZXD36tQNcyJe3nwVqwJ+ZfC0e3rFmszR8kp9DEVFs9QL/akWjuGPSLBI1tvz+Vjg==} + dependencies: + '@motionone/types': 10.14.0 + '@motionone/utils': 10.14.0 + tslib: 2.5.0 + dev: false + + /@motionone/types@10.14.0: + resolution: {integrity: sha512-3bNWyYBHtVd27KncnJLhksMFQ5o2MSdk1cA/IZqsHtA9DnRM1SYgN01CTcJ8Iw8pCXF5Ocp34tyAjY7WRpOJJQ==} + dev: false + + /@motionone/utils@10.14.0: + resolution: {integrity: sha512-sLWBLPzRqkxmOTRzSaD3LFQXCPHvDzyHJ1a3VP9PRzBxyVd2pv51/gMOsdAcxQ9n+MIeGJnxzXBYplUHKj4jkw==} + dependencies: + '@motionone/types': 10.14.0 + hey-listen: 1.0.8 + tslib: 2.5.0 + dev: false + + /@next/env@13.2.1: + resolution: {integrity: sha512-Hq+6QZ6kgmloCg8Kgrix+4F0HtvLqVK3FZAnlAoS0eonaDemHe1Km4kwjSWRE3JNpJNcKxFHF+jsZrYo0SxWoQ==} + dev: false + + /@next/eslint-plugin-next@13.2.1: + resolution: {integrity: sha512-r0i5rcO6SMAZtqiGarUVMr3k256X0R0j6pEkKg4PxqUW+hG0qgMxRVAJsuoRG5OBFkCOlSfWZJ0mP9fQdCcyNg==} + dependencies: + glob: 7.1.7 + dev: true + + /@next/swc-android-arm-eabi@13.2.1: + resolution: {integrity: sha512-Yua7mUpEd1wzIT6Jjl3dpRizIfGp9NR4F2xeRuQv+ae+SDI1Em2WyM9m46UL+oeW5GpMiEHoaBagr47RScZFmQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@next/swc-android-arm64@13.2.1: + resolution: {integrity: sha512-Bifcr2f6VwInOdq1uH/9lp8fH7Nf7XGkIx4XceVd32LPJqG2c6FZU8ZRBvTdhxzXVpt5TPtuXhOP4Ij9UPqsVw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-arm64@13.2.1: + resolution: {integrity: sha512-gvqm+fGMYxAkwBapH0Vvng5yrb6HTkIvZfY4oEdwwYrwuLdkjqnJygCMgpNqIFmAHSXgtlWxfYv1VC8sjN81Kw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@13.2.1: + resolution: {integrity: sha512-HGqVqmaZWj6zomqOZUVbO5NhlABL0iIaxTmd0O5B0MoMa5zpDGoaHSG+fxgcWMXcGcxmUNchv1NfNOYiTKoHOg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-freebsd-x64@13.2.1: + resolution: {integrity: sha512-N/a4JarAq+E+g+9K2ywJUmDIgU2xs2nA+BBldH0oq4zYJMRiUhL0iaN9G4e72VmGOJ61L/3W6VN8RIUOwTLoqQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm-gnueabihf@13.2.1: + resolution: {integrity: sha512-WaFoerF/eRbhbE57TaIGJXbQAERADZ/RZ45u6qox9beb5xnWsyYgzX+WuN7Tkhyvga0/aMuVYFzS9CEay7D+bw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@13.2.1: + resolution: {integrity: sha512-R+Jhc1/RJTnncE9fkePboHDNOCm1WJ8daanWbjKhfPySMyeniKYRwGn5SLYW3S8YlRS0QVdZaaszDSZWgUcsmA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@13.2.1: + resolution: {integrity: sha512-oI1UfZPidGAVddlL2eOTmfsuKV9EaT1aktIzVIxIAgxzQSdwsV371gU3G55ggkurzfdlgF3GThFePDWF0d8dmw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@13.2.1: + resolution: {integrity: sha512-PCygPwrQmS+7WUuAWWioWMZCzZm4PG91lfRxToLDg7yIm/3YfAw5N2EK2TaM9pzlWdvHQAqRMX/oLvv027xUiA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@13.2.1: + resolution: {integrity: sha512-sUAKxo7CFZYGHNxheGh9nIBElLYBM6md/liEGfOTwh/xna4/GTTcmkGWkF7PdnvaYNgcPIQgHIMYiAa6yBKAVw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@13.2.1: + resolution: {integrity: sha512-qDmyEjDBpl/vBXxuOOKKWmPQOcARcZIMach1s7kjzaien0SySut/PHRlj56sosa81Wt4hTGhfhZ1R7g1n7+B8w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@13.2.1: + resolution: {integrity: sha512-2joqFQ81ZYPg6DcikIzQn3DgjKglNhPAozx6dL5sCNkr1CPMD0YIkJgT3CnYyMHQ04Qi3Npv0XX3MD6LJO8OCA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@13.2.1: + resolution: {integrity: sha512-r3+0fSaIZT6N237iMzwUhfNwjhAFvXjqB+4iuW+wcpxW+LHm1g/IoxN8eSRcb8jPItC86JxjAxpke0QL97qd6g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.14.0 + dev: true + + /@pkgr/utils@2.3.1: + resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + is-glob: 4.0.3 + open: 8.4.2 + picocolors: 1.0.0 + tiny-glob: 0.2.9 + tslib: 2.5.0 + dev: true + + /@popperjs/core@2.11.6: + resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} + dev: false + + /@rushstack/eslint-patch@1.2.0: + resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} + dev: true + + /@swc/helpers@0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + dependencies: + tslib: 2.5.0 + dev: false + + /@tanstack/query-core@4.19.0: + resolution: {integrity: sha512-q+4GvS05nG2UXDE4ng0NU5SQNhT+VqhRTLNVtgVw1tIKJfG3CyYQpP/JwAdzMB7NEqC8L5oo9NAaORxEQN53dg==} + dev: false + + /@tanstack/react-query@4.19.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-gP4kmfQ3BvCYxTxA/3Xf0P24iNgW539Thk89KzP7X+i+EvFiWhEUMl1NtuI87bFrVEBHs+1ColFNimDidBh/Ww==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@tanstack/query-core': 4.19.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /@types/cookie@0.4.1: + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + dev: false + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/lodash.mergewith@4.6.6: + resolution: {integrity: sha512-RY/8IaVENjG19rxTZu9Nukqh0W2UrYgmBj5sdns4hWRZaV8PqR7wIKHFKzvOTjo4zVRV7sVI+yFhAJql12Kfqg==} + dependencies: + '@types/lodash': 4.14.191 + dev: false + + /@types/lodash@4.14.191: + resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} + dev: false + + /@types/node@16.11.7: + resolution: {integrity: sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==} + + /@types/parse-json@4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: false + + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + /@types/react-calendar@3.9.0: + resolution: {integrity: sha512-KpAu1MKAGFw5hNwlDnWsHWqI9i/igAB+8jH97YV7QpC2v7rlwNEU5i6VMFb73lGRacuejM/Zd2LklnEzkFV3XA==} + dependencies: + '@types/react': 18.0.26 + dev: true + + /@types/react-dom@18.0.9: + resolution: {integrity: sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==} + dependencies: + '@types/react': 18.0.26 + dev: true + + /@types/react-transition-group@4.4.5: + resolution: {integrity: sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==} + dependencies: + '@types/react': 18.0.26 + dev: false + + /@types/react@18.0.26: + resolution: {integrity: sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + + /@types/scheduler@0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + + /@typescript-eslint/parser@5.53.0(eslint@8.29.0)(typescript@4.9.3): + resolution: {integrity: sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.53.0 + '@typescript-eslint/types': 5.53.0 + '@typescript-eslint/typescript-estree': 5.53.0(typescript@4.9.3) + debug: 4.3.4 + eslint: 8.29.0 + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.53.0: + resolution: {integrity: sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.53.0 + '@typescript-eslint/visitor-keys': 5.53.0 + dev: true + + /@typescript-eslint/types@5.53.0: + resolution: {integrity: sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.53.0(typescript@4.9.3): + resolution: {integrity: sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.53.0 + '@typescript-eslint/visitor-keys': 5.53.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0(typescript@4.9.3) + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/visitor-keys@5.53.0: + resolution: {integrity: sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.53.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@wojtekmaj/date-utils@1.0.3: + resolution: {integrity: sha512-1VPkkTBk07gMR1fjpBtse4G+oJqpmE+0gUFB0dg3VIL7qJmUVaBoD/vlzMm/jNeOPfvlmerl1lpnsZyBUFIRuw==} + dev: false + + /@zag-js/element-size@0.1.0: + resolution: {integrity: sha512-QF8wp0+V8++z+FHXiIw93+zudtubYszOtYbNgK39fg3pi+nCZtuSm4L1jC5QZMatNZ83MfOzyNCfgUubapagJQ==} + dev: false + + /@zag-js/focus-visible@0.1.0: + resolution: {integrity: sha512-PeaBcTmdZWcFf7n1aM+oiOdZc+sy14qi0emPIeUuGMTjbP0xLGrZu43kdpHnWSXy7/r4Ubp/vlg50MCV8+9Isg==} + dev: false + + /acorn-jsx@5.3.2(acorn@8.8.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.1 + dev: true + + /acorn@8.8.1: + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /apexcharts@3.36.3: + resolution: {integrity: sha512-8/FXEs0ohXMff07Gv28XjhPwEJphIUdq2/wii/pcvi54Tw6z1mjrV8ydN8rlWi/ve8BAPBefJkLmRWv7UOBsLw==} + dependencies: + svg.draggable.js: 2.2.2 + svg.easing.js: 2.0.0 + svg.filter.js: 2.0.2 + svg.pathmorphing.js: 0.1.3 + svg.resize.js: 1.4.3 + svg.select.js: 3.0.1 + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-hidden@1.2.2(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + tslib: 2.5.0 + dev: false + + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.0 + dev: true + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.tosorted@1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.0 + dev: true + + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: true + + /attr-accept@2.2.2: + resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} + engines: {node: '>=4'} + dev: false + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /axe-core@4.6.3: + resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==} + engines: {node: '>=4'} + dev: true + + /axobject-query@3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + dependencies: + deep-equal: 2.2.0 + dev: true + + /babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.21.0 + cosmiconfig: 7.1.0 + resolve: 1.22.1 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001458 + electron-to-chromium: 1.4.311 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10(browserslist@4.21.5) + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.0 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /caniuse-lite@1.0.30001458: + resolution: {integrity: sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==} + + /chakra-react-select@4.4.2(@babel/core@7.21.0)(@chakra-ui/form-control@2.0.13)(@chakra-ui/icon@3.0.13)(@chakra-ui/layout@2.1.11)(@chakra-ui/menu@2.1.8)(@chakra-ui/spinner@2.0.11)(@chakra-ui/system@2.3.4)(@emotion/react@11.10.5)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-igHNj1ijQB4+icl1Atjt3/vOF7p1cJWuFEuognfuDCBkfiANh+/ejj0i5cxwtHBhP9xcFcqFzpNaRLhjiSUulw==} + peerDependencies: + '@chakra-ui/form-control': ^2.0.0 + '@chakra-ui/icon': ^3.0.0 + '@chakra-ui/layout': ^2.0.0 + '@chakra-ui/menu': ^2.0.0 + '@chakra-ui/spinner': ^2.0.0 + '@chakra-ui/system': ^2.0.0 + '@emotion/react': ^11.8.1 + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@chakra-ui/form-control': 2.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/icon': 3.0.13(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/layout': 2.1.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/menu': 2.1.8(@chakra-ui/system@2.3.4)(framer-motion@6.5.1)(react@18.2.0) + '@chakra-ui/spinner': 2.0.11(@chakra-ui/system@2.3.4)(react@18.2.0) + '@chakra-ui/system': 2.3.4(@emotion/react@11.10.5)(@emotion/styled@11.10.5)(react@18.2.0) + '@emotion/react': 11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-select: 5.7.0(@babel/core@7.21.0)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) + transitivePeerDependencies: + - '@babel/core' + - '@types/react' + dev: false + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color2k@2.0.0: + resolution: {integrity: sha512-DWX9eXOC4fbJNiuvdH4QSHvvfLWyFo9TuFp7V9OzdsbPAdrWAuYc8qvFP2bIQ/LKh4LrAVnJ6vhiQYPvAHdtTg==} + dev: false + + /compute-scroll-into-view@1.0.14: + resolution: {integrity: sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: false + + /cookies-next@2.1.1: + resolution: {integrity: sha512-AZGZPdL1hU3jCjN2UMJTGhLOYzNUN9Gm+v8BdptYIHUdwz397Et1p+sZRfvAl8pKnnmMdX2Pk9xDRKCGBum6GA==} + dependencies: + '@types/cookie': 0.4.1 + '@types/node': 16.11.7 + cookie: 0.4.2 + dev: false + + /copy-to-clipboard@3.3.1: + resolution: {integrity: sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-box-model@1.2.1: + resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} + dependencies: + tiny-invariant: 1.3.1 + dev: false + + /csstype@3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /deep-equal@2.2.0: + resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} + dependencies: + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.0 + is-arguments: 1.1.1 + is-array-buffer: 3.0.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge-ts@4.2.2: + resolution: {integrity: sha512-Ka3Kb21tiWjvQvS9U+1Dx+aqFAHsdTnMdYptLTmC2VAmDFMugWMY1e15aTODstipmCun8iNuqeSfcx6rsUUk0Q==} + engines: {node: '>=12.4.0'} + dev: false + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-properties@1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.21.0 + csstype: 3.1.1 + dev: false + + /electron-to-chromium@1.4.311: + resolution: {integrity: sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw==} + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /enhanced-resolve@5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /es-abstract@1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + is-array-buffer: 3.0.1 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /eslint-config-next@13.2.1(eslint@8.29.0)(typescript@4.9.3): + resolution: {integrity: sha512-2GAx7EjSiCzJN6H2L/v1kbYrNiwQxzkyjy6eWSjuhAKt+P6d3nVNHGy9mON8ZcYd72w/M8kyMjm4UB9cvijgrw==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.2.1 + '@rushstack/eslint-patch': 1.2.0 + '@typescript-eslint/parser': 5.53.0(eslint@8.29.0)(typescript@4.9.3) + eslint: 8.29.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.29.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.53.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.29.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.29.0) + eslint-plugin-react: 7.32.2(eslint@8.29.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.29.0) + typescript: 4.9.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-config-prettier@8.1.0(eslint@8.29.0): + resolution: {integrity: sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.29.0 + dev: true + + /eslint-import-resolver-node@0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + dependencies: + debug: 3.2.7 + is-core-module: 2.11.0 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript@3.5.3(eslint-plugin-import@2.27.5)(eslint@8.29.0): + resolution: {integrity: sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.12.0 + eslint: 8.29.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.53.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.29.0) + get-tsconfig: 4.4.0 + globby: 13.1.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + synckit: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.53.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.3)(eslint@8.29.0): + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.53.0(eslint@8.29.0)(typescript@4.9.3) + debug: 3.2.7 + eslint: 8.29.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.29.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.53.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.29.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.53.0(eslint@8.29.0)(typescript@4.9.3) + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.29.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.53.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.3)(eslint@8.29.0) + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.1 + semver: 6.3.0 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.29.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.21.0 + aria-query: 5.1.3 + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + ast-types-flow: 0.0.7 + axe-core: 4.6.3 + axobject-query: 3.1.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.29.0 + has: 1.0.3 + jsx-ast-utils: 3.3.3 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + semver: 6.3.0 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.29.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.29.0 + dev: true + + /eslint-plugin-react@7.32.2(eslint@8.29.0): + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 + doctrine: 2.1.0 + eslint: 8.29.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.3 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.0 + string.prototype.matchall: 4.0.8 + dev: true + + /eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils@3.0.0(eslint@8.29.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.29.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys@3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.29.0: + resolution: {integrity: sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.7 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0(eslint@8.29.0) + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.18.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.1 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.2.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.1 + acorn-jsx: 5.3.2(acorn@8.8.1) + eslint-visitor-keys: 3.3.0 + dev: true + + /esquery@1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.14.0: + resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /file-selector@0.6.0: + resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} + engines: {node: '>= 12'} + dependencies: + tslib: 2.5.0 + dev: false + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /focus-lock@0.11.4: + resolution: {integrity: sha512-LzZWJcOBIcHslQ46N3SUu/760iLPSrUtp8omM4gh9du438V2CQdks8TcOu1yvmu2C68nVOBnl1WFiKGPbQ8L6g==} + engines: {node: '>=10'} + dependencies: + tslib: 2.5.0 + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /framer-motion@6.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} + peerDependencies: + react: '>=16.8 || ^17.0.0 || ^18.0.0' + react-dom: '>=16.8 || ^17.0.0 || ^18.0.0' + dependencies: + '@motionone/dom': 10.12.0 + framesync: 6.0.1 + hey-listen: 1.0.8 + popmotion: 11.0.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + style-value-types: 5.0.0 + tslib: 2.4.1 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + dev: false + + /framesync@5.3.0: + resolution: {integrity: sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==} + dependencies: + tslib: 2.5.0 + dev: false + + /framesync@6.0.1: + resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==} + dependencies: + tslib: 2.5.0 + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-intrinsic@1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: false + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /get-tsconfig@4.4.0: + resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} + dev: true + + /get-user-locale@1.5.1: + resolution: {integrity: sha512-WiNpoFRcHn1qxP9VabQljzGwkAQDrcpqUtaP0rNBEkFxJdh4f3tik6MfZsMYZc+UgQJdGCxWEjL9wnCUlRQXag==} + dependencies: + lodash.memoize: 4.1.2 + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globals@13.18.0: + resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.1.4 + dev: true + + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@13.1.3: + resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.1 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + dev: false + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /ignore@5.2.1: + resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot@1.0.4: + resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer@3.0.1: + resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /js-sdsl@4.2.0: + resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsx-ast-utils@3.3.3: + resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.6 + object.assign: 4.1.4 + dev: true + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true + + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + dev: false + + /merge-class-names@1.4.2: + resolution: {integrity: sha512-bOl98VzwCGi25Gcn3xKxnR5p/WrhWFQB59MS/aGENcmUc6iSm96yrFDF0XSNurX9qN4LbJm0R9kfvsQ17i8zCw==} + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /nanoid@3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /next@13.2.1(@babel/core@7.21.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-qhgJlDtG0xidNViJUPeQHLGJJoT4zDj/El7fP3D3OzpxJDUfxsm16cK4WTMyvSX1ciIfAq05u+0HqFAa+VJ+Hg==} + engines: {node: '>=14.6.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.4.0 + fibers: '>= 3.1.0' + node-sass: ^6.0.0 || ^7.0.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.2.1 + '@swc/helpers': 0.4.14 + caniuse-lite: 1.0.30001458 + postcss: 8.4.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.21.0)(react@18.2.0) + optionalDependencies: + '@next/swc-android-arm-eabi': 13.2.1 + '@next/swc-android-arm64': 13.2.1 + '@next/swc-darwin-arm64': 13.2.1 + '@next/swc-darwin-x64': 13.2.1 + '@next/swc-freebsd-x64': 13.2.1 + '@next/swc-linux-arm-gnueabihf': 13.2.1 + '@next/swc-linux-arm64-gnu': 13.2.1 + '@next/swc-linux-arm64-musl': 13.2.1 + '@next/swc-linux-x64-gnu': 13.2.1 + '@next/swc-linux-x64-musl': 13.2.1 + '@next/swc-win32-arm64-msvc': 13.2.1 + '@next/swc-win32-ia32-msvc': 13.2.1 + '@next/swc-win32-x64-msvc': 13.2.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + + /node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /object.fromentries@2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /object.hasown@1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + dependencies: + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /popmotion@11.0.3: + resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} + dependencies: + framesync: 6.0.1 + hey-listen: 1.0.8 + style-value-types: 5.0.0 + tslib: 2.5.0 + dev: false + + /postcss@8.4.14: + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier@2.8.0: + resolution: {integrity: sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /punycode@2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /react-apexcharts@1.4.0(apexcharts@3.36.3)(react@18.2.0): + resolution: {integrity: sha512-DrcMV4aAMrUG+n6412yzyATWEyCDWlpPBBhVbpzBC4PDeuYU6iF84SmExbck+jx5MUm4U5PM3/T307Mc3kzc9Q==} + peerDependencies: + apexcharts: ^3.18.0 + react: '>=0.13' + dependencies: + apexcharts: 3.36.3 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /react-calendar@3.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-g6RJCEaPovHTiV2bMhBUfm0a1YoMj4bOUpL8hQSLmR1Glhc7lgRLtZBd4mcC4jkoGsb+hv9uA/QH4pZcm5l9lQ==} + peerDependencies: + react: ^16.3.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.3.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@wojtekmaj/date-utils': 1.0.3 + get-user-locale: 1.5.1 + merge-class-names: 1.4.2 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-clientside-effect@1.2.6(react@18.2.0): + resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.21.0 + react: 18.2.0 + dev: false + + /react-colorful@5.6.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-dropzone@14.2.3(react@18.2.0): + resolution: {integrity: sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==} + engines: {node: '>= 10.13'} + peerDependencies: + react: '>= 16.8 || 18.0.0' + dependencies: + attr-accept: 2.2.2 + file-selector: 0.6.0 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /react-fast-compare@3.2.0: + resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==} + dev: false + + /react-focus-lock@2.9.2(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-5JfrsOKyA5Zn3h958mk7bAcfphr24jPoMoznJ8vaJF6fUrPQ8zrtEd3ILLOK8P5jvGxdMd96OxWNjDzATfR2qw==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.21.0 + '@types/react': 18.0.26 + focus-lock: 0.11.4 + prop-types: 15.8.1 + react: 18.2.0 + react-clientside-effect: 1.2.6(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.0.26)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.0.26)(react@18.2.0) + dev: false + + /react-hook-form@7.43.2(react@18.2.0): + resolution: {integrity: sha512-NvD3Oe2Y9hhqo2R4I4iJigDzSLpdMnzUpNMxlnzTbdiT7NT3BW0GxWCzEtwPudZMUPbZhNcSy1EcGAygyhDORg==} + engines: {node: '>=12.22.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + dependencies: + react: 18.2.0 + dev: false + + /react-icons@4.7.1(react@18.2.0): + resolution: {integrity: sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==} + peerDependencies: + react: '*' + dependencies: + react: 18.2.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-remove-scroll-bar@2.3.4(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.0.26)(react@18.2.0) + tslib: 2.5.0 + dev: false + + /react-remove-scroll@2.5.5(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4(@types/react@18.0.26)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.0.26)(react@18.2.0) + tslib: 2.5.0 + use-callback-ref: 1.3.0(@types/react@18.0.26)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.0.26)(react@18.2.0) + dev: false + + /react-select@5.7.0(@babel/core@7.21.0)(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.21.0 + '@emotion/cache': 11.10.5 + '@emotion/react': 11.10.5(@babel/core@7.21.0)(@types/react@18.0.26)(react@18.2.0) + '@floating-ui/dom': 1.0.7 + '@types/react-transition-group': 4.4.5 + memoize-one: 6.0.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.0.26)(react@18.2.0) + transitivePeerDependencies: + - '@babel/core' + - '@types/react' + dev: false + + /react-style-singleton@2.2.1(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.5.0 + dev: false + + /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.21.0 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + /regexp.prototype.flags@1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + dev: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + + /semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.4 + dev: true + + /string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: true + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /style-value-types@5.0.0: + resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} + dependencies: + hey-listen: 1.0.8 + tslib: 2.5.0 + dev: false + + /styled-jsx@5.1.1(@babel/core@7.21.0)(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + '@babel/core': 7.21.0 + client-only: 0.0.1 + react: 18.2.0 + dev: false + + /stylis@4.1.3: + resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /svg.draggable.js@2.2.2: + resolution: {integrity: sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==} + engines: {node: '>= 0.8.0'} + dependencies: + svg.js: 2.7.1 + dev: false + + /svg.easing.js@2.0.0: + resolution: {integrity: sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==} + engines: {node: '>= 0.8.0'} + dependencies: + svg.js: 2.7.1 + dev: false + + /svg.filter.js@2.0.2: + resolution: {integrity: sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==} + engines: {node: '>= 0.8.0'} + dependencies: + svg.js: 2.7.1 + dev: false + + /svg.js@2.7.1: + resolution: {integrity: sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==} + dev: false + + /svg.pathmorphing.js@0.1.3: + resolution: {integrity: sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==} + engines: {node: '>= 0.8.0'} + dependencies: + svg.js: 2.7.1 + dev: false + + /svg.resize.js@1.4.3: + resolution: {integrity: sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==} + engines: {node: '>= 0.8.0'} + dependencies: + svg.js: 2.7.1 + svg.select.js: 2.1.2 + dev: false + + /svg.select.js@2.1.2: + resolution: {integrity: sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==} + engines: {node: '>= 0.8.0'} + dependencies: + svg.js: 2.7.1 + dev: false + + /svg.select.js@3.0.1: + resolution: {integrity: sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==} + engines: {node: '>= 0.8.0'} + dependencies: + svg.js: 2.7.1 + dev: false + + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.3.1 + tslib: 2.5.0 + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + dev: false + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + dev: false + + /tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + + /tsutils@3.21.0(typescript@4.9.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.3 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + + /typescript@4.9.3: + resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /update-browserslist-db@1.0.10(browserslist@4.21.5): + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /use-callback-ref@1.3.0(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + tslib: 2.5.0 + dev: false + + /use-isomorphic-layout-effect@1.1.2(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + dev: false + + /use-sidecar@1.1.2(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.0.26 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.5.0 + dev: false + + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: false + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /zod@3.20.6: + resolution: {integrity: sha512-oyu0m54SGCtzh6EClBVqDDlAYRz4jrVtKwQ7ZnsEmMI9HnzuZFj8QFwAY1M5uniIYACdGvv0PBWPF2kO0aNofA==} + dev: false + + /zustand@4.4.6(@types/react@18.0.26)(react@18.2.0): + resolution: {integrity: sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.0.26 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false diff --git a/dashboard/public/Banner1.png b/dashboard/public/Banner1.png new file mode 100644 index 00000000..563f4181 Binary files /dev/null and b/dashboard/public/Banner1.png differ diff --git a/dashboard/public/manifest.json b/dashboard/public/manifest.json new file mode 100644 index 00000000..1f2f141f --- /dev/null +++ b/dashboard/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/dashboard/public/robots.txt b/dashboard/public/robots.txt new file mode 100644 index 00000000..3bc2b9c1 --- /dev/null +++ b/dashboard/public/robots.txt @@ -0,0 +1,3 @@ +User-Agent: * +Disallow: +Sitemap: https://simmmple.com \ No newline at end of file diff --git a/dashboard/src/api/bot.ts b/dashboard/src/api/bot.ts new file mode 100644 index 00000000..1a96ee20 --- /dev/null +++ b/dashboard/src/api/bot.ts @@ -0,0 +1,141 @@ +import { CustomFeatures, CustomGuildInfo } from '@/config/types/custom-types'; +import { AccessToken } from '@/utils/auth/server'; +import { callDefault, callReturn } from '@/utils/fetch/core'; +import { botRequest } from '@/utils/fetch/requests'; +import { ChannelTypes } from './discord'; + +export type Role = { + id: string; + name: string; + color: number; + position: number; + icon?: { + iconUrl?: string; + emoji?: string; + }; +}; + +export type GuildChannel = { + id: string; + name: string; + type: ChannelTypes; + /** + * parent category of the channel + */ + category?: string; +}; + +/** + * Get custom guild info on from backend + * + * @param guild Guild ID + * @return Guild info, or null if bot hasn't joined the guild + */ +export async function fetchGuildInfo( + session: AccessToken, + guild: string +): Promise { + return await callReturn( + `/guilds/${guild}`, + botRequest(session, { + request: { + method: 'GET', + }, + allowed: { + 404: () => null, + }, + }) + ); +} + +export async function enableFeature(session: AccessToken, guild: string, feature: string) { + return await callDefault( + `/guilds/${guild}/features/${feature}`, + botRequest(session, { + request: { + method: 'POST', + }, + }) + ); +} + +export async function disableFeature(session: AccessToken, guild: string, feature: string) { + return await callDefault( + `/guilds/${guild}/features/${feature}`, + botRequest(session, { + request: { + method: 'DELETE', + }, + }) + ); +} + +export async function getFeature( + session: AccessToken, + guild: string, + feature: K +): Promise { + return await callReturn( + `/guilds/${guild}/features/${feature}`, + botRequest(session, { + request: { + method: 'GET', + }, + }) + ); +} + +export async function updateFeature( + session: AccessToken, + guild: string, + feature: K, + options: FormData | string +): Promise { + const isForm = options instanceof FormData; + + return await callReturn( + `/guilds/${guild}/features/${feature}`, + botRequest(session, { + request: { + method: 'PATCH', + headers: isForm + ? {} + : { + 'Content-Type': 'application/json', + }, + body: options, + }, + }) + ); +} + +/** + * Used for custom forms + * + * The dashboard itself doesn't use it + * @returns Guild roles + */ +export async function fetchGuildRoles(session: AccessToken, guild: string) { + return await callReturn( + `/guilds/${guild}/roles`, + botRequest(session, { + request: { + method: 'GET', + }, + }) + ); +} + +/** + * @returns Guild channels + */ +export async function fetchGuildChannels(session: AccessToken, guild: string) { + return await callReturn( + `/guilds/${guild}/channels`, + botRequest(session, { + request: { + method: 'GET', + }, + }) + ); +} diff --git a/dashboard/src/api/discord.ts b/dashboard/src/api/discord.ts new file mode 100644 index 00000000..fcecb9e7 --- /dev/null +++ b/dashboard/src/api/discord.ts @@ -0,0 +1,129 @@ +import { logout } from '@/utils/auth/hooks'; +import { callReturn } from '@/utils/fetch/core'; +import { discordRequest } from '@/utils/fetch/requests'; + +export type UserInfo = { + id: string; + username: string; + discriminator: string; + avatar: string; + mfa_enabled?: boolean; + banner?: string; + accent_color?: number; + locale?: string; + flags?: number; + premium_type?: number; + public_flags?: number; +}; + +export type Guild = { + id: string; + name: string; + icon: string; + permissions: string; +}; + +export type IconHash = string; + +export enum PermissionFlags { + CREATE_INSTANT_INVITE = 1 << 0, + KICK_MEMBERS = 1 << 1, + BAN_MEMBERS = 1 << 2, + ADMINISTRATOR = 1 << 3, + MANAGE_CHANNELS = 1 << 4, + MANAGE_GUILD = 1 << 5, + ADD_REACTIONS = 1 << 6, + VIEW_AUDIT_LOG = 1 << 7, + PRIORITY_SPEAKER = 1 << 8, + STREAM = 1 << 9, + VIEW_CHANNEL = 1 << 10, + SEND_MESSAGES = 1 << 11, + SEND_TTS_MESSAGES = 1 << 12, + MANAGE_MESSAGES = 1 << 13, + EMBED_LINKS = 1 << 14, + ATTACH_FILES = 1 << 15, + READ_MESSAGE_HISTORY = 1 << 16, + MENTION_EVERYONE = 1 << 17, + USE_EXTERNAL_EMOJIS = 1 << 18, + VIEW_GUILD_INSIGHTS = 1 << 19, + CONNECT = 1 << 20, + SPEAK = 1 << 21, + MUTE_MEMBERS = 1 << 22, + DEAFEN_MEMBERS = 1 << 23, + MOVE_MEMBERS = 1 << 24, + USE_VAD = 1 << 25, + CHANGE_NICKNAME = 1 << 26, + MANAGE_NICKNAMES = 1 << 27, + MANAGE_ROLES = 1 << 28, + MANAGE_WEBHOOKS = 1 << 29, + MANAGE_EMOJIS_AND_STICKERS = 1 << 30, + USE_APPLICATION_COMMANDS = 1 << 31, + REQUEST_TO_SPEAK = 1 << 32, + MANAGE_EVENTS = 1 << 33, + MANAGE_THREADS = 1 << 34, + CREATE_PUBLIC_THREADS = 1 << 35, + CREATE_PRIVATE_THREADS = 1 << 36, + USE_EXTERNAL_STICKERS = 1 << 37, + SEND_MESSAGES_IN_THREADS = 1 << 38, + USE_EMBEDDED_ACTIVITIES = 1 << 39, + MODERATE_MEMBERS = 1 << 40, +} + +export enum ChannelTypes { + GUILD_TEXT = 0, + DM = 1, + GUILD_VOICE = 2, + GROUP_DM = 3, + GUILD_CATEGORY = 4, + GUILD_ANNOUNCEMENT = 5, + ANNOUNCEMENT_THREAD = 10, + PUBLIC_THREAD = 11, + PRIVATE_THREAD = 12, + GUILD_STAGE_VOICE = 13, + GUILD_DIRECTORY = 14, + GUILD_FORUM = 15, +} + +export async function fetchUserInfo(accessToken: string) { + return await callReturn( + `/users/@me`, + discordRequest(accessToken, { + request: { + method: 'GET', + }, + allowed: { + 401: async () => { + await logout(); + + throw new Error('Not logged in'); + }, + }, + }) + ); +} + +export async function getGuilds(accessToken: string) { + return await callReturn( + `/users/@me/guilds`, + discordRequest(accessToken, { request: { method: 'GET' } }) + ); +} + +export async function getGuild(accessToken: string, id: string) { + return await callReturn( + `/guilds/${id}`, + discordRequest(accessToken, { request: { method: 'GET' } }) + ); +} + +export function iconUrl(guild: Guild) { + return `https://cdn.discordapp.com/icons/${guild.id}/${guild.icon}`; +} + +export function avatarUrl(user: UserInfo) { + return `https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}?size=512`; +} + +export function bannerUrl(id: string, banner: string): string { + return `https://cdn.discordapp.com/banners/${id}/${banner}?size=1024`; +} diff --git a/dashboard/src/api/hooks.ts b/dashboard/src/api/hooks.ts new file mode 100644 index 00000000..98fc65af --- /dev/null +++ b/dashboard/src/api/hooks.ts @@ -0,0 +1,167 @@ +import { CustomFeatures, CustomGuildInfo } from '../config/types'; +import { QueryClient, useMutation, useQuery } from '@tanstack/react-query'; +import { UserInfo, getGuild, getGuilds, fetchUserInfo } from '@/api/discord'; +import { + disableFeature, + enableFeature, + fetchGuildChannels, + fetchGuildInfo, + fetchGuildRoles, + getFeature, + updateFeature, +} from '@/api/bot'; +import { GuildInfo } from '@/config/types'; +import { useAccessToken, useSession } from '@/utils/auth/hooks'; + +export const client = new QueryClient({ + defaultOptions: { + mutations: { + retry: 0, + }, + queries: { + refetchOnWindowFocus: false, + staleTime: Infinity, + retry: 0, + }, + }, +}); + +export const Keys = { + login: ['login'], + guild_info: (guild: string) => ['guild_info', guild], + features: (guild: string, feature: string) => ['feature', guild, feature], + guildRoles: (guild: string) => ['gulid_roles', guild], + guildChannels: (guild: string) => ['gulid_channel', guild], +}; + +export const Mutations = { + updateFeature: (guild: string, id: string) => ['feature', guild, id], +}; + +export function useGuild(id: string) { + const accessToken = useAccessToken(); + + return useQuery(['guild', id], () => getGuild(accessToken as string, id), { + enabled: accessToken != null, + }); +} + +export function useGuilds() { + const accessToken = useAccessToken(); + + return useQuery(['user_guilds'], () => getGuilds(accessToken as string), { + enabled: accessToken != null, + }); +} + +export function useSelfUserQuery() { + const accessToken = useAccessToken(); + + return useQuery(['users', 'me'], () => fetchUserInfo(accessToken!!), { + enabled: accessToken != null, + staleTime: Infinity, + }); +} + +export function useGuildInfoQuery(guild: string) { + const { status, session } = useSession(); + + return useQuery( + Keys.guild_info(guild), + () => fetchGuildInfo(session!!, guild), + { + enabled: status === 'authenticated', + refetchOnWindowFocus: true, + retry: false, + staleTime: 0, + } + ); +} + +export function useFeatureQuery(guild: string, feature: K) { + const { status, session } = useSession(); + + return useQuery(Keys.features(guild, feature), () => getFeature(session!!, guild, feature), { + enabled: status === 'authenticated', + }); +} + +export type EnableFeatureOptions = { guild: string; feature: string; enabled: boolean }; +export function useEnableFeatureMutation() { + const { session } = useSession(); + + return useMutation( + async ({ enabled, guild, feature }: EnableFeatureOptions) => { + if (enabled) return enableFeature(session!!, guild, feature); + return disableFeature(session!!, guild, feature); + }, + { + async onSuccess(_, { guild, feature, enabled }) { + await client.invalidateQueries(Keys.features(guild, feature)); + client.setQueryData(Keys.guild_info(guild), (prev) => { + if (prev == null) return null; + + if (enabled) { + return { + ...prev, + enabledFeatures: prev.enabledFeatures.includes(feature) + ? prev.enabledFeatures + : [...prev.enabledFeatures, feature], + }; + } else { + return { + ...prev, + enabledFeatures: prev.enabledFeatures.filter((f) => f !== feature), + }; + } + }); + }, + } + ); +} + +export type UpdateFeatureOptions = { + guild: string; + feature: keyof CustomFeatures; + options: FormData | string; +}; +export function useUpdateFeatureMutation() { + const { session } = useSession(); + + return useMutation( + (options: UpdateFeatureOptions) => + updateFeature(session!!, options.guild, options.feature, options.options), + { + onSuccess(updated, options) { + const key = Keys.features(options.guild, options.feature); + + return client.setQueryData(key, updated); + }, + } + ); +} + +export function useGuildRolesQuery(guild: string) { + const { session } = useSession(); + + return useQuery(Keys.guildRoles(guild), () => fetchGuildRoles(session!!, guild)); +} + +export function useGuildChannelsQuery(guild: string) { + const { session } = useSession(); + + return useQuery(Keys.guildChannels(guild), () => fetchGuildChannels(session!!, guild)); +} + +export function useSelfUser(): UserInfo { + return useSelfUserQuery().data!!; +} + +export function useGuildPreview(guild: string) { + const query = useGuilds(); + + return { + guild: query.data?.find((g) => g.id === guild), + query, + }; +} diff --git a/dashboard/src/components/GuildBanner.tsx b/dashboard/src/components/GuildBanner.tsx new file mode 100644 index 00000000..6dec2da3 --- /dev/null +++ b/dashboard/src/components/GuildBanner.tsx @@ -0,0 +1,46 @@ +import { FiSettings as SettingsIcon } from 'react-icons/fi'; +import { Flex, Heading, Text } from '@chakra-ui/layout'; +import { Button, ButtonGroup } from '@chakra-ui/react'; +import { guild as view } from '@/config/translations/guild'; +import { useRouter } from 'next/router'; +import Link from 'next/link'; + +export function Banner() { + const { guild } = useRouter().query as { guild: string }; + const t = view.useTranslations(); + + return ( + + + {t.banner.title} + + {t.banner.description} + + + + + ); +} diff --git a/dashboard/src/components/SidebarTrigger.tsx b/dashboard/src/components/SidebarTrigger.tsx new file mode 100644 index 00000000..7a4ac8b9 --- /dev/null +++ b/dashboard/src/components/SidebarTrigger.tsx @@ -0,0 +1,27 @@ +import { Flex, Icon } from '@chakra-ui/react'; +import { IoMenuOutline } from 'react-icons/io5'; +import { usePageStore } from '@/stores'; +import { sidebarBreakpoint } from '@/theme/breakpoints'; + +export function SidebarTrigger() { + const setOpen = usePageStore((s) => s.setSidebarIsOpen); + + return ( + + setOpen(true)}> + + + + ); +} diff --git a/dashboard/src/components/ThemeSwitch.tsx b/dashboard/src/components/ThemeSwitch.tsx new file mode 100644 index 00000000..12367be2 --- /dev/null +++ b/dashboard/src/components/ThemeSwitch.tsx @@ -0,0 +1,31 @@ +import { Button, Icon, useColorMode } from '@chakra-ui/react'; +import { IoMdMoon, IoMdSunny } from 'react-icons/io'; + +export function ThemeSwitch({ secondary }: { secondary?: boolean }) { + const { colorMode, toggleColorMode } = useColorMode(); + + return ( + + ); +} diff --git a/dashboard/src/components/chart/StyledChart.tsx b/dashboard/src/components/chart/StyledChart.tsx new file mode 100644 index 00000000..e029857f --- /dev/null +++ b/dashboard/src/components/chart/StyledChart.tsx @@ -0,0 +1,78 @@ +import { useColorModeValue, useToken } from '@chakra-ui/react'; +import { deepmerge } from 'deepmerge-ts'; +import dynamic from 'next/dynamic'; +import type { Props as ChartProps } from 'react-apexcharts'; + +const Chart = dynamic(() => import('react-apexcharts'), { ssr: false }); + +export function StyledChart(props: ChartProps) { + const theme = useColorModeValue('light', 'dark'); + const [textColorPrimary, textColorSecondary] = useToken('colors', [ + 'TextPrimary', + 'TextSecondary', + ]); + + const options: ApexCharts.ApexOptions = { + chart: { + toolbar: { + show: false, + }, + dropShadow: { + enabled: true, + top: 13, + left: 0, + blur: 10, + opacity: 0.1, + color: '#4318FF', + }, + }, + tooltip: { + fillSeriesColor: false, + theme: theme, + }, + markers: { + size: 0, + colors: textColorPrimary, + strokeColors: '#7551FF', + strokeWidth: 3, + strokeOpacity: 0.9, + strokeDashArray: 0, + fillOpacity: 1, + discrete: [], + shape: 'circle', + radius: 2, + offsetX: 0, + offsetY: 0, + showNullDataPoints: true, + }, + stroke: { + curve: 'smooth', + }, + legend: { + labels: { + colors: textColorSecondary, + }, + }, + grid: { + show: false, + }, + yaxis: { + labels: { + style: { + colors: textColorSecondary, + }, + }, + }, + xaxis: { + labels: { + style: { + colors: textColorSecondary, + fontSize: '12px', + fontWeight: '500', + }, + }, + }, + }; + + return ; +} diff --git a/dashboard/src/components/feature/FeatureItem.tsx b/dashboard/src/components/feature/FeatureItem.tsx new file mode 100644 index 00000000..4a627033 --- /dev/null +++ b/dashboard/src/components/feature/FeatureItem.tsx @@ -0,0 +1,67 @@ +import { Box, Center, Flex, Text } from '@chakra-ui/layout'; +import { Button, ButtonGroup, Card, CardBody, CardFooter } from '@chakra-ui/react'; +import { IdFeature } from '@/utils/common'; +import { IoOpen, IoOptions } from 'react-icons/io5'; +import { useEnableFeatureMutation } from '@/api/hooks'; +import { guild as view } from '@/config/translations/guild'; +import Router from 'next/router'; + +export function FeatureItem({ + guild, + feature, + enabled, +}: { + guild: string; + feature: IdFeature; + enabled: boolean; +}) { + const t = view.useTranslations(); + const mutation = useEnableFeatureMutation(); + + return ( + + +
+ {feature.icon} +
+ + + {feature.name} + + + {feature.description} + + +
+ + + + + + {result.component} + + + ); +} + +function Savebar({ + result: { canSave, onSubmit, reset }, + isLoading, +}: { + result: UseFormRenderResult; + isLoading: boolean; +}) { + const t = view.useTranslations(); + const breakpoint = '3sm'; + + return ( + + + + {t.unsaved} + + + + + + + + ); +} diff --git a/dashboard/src/components/forms/ChannelSelect.tsx b/dashboard/src/components/forms/ChannelSelect.tsx new file mode 100644 index 00000000..6054b92c --- /dev/null +++ b/dashboard/src/components/forms/ChannelSelect.tsx @@ -0,0 +1,121 @@ +import { BsChatLeftText as ChatIcon } from 'react-icons/bs'; +import { GuildChannel } from '@/api/bot'; +import { ChannelTypes } from '@/api/discord'; +import { Option, SelectField } from '@/components/forms/SelectField'; +import { forwardRef, useMemo } from 'react'; +import { MdRecordVoiceOver } from 'react-icons/md'; +import { useGuildChannelsQuery } from '@/api/hooks'; +import { Icon } from '@chakra-ui/react'; +import { useRouter } from 'next/router'; +import { SelectInstance, Props as SelectProps } from 'chakra-react-select'; +import { Override } from '@/utils/types'; +import { ControlledInput } from './types'; +import { FormCard } from './Form'; +import { useController } from 'react-hook-form'; +import { common } from '@/config/translations/common'; + +/** + * Render an options + */ +const render = (channel: GuildChannel): Option => { + const icon = () => { + switch (channel.type) { + case ChannelTypes.GUILD_STAGE_VOICE: + case ChannelTypes.GUILD_VOICE: { + return ; + } + default: + return ; + } + }; + + return { + label: channel.name, + value: channel.id, + icon: icon(), + }; +}; + +function mapOptions(channels: GuildChannel[]) { + //channels in category + const categories = new Map(); + //channels with no parent category + const roots: GuildChannel[] = []; + + //group channels + for (const channel of channels) { + if (channel.category == null) roots.push(channel); + else { + const category = categories.get(channel.category); + + if (category == null) { + categories.set(channel.category, [channel]); + } else { + category.push(channel); + } + } + } + + //map channels into select menu options + return roots.map((channel) => { + if (channel.type === ChannelTypes.GUILD_CATEGORY) { + return { + ...render(channel), + options: categories.get(channel.id)?.map(render) ?? [], + }; + } + + return render(channel); + }); +} + +type Props = Override< + SelectProps, + { + value?: string; + onChange: (v: string) => void; + } +>; + +export const ChannelSelect = forwardRef, Props>( + ({ value, onChange, ...rest }, ref) => { + const guild = useRouter().query.guild as string; + const channelsQuery = useGuildChannelsQuery(guild); + const isLoading = channelsQuery.isLoading; + + const selected = value != null ? channelsQuery.data?.find((c) => c.id === value) : null; + const options = useMemo( + () => (channelsQuery.data != null ? mapOptions(channelsQuery.data) : []), + [channelsQuery.data] + ); + + return ( + + isDisabled={isLoading} + isLoading={isLoading} + placeholder={} + value={selected != null ? render(selected) : null} + options={options} + onChange={(e) => e != null && onChange(e.value)} + ref={ref} + {...rest} + /> + ); + } +); + +ChannelSelect.displayName = 'ChannelSelect'; + +export const ChannelSelectForm: ControlledInput> = ({ + control, + controller, + ...props +}) => { + const { field, fieldState } = useController(controller); + + return ( + + + + ); +}; diff --git a/dashboard/src/components/forms/ColorPicker.tsx b/dashboard/src/components/forms/ColorPicker.tsx new file mode 100644 index 00000000..99f49a7b --- /dev/null +++ b/dashboard/src/components/forms/ColorPicker.tsx @@ -0,0 +1,114 @@ +import { + Center, + Flex, + Input, + InputGroup, + InputLeftAddon, + Popover, + PopoverBody, + PopoverContent, + PopoverTrigger, + SimpleGrid, + Text, +} from '@chakra-ui/react'; +import { HexAlphaColorPicker, HexColorPicker } from 'react-colorful'; +import { ColorPickerBaseProps } from 'react-colorful/dist/types'; +import { FormCard } from './Form'; +import { convertHexToRGBA } from '@/utils/common'; +import { useController } from 'react-hook-form'; +import { ControlledInput } from './types'; + +export type ColorPickerFormProps = Omit; + +export const SmallColorPickerForm: ControlledInput< + ColorPickerFormProps, + ColorPickerProps['value'] +> = ({ control, controller, ...props }) => { + const { field, fieldState } = useController(controller); + const { value } = field; + + return ( + + + + + + + + + + + + + + + + + ); +}; + +export const ColorPickerForm: ControlledInput = ({ + control, + controller, + ...props +}) => { + const { field, fieldState } = useController(controller); + const { value } = field; + + return ( + + + +
+ {value == null && ( + + No Color + + )} +
+ +
+ +
+
+ ); +}; + +export type ColorPickerProps = { + value?: string | null; + onChange?: (color: string) => void; + supportAlpha?: boolean; +}; + +export function ColorPicker({ value, onChange, supportAlpha, ...rest }: ColorPickerProps) { + const props: Partial> = { + color: value ?? undefined, + onChange, + style: { + width: '100%', + }, + ...rest, + }; + + return supportAlpha ? : ; +} diff --git a/dashboard/src/components/forms/DatePicker.tsx b/dashboard/src/components/forms/DatePicker.tsx new file mode 100644 index 00000000..fc222749 --- /dev/null +++ b/dashboard/src/components/forms/DatePicker.tsx @@ -0,0 +1,84 @@ +import { Calendar, CalendarProps } from 'react-calendar'; +import { FormCard } from './Form'; +import { ControlledInput } from './types'; +import { Icon } from '@chakra-ui/react'; +import { MdChevronLeft, MdChevronRight } from 'react-icons/md'; +import { Text } from '@chakra-ui/layout'; +import { + Input, + InputGroup, + InputRightElement, + Popover, + PopoverBody, + PopoverContent, + PopoverTrigger, +} from '@chakra-ui/react'; +import { AiTwotoneCalendar as CalendarIcon } from 'react-icons/ai'; +import { useController } from 'react-hook-form'; + +export function DatePicker(props: CalendarProps) { + return ( + } + prevLabel={} + nextLabel={} + {...props} + value={props.value ?? null} + /> + ); +} + +export type DatePickerFormProps = Omit; + +export const DatePickerForm: ControlledInput = ({ + control, + controller, + ...props +}) => { + const { + field: { ref, ...field }, + fieldState, + } = useController(controller); + + return ( + + + + ); +}; + +export const SmallDatePickerForm: ControlledInput = ({ + control, + controller, + ...props +}) => { + const { + field: { ref, ...field }, + fieldState, + } = useController(controller); + + const text = field.value?.toLocaleString(undefined, { + dateStyle: 'short', + }); + + return ( + + + + + + + + + + + + + + + + + + ); +}; diff --git a/dashboard/src/components/forms/FilePicker.tsx b/dashboard/src/components/forms/FilePicker.tsx new file mode 100644 index 00000000..b6498f83 --- /dev/null +++ b/dashboard/src/components/forms/FilePicker.tsx @@ -0,0 +1,96 @@ +import { Box, Center, Flex, Text, VStack } from '@chakra-ui/layout'; +import { Icon, Image, useFormControl } from '@chakra-ui/react'; +import { ComponentProps } from 'react'; +import Dropzone, { DropzoneOptions } from 'react-dropzone'; +import { FaFile } from 'react-icons/fa'; +import { MdUpload } from 'react-icons/md'; +import { FormCard } from './Form'; +import { useController } from 'react-hook-form'; +import { ControlledInput } from './types'; +import { useFileUrl } from '@/utils/use-file-url'; + +export type FilePickerFormProps = { + options?: DropzoneOptions; + placeholder?: string; +}; + +export const FilePickerForm: ControlledInput = ({ + control, + controller, + options, + placeholder, +}) => { + const { + field: { value, onChange, ref, ...field }, + fieldState, + } = useController(controller); + + const empty = value == null || value.length === 0; + + return ( + + + {({ getInputProps, getRootProps }) => ( + + + {empty ? ( + + + {placeholder ?? 'Upload Files'} + + ) : ( + + {(value as File[])?.map((file, i) => ( + + ))} + + )} + + )} + + + ); +}; + +function Input({ input }: { input: ComponentProps<'input'> }) { + const inputProps = useFormControl(input); + + return ; +} + +function FilePreview({ file }: { file: File }) { + const url = useFileUrl(file); + + return ( + + {file.type.startsWith('image/') ? ( + {file.name} + ) : ( +
+ +
+ )} + + + {file.name} + + + {file.size} bytes + + +
+ ); +} diff --git a/dashboard/src/components/forms/Form.tsx b/dashboard/src/components/forms/Form.tsx new file mode 100644 index 00000000..7bd31ec0 --- /dev/null +++ b/dashboard/src/components/forms/Form.tsx @@ -0,0 +1,92 @@ +import { + FormControl, + FormControlProps, + FormErrorMessage, + FormLabel, +} from '@chakra-ui/form-control'; +import { Flex, Spacer, Text } from '@chakra-ui/layout'; +import { ReactNode } from 'react'; +import { + Controller, + ControllerProps, + FieldValues, + Path, + UseControllerProps, +} from 'react-hook-form'; + +export function Form(props: FormControlProps) { + return ( + + {props.children} + + ); +} + +export type FormCardProps = { + required?: boolean; + baseControl?: FormControlProps; + /** + * Show an error message if not null + */ + error?: string; + label?: string | ReactNode; + description?: string | ReactNode; + + children: ReactNode; +}; + +export function FormCard({ + label, + description, + required, + baseControl, + children, + error, +}: FormCardProps) { + return ( +
+ + {label} + + + {description} + + + {children} + {error} + + ); +} + +export type FormCardControllerProps< + TFieldValue extends FieldValues, + TName extends Path +> = { + control: Omit; + controller: UseControllerProps; + render: ControllerProps['render']; +}; + +export function FormCardController< + TFieldValue extends FieldValues, + TName extends Path +>({ control, controller, render }: FormCardControllerProps) { + return ( + ( + + {render(props)} + + )} + /> + ); +} diff --git a/dashboard/src/components/forms/InputForm.tsx b/dashboard/src/components/forms/InputForm.tsx new file mode 100644 index 00000000..fa66a62c --- /dev/null +++ b/dashboard/src/components/forms/InputForm.tsx @@ -0,0 +1,18 @@ +import { Input, InputProps } from '@chakra-ui/react'; +import { forwardRef } from 'react'; +import { FormCard } from './Form'; +import { WithControl } from './types'; + +export type InputFormProps = WithControl; + +export const InputForm = forwardRef( + ({ control, ...props }, ref) => { + return ( + + + + ); + } +); + +InputForm.displayName = 'InputForm'; diff --git a/dashboard/src/components/forms/RoleSelect.tsx b/dashboard/src/components/forms/RoleSelect.tsx new file mode 100644 index 00000000..b9a138d5 --- /dev/null +++ b/dashboard/src/components/forms/RoleSelect.tsx @@ -0,0 +1,75 @@ +import { Icon, Image } from '@chakra-ui/react'; +import { useGuildRolesQuery } from '@/api/hooks'; +import { Option, SelectField } from '@/components/forms/SelectField'; +import { toRGB } from '@/utils/common'; +import { Role } from '@/api/bot'; +import { useRouter } from 'next/router'; +import { Params } from '@/pages/guilds/[guild]/features/[feature]'; +import { forwardRef } from 'react'; +import { SelectInstance, Props as SelectProps } from 'chakra-react-select'; +import { Override } from '@/utils/types'; +import { ControlledInput } from './types'; +import { FormCard } from './Form'; +import { useController } from 'react-hook-form'; +import { common } from '@/config/translations/common'; + +import { BsPeopleFill } from 'react-icons/bs'; + +type Props = Override< + SelectProps, + { + value?: string; + onChange: (role: string) => void; + } +>; + +function render(role: Role): Option { + return { + value: role.id, + label: role.name, + icon: + role.icon?.iconUrl != null ? ( + icon + ) : ( + + ), + }; +} + +export const RoleSelect = forwardRef, Props>((props, ref) => { + const { value, onChange, ...rest } = props; + const { guild } = useRouter().query as Params; + const rolesQuery = useGuildRolesQuery(guild); + const isLoading = rolesQuery.isLoading; + + const selected = value != null ? rolesQuery.data?.find((role) => role.id === value) : null; + + return ( + + isDisabled={isLoading} + isLoading={isLoading} + placeholder={} + value={selected != null ? render(selected) : null} + onChange={(e) => e != null && onChange(e.value)} + options={rolesQuery.data?.map(render)} + ref={ref} + {...rest} + /> + ); +}); + +RoleSelect.displayName = 'RolesSelect'; + +export const RoleSelectForm: ControlledInput> = ({ + control, + controller, + ...props +}) => { + const { fieldState, field } = useController(controller); + + return ( + + + + ); +}; diff --git a/dashboard/src/components/forms/SearchBar.tsx b/dashboard/src/components/forms/SearchBar.tsx new file mode 100644 index 00000000..15eb72c4 --- /dev/null +++ b/dashboard/src/components/forms/SearchBar.tsx @@ -0,0 +1,54 @@ +import { + Icon, + IconButton, + Input, + InputGroup, + InputGroupProps, + InputLeftElement, + InputProps, +} from '@chakra-ui/react'; +import { AiOutlineSearch as SearchIcon } from 'react-icons/ai'; +import { common } from '@/config/translations/common'; + +export function SearchBar( + props: { + input?: InputProps; + onSearch?: () => void; + } & InputGroupProps +) { + const t = common.useTranslations(); + const { input, onSearch, ...rest } = props; + + return ( + + + } + onClick={onSearch} + /> + + { + if (e.key === 'Enter') onSearch?.(); + }} + _dark={{ + bg: 'navy.900', + }} + {...input} + /> + + ); +} diff --git a/dashboard/src/components/forms/SelectField.tsx b/dashboard/src/components/forms/SelectField.tsx new file mode 100644 index 00000000..d5f7017b --- /dev/null +++ b/dashboard/src/components/forms/SelectField.tsx @@ -0,0 +1,119 @@ +import { Box, HStack } from '@chakra-ui/layout'; +import { + chakraComponents, + ChakraStylesConfig, + OptionBase, + Props, + Select, + SelectComponent, + SelectInstance, +} from 'chakra-react-select'; +import { forwardRef, ReactNode } from 'react'; +import { dark, light } from '@/theme/colors'; +import { useColorModeValue } from '@chakra-ui/react'; + +const customComponents = { + SingleValue: ({ children, ...props }: any) => { + return ( + + + {props.data.icon} + {children} + + + ); + }, + Option: ({ children, ...props }: any) => { + return ( + + {props.data.icon} {children} + + ); + }, +}; + +const styles: ChakraStylesConfig = { + menuList: (provided) => ({ + ...provided, + _light: { + ...(provided as any)._light, + shadow: light.shadow, + }, + _dark: { + ...(provided as any)._dark, + shadow: dark.shadow, + }, + }), + placeholder: (provided) => ({ + ...provided, + _light: { + color: 'secondaryGray.700', + }, + _dark: { + color: 'secondaryGray.600', + }, + }), + dropdownIndicator: (provided) => ({ + ...provided, + bg: 'transparent', + }), + groupHeading: (provided) => ({ + ...provided, + _light: { + bg: 'secondaryGray.100', + }, + _dark: { + bg: 'navy.800', + }, + }), + option: (provided, options) => ({ + ...provided, + color: options.isSelected && 'white', + _light: { + bg: options.isSelected && light.brand, + _hover: { + bg: options.isSelected ? light.brand : 'white', + }, + }, + _dark: { + bg: options.isSelected && dark.brand, + _hover: { + bg: options.isSelected ? dark.brand : 'whiteAlpha.200', + }, + }, + }), + control: (provided, data) => ({ + ...provided, + rounded: '2xl', + _light: { + borderColor: data.isFocused ? light.brand : 'secondaryGray.500', + bg: 'secondaryGray.300', + }, + _dark: { + borderColor: data.isFocused ? dark.brand : 'navy.600', + bg: 'blackAlpha.300', + }, + }), +}; + +export type Option = OptionBase & { + label: string; + value: string; + icon?: ReactNode; +}; + +export const SelectFieldBase = forwardRef((props, ref) => { + return ( + + focusBorderColor={useColorModeValue(light.brand, dark.brand)} + components={customComponents} + chakraStyles={styles} + ref={ref} + {...props} + /> + ); +}); + +SelectFieldBase.displayName = 'SelectField'; + +export const SelectField = SelectFieldBase as SelectComponent; diff --git a/dashboard/src/components/forms/SwitchField.tsx b/dashboard/src/components/forms/SwitchField.tsx new file mode 100644 index 00000000..a72f92c9 --- /dev/null +++ b/dashboard/src/components/forms/SwitchField.tsx @@ -0,0 +1,64 @@ +// Chakra imports +import { + Box, + Flex, + FormErrorMessage, + FormLabel, + Switch, + SwitchProps, + Text, +} from '@chakra-ui/react'; +import { ReactNode } from 'react'; +import { useController } from 'react-hook-form'; +import { Form } from './Form'; +import { ControlledInput } from './types'; + +export const SwitchFieldForm: ControlledInput<{}, boolean> = ({ + control, + controller, + ...props +}) => { + const { + field: { value, ...field }, + fieldState, + } = useController(controller); + + return ( +
+ + + + {control.label} + + + {control.description} + + + + + {fieldState.error?.message} +
+ ); +}; + +export function SwitchField( + props: { + id?: string; + label?: ReactNode; + desc?: ReactNode; + } & SwitchProps +) { + const { id, label, desc, ...rest } = props; + + return ( + + + + {label} + + {desc} + + + + ); +} diff --git a/dashboard/src/components/forms/TextAreaForm.tsx b/dashboard/src/components/forms/TextAreaForm.tsx new file mode 100644 index 00000000..5254fd23 --- /dev/null +++ b/dashboard/src/components/forms/TextAreaForm.tsx @@ -0,0 +1,18 @@ +import { Textarea, TextareaProps } from '@chakra-ui/react'; +import { forwardRef } from 'react'; +import { FormCard } from './Form'; +import { WithControl } from './types'; + +export type TextAreaFormProps = WithControl; + +export const TextAreaForm = forwardRef( + ({ control, ...input }, ref) => { + return ( + +