From 7149c3930e27afe9c45a553013b29a1be697632f Mon Sep 17 00:00:00 2001 From: masesk Date: Mon, 25 Dec 2023 23:40:49 -0800 Subject: [PATCH 01/21] new typescript with redux --- .eslintrc.cjs | 18 + README.md | 223 +- capture.jpg | Bin 114638 -> 0 bytes index.html | 8 +- package-lock.json | 6037 +++++++++++++---- package.json | 24 +- public/index.html | 86 +- public/manifest.json | 40 +- public/robots.txt | 6 +- src/App.css | 42 + src/apps/AddWebApp.jsx | 406 +- src/apps/ChatClient.jsx | 134 +- src/assets/react.svg | 1 + src/{constants.js => constants.ts} | 80 +- src/css/App.css | 498 +- src/css/index.css | 18 +- src/index.css | 68 + src/{main.jsx => main.tsx} | 168 +- src/redux/actionTypes.js | 23 - src/redux/constants.js | 5 - src/redux/reducers/index.js | 5 - src/redux/reducers/settings.js | 17 - src/redux/reducers/windows.js | 430 -- src/redux/store.js | 6 - src/serviceWorker.js | 282 +- src/setupTests.js | 10 +- src/vite-env.d.ts | 1 + src/waim/AppManager.jsx | 235 +- src/waim/{Header.jsx => Header.tsx} | 411 +- ...{LayoutSelector.jsx => LayoutSelector.tsx} | 200 +- src/waim/MainPage.jsx | 353 +- src/waim/MinBar.jsx | 41 - src/waim/MinBar.tsx | 52 + src/waim/{PaneFrame.jsx => PaneFrame.tsx} | 59 +- src/waim/{Settings.jsx => Settings.tsx} | 662 +- src/waim/{SplitLayout.jsx => SplitLayout.tsx} | 183 +- src/waim/StaticWindow.jsx | 68 - src/waim/StaticWindow.tsx | 93 + src/waim/Window.jsx | 399 -- src/waim/Window.tsx | 385 ++ src/waim/allotment/index.js | 5 - src/waim/allotment/style.css | 198 - src/waim/constant.ts | 26 + src/waim/redux/actionTypes.tmp.ts | 23 + .../actions.js => waim/redux/actions.ts.tmp} | 292 +- src/waim/redux/constants.ts | 5 + src/waim/redux/hooks.ts | 6 + src/waim/redux/reducers/settingsSlice.ts | 29 + src/waim/redux/reducers/windowsSlice.ts | 573 ++ src/waim/redux/store.ts | 21 + tsconfig.json | 25 + tsconfig.node.json | 10 + vite.config.js => vite.config.ts | 3 +- 53 files changed, 8219 insertions(+), 4774 deletions(-) create mode 100644 .eslintrc.cjs delete mode 100644 capture.jpg create mode 100644 src/App.css create mode 100644 src/assets/react.svg rename src/{constants.js => constants.ts} (65%) create mode 100644 src/index.css rename src/{main.jsx => main.tsx} (78%) delete mode 100644 src/redux/actionTypes.js delete mode 100644 src/redux/constants.js delete mode 100644 src/redux/reducers/index.js delete mode 100644 src/redux/reducers/settings.js delete mode 100644 src/redux/reducers/windows.js delete mode 100644 src/redux/store.js create mode 100644 src/vite-env.d.ts rename src/waim/{Header.jsx => Header.tsx} (57%) rename src/waim/{LayoutSelector.jsx => LayoutSelector.tsx} (82%) delete mode 100644 src/waim/MinBar.jsx create mode 100644 src/waim/MinBar.tsx rename src/waim/{PaneFrame.jsx => PaneFrame.tsx} (51%) rename src/waim/{Settings.jsx => Settings.tsx} (73%) rename src/waim/{SplitLayout.jsx => SplitLayout.tsx} (68%) delete mode 100644 src/waim/StaticWindow.jsx create mode 100644 src/waim/StaticWindow.tsx delete mode 100644 src/waim/Window.jsx create mode 100644 src/waim/Window.tsx delete mode 100644 src/waim/allotment/index.js delete mode 100644 src/waim/allotment/style.css create mode 100644 src/waim/constant.ts create mode 100644 src/waim/redux/actionTypes.tmp.ts rename src/{redux/actions.js => waim/redux/actions.ts.tmp} (52%) create mode 100644 src/waim/redux/constants.ts create mode 100644 src/waim/redux/hooks.ts create mode 100644 src/waim/redux/reducers/settingsSlice.ts create mode 100644 src/waim/redux/reducers/windowsSlice.ts create mode 100644 src/waim/redux/store.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json rename vite.config.js => vite.config.ts (67%) diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..d6c9537 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,18 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parser: '@typescript-eslint/parser', + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/README.md b/README.md index 811f273..0d6babe 100644 --- a/README.md +++ b/README.md @@ -1,215 +1,30 @@ - +# React + TypeScript + Vite -# webapp-interface-manager +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +Currently, two official plugins are available: -Web Application Inteface Manager (WAIM) allows the users to show multiple displays served locally or on the web. -WAIM also supports React components; allowing users to add their render components directly to the app manager. +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh -![Presentation](./capture.jpg) +## Expanding the ESLint configuration -## Features -* Add pre-built apps from the host by providing a URL. -* Add apps as React components. -* Multiple instances from a single UI base. -* App-to-app communication using JavaScript events. -* Local (browser) storage of all apps and configurations. -* Window resizing -* Maxmize and minimize apps. -* Easy to build, modify, and redeploy. +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: -## Planned -* Support for database storage. -* User management and authentication. -* User autherization and app access levels. +- Configure the top-level `parserOptions` property like this: - -## Support - -### Supported Browsers: -* **FireFox (v87+)** -* **Chrome (v89+)** -* **MS Edge (v89+)** - -### Supported OS -* -* **Windows 10** -* **Ubuntu 18.04** -* **Ubuntu 20.04** - -**NOTE**: Minimal/initial support for mobile devices and Safari web browsers. - -## Install - -``` -npm install -``` - -## Run -``` -npm run dev -``` - - -## Add Web Apps - -### StaticWindow and Constants - -StaticWindow requires an `appid` field. `appid` referrences the `src/constants.js` to retrieve information about the app. -For each new app in `src/constants.js`, provide: - -* `appid`: key of the new object and the `appid` field. Must be unique otherwise it overrides an existing app. - -* `title`: title of the app. Shown to the user in the menus and at the bottom and top bars. - -* `width`: width of the window that displays the url or React component. - -* `height`: height of the window that displays the url or React component. - -* (OPTIONAL) `url`: url of the page to be displayed. If React components are used, leave this empty. - -* (OPTIONAL) `single`: true or false; whether the manager can spawn a single instance or multiple instance of the app. `false` by default - -* (OPTIONAL) `deletable`: true or false; whether the user can delete the app. `false` by default. - -### As URL to a page - -#### In Code -Using `src/constants.js` to add your pre-built UI endpoint and URL. - -Example: -Change `src/constants.js` to include your new app -```js -export const BUILT_IN_APPS = { - . - .. - ... - mynewapp: { - appid: "mynewapp", - title: "My New App", - width: 800, - height: 600, - url: "http://mywebsite.com" - }, -} -``` - - - -#### In browser -After running WAIM, navigate to the top left and open `Add New Web App` window to add new app providing `appid`, `title`, `url`, `width`, `height`, `deletable`, and `single` from the UI selection. - -The `Add Web App` React component uses the the built in messaging system and hooks into `window.waim.messageHandler` to publish an object to the `__create_new_app__` channel containing the object below: -```js -{ - id: sting, - title: string, - width: number, - height: number, - url: string, - single: true|false, - deletable: true|false, - editable: true|false -} -``` - -WAIM will respond with the appid and a status object on the `__create_new_app_response__` channel in the following format: -```js -{ - id: string, - status: "success"|"failure" -} -``` - -### As a React Component - -1. Change `src/constants.js` to include your new app -```js -export const BUILT_IN_APPS = { - . - .. - ... - mynewapp: { - appid: "mynewapp", - title: "My New App", - width: 800, - height: 600 - }, -} -``` -2. Add your app component to the DOM list in the `AppManager.js` useEffect -```js -{/* Add all static apps below */} -addAppDom("mynewapp", ) -``` - -## Modify - -### Header -* Change `WAIM` to any text or image in `src/main/Header.js`. -* Change the header green background in `src/css/App.css`. Refer to `.header` class. - -### Footer -* Change the footer colors in `src/css/App.css`. Refer to class `.footer`. -* Change the minimize bar in `src/main/MinBar.js` -* Change the minimize bar colors in `src/css/App.css`. Refer to `.min-bar`, `.min-bar-close` and `.min-bar-title` classes. - -### Window -* Change the window structure and buttons from `src/main/Window.js` -* Change the window layout and colors from `src/css/App.css`. Refer to `.window`. - -## Messaging - -* Each application can attempt to access a version of `messageHandler` to subscribe and publish to channels. - -* To grab the instance, use `window.waim.messageHandler`, which contains 2 functions: - * `publish("channelName", data)` - * `listen("channelName", callback)`. In this instance, `callback` is a function that contains 1 parameter: the data sent by the publisher. -* Applications residing on a different domain (as iframes) will not be able to use this feature. -* Application pre-built and residing on the same domain as the server (no CORS issues) can access the waim messaging framework after the webpage is loaded on `window.waim.messageHandler` - - -### Built in Channel -1. `__create_notification__`: Use this channel to show a framework wide notification. ```js -{ - message: string, - type: "info"|"error"|"warning"|"success", - duration: number -> miliseconds +export default { + // other rules... + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + project: ['./tsconfig.json', './tsconfig.node.json'], + tsconfigRootDir: __dirname, + }, } ``` -2. `__create_new_app__`: Use this channel to create new apps from other WAIM apps. -```js -{ - id: sting, - title: string, - width: number, - height: number, - url: string, - single: true|false, - deletable: true|false, - editable: true|false -} -``` - -3. `__create_new_app_response__`: Use this channel to receive a response on an app creation request. -```js -{ - id: string, - status: "success"|"failure" -} -``` - -## Build - -Run the command -``` -npm run build -``` -This will generate a directory named `build`. The `build` directory will contain the newly generate WAIM; with all the custom configurations from `src/constants.js` and all your custom React components. - -## Try -Try out the latest release: -[https://masesk.github.io/webapp-interface-manager](https://masesk.github.io/webapp-interface-manager) - +- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` +- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/capture.jpg b/capture.jpg deleted file mode 100644 index 889079ffa82c046199ed800c47f2439072e6e03f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114638 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 + + - - Web App Interface Manager + WAIM
- + diff --git a/package-lock.json b/package-lock.json index 0d99644..bcb23cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,27 +12,46 @@ "@emotion/styled": "^11.10.6", "@mui/icons-material": "^5.6.1", "@mui/material": "^5.10.7", + "@preact/signals-react": "^2.0.0", + "@reduxjs/toolkit": "^2.0.1", + "@types/ramda": "^0.29.9", + "allotment": "^1.19.3", "ramda": "^0.27.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-redux": "^7.2.2", "react-router-dom": "^6.9.0", "redux": "^4.0.5", - "vite-plugin-svgr": "^2.4.0" + "vite-plugin-svgr": "^4.2.0" }, "devDependencies": { - "@types/react": "^18.0.27", - "@types/react-dom": "^18.0.10", - "@vitejs/plugin-react": "^3.1.0", - "vite": "^4.1.0" + "@types/react": "^18.2.43", + "@types/react-dom": "^18.2.17", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^8.55.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "typescript": "^5.2.2", + "vite": "^5.0.8" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -40,44 +59,45 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", - "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", + "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.0", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.0", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.0", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.6", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -87,12 +107,20 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { - "version": "7.21.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dependencies": { - "@babel/types": "^7.21.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -101,172 +129,164 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "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" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -274,9 +294,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -285,12 +305,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", - "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -300,12 +320,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", - "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -315,43 +335,43 @@ } }, "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", - "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.1.0", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -359,12 +379,12 @@ } }, "node_modules/@babel/types": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -372,23 +392,28 @@ } }, "node_modules/@emotion/babel-plugin": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz", - "integrity": "sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.0", - "@emotion/memoize": "^0.8.0", - "@emotion/serialize": "^1.1.1", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", - "stylis": "4.1.3" + "stylis": "4.2.0" } }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -401,47 +426,47 @@ } }, "node_modules/@emotion/cache": { - "version": "11.10.5", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", - "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", "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" + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" } }, "node_modules/@emotion/hash": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", - "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" }, "node_modules/@emotion/is-prop-valid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", - "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", "dependencies": { - "@emotion/memoize": "^0.8.0" + "@emotion/memoize": "^0.8.1" } }, "node_modules/@emotion/memoize": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", - "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, "node_modules/@emotion/react": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz", - "integrity": "sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==", + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.10.6", - "@emotion/cache": "^11.10.5", - "@emotion/serialize": "^1.1.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@emotion/utils": "^1.2.0", - "@emotion/weak-memoize": "^0.3.0", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { @@ -454,33 +479,33 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", - "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", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", "csstype": "^3.0.2" } }, "node_modules/@emotion/sheet": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", - "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" }, "node_modules/@emotion/styled": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.6.tgz", - "integrity": "sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.10.6", - "@emotion/is-prop-valid": "^1.2.0", - "@emotion/serialize": "^1.1.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@emotion/utils": "^1.2.0" + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" }, "peerDependencies": { "@emotion/react": "^11.0.0-rc.0", @@ -493,32 +518,47 @@ } }, "node_modules/@emotion/unitless": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", - "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", - "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@emotion/utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", - "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" }, "node_modules/@emotion/weak-memoize": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", - "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz", + "integrity": "sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } }, "node_modules/@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.10.tgz", + "integrity": "sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==", "cpu": [ "arm" ], @@ -531,9 +571,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz", + "integrity": "sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==", "cpu": [ "arm64" ], @@ -546,9 +586,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.10.tgz", + "integrity": "sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==", "cpu": [ "x64" ], @@ -561,9 +601,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz", + "integrity": "sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==", "cpu": [ "arm64" ], @@ -576,9 +616,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz", + "integrity": "sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==", "cpu": [ "x64" ], @@ -591,9 +631,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz", + "integrity": "sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==", "cpu": [ "arm64" ], @@ -606,9 +646,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz", + "integrity": "sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==", "cpu": [ "x64" ], @@ -621,9 +661,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz", + "integrity": "sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==", "cpu": [ "arm" ], @@ -636,9 +676,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz", + "integrity": "sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==", "cpu": [ "arm64" ], @@ -651,9 +691,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz", + "integrity": "sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==", "cpu": [ "ia32" ], @@ -666,9 +706,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz", + "integrity": "sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==", "cpu": [ "loong64" ], @@ -681,9 +721,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz", + "integrity": "sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==", "cpu": [ "mips64el" ], @@ -696,9 +736,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz", + "integrity": "sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==", "cpu": [ "ppc64" ], @@ -711,9 +751,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz", + "integrity": "sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==", "cpu": [ "riscv64" ], @@ -726,9 +766,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz", + "integrity": "sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==", "cpu": [ "s390x" ], @@ -741,9 +781,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz", + "integrity": "sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==", "cpu": [ "x64" ], @@ -756,9 +796,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz", + "integrity": "sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==", "cpu": [ "x64" ], @@ -771,9 +811,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz", + "integrity": "sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==", "cpu": [ "x64" ], @@ -786,9 +826,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz", + "integrity": "sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==", "cpu": [ "x64" ], @@ -801,9 +841,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz", + "integrity": "sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==", "cpu": [ "arm64" ], @@ -816,9 +856,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz", + "integrity": "sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==", "cpu": [ "ia32" ], @@ -831,9 +871,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz", + "integrity": "sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==", "cpu": [ "x64" ], @@ -845,22 +885,161 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz", + "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", + "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", + "dependencies": { + "@floating-ui/dom": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "engines": { "node": ">=6.0.0" } @@ -874,39 +1053,43 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.121", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.121.tgz", - "integrity": "sha512-8nJRY76UqlJV+q/Yzo0tgGfPWEOa+4N9rjO81fMmcJqP0I6m54hLDXsjvMg4tvelY5eKHXUK6Tb7en+GHfTqZA==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.3", - "@mui/utils": "^5.11.13", - "@popperjs/core": "^2.11.6", - "clsx": "^1.2.1", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" + "version": "5.0.0-beta.28", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.28.tgz", + "integrity": "sha512-KIoSc5sUFceeCaZTq5MQBapFzhHqMo4kj+4azWaCAjorduhcRQtN+BCgVHmo+gvEjix74bUfxwTqGifnu2fNTg==", + "dependencies": { + "@babel/runtime": "^7.23.5", + "@floating-ui/react-dom": "^2.0.4", + "@mui/types": "^7.2.11", + "@mui/utils": "^5.15.1", + "@popperjs/core": "^2.11.8", + "clsx": "^2.0.0", + "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", @@ -920,27 +1103,27 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.13.tgz", - "integrity": "sha512-lx+GXBR9h/ApZsEP728tl0pyZyuajto+VnBgsoAzw1d5+CbmOo8ZWieKwVUGxZlPT1wMYNUYS5NtKzCli0xYjw==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.1.tgz", + "integrity": "sha512-y/nUEsWHyBzaKYp9zLtqJKrLod/zMNEWpMj488FuQY9QTmqBiyUhI2uh7PVaLqLewXRtdmG6JV0b6T5exyuYRw==", "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { - "version": "5.11.11", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.11.11.tgz", - "integrity": "sha512-Eell3ADmQVE8HOpt/LZ3zIma8JSvPh3XgnhwZLT0k5HRqZcd6F/QDHc7xsWtgz09t+UEFvOYJXjtrwKmLdwwpw==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.1.tgz", + "integrity": "sha512-VPJdBSyap6uOxCb5BLbWbkvd6aeJCp1pQZm8DcZBITCH0NOSv8Mz9c8Zvo8xr4Od7+xyWHUAgvRSL4047pL2WQ==", "dependencies": { - "@babel/runtime": "^7.21.0" + "@babel/runtime": "^7.23.5" }, "engines": { "node": ">=12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@mui/material": "^5.0.0", @@ -954,19 +1137,19 @@ } }, "node_modules/@mui/material": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.11.13.tgz", - "integrity": "sha512-2CnSj43F+159LbGmTLLQs5xbGYMiYlpTByQhP7c7cMX6opbScctBFE1PuyElpAmwW8Ag9ysfZH1d1MFAmJQkjg==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@mui/base": "5.0.0-alpha.121", - "@mui/core-downloads-tracker": "^5.11.13", - "@mui/system": "^5.11.13", - "@mui/types": "^7.2.3", - "@mui/utils": "^5.11.13", - "@types/react-transition-group": "^4.4.5", - "clsx": "^1.2.1", - "csstype": "^3.1.1", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.1.tgz", + "integrity": "sha512-WA5DVyvacxDakVyAhNqu/rRT28ppuuUFFw1bLpmRzrCJ4uw/zLTATcd4WB3YbB+7MdZNEGG/SJNWTDLEIyn3xQ==", + "dependencies": { + "@babel/runtime": "^7.23.5", + "@mui/base": "5.0.0-beta.28", + "@mui/core-downloads-tracker": "^5.15.1", + "@mui/system": "^5.15.1", + "@mui/types": "^7.2.11", + "@mui/utils": "^5.15.1", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.0.0", + "csstype": "^3.1.2", "prop-types": "^15.8.1", "react-is": "^18.2.0", "react-transition-group": "^4.4.5" @@ -976,7 +1159,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -998,12 +1181,12 @@ } }, "node_modules/@mui/private-theming": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.11.13.tgz", - "integrity": "sha512-PJnYNKzW5LIx3R+Zsp6WZVPs6w5sEKJ7mgLNnUXuYB1zo5aX71FVLtV7geyPXRcaN2tsoRNK7h444ED0t7cIjA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.1.tgz", + "integrity": "sha512-wTbzuy5KjSvCPE9UVJktWHJ0b/tD5biavY9wvF+OpYDLPpdXK52vc1hTDxSbdkHIFMkJExzrwO9GvpVAHZBnFQ==", "dependencies": { - "@babel/runtime": "^7.21.0", - "@mui/utils": "^5.11.13", + "@babel/runtime": "^7.23.5", + "@mui/utils": "^5.15.1", "prop-types": "^15.8.1" }, "engines": { @@ -1011,7 +1194,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", @@ -1024,13 +1207,13 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.11.11", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.11.11.tgz", - "integrity": "sha512-wV0UgW4lN5FkDBXefN8eTYeuE9sjyQdg5h94vtwZCUamGQEzmCOtir4AakgmbWMy0x8OLjdEUESn9wnf5J9MOg==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.1.tgz", + "integrity": "sha512-7WDZTJLqGexWDjqE9oAgjU8ak6hEtUw2yQU7SIYID5kLVO2Nj/Wi/KicbLsXnTsJNvSqePIlUIWTBSXwWJCPZw==", "dependencies": { - "@babel/runtime": "^7.21.0", - "@emotion/cache": "^11.10.5", - "csstype": "^3.1.1", + "@babel/runtime": "^7.23.5", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", "prop-types": "^15.8.1" }, "engines": { @@ -1038,7 +1221,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.4.1", @@ -1055,17 +1238,17 @@ } }, "node_modules/@mui/system": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.11.13.tgz", - "integrity": "sha512-OWP0Alp6C8ufnGm9+CZcl3d+OoRXL2PnrRT5ohaMLxvGL9OfNcL2t4JOjMmA0k1UAGd6E/Ygbu5lEPrZSDlvCg==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "@mui/private-theming": "^5.11.13", - "@mui/styled-engine": "^5.11.11", - "@mui/types": "^7.2.3", - "@mui/utils": "^5.11.13", - "clsx": "^1.2.1", - "csstype": "^3.1.1", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.1.tgz", + "integrity": "sha512-LAnP0ls69rqW9eBgI29phIx/lppv+WDGI7b3EJN7VZIqw0RezA0GD7NRpV12BgEYJABEii6z5Q9B5tg7dsX0Iw==", + "dependencies": { + "@babel/runtime": "^7.23.5", + "@mui/private-theming": "^5.15.1", + "@mui/styled-engine": "^5.15.1", + "@mui/types": "^7.2.11", + "@mui/utils": "^5.15.1", + "clsx": "^2.0.0", + "csstype": "^3.1.2", "prop-types": "^15.8.1" }, "engines": { @@ -1073,7 +1256,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -1094,11 +1277,11 @@ } }, "node_modules/@mui/types": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.3.tgz", - "integrity": "sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==", + "version": "7.2.11", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.11.tgz", + "integrity": "sha512-KWe/QTEsFFlFSH+qRYf3zoFEj3z67s+qAuSnMMg+gFwbxG7P96Hm6g300inQL1Wy///gSRb8juX7Wafvp93m3w==", "peerDependencies": { - "@types/react": "*" + "@types/react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -1107,13 +1290,12 @@ } }, "node_modules/@mui/utils": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.11.13.tgz", - "integrity": "sha512-5ltA58MM9euOuUcnvwFJqpLdEugc9XFsRR8Gt4zZNb31XzMfSKJPR4eumulyhsOTK1rWf7K4D63NKFPfX0AxqA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.1.tgz", + "integrity": "sha512-V1/d0E3Bju5YdB59HJf2G0tnHrFEvWLN+f8hAXp9+JSNy/LC2zKyqUfPPahflR6qsI681P8G9r4mEZte/SrrYA==", "dependencies": { - "@babel/runtime": "^7.21.0", - "@types/prop-types": "^15.7.5", - "@types/react-is": "^16.7.1 || ^17.0.0", + "@babel/runtime": "^7.23.5", + "@types/prop-types": "^15.7.11", "prop-types": "^15.8.1", "react-is": "^18.2.0" }, @@ -1122,186 +1304,444 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@remix-run/router": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.4.0.tgz", - "integrity": "sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "engines": { - "node": ">=14" + "node": ">= 8" } }, - "node_modules/@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">= 8" } }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", - "engines": { - "node": ">=10" - }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "type": "opencollective", + "url": "https://opencollective.com/popperjs" } }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", - "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", - "engines": { - "node": ">=10" - }, + "node_modules/@preact/signals-core": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.5.1.tgz", + "integrity": "sha512-dE6f+WCX5ZUDwXzUIWNMhhglmuLpqJhuy3X3xHrhZYI0Hm2LyQwOu0l9mdPiWrVNsE+Q7txOnJPgtIqHCYoBVA==", "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", - "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", - "engines": { - "node": ">=10" + "node_modules/@preact/signals-react": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-2.0.0.tgz", + "integrity": "sha512-tMVi2SXFXlojaiPNWa8dlYaidR/XvEgMSp+iymKJgMssBM/QVtUQrodKZek1BJju+dkVHiyeuQHmkuLOI9oyNw==", + "dependencies": { + "@preact/signals-core": "^1.5.1", + "use-sync-external-store": "^1.2.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/preact" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": "^16.14.0 || 17.x || 18.x" } }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "node_modules/@reduxjs/toolkit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.0.1.tgz", + "integrity": "sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.0", + "redux-thunk": "^3.1.0", + "reselect": "^5.0.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } } }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "node_modules/@reduxjs/toolkit/node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, + "node_modules/@reduxjs/toolkit/node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", "peerDependencies": { - "@babel/core": "^7.0.0-0" + "redux": "^5.0.0" } }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "node_modules/@remix-run/router": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.0.tgz", + "integrity": "sha512-WOHih+ClN7N8oHk9N4JUiMxQJmRVaOxcg8w7F/oHUXzJt920ekASLI/7cYX8XkntDWRhLZtsk6LbGrkgOAvi5A==", "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=14.0.0" } }, - "node_modules/@svgr/babel-preset": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=10" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.1.tgz", + "integrity": "sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.1.tgz", + "integrity": "sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.1.tgz", + "integrity": "sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.1.tgz", + "integrity": "sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.1.tgz", + "integrity": "sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.1.tgz", + "integrity": "sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.1.tgz", + "integrity": "sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.1.tgz", + "integrity": "sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz", + "integrity": "sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.1.tgz", + "integrity": "sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.1.tgz", + "integrity": "sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.1.tgz", + "integrity": "sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz", + "integrity": "sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" }, "funding": { "type": "github", @@ -1312,34 +1752,59 @@ } }, "node_modules/@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@svgr/core/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "dependencies": { - "@babel/types": "^7.20.0", + "@babel/types": "^7.21.3", "entities": "^4.4.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -1347,54 +1812,109 @@ } }, "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@svgr/core": "^6.0.0" + "@svgr/core": "*" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" } }, "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/ramda": { + "version": "0.29.9", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.29.9.tgz", + "integrity": "sha512-X3yEG6tQCWBcUAql+RPC/O1Hm9BSU+MXu2wJnCETuAgUlrEDwTA1kIOdEEE4YXDtf0zfQLHa9CCE7WYp9kqPIQ==", + "dependencies": { + "types-ramda": "^0.29.6" + } }, "node_modules/@types/react": { - "version": "18.0.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", - "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "version": "18.2.45", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz", + "integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1402,63 +1922,319 @@ } }, "node_modules/@types/react-dom": { - "version": "18.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", - "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "version": "18.2.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", + "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", "dev": true, "dependencies": { "@types/react": "*" } }, - "node_modules/@types/react-is": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", - "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "node_modules/@types/react-redux": { + "version": "7.1.33", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz", + "integrity": "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", "dependencies": { "@types/react": "*" } }, - "node_modules/@types/react-redux": { - "version": "7.1.25", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.25.tgz", - "integrity": "sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==", + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", + "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/type-utils": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", + "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", + "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", + "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", + "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", + "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", + "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.15.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", + "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.5", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "node_modules/allotment": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/allotment/-/allotment-1.19.3.tgz", + "integrity": "sha512-StPCZLGPNG9KhXeNCrqTkIK09s7D6+8n0w754SRY8PUvDXFLLovrFFo4ubd82fytRWS5bFntsWA5SX4sODxuiw==", "dependencies": { - "@types/react": "*" + "classnames": "^2.3.0", + "eventemitter3": "^5.0.0", + "lodash.clamp": "^4.0.0", + "lodash.debounce": "^4.0.0", + "lodash.isequal": "^4.5.0", + "use-resize-observer": "^9.0.0" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" } }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "node_modules/@vitejs/plugin-react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", - "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "@babel/core": "^7.20.12", - "@babel/plugin-transform-react-jsx-self": "^7.18.6", - "@babel/plugin-transform-react-jsx-source": "^7.19.6", - "magic-string": "^0.27.0", - "react-refresh": "^0.14.0" - }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.1.0-beta.0" + "node": ">=8" } }, "node_modules/ansi-styles": { @@ -1472,6 +2248,20 @@ "node": ">=4" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/babel-plugin-macros": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", @@ -1486,10 +2276,38 @@ "npm": ">=6" } }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "funding": [ { "type": "opencollective", @@ -1498,13 +2316,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -1533,9 +2355,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001465", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", - "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", "funding": [ { "type": "opencollective", @@ -1544,6 +2366,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -1560,10 +2386,15 @@ "node": ">=4" } }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", "engines": { "node": ">=6" } @@ -1581,10 +2412,16 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/cosmiconfig": { "version": "7.1.0", @@ -1601,10 +2438,24 @@ "node": ">=10" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/debug": { "version": "4.3.4", @@ -1622,6 +2473,36 @@ } } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -1631,15 +2512,24 @@ "csstype": "^3.0.2" } }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/electron-to-chromium": { - "version": "1.4.328", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", - "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==" + "version": "1.4.615", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", + "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==" }, "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { "node": ">=0.12" }, @@ -1656,9 +2546,9 @@ } }, "node_modules/esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz", + "integrity": "sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -1667,28 +2557,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" + "@esbuild/aix-ppc64": "0.19.10", + "@esbuild/android-arm": "0.19.10", + "@esbuild/android-arm64": "0.19.10", + "@esbuild/android-x64": "0.19.10", + "@esbuild/darwin-arm64": "0.19.10", + "@esbuild/darwin-x64": "0.19.10", + "@esbuild/freebsd-arm64": "0.19.10", + "@esbuild/freebsd-x64": "0.19.10", + "@esbuild/linux-arm": "0.19.10", + "@esbuild/linux-arm64": "0.19.10", + "@esbuild/linux-ia32": "0.19.10", + "@esbuild/linux-loong64": "0.19.10", + "@esbuild/linux-mips64el": "0.19.10", + "@esbuild/linux-ppc64": "0.19.10", + "@esbuild/linux-riscv64": "0.19.10", + "@esbuild/linux-s390x": "0.19.10", + "@esbuild/linux-x64": "0.19.10", + "@esbuild/netbsd-x64": "0.19.10", + "@esbuild/openbsd-x64": "0.19.10", + "@esbuild/sunos-x64": "0.19.10", + "@esbuild/win32-arm64": "0.19.10", + "@esbuild/win32-ia32": "0.19.10", + "@esbuild/win32-x64": "0.19.10" } }, "node_modules/escalade": { @@ -1704,23 +2595,409 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { - "node": ">=0.8.0" + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz", + "integrity": "sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "optional": true, "os": [ @@ -1731,9 +3008,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -1743,6 +3023,38 @@ "node": ">=6.9.0" } }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -1751,17 +3063,32 @@ "node": ">=4" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -1770,6 +3097,17 @@ "node": ">=4" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -1783,6 +3121,24 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.3.tgz", + "integrity": "sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -1798,27 +3154,108 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -1830,11 +3267,29 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -1846,11 +3301,69 @@ "node": ">=6" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.clamp": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz", + "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -1862,6 +3375,14 @@ "loose-envify": "cli.js" } }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -1870,16 +3391,38 @@ "yallist": "^3.0.2" } }, - "node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=12" + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/ms": { @@ -1888,9 +3431,15 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1898,10 +3447,25 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/object-assign": { "version": "4.1.1", @@ -1911,6 +3475,62 @@ "node": ">=0.10.0" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -1939,6 +3559,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -1969,9 +3616,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "funding": [ { "type": "opencollective", @@ -1980,10 +3627,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -1991,6 +3642,15 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -2006,6 +3666,35 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ramda": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", @@ -2078,29 +3767,29 @@ } }, "node_modules/react-router": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.9.0.tgz", - "integrity": "sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.0.tgz", + "integrity": "sha512-hGZ0HXbwz3zw52pLZV3j3+ec+m/PQ9cTpBvqjFQmy2XVUWGn5MD+31oXHb6dVTxYzmAeaiUBYjkoNz66n3RGCg==", "dependencies": { - "@remix-run/router": "1.4.0" + "@remix-run/router": "1.14.0" }, "engines": { - "node": ">=14" + "node": ">=14.0.0" }, "peerDependencies": { "react": ">=16.8" } }, "node_modules/react-router-dom": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.9.0.tgz", - "integrity": "sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.0.tgz", + "integrity": "sha512-1dUdVj3cwc1npzJaf23gulB562ESNvxf7E4x8upNJycqyUm5BRRZ6dd3LrlzhtLaMrwOCO8R0zoiYxdaJx4LlQ==", "dependencies": { - "@remix-run/router": "1.4.0", - "react-router": "6.9.0" + "@remix-run/router": "1.14.0", + "react-router": "6.21.0" }, "engines": { - "node": ">=14" + "node": ">=14.0.0" }, "peerDependencies": { "react": ">=16.8", @@ -2131,16 +3820,21 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/reselect": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.0.1.tgz", + "integrity": "sha512-D72j2ubjgHpvuCiORWkOUxndHJrxDaSolheiz5CO+roz8ka97/4msh2E8F5qay4GawR5vzBt5MkbDHT+Rdy/Wg==" }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -2159,21 +3853,82 @@ "node": ">=4" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rollup": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.19.1.tgz", - "integrity": "sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.1.tgz", + "integrity": "sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==", "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.9.1", + "@rollup/rollup-android-arm64": "4.9.1", + "@rollup/rollup-darwin-arm64": "4.9.1", + "@rollup/rollup-darwin-x64": "4.9.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.1", + "@rollup/rollup-linux-arm64-gnu": "4.9.1", + "@rollup/rollup-linux-arm64-musl": "4.9.1", + "@rollup/rollup-linux-riscv64-gnu": "4.9.1", + "@rollup/rollup-linux-x64-gnu": "4.9.1", + "@rollup/rollup-linux-x64-musl": "4.9.1", + "@rollup/rollup-win32-arm64-msvc": "4.9.1", + "@rollup/rollup-win32-ia32-msvc": "4.9.1", + "@rollup/rollup-win32-x64-msvc": "4.9.1", "fsevents": "~2.3.2" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -2183,11 +3938,75 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, "node_modules/source-map": { @@ -2206,10 +4025,34 @@ "node": ">=0.10.0" } }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/stylis": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", - "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" }, "node_modules/supports-color": { "version": "5.5.0", @@ -2238,6 +4081,12 @@ "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -2246,10 +4095,89 @@ "node": ">=4" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-toolbelt": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz", + "integrity": "sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/types-ramda": { + "version": "0.29.6", + "resolved": "https://registry.npmjs.org/types-ramda/-/types-ramda-0.29.6.tgz", + "integrity": "sha512-VJoOk1uYNh9ZguGd3eZvqkdhD4hTGtnjRBUx5Zc0U9ftmnCgiWcSj/lsahzKunbiwRje1MxxNkEy1UdcXRCpYw==", + "dependencies": { + "ts-toolbelt": "^9.6.0" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "funding": [ { "type": "opencollective", @@ -2258,6 +4186,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -2265,34 +4197,66 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" } }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-resize-observer": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", + "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", + "dependencies": { + "@juggle/resize-observer": "^3.3.1" + }, + "peerDependencies": { + "react": "16.8.0 - 18", + "react-dom": "16.8.0 - 18" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/vite": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz", - "integrity": "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", + "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", "dependencies": { - "esbuild": "^0.16.14", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.10.0" + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -2305,6 +4269,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -2320,17 +4287,39 @@ } }, "node_modules/vite-plugin-svgr": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-2.4.0.tgz", - "integrity": "sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz", + "integrity": "sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==", "dependencies": { - "@rollup/pluginutils": "^5.0.2", - "@svgr/core": "^6.5.1" + "@rollup/pluginutils": "^5.0.5", + "@svgr/core": "^8.1.0", + "@svgr/plugin-jsx": "^8.1.0" }, "peerDependencies": { - "vite": "^2.6.0 || 3 || 4" + "vite": "^2.6.0 || 3 || 4 || 5" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -2343,276 +4332,299 @@ "engines": { "node": ">= 6" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "requires": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" } }, "@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==" + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==" }, "@babel/core": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", - "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", + "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.0", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.0", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.0", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.6", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } } }, "@babel/generator": { - "version": "7.21.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "requires": { - "@babel/types": "^7.21.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" }, "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "requires": { - "@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" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true }, "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "requires": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" }, "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==" + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==" }, "@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==" + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==" }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", - "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", - "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", "requires": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" } }, "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", - "requires": { - "@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.1.0", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, "@emotion/babel-plugin": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz", - "integrity": "sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", "requires": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.0", - "@emotion/memoize": "^0.8.0", - "@emotion/serialize": "^1.1.1", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", - "stylis": "4.1.3" + "stylis": "4.2.0" }, "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2621,246 +4633,355 @@ } }, "@emotion/cache": { - "version": "11.10.5", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", - "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", "requires": { - "@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" + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" } }, "@emotion/hash": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", - "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" }, "@emotion/is-prop-valid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", - "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", "requires": { - "@emotion/memoize": "^0.8.0" + "@emotion/memoize": "^0.8.1" } }, "@emotion/memoize": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", - "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, "@emotion/react": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz", - "integrity": "sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==", + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", "requires": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.10.6", - "@emotion/cache": "^11.10.5", - "@emotion/serialize": "^1.1.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@emotion/utils": "^1.2.0", - "@emotion/weak-memoize": "^0.3.0", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", "hoist-non-react-statics": "^3.3.1" } }, "@emotion/serialize": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", - "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", - "requires": { - "@emotion/hash": "^0.9.0", - "@emotion/memoize": "^0.8.0", - "@emotion/unitless": "^0.8.0", - "@emotion/utils": "^1.2.0", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "requires": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", "csstype": "^3.0.2" } }, "@emotion/sheet": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", - "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" }, "@emotion/styled": { - "version": "11.10.6", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.6.tgz", - "integrity": "sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", "requires": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.10.6", - "@emotion/is-prop-valid": "^1.2.0", - "@emotion/serialize": "^1.1.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@emotion/utils": "^1.2.0" + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" } }, "@emotion/unitless": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", - "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" }, "@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", - "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", "requires": {} }, "@emotion/utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", - "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" }, "@emotion/weak-memoize": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", - "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "@esbuild/aix-ppc64": { + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz", + "integrity": "sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==", + "optional": true }, "@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.10.tgz", + "integrity": "sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==", "optional": true }, "@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz", + "integrity": "sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==", "optional": true }, "@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.10.tgz", + "integrity": "sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==", "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz", + "integrity": "sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==", "optional": true }, "@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz", + "integrity": "sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==", "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz", + "integrity": "sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==", "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz", + "integrity": "sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==", "optional": true }, "@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz", + "integrity": "sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==", "optional": true }, "@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz", + "integrity": "sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==", "optional": true }, "@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz", + "integrity": "sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==", "optional": true }, "@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz", + "integrity": "sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==", "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz", + "integrity": "sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==", "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz", + "integrity": "sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==", "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz", + "integrity": "sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==", "optional": true }, "@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz", + "integrity": "sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==", "optional": true }, "@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz", + "integrity": "sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==", "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz", + "integrity": "sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==", "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz", + "integrity": "sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==", "optional": true }, "@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz", + "integrity": "sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==", "optional": true }, "@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz", + "integrity": "sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==", "optional": true }, "@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz", + "integrity": "sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==", "optional": true }, "@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz", + "integrity": "sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==", "optional": true }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + } + } + }, + "@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true + }, + "@floating-ui/core": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz", + "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==", + "requires": { + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "requires": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/react-dom": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", + "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", + "requires": { + "@floating-ui/dom": "^1.5.1" + } + }, + "@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" }, "@jridgewell/set-array": { "version": "1.1.2", @@ -2868,263 +4989,476 @@ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + }, "@mui/base": { - "version": "5.0.0-alpha.121", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.121.tgz", - "integrity": "sha512-8nJRY76UqlJV+q/Yzo0tgGfPWEOa+4N9rjO81fMmcJqP0I6m54hLDXsjvMg4tvelY5eKHXUK6Tb7en+GHfTqZA==", - "requires": { - "@babel/runtime": "^7.21.0", - "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.3", - "@mui/utils": "^5.11.13", - "@popperjs/core": "^2.11.6", - "clsx": "^1.2.1", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" + "version": "5.0.0-beta.28", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.28.tgz", + "integrity": "sha512-KIoSc5sUFceeCaZTq5MQBapFzhHqMo4kj+4azWaCAjorduhcRQtN+BCgVHmo+gvEjix74bUfxwTqGifnu2fNTg==", + "requires": { + "@babel/runtime": "^7.23.5", + "@floating-ui/react-dom": "^2.0.4", + "@mui/types": "^7.2.11", + "@mui/utils": "^5.15.1", + "@popperjs/core": "^2.11.8", + "clsx": "^2.0.0", + "prop-types": "^15.8.1" } }, "@mui/core-downloads-tracker": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.11.13.tgz", - "integrity": "sha512-lx+GXBR9h/ApZsEP728tl0pyZyuajto+VnBgsoAzw1d5+CbmOo8ZWieKwVUGxZlPT1wMYNUYS5NtKzCli0xYjw==" + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.1.tgz", + "integrity": "sha512-y/nUEsWHyBzaKYp9zLtqJKrLod/zMNEWpMj488FuQY9QTmqBiyUhI2uh7PVaLqLewXRtdmG6JV0b6T5exyuYRw==" }, "@mui/icons-material": { - "version": "5.11.11", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.11.11.tgz", - "integrity": "sha512-Eell3ADmQVE8HOpt/LZ3zIma8JSvPh3XgnhwZLT0k5HRqZcd6F/QDHc7xsWtgz09t+UEFvOYJXjtrwKmLdwwpw==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.1.tgz", + "integrity": "sha512-VPJdBSyap6uOxCb5BLbWbkvd6aeJCp1pQZm8DcZBITCH0NOSv8Mz9c8Zvo8xr4Od7+xyWHUAgvRSL4047pL2WQ==", "requires": { - "@babel/runtime": "^7.21.0" + "@babel/runtime": "^7.23.5" } }, "@mui/material": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.11.13.tgz", - "integrity": "sha512-2CnSj43F+159LbGmTLLQs5xbGYMiYlpTByQhP7c7cMX6opbScctBFE1PuyElpAmwW8Ag9ysfZH1d1MFAmJQkjg==", - "requires": { - "@babel/runtime": "^7.21.0", - "@mui/base": "5.0.0-alpha.121", - "@mui/core-downloads-tracker": "^5.11.13", - "@mui/system": "^5.11.13", - "@mui/types": "^7.2.3", - "@mui/utils": "^5.11.13", - "@types/react-transition-group": "^4.4.5", - "clsx": "^1.2.1", - "csstype": "^3.1.1", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.1.tgz", + "integrity": "sha512-WA5DVyvacxDakVyAhNqu/rRT28ppuuUFFw1bLpmRzrCJ4uw/zLTATcd4WB3YbB+7MdZNEGG/SJNWTDLEIyn3xQ==", + "requires": { + "@babel/runtime": "^7.23.5", + "@mui/base": "5.0.0-beta.28", + "@mui/core-downloads-tracker": "^5.15.1", + "@mui/system": "^5.15.1", + "@mui/types": "^7.2.11", + "@mui/utils": "^5.15.1", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.0.0", + "csstype": "^3.1.2", "prop-types": "^15.8.1", "react-is": "^18.2.0", "react-transition-group": "^4.4.5" } }, "@mui/private-theming": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.11.13.tgz", - "integrity": "sha512-PJnYNKzW5LIx3R+Zsp6WZVPs6w5sEKJ7mgLNnUXuYB1zo5aX71FVLtV7geyPXRcaN2tsoRNK7h444ED0t7cIjA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.1.tgz", + "integrity": "sha512-wTbzuy5KjSvCPE9UVJktWHJ0b/tD5biavY9wvF+OpYDLPpdXK52vc1hTDxSbdkHIFMkJExzrwO9GvpVAHZBnFQ==", "requires": { - "@babel/runtime": "^7.21.0", - "@mui/utils": "^5.11.13", + "@babel/runtime": "^7.23.5", + "@mui/utils": "^5.15.1", "prop-types": "^15.8.1" } }, "@mui/styled-engine": { - "version": "5.11.11", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.11.11.tgz", - "integrity": "sha512-wV0UgW4lN5FkDBXefN8eTYeuE9sjyQdg5h94vtwZCUamGQEzmCOtir4AakgmbWMy0x8OLjdEUESn9wnf5J9MOg==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.1.tgz", + "integrity": "sha512-7WDZTJLqGexWDjqE9oAgjU8ak6hEtUw2yQU7SIYID5kLVO2Nj/Wi/KicbLsXnTsJNvSqePIlUIWTBSXwWJCPZw==", "requires": { - "@babel/runtime": "^7.21.0", - "@emotion/cache": "^11.10.5", - "csstype": "^3.1.1", + "@babel/runtime": "^7.23.5", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", "prop-types": "^15.8.1" } }, "@mui/system": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.11.13.tgz", - "integrity": "sha512-OWP0Alp6C8ufnGm9+CZcl3d+OoRXL2PnrRT5ohaMLxvGL9OfNcL2t4JOjMmA0k1UAGd6E/Ygbu5lEPrZSDlvCg==", - "requires": { - "@babel/runtime": "^7.21.0", - "@mui/private-theming": "^5.11.13", - "@mui/styled-engine": "^5.11.11", - "@mui/types": "^7.2.3", - "@mui/utils": "^5.11.13", - "clsx": "^1.2.1", - "csstype": "^3.1.1", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.1.tgz", + "integrity": "sha512-LAnP0ls69rqW9eBgI29phIx/lppv+WDGI7b3EJN7VZIqw0RezA0GD7NRpV12BgEYJABEii6z5Q9B5tg7dsX0Iw==", + "requires": { + "@babel/runtime": "^7.23.5", + "@mui/private-theming": "^5.15.1", + "@mui/styled-engine": "^5.15.1", + "@mui/types": "^7.2.11", + "@mui/utils": "^5.15.1", + "clsx": "^2.0.0", + "csstype": "^3.1.2", "prop-types": "^15.8.1" } }, "@mui/types": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.3.tgz", - "integrity": "sha512-tZ+CQggbe9Ol7e/Fs5RcKwg/woU+o8DCtOnccX6KmbBc7YrfqMYEYuaIcXHuhpT880QwNkZZ3wQwvtlDFA2yOw==", + "version": "7.2.11", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.11.tgz", + "integrity": "sha512-KWe/QTEsFFlFSH+qRYf3zoFEj3z67s+qAuSnMMg+gFwbxG7P96Hm6g300inQL1Wy///gSRb8juX7Wafvp93m3w==", "requires": {} }, - "@mui/utils": { - "version": "5.11.13", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.11.13.tgz", - "integrity": "sha512-5ltA58MM9euOuUcnvwFJqpLdEugc9XFsRR8Gt4zZNb31XzMfSKJPR4eumulyhsOTK1rWf7K4D63NKFPfX0AxqA==", + "@mui/utils": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.1.tgz", + "integrity": "sha512-V1/d0E3Bju5YdB59HJf2G0tnHrFEvWLN+f8hAXp9+JSNy/LC2zKyqUfPPahflR6qsI681P8G9r4mEZte/SrrYA==", + "requires": { + "@babel/runtime": "^7.23.5", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, + "@preact/signals-core": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.5.1.tgz", + "integrity": "sha512-dE6f+WCX5ZUDwXzUIWNMhhglmuLpqJhuy3X3xHrhZYI0Hm2LyQwOu0l9mdPiWrVNsE+Q7txOnJPgtIqHCYoBVA==" + }, + "@preact/signals-react": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@preact/signals-react/-/signals-react-2.0.0.tgz", + "integrity": "sha512-tMVi2SXFXlojaiPNWa8dlYaidR/XvEgMSp+iymKJgMssBM/QVtUQrodKZek1BJju+dkVHiyeuQHmkuLOI9oyNw==", "requires": { - "@babel/runtime": "^7.21.0", - "@types/prop-types": "^15.7.5", - "@types/react-is": "^16.7.1 || ^17.0.0", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" + "@preact/signals-core": "^1.5.1", + "use-sync-external-store": "^1.2.0" } }, - "@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" + "@reduxjs/toolkit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.0.1.tgz", + "integrity": "sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==", + "requires": { + "immer": "^10.0.3", + "redux": "^5.0.0", + "redux-thunk": "^3.1.0", + "reselect": "^5.0.1" + }, + "dependencies": { + "redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, + "redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "requires": {} + } + } }, "@remix-run/router": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.4.0.tgz", - "integrity": "sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.0.tgz", + "integrity": "sha512-WOHih+ClN7N8oHk9N4JUiMxQJmRVaOxcg8w7F/oHUXzJt920ekASLI/7cYX8XkntDWRhLZtsk6LbGrkgOAvi5A==" }, "@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "requires": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^2.3.1" } }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.1.tgz", + "integrity": "sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==", + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.1.tgz", + "integrity": "sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==", + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.1.tgz", + "integrity": "sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==", + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.1.tgz", + "integrity": "sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==", + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.1.tgz", + "integrity": "sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==", + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.1.tgz", + "integrity": "sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==", + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.1.tgz", + "integrity": "sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==", + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.1.tgz", + "integrity": "sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==", + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz", + "integrity": "sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==", + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.1.tgz", + "integrity": "sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==", + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.1.tgz", + "integrity": "sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==", + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.1.tgz", + "integrity": "sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==", + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz", + "integrity": "sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==", + "optional": true + }, "@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "requires": {} }, "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", - "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", "requires": {} }, "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", - "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", "requires": {} }, "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "requires": {} }, "@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "requires": {} }, "@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "requires": {} }, "@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "requires": {} }, "@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "requires": {} }, "@svgr/babel-preset": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" } }, "@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "requires": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "dependencies": { + "cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "requires": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + } + } } }, "@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "requires": { - "@babel/types": "^7.20.0", + "@babel/types": "^7.21.3", "entities": "^4.4.0" } }, "@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "requires": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" } }, + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, "@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", "requires": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "@types/ramda": { + "version": "0.29.9", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.29.9.tgz", + "integrity": "sha512-X3yEG6tQCWBcUAql+RPC/O1Hm9BSU+MXu2wJnCETuAgUlrEDwTA1kIOdEEE4YXDtf0zfQLHa9CCE7WYp9kqPIQ==", + "requires": { + "types-ramda": "^0.29.6" + } }, "@types/react": { - "version": "18.0.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", - "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "version": "18.2.45", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz", + "integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3132,26 +5466,18 @@ } }, "@types/react-dom": { - "version": "18.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", - "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "version": "18.2.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", + "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", "dev": true, "requires": { "@types/react": "*" } }, - "@types/react-is": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", - "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", - "requires": { - "@types/react": "*" - } - }, "@types/react-redux": { - "version": "7.1.25", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.25.tgz", - "integrity": "sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==", + "version": "7.1.33", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz", + "integrity": "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==", "requires": { "@types/hoist-non-react-statics": "^3.3.0", "@types/react": "*", @@ -3160,31 +5486,187 @@ } }, "@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", "requires": { "@types/react": "*" } }, "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", + "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/type-utils": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/parser": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", + "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", + "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", + "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/types": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", + "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", + "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "semver": "^7.5.4" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", + "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.15.0", + "eslint-visitor-keys": "^3.4.1" + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, "@vitejs/plugin-react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", - "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", + "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", "dev": true, "requires": { - "@babel/core": "^7.20.12", - "@babel/plugin-transform-react-jsx-self": "^7.18.6", - "@babel/plugin-transform-react-jsx-source": "^7.19.6", - "magic-string": "^0.27.0", + "@babel/core": "^7.23.5", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.0" } }, + "acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "allotment": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/allotment/-/allotment-1.19.3.tgz", + "integrity": "sha512-StPCZLGPNG9KhXeNCrqTkIK09s7D6+8n0w754SRY8PUvDXFLLovrFFo4ubd82fytRWS5bFntsWA5SX4sODxuiw==", + "requires": { + "classnames": "^2.3.0", + "eventemitter3": "^5.0.0", + "lodash.clamp": "^4.0.0", + "lodash.debounce": "^4.0.0", + "lodash.isequal": "^4.5.0", + "use-resize-observer": "^9.0.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -3193,6 +5675,17 @@ "color-convert": "^1.9.0" } }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "babel-plugin-macros": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", @@ -3203,15 +5696,40 @@ "resolve": "^1.19.0" } }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" } }, "callsites": { @@ -3225,9 +5743,9 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "caniuse-lite": { - "version": "1.0.30001465", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", - "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==" + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==" }, "chalk": { "version": "2.4.2", @@ -3239,10 +5757,15 @@ "supports-color": "^5.3.0" } }, + "classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==" }, "color-convert": { "version": "1.9.3", @@ -3257,10 +5780,16 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "cosmiconfig": { "version": "7.1.0", @@ -3274,10 +5803,21 @@ "yaml": "^1.10.0" } }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "debug": { "version": "4.3.4", @@ -3287,6 +5827,30 @@ "ms": "2.1.2" } }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -3296,107 +5860,450 @@ "csstype": "^3.0.2" } }, - "electron-to-chromium": { - "version": "1.4.328", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", - "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==" + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "electron-to-chromium": { + "version": "1.4.615", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", + "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==" + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "esbuild": { + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz", + "integrity": "sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==", + "requires": { + "@esbuild/aix-ppc64": "0.19.10", + "@esbuild/android-arm": "0.19.10", + "@esbuild/android-arm64": "0.19.10", + "@esbuild/android-x64": "0.19.10", + "@esbuild/darwin-arm64": "0.19.10", + "@esbuild/darwin-x64": "0.19.10", + "@esbuild/freebsd-arm64": "0.19.10", + "@esbuild/freebsd-x64": "0.19.10", + "@esbuild/linux-arm": "0.19.10", + "@esbuild/linux-arm64": "0.19.10", + "@esbuild/linux-ia32": "0.19.10", + "@esbuild/linux-loong64": "0.19.10", + "@esbuild/linux-mips64el": "0.19.10", + "@esbuild/linux-ppc64": "0.19.10", + "@esbuild/linux-riscv64": "0.19.10", + "@esbuild/linux-s390x": "0.19.10", + "@esbuild/linux-x64": "0.19.10", + "@esbuild/netbsd-x64": "0.19.10", + "@esbuild/openbsd-x64": "0.19.10", + "@esbuild/sunos-x64": "0.19.10", + "@esbuild/win32-arm64": "0.19.10", + "@esbuild/win32-ia32": "0.19.10", + "@esbuild/win32-x64": "0.19.10" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "requires": {} + }, + "eslint-plugin-react-refresh": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz", + "integrity": "sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "reusify": "^1.0.4" } }, - "esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", - "requires": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } }, "find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "requires": { - "function-bind": "^1.1.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -3412,6 +6319,17 @@ } } }, + "ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true + }, + "immer": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.3.tgz", + "integrity": "sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==" + }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -3421,44 +6339,174 @@ "resolve-from": "^4.0.0" } }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "requires": { + "hasown": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { - "has": "^1.0.3" + "is-extglob": "^2.1.1" } }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.clamp": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz", + "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3467,6 +6515,14 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -3475,13 +6531,29 @@ "yallist": "^3.0.2" } }, - "magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "brace-expansion": "^1.1.7" } }, "ms": { @@ -3490,20 +6562,76 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } }, "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3523,6 +6651,24 @@ "lines-and-columns": "^1.1.6" } }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -3544,15 +6690,21 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, "prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -3570,6 +6722,18 @@ } } }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "ramda": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", @@ -3624,20 +6788,20 @@ "dev": true }, "react-router": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.9.0.tgz", - "integrity": "sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.0.tgz", + "integrity": "sha512-hGZ0HXbwz3zw52pLZV3j3+ec+m/PQ9cTpBvqjFQmy2XVUWGn5MD+31oXHb6dVTxYzmAeaiUBYjkoNz66n3RGCg==", "requires": { - "@remix-run/router": "1.4.0" + "@remix-run/router": "1.14.0" } }, "react-router-dom": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.9.0.tgz", - "integrity": "sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.0.tgz", + "integrity": "sha512-1dUdVj3cwc1npzJaf23gulB562ESNvxf7E4x8upNJycqyUm5BRRZ6dd3LrlzhtLaMrwOCO8R0zoiYxdaJx4LlQ==", "requires": { - "@remix-run/router": "1.4.0", - "react-router": "6.9.0" + "@remix-run/router": "1.14.0", + "react-router": "6.21.0" } }, "react-transition-group": { @@ -3660,16 +6824,21 @@ } }, "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "reselect": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.0.1.tgz", + "integrity": "sha512-D72j2ubjgHpvuCiORWkOUxndHJrxDaSolheiz5CO+roz8ka97/4msh2E8F5qay4GawR5vzBt5MkbDHT+Rdy/Wg==" }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -3679,14 +6848,51 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "rollup": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.19.1.tgz", - "integrity": "sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.1.tgz", + "integrity": "sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==", "requires": { + "@rollup/rollup-android-arm-eabi": "4.9.1", + "@rollup/rollup-android-arm64": "4.9.1", + "@rollup/rollup-darwin-arm64": "4.9.1", + "@rollup/rollup-darwin-x64": "4.9.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.1", + "@rollup/rollup-linux-arm64-gnu": "4.9.1", + "@rollup/rollup-linux-arm64-musl": "4.9.1", + "@rollup/rollup-linux-riscv64-gnu": "4.9.1", + "@rollup/rollup-linux-x64-gnu": "4.9.1", + "@rollup/rollup-linux-x64-musl": "4.9.1", + "@rollup/rollup-win32-arm64-msvc": "4.9.1", + "@rollup/rollup-win32-ia32-msvc": "4.9.1", + "@rollup/rollup-win32-x64-msvc": "4.9.1", "fsevents": "~2.3.2" } }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -3696,9 +6902,60 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } }, "source-map": { "version": "0.5.7", @@ -3710,10 +6967,25 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, "stylis": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", - "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" }, "supports-color": { "version": "5.5.0", @@ -3733,41 +7005,140 @@ "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "requires": {} + }, + "ts-toolbelt": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz", + "integrity": "sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==" + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "types-ramda": { + "version": "0.29.6", + "resolved": "https://registry.npmjs.org/types-ramda/-/types-ramda-0.29.6.tgz", + "integrity": "sha512-VJoOk1uYNh9ZguGd3eZvqkdhD4hTGtnjRBUx5Zc0U9ftmnCgiWcSj/lsahzKunbiwRje1MxxNkEy1UdcXRCpYw==", + "requires": { + "ts-toolbelt": "^9.6.0" + } + }, + "typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "devOptional": true + }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" } }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "use-resize-observer": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", + "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", + "requires": { + "@juggle/resize-observer": "^3.3.1" + } + }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "requires": {} + }, "vite": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz", - "integrity": "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", + "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", "requires": { - "esbuild": "^0.16.14", - "fsevents": "~2.3.2", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.10.0" + "esbuild": "^0.19.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" } }, "vite-plugin-svgr": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-2.4.0.tgz", - "integrity": "sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz", + "integrity": "sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==", + "requires": { + "@rollup/pluginutils": "^5.0.5", + "@svgr/core": "^8.1.0", + "@svgr/plugin-jsx": "^8.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "requires": { - "@rollup/pluginutils": "^5.0.2", - "@svgr/core": "^6.5.1" + "isexe": "^2.0.0" } }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -3777,6 +7148,12 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 04b4a85..cdad4ce 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,11 @@ "name": "webapp-interface-manager", "private": true, "version": "0.0.0", - "homepage": ".", "type": "module", "scripts": { "dev": "vite", - "build": "vite build", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" }, "dependencies": { @@ -14,18 +14,28 @@ "@emotion/styled": "^11.10.6", "@mui/icons-material": "^5.6.1", "@mui/material": "^5.10.7", + "@preact/signals-react": "^2.0.0", + "@reduxjs/toolkit": "^2.0.1", + "@types/ramda": "^0.29.9", + "allotment": "^1.19.3", "ramda": "^0.27.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-redux": "^7.2.2", "react-router-dom": "^6.9.0", "redux": "^4.0.5", - "vite-plugin-svgr": "^2.4.0" + "vite-plugin-svgr": "^4.2.0" }, "devDependencies": { - "@types/react": "^18.0.27", - "@types/react-dom": "^18.0.10", - "@vitejs/plugin-react": "^3.1.0", - "vite": "^4.1.0" + "@types/react": "^18.2.43", + "@types/react-dom": "^18.2.17", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^8.55.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "typescript": "^5.2.2", + "vite": "^5.0.8" } } diff --git a/public/index.html b/public/index.html index ca245c8..609c4e6 100644 --- a/public/index.html +++ b/public/index.html @@ -1,43 +1,43 @@ - - - - - - - - - - - - - WAIM - - - -
- - - + + + + + + + + + + + + + WAIM + + + +
+ + + diff --git a/public/manifest.json b/public/manifest.json index 060e9e5..ea908eb 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,20 +1,20 @@ -{ - "short_name": "WAIM", - "name": "WebApp Interface Manager", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} +{ + "short_name": "WAIM", + "name": "WebApp Interface Manager", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/public/robots.txt b/public/robots.txt index e9e57dc..9dd52a5 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,3 +1,3 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/src/apps/AddWebApp.jsx b/src/apps/AddWebApp.jsx index 87639d4..304d5e8 100644 --- a/src/apps/AddWebApp.jsx +++ b/src/apps/AddWebApp.jsx @@ -1,204 +1,204 @@ -import React, { useEffect, useRef, useState } from 'react'; -import { TextField, Box, Button, Switch, FormControlLabel, Typography, Backdrop, CircularProgress } from '@mui/material'; -import * as R from 'ramda' -const AddWebApp = () => { - const title = useRef(); - const url = useRef(); - const id = useRef(); - const width = useRef() - const height = useRef() - const imageUrl = useRef() - const [titleError, setTitleError] = useState(false) - const [idError, setIdError] = useState(false) - const [urlError, setUrlError] = useState(false) - const [whError, setWhError] = useState(false) - const [single, setSingle] = useState(false) - const [deletable, setDeletable] = useState(true) - const [editable, setEditable] = useState(true) - const [waimExists, setWaimExists] = useState(true) - const [awaitingCreationResponse, setAwaitingCreationResponse] = useState(false) - const messageHandlerRef = useRef() - const lastSentId = useRef() - - useEffect(() => { - const waim = window.waim - if (waim === undefined) { - setWaimExists(false) - return - } - const messageHandler = waim.messageHandler - if (messageHandler === undefined) { - setWaimExists(false) - return - } - - messageHandlerRef.current = messageHandler - messageHandlerRef.current.listen("__create_new_app_response__", (data) => { - if (data.id === lastSentId.current) { - setAwaitingCreationResponse(false) - } - }) - setWaimExists(true) - }, [waimExists]) - - - useEffect(() => { - return () => { - - } - }, []) - - useEffect(() => { - if (awaitingCreationResponse) { - messageHandlerRef.current.publish("__create_new_app__", - { - id: id.current.value, - title: title.current.value, - width: Number(width.current.value), - height: Number(height.current.value), - url: url.current.value, - single, deletable, editable, - imageUrl: imageUrl.current.value - - } - - ) - } - }, [awaitingCreationResponse]) - - return ( - - - - {waimExists ?
- -
- {awaitingCreationResponse && - - } -
-
-
-
- -
-
-
-
- -
-
- -
-
- setSingle(e.target.checked)} />} label="Singleton" />
-
setEditable(e.target.checked)} />} label="Editable" />
-
setDeletable(e.target.checked)} />} label="Deletable" />
-
- - -
-
: Cannot add new apps unless you are running within the WAIM framework} -
- - ) -} - +import React, { useEffect, useRef, useState } from 'react'; +import { TextField, Box, Button, Switch, FormControlLabel, Typography, Backdrop, CircularProgress } from '@mui/material'; +import * as R from 'ramda' +const AddWebApp = () => { + const title = useRef(); + const url = useRef(); + const id = useRef(); + const width = useRef() + const height = useRef() + const imageUrl = useRef() + const [titleError, setTitleError] = useState(false) + const [idError, setIdError] = useState(false) + const [urlError, setUrlError] = useState(false) + const [whError, setWhError] = useState(false) + const [single, setSingle] = useState(false) + const [deletable, setDeletable] = useState(true) + const [editable, setEditable] = useState(true) + const [waimExists, setWaimExists] = useState(true) + const [awaitingCreationResponse, setAwaitingCreationResponse] = useState(false) + const messageHandlerRef = useRef() + const lastSentId = useRef() + + useEffect(() => { + const waim = window.waim + if (waim === undefined) { + setWaimExists(false) + return + } + const messageHandler = waim.messageHandler + if (messageHandler === undefined) { + setWaimExists(false) + return + } + + messageHandlerRef.current = messageHandler + messageHandlerRef.current.listen("__create_new_app_response__", (data) => { + if (data.id === lastSentId.current) { + setAwaitingCreationResponse(false) + } + }) + setWaimExists(true) + }, [waimExists]) + + + useEffect(() => { + return () => { + + } + }, []) + + useEffect(() => { + if (awaitingCreationResponse) { + messageHandlerRef.current.publish("__create_new_app__", + { + id: id.current.value, + title: title.current.value, + width: Number(width.current.value), + height: Number(height.current.value), + url: url.current.value, + single, deletable, editable, + imageUrl: imageUrl.current.value + + } + + ) + } + }, [awaitingCreationResponse]) + + return ( + + + + {waimExists ?
+ +
+ {awaitingCreationResponse && + + } +
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+ setSingle(e.target.checked)} />} label="Singleton" />
+
setEditable(e.target.checked)} />} label="Editable" />
+
setDeletable(e.target.checked)} />} label="Deletable" />
+
+ + +
+
: Cannot add new apps unless you are running within the WAIM framework} +
+ + ) +} + export default AddWebApp; \ No newline at end of file diff --git a/src/apps/ChatClient.jsx b/src/apps/ChatClient.jsx index 1105191..c64661a 100644 --- a/src/apps/ChatClient.jsx +++ b/src/apps/ChatClient.jsx @@ -1,68 +1,68 @@ -import React, { useEffect, useState, useRef } from 'react'; -import { TextField, Box, FormGroup, IconButton } from "@mui/material" -import SendIcon from '@mui/icons-material/Send'; -const ChatClient = () => { - const [messages, setMessages] = useState("Welcome to the Chat!\n") - const [name, setName] = useState("") - const [message, setMessage] = useState("") - const chatboxRef = useRef() - const messageHandlerRef = useRef({ - publish: (data) => { console.warn("Not properly hooked to waim message handler") }, - listen: (channelName, callback) => { console.warn("Not properly hooked to waim message handler") } - }) - useEffect(() => { - const waim = window.waim - if (waim === undefined) return - const messageHandler = waim.messageHandler - if (messageHandler === undefined) return - messageHandlerRef.current = messageHandler - messageHandlerRef.current.listen("chatbox_messages", ({ name, message }) => { - setMessages(f => { return f + `${name}: ${message}\n` }) - }) - }, [window.waim]) - - useEffect(()=> { - chatboxRef.current.scrollTop = chatboxRef.current.scrollHeight - }, [messages]) - - const sendMessage = () => { - messageHandlerRef.current.publish("chatbox_messages", {name, message}) - setMessage("") - } - - return ( - - - {setName(e.target.value)}} /> - - console.log(chatboxRef)} - InputProps={{ - readOnly: true, - style: { - height: "300px", - textAlign: "start", - display: "block" - } - }} /> - - { - if(e.key == "Enter") sendMessage() - }} - fullWidth id="message" label="Message" variant="outlined" value={message} onChange={(e) => setMessage(e.target.value)} - InputProps={{ endAdornment: { - sendMessage() - }}> }} /> - - - ) -} - +import React, { useEffect, useState, useRef } from 'react'; +import { TextField, Box, FormGroup, IconButton } from "@mui/material" +import SendIcon from '@mui/icons-material/Send'; +const ChatClient = () => { + const [messages, setMessages] = useState("Welcome to the Chat!\n") + const [name, setName] = useState("") + const [message, setMessage] = useState("") + const chatboxRef = useRef() + const messageHandlerRef = useRef({ + publish: (data) => { console.warn("Not properly hooked to waim message handler") }, + listen: (channelName, callback) => { console.warn("Not properly hooked to waim message handler") } + }) + useEffect(() => { + const waim = window.waim + if (waim === undefined) return + const messageHandler = waim.messageHandler + if (messageHandler === undefined) return + messageHandlerRef.current = messageHandler + messageHandlerRef.current.listen("chatbox_messages", ({ name, message }) => { + setMessages(f => { return f + `${name}: ${message}\n` }) + }) + }, [window.waim]) + + useEffect(()=> { + chatboxRef.current.scrollTop = chatboxRef.current.scrollHeight + }, [messages]) + + const sendMessage = () => { + messageHandlerRef.current.publish("chatbox_messages", {name, message}) + setMessage("") + } + + return ( + + + {setName(e.target.value)}} /> + + console.log(chatboxRef)} + InputProps={{ + readOnly: true, + style: { + height: "300px", + textAlign: "start", + display: "block" + } + }} /> + + { + if(e.key == "Enter") sendMessage() + }} + fullWidth id="message" label="Message" variant="outlined" value={message} onChange={(e) => setMessage(e.target.value)} + InputProps={{ endAdornment: { + sendMessage() + }}> }} /> + + + ) +} + export default ChatClient; \ No newline at end of file diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/constants.js b/src/constants.ts similarity index 65% rename from src/constants.js rename to src/constants.ts index bb6028c..b6396b8 100644 --- a/src/constants.js +++ b/src/constants.ts @@ -1,32 +1,48 @@ -export const BUILT_IN_APPS = { - addwebapp: { - appid: "addwebapp", - title: "Add New Web App", - width: 800, - height: 600, - single: true, - editable: false, - imageUrl: "addwebapp.png" - }, - chatclient: { - appid: "chatclient", - title: "Chat Client", - width: 700, - height: 500, - deletable: true, - editable: true, - imageUrl: "chatclient.png" - }, - statueofliberty: { - appid: "statueofliberty", - title: "Statue of Liberty", - width: 700, - height: 300, - deletable: true, - url: "https://www.google.com/maps/embed?pb=!1m17!1m12!1m3!1d3025.2951909971443!2d-74.04449699999999!3d40.689496000000005!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m2!1m1!2zNDDCsDQxJzIyLjIiTiA3NMKwMDInNDAuMiJX!5e0!3m2!1sen!2sus!4v1679086836141!5m2!1sen!2sus", - editable: true - } -} - -export const MAX_WIDTH_PX = 300; -export const MAX_HEIGHT_PX = 200; \ No newline at end of file +export interface AppStruct { + appid: string, + title: string, + width: number, + height: number, + url?: string, + single?: boolean, + deletable?: boolean, + editable?: boolean, + imageUrl?: string +} + +export interface AppsInterface{ + [key: string]: AppStruct +} + +export const BUILT_IN_APPS: AppsInterface = { + addwebapp: { + appid: "addwebapp", + title: "Add New Web App", + width: 800, + height: 600, + single: true, + editable: false, + imageUrl: "addwebapp.png" + }, + chatclient: { + appid: "chatclient", + title: "Chat Client", + width: 700, + height: 500, + deletable: true, + editable: true, + imageUrl: "chatclient.png" + }, + statueofliberty: { + appid: "statueofliberty", + title: "Statue of Liberty", + width: 700, + height: 300, + deletable: true, + url: "https://www.google.com/maps/embed?pb=!1m17!1m12!1m3!1d3025.2951909971443!2d-74.04449699999999!3d40.689496000000005!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m2!1m1!2zNDDCsDQxJzIyLjIiTiA3NMKwMDInNDAuMiJX!5e0!3m2!1sen!2sus!4v1679086836141!5m2!1sen!2sus", + editable: true + } +} + +export const MAX_WIDTH_PX: number = 300; +export const MAX_HEIGHT_PX: number = 200; \ No newline at end of file diff --git a/src/css/App.css b/src/css/App.css index 6249a1e..04082fe 100644 --- a/src/css/App.css +++ b/src/css/App.css @@ -1,252 +1,248 @@ -html { - height: 100%; -} - -body{ - overflow: hidden; - min-height: 100vh; -} - -.hover{ - touch-action: none; -} - -.hover:hover{ - color: white; -} - -.window{ - position: absolute; - background-color: #777777 ; - overflow: auto; - cursor: auto; - touch-action: none; - - -} - - - -.header{ - text-align: center; - border-bottom: dashed 1px rgb(90, 95, 90); - font-weight: bold; - margin-bottom: 0 !important; - padding: 5px; - display: flex; - justify-content: space-between; - align-items: center; - min-height: 50px; -} - -.header-logo{ - font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; - text-shadow: 0.4px 1px #302c2c; - color: white; - font-size: 20px; -} - -.header-apps-button{ - float: left; -} - -.frame-border{ - position: fixed; - background-color: #535353; - resize: both; - box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 2px, rgba(0, 0, 0, 0.07) 0px 2px 4px, rgba(0, 0, 0, 0.07) 0px 4px 8px, rgba(0, 0, 0, 0.07) 0px 8px 16px, rgba(0, 0, 0, 0.07) 0px 16px 32px, rgba(0, 0, 0, 0.07) 0px 32px 64px; -} - -.topbar{ - background-color: #3a3939; - padding: 10px; - color: #cacaca; - cursor: pointer; - touch-action: none; -} - -.framestyle{ - top: 0; - right: 0; - -} - -.frameloading{ - position:absolute; - left:0; right:0; - top:0; bottom:0; - margin:auto; - text-align: center; -} - - -.flex-width{ - width: 100% -} - -.flex-height{ - height: 100%; -} - -.btn-secondary{ - background-color: #404346 !important; -} - - -.window-footer { - position: fixed; - bottom: -45px; - height: 40px; - color:white; - width: 100%; - z-index: 999; - align-items: center; - border-top: solid 2px rgb(20, 20, 20); - background: rgb(28,29,28); - background: -moz-linear-gradient(0deg, rgba(28,29,28,1) 0%, rgba(68,71,69,1) 100%); - background: -webkit-linear-gradient(0deg, rgba(28,29,28,1) 0%, rgba(68,71,69,1) 100%); - background: linear-gradient(0deg, rgba(28,29,28,1) 0%, rgba(68,71,69,1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#1c1d1c",endColorstr="#444745",GradientType=1); - align-items: center; - display:flex; -} - -.footer { - position: fixed; - bottom: 0; - min-height: 40px; - color:white; - width: 100%; - z-index: 999; - align-items: center; - border-top: solid 2px rgb(44, 44, 44); - background: rgb(36,36,36); - background: -moz-linear-gradient(0deg, rgba(36,36,36,1) 0%, rgba(55,55,55,1) 100%); - background: -webkit-linear-gradient(0deg, rgba(36,36,36,1) 0%, rgba(55,55,55,1) 100%); - background: linear-gradient(0deg, rgba(36,36,36,1) 0%, rgba(55,55,55,1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#242424",endColorstr="#373737",GradientType=1); - align-items: center; - display:flex; - overflow-x:auto; - overflow-y: hidden; -} - - -.showing{ - color:white; - background-color: rgb(88, 88, 88); -} - - -.noselect { - -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Safari */ - -khtml-user-select: none; /* Konqueror HTML */ - -moz-user-select: none; /* Old versions of Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; /* Non-prefixed version, currently - supported by Chrome, Edge, Opera and Firefox */ -} - - -.nohighlight{ - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - - -.full-modal { - padding: 0 !important; -} -.full-modal .modal-dialog { - width: 100%; - max-width: none; - height: 100%; - margin: 0; -} - -.full-modal .modal-header .close{ - color:white !important; -} -.full-modal .modal-content { - height: 100%; - border: 0; - border-radius: 0; - color: white; - background: #5a5a5a; -} -.full-modal .modal-body { - overflow-y: auto; -} - - - -table { - color: rgb(209, 209, 209) !important; -} - - -.resize-arrow{ - position: absolute; - right: -4px; - bottom: -10px; - cursor: se-resize ; - z-index: 1 -} - -.resize-arrow-container{ - position: absolte; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: -999; - pointer-events: none; -} - -.stroke{ - stroke: url(#2a2a2a) !important; -} - -.settings-cell{ - max-width: 200px; - overflow-x: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.sash-vertical{ - z-index: 1 !important; - width: 5px !important; - background-color: #474747; -} - -.sash-horizontal{ - z-index: 1 !important; - height: 5px !important; - background-color: #474747; -} - -:root { - --separator-border: none !important; - --focus-border: none !important; -} - -.split-view-view{ - z-index: 0 !important; -} - -.sash-container{ - z-index: 1 !important; -} - -.split-view-container{ - z-index: 0 !important; -} -.split-view{ - z-index: 0 !important; +html { + height: 100%; +} + +body{ + overflow: hidden; + min-height: 100vh; +} + +.hover{ + touch-action: none; +} + +.hover:hover{ + color: white; +} + +.window{ + position: absolute; + background-color: inherit; + overflow: auto; + cursor: auto; + touch-action: none; +} + + + +.header{ + text-align: center; + border-bottom: dashed 1px rgb(90, 95, 90); + font-weight: bold; + margin-bottom: 0 !important; + padding: 5px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.header-logo{ + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; + text-shadow: 0.4px 1px #302c2c; + color: white; + font-size: 20px; +} + +.header-apps-button{ + float: left; +} + +.frame-border{ + position: fixed; + background-color: #535353; + resize: both; + box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 2px, rgba(0, 0, 0, 0.07) 0px 2px 4px, rgba(0, 0, 0, 0.07) 0px 4px 8px, rgba(0, 0, 0, 0.07) 0px 8px 16px, rgba(0, 0, 0, 0.07) 0px 16px 32px, rgba(0, 0, 0, 0.07) 0px 32px 64px; +} + +.topbar{ + background-color: #3a3939; + color: #cacaca; + cursor: pointer; + touch-action: none; + font-size: 0.85rem; +} + +.framestyle{ + top: 0; + right: 0; + +} + +.frameloading{ + position:absolute; + left:0; right:0; + top:0; bottom:0; + margin:auto; + text-align: center; +} + + +.flex-width{ + width: 100% +} + +.flex-height{ + height: 100%; +} + +.btn-secondary{ + background-color: #404346 !important; +} + + +.window-footer { + position: fixed; + bottom: -45px; + height: 40px; + color:white; + width: 100%; + z-index: 999; + align-items: center; + border-top: solid 2px rgb(20, 20, 20); + background: rgb(28,29,28); + background: -moz-linear-gradient(0deg, rgba(28,29,28,1) 0%, rgba(68,71,69,1) 100%); + background: -webkit-linear-gradient(0deg, rgba(28,29,28,1) 0%, rgba(68,71,69,1) 100%); + background: linear-gradient(0deg, rgba(28,29,28,1) 0%, rgba(68,71,69,1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#1c1d1c",endColorstr="#444745",GradientType=1); + align-items: center; + display:flex; +} + +.footer { + position: fixed; + bottom: 0; + color:white; + width: 100%; + z-index: 999; + align-items: center; + border-top: solid 2px rgb(44, 44, 44); + background: rgb(36,36,36); + background: -moz-linear-gradient(0deg, rgba(36,36,36,1) 0%, rgba(55,55,55,1) 100%); + background: -webkit-linear-gradient(0deg, rgba(36,36,36,1) 0%, rgba(55,55,55,1) 100%); + background: linear-gradient(0deg, rgba(36,36,36,1) 0%, rgba(55,55,55,1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#242424",endColorstr="#373737",GradientType=1); + align-items: center; + display:flex; + overflow-x:auto; + overflow-y: hidden; +} + + +.showing{ + color:white; + background-color: rgb(88, 88, 88); +} + + +.noselect { + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Old versions of Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; /* Non-prefixed version, currently + supported by Chrome, Edge, Opera and Firefox */ +} + + +.nohighlight{ + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + + +.full-modal { + padding: 0 !important; +} +.full-modal .modal-dialog { + width: 100%; + max-width: none; + height: 100%; + margin: 0; +} + +.full-modal .modal-header .close{ + color:white !important; +} +.full-modal .modal-content { + height: 100%; + border: 0; + border-radius: 0; + color: white; + background: #5a5a5a; +} +.full-modal .modal-body { + overflow-y: auto; +} + + + +table { + color: rgb(209, 209, 209) !important; +} + + +.resize-arrow{ + position: absolute; + right: -2px; + bottom: -9px; + z-index: 1; + pointer-events: none; +} + +.resize-arrow-container{ + height: 20px; + width: 20px; + position: absolute; + right: -10px; + bottom: -10px; + z-index: 1; + cursor: se-resize ; +} + +.stroke{ + stroke: url(#2a2a2a) !important; +} + +.settings-cell{ + max-width: 200px; + overflow-x: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.sash-vertical{ + z-index: 1 !important; + width: 5px !important; + background-color: #474747; +} + +.sash-horizontal{ + z-index: 1 !important; + height: 5px !important; + background-color: #474747; +} + +:root { + --separator-border: none !important; + --focus-border: none !important; +} + +.split-view-view{ + z-index: 0 !important; +} + +.sash-container{ + z-index: 1 !important; +} + +.split-view-container{ + z-index: 0 !important; +} +.split-view{ + z-index: 0 !important; } \ No newline at end of file diff --git a/src/css/index.css b/src/css/index.css index 4f7b681..f871da5 100644 --- a/src/css/index.css +++ b/src/css/index.css @@ -1,9 +1,9 @@ -body { - margin: 0; - touch-action: none; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} +body { + margin: 0; + touch-action: none; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..6119ad9 --- /dev/null +++ b/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/main.jsx b/src/main.tsx similarity index 78% rename from src/main.jsx rename to src/main.tsx index 4fedbd2..45f9dd0 100644 --- a/src/main.jsx +++ b/src/main.tsx @@ -1,86 +1,82 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import AppManager from './waim/AppManager'; -import * as serviceWorker from './serviceWorker'; -import { Provider } from "react-redux"; -import store from "./redux/store"; -import { createTheme, ThemeProvider, CssBaseline } from '@mui/material'; -import { grey, blueGrey } from '@mui/material/colors'; - - -// create a palette for themes -// the mode can be used to specifcy specific color schemes -// currently only dark and light are supported -const getDesignTokens = (mode) => ({ - palette: { - mode, - primary: { - ...grey, - ...(mode === 'dark' && { - main: grey[300], - }), - }, - ...(mode === 'light' && { - background: { - default: grey[300], - paper: blueGrey[200], - }, - }), - ...(mode === 'dark' && { - background: { - default: grey[700], - paper: grey[800], - }, - }), - text: { - ...(mode === 'light' - ? { - primary: grey[900], - secondary: grey[800], - } - : { - primary: '#fff', - secondary: grey[300], - }), - } - }, - overrides: { - MuiOutlinedInput: { - root: { - // Hover state - "&:hover $notchedOutline": { - borderColor: "#9a9a9a" - }, - // Focused state - "&$focused $notchedOutline": { - borderColor: "#9a9a9a" - } - }, - // Default State - notchedOutline: { - borderColor: "#9a9a9a" - } - } - } -}); - -// we pass the value of the mode here -const theme = createTheme(getDesignTokens('dark')); - -// generate the root dom -const root = ReactDOM.createRoot(document.getElementById("root")); - -// pass it to the redux store provider, theme provide, and css baseline components -root.render( - - - - - - -); - -// If you want your app to work offline and load faster, you can change -// unregister() to register() below. Note this comes with some pitfalls. -// Learn more about service workers: https://bit.ly/CRA-PWA -serviceWorker.unregister(); +import ReactDOM from 'react-dom/client'; +import AppManager from './waim/AppManager'; +import { Provider } from "react-redux"; +import { createTheme, ThemeProvider, CssBaseline, ThemeOptions, PaletteMode } from '@mui/material'; +import { grey, blueGrey } from '@mui/material/colors'; +import { store } from './waim/redux/store'; + +interface ThemeType extends ThemeOptions { + overrides: Object +} + +// create a palette for themes +// the mode can be used to specifcy specific color schemes +// currently only dark and light are supported +const getDesignTokens = (mode: PaletteMode): ThemeType => ({ + palette: { + mode, + primary: { + ...grey, + ...(mode === 'dark' && { + main: grey[300], + }), + }, + ...(mode === 'light' && { + background: { + default: grey[300], + paper: blueGrey[200], + }, + }), + ...(mode === 'dark' && { + background: { + default: grey[700], + paper: grey[800], + }, + }), + text: { + ...(mode === 'light' + ? { + primary: grey[900], + secondary: grey[800], + } + : { + primary: '#fff', + secondary: grey[300], + }), + } + }, + overrides: { + MuiOutlinedInput: { + root: { + // Hover state + "&:hover $notchedOutline": { + borderColor: "#9a9a9a" + }, + // Focused state + "&$focused $notchedOutline": { + borderColor: "#9a9a9a" + } + }, + // Default State + notchedOutline: { + borderColor: "#9a9a9a" + } + } + } +}); + +// we pass the value of the mode here +const theme = createTheme(getDesignTokens('dark')); + +// generate the root dom +const root = ReactDOM.createRoot(document.getElementById("root")!); + +// pass it to the redux store provider, theme provide, and css baseline components +root.render( + + + + + + +); diff --git a/src/redux/actionTypes.js b/src/redux/actionTypes.js deleted file mode 100644 index b51a461..0000000 --- a/src/redux/actionTypes.js +++ /dev/null @@ -1,23 +0,0 @@ -export const SHOW_WINDOW = "SHOW_WINDOW" -export const CREATE_APP = "CREATE_APP" -export const HIDE_WINDOW = "HIDE_WINDOW" -export const TOGGLE_SETTINGS = "TOGGLE_SETTINGS" -export const UPDATE_INDEX = "UPDATE_INDEX" -export const MINIMIZE_WINDOW = "MINIMIZE_WINDOW" -export const UNMINIMIZE_WINDOW = "UNMINIMIZE_WINDOW" -export const UNMINIMIZE_UPDATE_INDEX = "UNMINIMIZE_UPDATE_INDEX" -export const HIDE_WINDOW_ID = "HIDE_WINDOW_ID" -export const DELETE_WINDOW = "DELETE_WINDOW" -export const LOAD_APPS = "LOAD_APPS" -export const RESET_DEFAULT = "RESET_DEFAULT" -export const UPDATE_WINDOW = "UPDATE_WINDOW" -export const ADD_APP_DOM = "ADD_APP_DOM" -export const SELECT_LAYOUT_APP = "SELECT_LAYOUT_APP" -export const REMOVE_ALL_LAYOUT = "REMOVE_ALL_LAYOUT" -export const CREATE_NOTIFICATION = "CREATE_NOTIFICATION" -export const REMOVE_NOTIFICATION = "REMOVE_NOTIFICATION" -export const SELECT_LAYOUT = "SELECT_LAYOUT" -export const ADD_LAYOUT = "ADD_LAYOUT" -export const ADD_LAYOUT_INITIAL = "ADD_LAYOUT_INITIAL" -export const TOGGLE_LAYOUT_EDIT = "TOGGLE_LAYOUT_EDIT" -export const LAYOUT_SIZE_CHANGE = "LAYOUT_SIZE_CHANGE" \ No newline at end of file diff --git a/src/redux/constants.js b/src/redux/constants.js deleted file mode 100644 index cb63ffb..0000000 --- a/src/redux/constants.js +++ /dev/null @@ -1,5 +0,0 @@ -export const VERTICAL_2COLUM = 0 -export const HORIZONTAL_2COLUMN = 1 -export const HORIZONTAL_LAYOUT = "HORIZONTAL_LAYOUT" -export const VERTICAL_LAYOUT = "VERTICAL_LAYOUT" -export const SELECTED_APP = "SELECTED_APP" \ No newline at end of file diff --git a/src/redux/reducers/index.js b/src/redux/reducers/index.js deleted file mode 100644 index d5bb8e5..0000000 --- a/src/redux/reducers/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import { combineReducers } from "redux"; -import windows from "./windows"; -import settings from "./settings" - -export default combineReducers({ windows, settings }); diff --git a/src/redux/reducers/settings.js b/src/redux/reducers/settings.js deleted file mode 100644 index 70d49d0..0000000 --- a/src/redux/reducers/settings.js +++ /dev/null @@ -1,17 +0,0 @@ -import { TOGGLE_SETTINGS} from "../actionTypes"; -import * as R from 'ramda' - -const initialState = { - showing: false -}; - -export default function(state = initialState, action) { - switch (action.type) { - case TOGGLE_SETTINGS: { - const {showing} = action.payload - return R.assoc("showing", showing, state) - } - default: - return state; - } -} diff --git a/src/redux/reducers/windows.js b/src/redux/reducers/windows.js deleted file mode 100644 index 27261a6..0000000 --- a/src/redux/reducers/windows.js +++ /dev/null @@ -1,430 +0,0 @@ -import { - CREATE_APP, - SHOW_WINDOW, - HIDE_WINDOW, - UPDATE_INDEX, - MINIMIZE_WINDOW, - UNMINIMIZE_WINDOW, - UNMINIMIZE_UPDATE_INDEX, - HIDE_WINDOW_ID, - DELETE_WINDOW, - LOAD_APPS, - RESET_DEFAULT, - UPDATE_WINDOW, - ADD_APP_DOM, - REMOVE_ALL_LAYOUT, - SELECT_LAYOUT, - SELECT_LAYOUT_APP, - CREATE_NOTIFICATION, - REMOVE_NOTIFICATION, - ADD_LAYOUT, - ADD_LAYOUT_INITIAL, - TOGGLE_LAYOUT_EDIT, - LAYOUT_SIZE_CHANGE -} from "../actionTypes"; -import * as R from 'ramda' -import { BUILT_IN_APPS } from '../../constants' -import { SELECTED_APP } from "../constants"; -let appView = 0; -let opened = {} -const appName = "waim" -const appNameLayout = "waimlayout" -const initialState = { - apps: BUILT_IN_APPS, - view: [], - appDoms: {}, - layout: - {}, - layoutEditEnabled: false, - notificationCount: 0, - notifications: {}, - openApps: {} -}; - -const save = (newstate) => { - const myStorage = window.localStorage; - myStorage.setItem(appName, JSON.stringify(newstate.apps)); - return newstate -} - -const countLayoutApps = (map, layout) => { - if(R.isNil(layout)){ - return 0 - } - if(layout.type === SELECTED_APP){ - let count = 0; - if(map.get(layout.appid) !== undefined){ - count = map.get(layout.appid) - } - map.set(layout.appid, count+1) - } - if(layout["0"] !== undefined){ - countLayoutApps(map, layout[0]) - } - if(layout["1"] !== undefined){ - countLayoutApps(map, layout[1]) - } -} -const load = (newstate) => { - const myStorage = window.localStorage; - const apps = myStorage.getItem(appName); - const layout = myStorage.getItem(appNameLayout) - const layoutObj = R.assoc("layout", JSON.parse(layout), newstate) - const map = new Map() - countLayoutApps(map, R.prop("layout", layoutObj)) - let tmpLayoutObj = layoutObj - for (let [key, value] of map) { - tmpLayoutObj = R.assocPath(["openApps", key], value, tmpLayoutObj) - } - return R.assoc("apps", R.isNil(apps) ? BUILT_IN_APPS : JSON.parse(apps), tmpLayoutObj) -} - - - - -const updateIn = R.curry((path, val, obj) => R.compose( - R.set(R.__, val, obj), - R.apply(R.compose), - R.map(R.cond([[R.is(Number), R.lensIndex], [R.T, R.lensProp]])) -)(path)); - -export default function main(state = initialState, action) { - switch (action.type) { - case SHOW_WINDOW: { - const { appid } = action.payload - if (R.pathEq(["apps", appid, "single"], true, state) && R.gt(R.path(["openApps", appid], state), 0)) { - return state - } - appView++ - opened[appid] = true - return R.compose( - R.assoc("view", R.append({ appid, viewid: appView, zIndex: Number(R.length(R.prop("view", state)) + 1) }, state.view)), - R.assocPath(["openApps", appid], R.inc(R.pathOr(0, ["openApps", appid], state))) - )(state) - } - - case HIDE_WINDOW: { - const { index } = action.payload - - delete opened[R.path(["view", index, "appid"], state)] - const zIndex = R.path(["view", Number(index), "zIndex"], state) - const viewid = R.path(["view", Number(index), "viewid"], state) - const length = R.length(state.view) - const instance = R.compose( - R.map(([index, win]) => { - const fviewid = R.prop("viewid", win) - const fzIndex = R.prop("zIndex", win) - if (R.equals(fviewid, viewid)) { - return R.assoc("zIndex", Number(length), win) - } - else { - if (Number(fzIndex) > zIndex) { - return R.assoc("zIndex", Number(fzIndex) - 1, win) - } - else { - return R.assoc("zIndex", fzIndex, win) - } - } - }), - R.toPairs, - )(state.view) - const appid = R.path(["view", index, "appid"], state) - return R.compose( - R.assoc("view", R.remove(index, 1, instance)), - R.assocPath(["openApps", appid], R.dec(R.pathOr(0, ["openApps", appid], state))) - )(state) - } - case CREATE_APP: { - const payload = action.payload; - const window = { - appid: payload.appid, - title: R.propOr("No Title", "title", payload), - width: R.propOr(500, "width", payload), - height: R.propOr(500, "height", payload), - url: R.propOr("", "url", payload), - single: R.propOr(false, "single", payload), - deletable: R.propOr(true, "deletable", payload), - editable: R.propOr(true, "editable", payload), - imageUrl: R.propOr("", "imageUrl", payload), - } - return R.compose( - save, - R.assocPath(["apps", action.payload.appid], window) - )(state) - } - case UPDATE_INDEX: { - const { viewid } = action.payload - const length = R.length(state.view) - const index = R.findIndex(R.propEq("viewid", viewid))(R.prop("view", state)); - const zIndex = R.path(["view", Number(index), "zIndex"], state) - if (R.pathEq(["view", Number(index), "zIndex"], length, state)) { - return state - } - const instance = R.compose( - R.map(([index, win]) => { - const fviewid = R.prop("viewid", win) - const fzIndex = R.prop("zIndex", win) - if (R.equals(fviewid, viewid)) { - return R.assoc("zIndex", Number(length), win) - } - else { - if (Number(fzIndex) > zIndex) { - return R.assoc("zIndex", Number(fzIndex) - 1, win) - } - else { - return R.assoc("zIndex", fzIndex, win) - } - } - }), - R.toPairs, - )(state.view) - return R.assoc("view", instance, state) - } - case MINIMIZE_WINDOW: { - const { index } = action.payload - const updateIn = R.curry((path, val, obj) => R.compose( - R.set(R.__, val, obj), - R.apply(R.compose), - R.map(R.cond([[R.is(Number), R.lensIndex], [R.T, R.lensProp]])) - )(path)); - return updateIn(["view", Number(index), "minimized"], true, state); - - } - case UNMINIMIZE_WINDOW: { - const { index } = action.payload - return updateIn(["view", Number(index), "minimized"], false, state); - - } - - case UNMINIMIZE_UPDATE_INDEX: { - const { viewid } = action.payload - const length = R.length(state.view) - const index = R.findIndex(R.propEq("viewid", viewid))(R.prop("view", state)); - const zIndex = R.path(["view", Number(index), "zIndex"], state) - - - const min = updateIn(["view", Number(index), "minimized"], false, state) - if (R.pathEq(["view", Number(index), "zIndex"], length, state)) { - return min - } - const instance = R.compose( - R.map(([index, win]) => { - const fviewid = R.prop("viewid", win) - const fzIndex = R.prop("zIndex", win) - if (R.equals(fviewid, viewid)) { - return R.assoc("zIndex", Number(length), win) - } - else { - if (Number(fzIndex) > zIndex) { - return R.assoc("zIndex", Number(fzIndex) - 1, win) - } - else { - return R.assoc("zIndex", fzIndex, win) - } - } - }), - R.toPairs - )(min.view) - return R.assoc("view", instance, state) - } - - case HIDE_WINDOW_ID: { - const { viewid } = action.payload - const index = R.findIndex(R.propEq("viewid", viewid))(R.prop("view", state)); - delete opened[R.path(["view", index, "appid"], state)] - const zIndex = R.path(["view", Number(index), "zIndex"], state) - const length = R.length(state.view) - const instance = R.compose( - R.map(([index, win]) => { - const fviewid = R.prop("viewid", win) - const fzIndex = R.prop("zIndex", win) - if (R.equals(fviewid, viewid)) { - return R.assoc("zIndex", Number(length), win) - } - else { - if (Number(fzIndex) > zIndex) { - return R.assoc("zIndex", Number(fzIndex) - 1, win) - } - else { - return R.assoc("zIndex", fzIndex, win) - } - } - }), - R.toPairs, - )(state.view) - - const appid = R.path(["view", index, "appid"], state) - - return R.compose( - R.assoc("view", R.remove(index, 1, instance)), - R.assocPath(["openApps", appid], R.dec(R.pathOr(0, ["openApps", appid], state))) - )(state) - - } - - - case UPDATE_WINDOW: { - const payload = action.payload; - const window = { - appid: payload.appid, - title: R.propOr("No Title", "title", payload), - width: R.propOr(500, "width", payload), - height: R.propOr(500, "height", payload), - url: R.propOr("", "url", payload), - single: R.propOr(false, "single", payload), - deletable: R.propOr(true, "deletable", payload), - editable: R.propOr(true, "editable", payload), - imageUrl: R.propOr("", "imageUrl", payload), - } - delete opened[payload.appid] - - const removed = R.compose( - save, - R.assocPath(["apps", payload.appid], window), - R.assoc("view", R.filter(view => { - return !R.propEq("appid", payload.appid, view) - }, state.view) - ))(state) - - - const sorted = R.reverse(R.sortBy(R.prop("zIndex"), removed.view)) - let lengthIndex = sorted.length - return R.assoc("view", R.compose( - R.map(([index, win]) => { - return R.assoc("zIndex", lengthIndex--, win) - }), - R.toPairs, - )(sorted), removed) - - } - - case DELETE_WINDOW: { - const { appid } = action.payload - const removed = R.compose( - save, - R.dissocPath(["apps", appid]), - R.assoc("view", R.filter(view => { - return !R.propEq("appid", appid, view) - }, state.view) - ))(state) - - const sorted = R.reverse(R.sortBy(R.prop("zIndex"), removed.view)) - let lengthIndex = sorted.length - const newState = R.assoc("view", R.compose( - R.map(([index, win]) => { - return R.assoc("zIndex", lengthIndex--, win) - }), - R.toPairs, - )(sorted), removed) - const removedState = R.compose( - R.assocPath(["layout", "selectedLayout"], null), - R.assocPath(["layout", "selectedApps"], {}) - )(newState) - window.localStorage.setItem(appNameLayout, JSON.stringify(R.prop("layout", removedState))) - return removedState - - } - case LOAD_APPS: { - return load(state) - } - - case RESET_DEFAULT: { - opened = {} - appView = 0 - window.localStorage.removeItem(appName); - window.localStorage.removeItem(appNameLayout) - return R.compose( - save, - R.assoc("apps", BUILT_IN_APPS), - R.assoc("view", []), - R.assoc("layout", {}), - R.assoc("openApps", {}) - )(state) - } - - case SELECT_LAYOUT: { - const { layoutType } = action.payload - const newState = R.assocPath(["layout", "selectedLayout"], layoutType, state) - window.localStorage.setItem(appNameLayout, JSON.stringify(R.prop("layout", newState))) - return newState - - } - - case REMOVE_ALL_LAYOUT: { - const map = new Map() - countLayoutApps(map, R.prop("layout", state)) - let tmpState = state - for (let [key, _] of map) { - tmpState = R.assocPath(["openApps", key], R.dec(R.pathOr(0, ["openApps", key], tmpState)), tmpState) - } - const newState = R.compose( - R.assoc("layout", {}) - )(tmpState) - window.localStorage.setItem(appNameLayout, JSON.stringify(R.prop("layout", newState))) - return newState - } - - case ADD_APP_DOM: { - const { appid, appDom } = action.payload - return R.assocPath(["appDoms", appid], appDom, state) - } - - case CREATE_NOTIFICATION: { - const { message, type, duration } = action.payload - return R.compose( - R.assocPath(["notifications", state.notificationCount], { message, type, duration }), - R.assoc("notificationCount", R.inc(R.prop("notificationCount", state))) - )(state) - } - - case REMOVE_NOTIFICATION: { - const { id } = action.payload - return R.assoc("notifications", R.pick(R.filter((n) => { - return n != id - }, R.keys(state.notifications)), state.notifications), state) - } - - case ADD_LAYOUT: { - const { indexPath, layoutType } = action.payload - const newState = R.assocPath(["layout", ...indexPath, "type"], layoutType, state) - window.localStorage.setItem(appNameLayout, JSON.stringify(R.prop("layout", newState))) - return newState - } - - case ADD_LAYOUT_INITIAL: { - const {layoutType} = action.payload - const newState = R.assocPath(["layout", "type"], layoutType, state) - window.localStorage.setItem(appNameLayout, JSON.stringify(R.prop("layout", newState))) - return newState - } - - case SELECT_LAYOUT_APP: { - const { appid, indexPath } = action.payload - if (R.pathEq(["apps", appid, "single"], true, state) && R.gt(R.path(["openApps", appid], state), 0)) { - return state - } - const newState = R.compose( - R.assocPath(["layout", ...indexPath, "appid"], appid), - R.assocPath(["layout", ...indexPath, "type"], SELECTED_APP), - R.assocPath(["openApps", appid], R.inc(R.pathOr(0, ["openApps", appid], state))) - )(state) - window.localStorage.setItem(appNameLayout, JSON.stringify(R.prop("layout", newState))) - return newState - } - - case TOGGLE_LAYOUT_EDIT: { - return R.assoc("layoutEditEnabled", !R.prop("layoutEditEnabled", state), state) - } - - case LAYOUT_SIZE_CHANGE: { - const { indexPath, sizes } = action.payload - const newState = R.assocPath(["layout", ...indexPath, "sizes"], sizes, state) - window.localStorage.setItem(appNameLayout, JSON.stringify(R.prop("layout", newState))) - console.log("here?") - return newState - } - - default: - return state; - } -} diff --git a/src/redux/store.js b/src/redux/store.js deleted file mode 100644 index 9854d76..0000000 --- a/src/redux/store.js +++ /dev/null @@ -1,6 +0,0 @@ -import { createStore, compose } from "redux"; -import rootReducer from "./reducers"; -const enhancers = compose( - window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() - ); -export default createStore(rootReducer, enhancers); diff --git a/src/serviceWorker.js b/src/serviceWorker.js index c4838eb..ccf7b53 100644 --- a/src/serviceWorker.js +++ b/src/serviceWorker.js @@ -1,141 +1,141 @@ -// This optional code is used to register a service worker. -// register() is not called by default. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on subsequent visits to a page, after all the -// existing tabs open on the page have been closed, since previously cached -// resources are updated in the background. - -// To learn more about the benefits of this model and instructions on how to -// opt-in, read https://bit.ly/CRA-PWA - -const isLocalhost = Boolean( - window.location.hostname === 'localhost' || - // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || - // 127.0.0.0/8 are considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -); - -export function register(config) { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebook/create-react-app/issues/2374 - return; - } - - window.addEventListener('load', () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; - - if (isLocalhost) { - // This is running on localhost. Let's check if a service worker still exists or not. - checkValidServiceWorker(swUrl, config); - - // Add some additional logging to localhost, pointing developers to the - // service worker/PWA documentation. - navigator.serviceWorker.ready.then(() => { - console.log( - 'This web app is being served cache-first by a service ' + - 'worker. To learn more, visit https://bit.ly/CRA-PWA' - ); - }); - } else { - // Is not localhost. Just register service worker - registerValidSW(swUrl, config); - } - }); - } -} - -function registerValidSW(swUrl, config) { - navigator.serviceWorker - .register(swUrl) - .then(registration => { - registration.onupdatefound = () => { - const installingWorker = registration.installing; - if (installingWorker == null) { - return; - } - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // At this point, the updated precached content has been fetched, - // but the previous service worker will still serve the older - // content until all client tabs are closed. - console.log( - 'New content is available and will be used when all ' + - 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' - ); - - // Execute callback - if (config && config.onUpdate) { - config.onUpdate(registration); - } - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log('Content is cached for offline use.'); - - // Execute callback - if (config && config.onSuccess) { - config.onSuccess(registration); - } - } - } - }; - }; - }) - .catch(error => { - console.error('Error during service worker registration:', error); - }); -} - -function checkValidServiceWorker(swUrl, config) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl, { - headers: { 'Service-Worker': 'script' } - }) - .then(response => { - // Ensure service worker exists, and that we really are getting a JS file. - const contentType = response.headers.get('content-type'); - if ( - response.status === 404 || - (contentType != null && contentType.indexOf('javascript') === -1) - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { - registration.unregister().then(() => { - window.location.reload(); - }); - }); - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl, config); - } - }) - .catch(() => { - console.log( - 'No internet connection found. App is running in offline mode.' - ); - }); -} - -export function unregister() { - if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready - .then(registration => { - registration.unregister(); - }) - .catch(error => { - console.error(error.message); - }); - } -} +// This optional code is used to register a service worker. +// register() is not called by default. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. + +// To learn more about the benefits of this model and instructions on how to +// opt-in, read https://bit.ly/CRA-PWA + +const isLocalhost = Boolean( + window.location.hostname === 'localhost' || + // [::1] is the IPv6 localhost address. + window.location.hostname === '[::1]' || + // 127.0.0.0/8 are considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) +); + +export function register(config) { + if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { + // The URL constructor is available in all browsers that support SW. + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); + if (publicUrl.origin !== window.location.origin) { + // Our service worker won't work if PUBLIC_URL is on a different origin + // from what our page is served on. This might happen if a CDN is used to + // serve assets; see https://github.com/facebook/create-react-app/issues/2374 + return; + } + + window.addEventListener('load', () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; + + if (isLocalhost) { + // This is running on localhost. Let's check if a service worker still exists or not. + checkValidServiceWorker(swUrl, config); + + // Add some additional logging to localhost, pointing developers to the + // service worker/PWA documentation. + navigator.serviceWorker.ready.then(() => { + console.log( + 'This web app is being served cache-first by a service ' + + 'worker. To learn more, visit https://bit.ly/CRA-PWA' + ); + }); + } else { + // Is not localhost. Just register service worker + registerValidSW(swUrl, config); + } + }); + } +} + +function registerValidSW(swUrl, config) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing; + if (installingWorker == null) { + return; + } + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + 'New content is available and will be used when all ' + + 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' + ); + + // Execute callback + if (config && config.onUpdate) { + config.onUpdate(registration); + } + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log('Content is cached for offline use.'); + + // Execute callback + if (config && config.onSuccess) { + config.onSuccess(registration); + } + } + } + }; + }; + }) + .catch(error => { + console.error('Error during service worker registration:', error); + }); +} + +function checkValidServiceWorker(swUrl, config) { + // Check if the service worker can be found. If it can't reload the page. + fetch(swUrl, { + headers: { 'Service-Worker': 'script' } + }) + .then(response => { + // Ensure service worker exists, and that we really are getting a JS file. + const contentType = response.headers.get('content-type'); + if ( + response.status === 404 || + (contentType != null && contentType.indexOf('javascript') === -1) + ) { + // No service worker found. Probably a different app. Reload the page. + navigator.serviceWorker.ready.then(registration => { + registration.unregister().then(() => { + window.location.reload(); + }); + }); + } else { + // Service worker found. Proceed as normal. + registerValidSW(swUrl, config); + } + }) + .catch(() => { + console.log( + 'No internet connection found. App is running in offline mode.' + ); + }); +} + +export function unregister() { + if ('serviceWorker' in navigator) { + navigator.serviceWorker.ready + .then(registration => { + registration.unregister(); + }) + .catch(error => { + console.error(error.message); + }); + } +} diff --git a/src/setupTests.js b/src/setupTests.js index 74b1a27..35417dc 100644 --- a/src/setupTests.js +++ b/src/setupTests.js @@ -1,5 +1,5 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom/extend-expect'; +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom/extend-expect'; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/waim/AppManager.jsx b/src/waim/AppManager.jsx index 06de142..a5f6d72 100644 --- a/src/waim/AppManager.jsx +++ b/src/waim/AppManager.jsx @@ -1,119 +1,116 @@ -import React, { useEffect } from 'react'; -import '../css/App.css'; -import * as R from 'ramda' -import AddWebApp from '../apps/AddWebApp' -import { connect } from 'react-redux' -import { loadApps, addAppDom } from '../redux/actions' -import ChatClient from '../apps/ChatClient'; -import MainPage from './MainPage'; -import { - createBrowserRouter, - RouterProvider, -} from "react-router-dom"; -import { isRouteErrorResponse, useRouteError } from "react-router-dom"; - - - -const AppManager = ({ windows, loadApps, addAppDom }) => { - - // this will be called initially, and when the addAppDom or loadApps methods are changed - // pass your app id and react dom below if you want to render a react component as an app - // don't forget to add your app in src/constants.js - useEffect(() => { - {/* Add all static apps below */ } - loadApps() - addAppDom("chatclient", ) - addAppDom("addwebapp", ) - }, [addAppDom, loadApps]) - - - - // the page wrapper allows for each application to occupy the entire screen - // this is especially useful when the app is running outside of WAIM framework - // but still going through the React Router - const pageWrapper = (element) => { - return ( -
- - {element} -
- ) - } - - // Apps that reside on different domains or pre-built and acecssible through a URL - // will need to be wrapped aroudn an iframe first - const framePageWrapper = (url) => { - return pageWrapper(