From a6f40f65bd935ca2f5e72dad4451127ae807bc63 Mon Sep 17 00:00:00 2001 From: dcodes05 Date: Wed, 23 Aug 2023 13:29:43 +0200 Subject: [PATCH 1/5] chore: prettier and eslint config updates --- .eslintrc.json | 45 +- .prettierrc | 4 +- package.json | 88 +- pnpm-lock.yaml | 5240 +++++++++++++++++++++++++++++++----------------- 4 files changed, 3528 insertions(+), 1849 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 9ca2e830c..35ea19bb3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,10 +1,17 @@ { "root": true, "ignorePatterns": ["**/*"], - "plugins": ["@nx"], + "plugins": [ + "@nx", + "formatjs", + "unused-imports", + "simple-import-sort", + "prettier" + ], "overrides": [ { "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "extends": ["plugin:react/recommended", "plugin:prettier/recommended"], "rules": { "@nx/enforce-module-boundaries": [ "error", @@ -18,7 +25,41 @@ } ] } - ] + ], + "react/react-in-jsx-scope": "off", + // Unused imports rules + "unused-imports/no-unused-imports": "error", + "unused-imports/no-unused-vars": "warn", + + // Import ordering rules + "simple-import-sort/imports": [ + "warn", + { + "groups": [ + // Side effect imports + ["^\\u0000"], + // React Package(s) comes first as seperate group + ["^react(-dom(/client)?)?$"], + // All other imports + ["^@?\\w"], + ["^((?!\\u0000$)|/.*|$)"], + ["^\\."], + // Type imports: keep these last! + ["^@?\\w.*\\u0000$"], + ["^.*\\u0000$"], + ["^\\..*\\u0000$"] + ] + } + ], + + // import types rules + "@typescript-eslint/consistent-type-imports": "error", + + // FormatJS rules + "formatjs/enforce-default-message": ["error", "literal"], + "formatjs/no-id": "error", + "formatjs/no-multiple-whitespaces": "error", + "formatjs/no-offset": "error" } }, { diff --git a/.prettierrc b/.prettierrc index 544138be4..ec1ea7556 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,3 +1,5 @@ { - "singleQuote": true + "singleQuote": true, + "trailingComma": "all", + "tabWidth": 2 } diff --git a/package.json b/package.json index 5e1499b5b..a44beef88 100644 --- a/package.json +++ b/package.json @@ -4,62 +4,80 @@ "license": "MIT", "scripts": { "build-storybook": "nx build-storybook shared-storybook --verbose", - "storybook": "nx storybook shared-storybook" + "storybook": "nx storybook shared-storybook", + "oeth": "nx serve oeth" }, "private": true, "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@mui/material": "^5.14.0", - "@tanstack/react-query": "^4.29.19", + "@mui/material": "^5.14.3", + "@react-hookz/web": "^23.1.0", + "@tanstack/react-query": "^4.32.6", + "@tanstack/react-table": "^8.9.3", + "lodash": "^4.17.21", "react": "18.2.0", "react-dom": "18.2.0", "react-intl": "^6.4.4", - "react-router-dom": "6.11.2", - "tslib": "^2.3.0" + "react-router-dom": "6.14.2", + "tslib": "^2.6.1" }, "devDependencies": { "@babel/preset-react": "^7.14.5", + "@faker-js/faker": "^8.0.2", "@formatjs/cli": "^6.1.3", - "@nx/cypress": "16.5.1", - "@nx/eslint-plugin": "16.5.1", - "@nx/js": "16.5.1", - "@nx/linter": "16.5.1", - "@nx/react": "16.5.1", - "@nx/storybook": "16.5.1", - "@nx/vite": "16.5.1", - "@nx/web": "16.5.1", - "@nx/workspace": "16.5.1", - "@storybook/addon-essentials": "^7.0.24", - "@storybook/core-server": "^7.0.24", - "@storybook/react": "^7.0.24", - "@storybook/react-vite": "^7.0.24", + "@nx/cypress": "16.6.0", + "@nx/eslint-plugin": "16.6.0", + "@nx/js": "16.6.0", + "@nx/linter": "16.6.0", + "@nx/react": "16.6.0", + "@nx/storybook": "16.6.0", + "@nx/vite": "16.6.0", + "@nx/web": "16.6.0", + "@nx/workspace": "16.6.0", + "@storybook/addon-essentials": "^7.2.1", + "@storybook/addon-interactions": "^7.2.1", + "@storybook/core-common": "^7.2.1", + "@storybook/core-server": "^7.2.1", + "@storybook/jest": "^0.1.0", + "@storybook/react": "^7.2.1", + "@storybook/react-vite": "^7.2.1", + "@storybook/testing-library": "^0.2.0", "@testing-library/react": "14.0.0", + "@types/lodash": "^4.14.196", "@types/node": "18.14.2", - "@types/react": "18.2.14", - "@types/react-dom": "18.2.6", - "@typescript-eslint/eslint-plugin": "^5.60.1", - "@typescript-eslint/parser": "^5.60.1", - "@vitejs/plugin-react": "~4.0.0", - "@vitest/coverage-c8": "~0.32.0", - "@vitest/ui": "~0.32.0", + "@types/react": "18.2.18", + "@types/react-dom": "18.2.7", + "@typescript-eslint/eslint-plugin": "^6.3.0", + "@typescript-eslint/parser": "^6.3.0", + "@vitejs/plugin-react": "~4.0.4", + "@vitest/coverage-c8": "~0.33.0", + "@vitest/ui": "~0.34.1", "babel-plugin-formatjs": "^10.5.3", "danger": "^11.2.7", "danger-plugin-github-notion": "^0.0.3", - "eslint": "~8.15.0", - "eslint-config-prettier": "8.1.0", - "eslint-plugin-cypress": "^2.10.3", - "eslint-plugin-import": "2.27.5", + "eslint": "~8.46.0", + "eslint-config-prettier": "9.0.0", + "eslint-plugin-cypress": "^2.13.3", + "eslint-plugin-formatjs": "^4.10.3", + "eslint-plugin-import": "2.28.0", "eslint-plugin-jsx-a11y": "6.7.1", - "eslint-plugin-react": "7.32.2", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", + "eslint-plugin-simple-import-sort": "^10.0.0", + "eslint-plugin-unused-imports": "^3.0.0", "jsdom": "~22.1.0", - "nx": "16.5.1", - "prettier": "^2.6.2", + "nx": "16.6.0", + "prettier": "^3.0.1", + "storybook-addon-pseudo-states": "^2.1.0", + "ts-node": "10.9.1", "typescript": "~5.1.3", - "vite": "~4.3.9", - "vite-plugin-dts": "~2.3.0", + "vite": "~4.4.9", + "vite-plugin-dts": "~3.5.1", + "vite-plugin-static-copy": "^0.17.0", + "vite-plugin-svgr": "^3.2.0", "vite-tsconfig-paths": "~4.2.0", - "vitest": "~0.32.0" + "vitest": "~0.34.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 35ee06ff0..e82b75451 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,16 +7,25 @@ settings: dependencies: '@emotion/react': specifier: ^11.11.1 - version: 11.11.1(@types/react@18.2.14)(react@18.2.0) + version: 11.11.1(@types/react@18.2.18)(react@18.2.0) '@emotion/styled': specifier: ^11.11.0 - version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.14)(react@18.2.0) + version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.18)(react@18.2.0) '@mui/material': - specifier: ^5.14.0 - version: 5.14.0(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + specifier: ^5.14.3 + version: 5.14.3(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@react-hookz/web': + specifier: ^23.1.0 + version: 23.1.0(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query': - specifier: ^4.29.19 - version: 4.29.19(react-dom@18.2.0)(react@18.2.0) + specifier: ^4.32.6 + version: 4.32.6(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-table': + specifier: ^8.9.3 + version: 8.9.3(react-dom@18.2.0)(react@18.2.0) + lodash: + specifier: ^4.17.21 + version: 4.17.21 react: specifier: 18.2.0 version: 18.2.0 @@ -27,85 +36,103 @@ dependencies: specifier: ^6.4.4 version: 6.4.4(react@18.2.0)(typescript@5.1.6) react-router-dom: - specifier: 6.11.2 - version: 6.11.2(react-dom@18.2.0)(react@18.2.0) + specifier: 6.14.2 + version: 6.14.2(react-dom@18.2.0)(react@18.2.0) tslib: - specifier: ^2.3.0 - version: 2.6.0 + specifier: ^2.6.1 + version: 2.6.1 devDependencies: '@babel/preset-react': specifier: ^7.14.5 - version: 7.22.5(@babel/core@7.22.9) + version: 7.22.5(@babel/core@7.22.10) + '@faker-js/faker': + specifier: ^8.0.2 + version: 8.0.2 '@formatjs/cli': specifier: ^6.1.3 version: 6.1.3 '@nx/cypress': - specifier: 16.5.1 - version: 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + specifier: 16.6.0 + version: 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) '@nx/eslint-plugin': - specifier: 16.5.1 - version: 16.5.1(@typescript-eslint/parser@5.60.1)(eslint-config-prettier@8.1.0)(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + specifier: 16.6.0 + version: 16.6.0(@types/node@18.14.2)(@typescript-eslint/parser@6.3.0)(eslint-config-prettier@9.0.0)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) '@nx/js': - specifier: 16.5.1 - version: 16.5.1(nx@16.5.1)(typescript@5.1.6) + specifier: 16.6.0 + version: 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) '@nx/linter': - specifier: 16.5.1 - version: 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + specifier: 16.6.0 + version: 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) '@nx/react': - specifier: 16.5.1 - version: 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6)(webpack@5.88.1) + specifier: 16.6.0 + version: 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6)(webpack@5.88.2) '@nx/storybook': - specifier: 16.5.1 - version: 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + specifier: 16.6.0 + version: 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) '@nx/vite': - specifier: 16.5.1 - version: 16.5.1(nx@16.5.1)(typescript@5.1.6)(vite@4.3.9)(vitest@0.32.0) + specifier: 16.6.0 + version: 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6)(vite@4.4.9)(vitest@0.34.1) '@nx/web': - specifier: 16.5.1 - version: 16.5.1(nx@16.5.1)(typescript@5.1.6) + specifier: 16.6.0 + version: 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) '@nx/workspace': - specifier: 16.5.1 - version: 16.5.1 + specifier: 16.6.0 + version: 16.6.0 '@storybook/addon-essentials': - specifier: ^7.0.24 - version: 7.0.24(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.2.1 + version: 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-interactions': + specifier: ^7.2.1 + version: 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-common': + specifier: ^7.2.1 + version: 7.2.1 '@storybook/core-server': - specifier: ^7.0.24 - version: 7.0.24 + specifier: ^7.2.1 + version: 7.2.1 + '@storybook/jest': + specifier: ^0.1.0 + version: 0.1.0 '@storybook/react': - specifier: ^7.0.24 - version: 7.0.24(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6) + specifier: ^7.2.1 + version: 7.2.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6) '@storybook/react-vite': - specifier: ^7.0.24 - version: 7.0.24(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6)(vite@4.3.9) + specifier: ^7.2.1 + version: 7.2.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6)(vite@4.4.9) + '@storybook/testing-library': + specifier: ^0.2.0 + version: 0.2.0 '@testing-library/react': specifier: 14.0.0 version: 14.0.0(react-dom@18.2.0)(react@18.2.0) + '@types/lodash': + specifier: ^4.14.196 + version: 4.14.196 '@types/node': specifier: 18.14.2 version: 18.14.2 '@types/react': - specifier: 18.2.14 - version: 18.2.14 + specifier: 18.2.18 + version: 18.2.18 '@types/react-dom': - specifier: 18.2.6 - version: 18.2.6 + specifier: 18.2.7 + version: 18.2.7 '@typescript-eslint/eslint-plugin': - specifier: ^5.60.1 - version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.15.0)(typescript@5.1.6) + specifier: ^6.3.0 + version: 6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: ^5.60.1 - version: 5.60.1(eslint@8.15.0)(typescript@5.1.6) + specifier: ^6.3.0 + version: 6.3.0(eslint@8.46.0)(typescript@5.1.6) '@vitejs/plugin-react': - specifier: ~4.0.0 - version: 4.0.0(vite@4.3.9) + specifier: ~4.0.4 + version: 4.0.4(vite@4.4.9) '@vitest/coverage-c8': - specifier: ~0.32.0 - version: 0.32.0(vitest@0.32.0) + specifier: ~0.33.0 + version: 0.33.0(vitest@0.34.1) '@vitest/ui': - specifier: ~0.32.0 - version: 0.32.0(vitest@0.32.0) + specifier: ~0.34.1 + version: 0.34.1(vitest@0.34.1) babel-plugin-formatjs: specifier: ^10.5.3 version: 10.5.3 @@ -116,50 +143,74 @@ devDependencies: specifier: ^0.0.3 version: 0.0.3 eslint: - specifier: ~8.15.0 - version: 8.15.0 + specifier: ~8.46.0 + version: 8.46.0 eslint-config-prettier: - specifier: 8.1.0 - version: 8.1.0(eslint@8.15.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.46.0) eslint-plugin-cypress: - specifier: ^2.10.3 - version: 2.10.3(eslint@8.15.0) + specifier: ^2.13.3 + version: 2.13.3(eslint@8.46.0) + eslint-plugin-formatjs: + specifier: ^4.10.3 + version: 4.10.3(eslint@8.46.0) eslint-plugin-import: - specifier: 2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.15.0) + specifier: 2.28.0 + version: 2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0) eslint-plugin-jsx-a11y: specifier: 6.7.1 - version: 6.7.1(eslint@8.15.0) + version: 6.7.1(eslint@8.46.0) + eslint-plugin-prettier: + specifier: ^5.0.0 + version: 5.0.0(eslint-config-prettier@9.0.0)(eslint@8.46.0)(prettier@3.0.1) eslint-plugin-react: - specifier: 7.32.2 - version: 7.32.2(eslint@8.15.0) + specifier: 7.33.1 + version: 7.33.1(eslint@8.46.0) eslint-plugin-react-hooks: specifier: 4.6.0 - version: 4.6.0(eslint@8.15.0) + version: 4.6.0(eslint@8.46.0) + eslint-plugin-simple-import-sort: + specifier: ^10.0.0 + version: 10.0.0(eslint@8.46.0) + eslint-plugin-unused-imports: + specifier: ^3.0.0 + version: 3.0.0(@typescript-eslint/eslint-plugin@6.3.0)(eslint@8.46.0) jsdom: specifier: ~22.1.0 version: 22.1.0 nx: - specifier: 16.5.1 - version: 16.5.1 + specifier: 16.6.0 + version: 16.6.0 prettier: - specifier: ^2.6.2 - version: 2.6.2 + specifier: ^3.0.1 + version: 3.0.1 + storybook-addon-pseudo-states: + specifier: ^2.1.0 + version: 2.1.0(@storybook/components@7.2.1)(@storybook/core-events@7.2.1)(@storybook/manager-api@7.2.1)(@storybook/preview-api@7.2.1)(@storybook/theming@7.2.1)(react-dom@18.2.0)(react@18.2.0) + ts-node: + specifier: 10.9.1 + version: 10.9.1(@types/node@18.14.2)(typescript@5.1.6) typescript: specifier: ~5.1.3 version: 5.1.6 vite: - specifier: ~4.3.9 - version: 4.3.9(@types/node@18.14.2) + specifier: ~4.4.9 + version: 4.4.9(@types/node@18.14.2) vite-plugin-dts: - specifier: ~2.3.0 - version: 2.3.0(@types/node@18.14.2)(vite@4.3.9) + specifier: ~3.5.1 + version: 3.5.1(@types/node@18.14.2)(typescript@5.1.6)(vite@4.4.9) + vite-plugin-static-copy: + specifier: ^0.17.0 + version: 0.17.0(vite@4.4.9) + vite-plugin-svgr: + specifier: ^3.2.0 + version: 3.2.0(vite@4.4.9) vite-tsconfig-paths: specifier: ~4.2.0 - version: 4.2.0(typescript@5.1.6)(vite@4.3.9) + version: 4.2.0(typescript@5.1.6)(vite@4.4.9) vitest: - specifier: ~0.32.0 - version: 0.32.0(@vitest/ui@0.32.0)(jsdom@22.1.0) + specifier: ~0.34.1 + version: 0.34.1(@vitest/ui@0.34.1)(jsdom@22.1.0) packages: @@ -168,46 +219,51 @@ packages: engines: {node: '>=0.10.0'} dev: true + /@adobe/css-tools@4.3.0: + resolution: {integrity: sha512-+RNNcQvw2V1bmnBTPAtOLfW/9mhH2vC67+rUSi5T8EtEWt6lEnGNY2GuhZ1/YwbgikT1TkhvidCDmN5Q5YCo/w==} + dev: true + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 dev: true - /@aw-web-design/x-default-browser@1.4.88: - resolution: {integrity: sha512-AkEmF0wcwYC2QkhK703Y83fxWARttIWXDmQN8+cof8FmFZ5BRhnNXGymeb1S73bOCLfWjYELxtujL56idCN/XA==} + /@aw-web-design/x-default-browser@1.4.126: + resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==} hasBin: true dependencies: default-browser-id: 3.0.0 dev: true - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + /@babel/code-frame@7.22.10: + resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.5 + '@babel/highlight': 7.22.10 + chalk: 2.4.2 /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.9: - resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + /@babel/core@7.22.10: + resolution: {integrity: sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.22.7 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/helpers': 7.22.10 + '@babel/parser': 7.22.10 '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -217,23 +273,36 @@ packages: - supports-color dev: true - /@babel/generator@7.21.9: - resolution: {integrity: sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==} + /@babel/core@7.22.9: + resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - jsesc: 2.5.2 + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helpers': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color dev: true - /@babel/generator@7.22.9: - resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} + /@babel/generator@7.22.10: + resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 dev: true @@ -241,71 +310,68 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5: - resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.10: + resolution: {integrity: sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + /@babel/helper-compilation-targets@7.22.10: + resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 + browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} + /@babel/helper-create-class-features-plugin@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.9): + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.1(@babel/core@7.22.9): - resolution: {integrity: sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==} + /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.10): + resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==} peerDependencies: - '@babel/core': ^7.4.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 - resolve: 1.22.2 + resolve: 1.22.4 transitivePeerDependencies: - supports-color dev: true @@ -320,28 +386,42 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-member-expression-to-functions@7.22.5: resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 + + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 + dev: true /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} @@ -361,7 +441,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -369,25 +449,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.9): + /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-wrap-function': 7.22.9 + '@babel/helper-wrap-function': 7.22.10 dev: true - /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 @@ -397,21 +477,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@babel/helper-string-parser@7.22.5: @@ -427,208 +507,199 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-wrap-function@7.22.9: - resolution: {integrity: sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==} + /@babel/helper-wrap-function@7.22.10: + resolution: {integrity: sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.22.5 '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/helpers@7.22.6: - resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} + /@babel/helpers@7.22.10: + resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.5: - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + /@babel/highlight@7.22.10: + resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.21.9: - resolution: {integrity: sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.22.5 - dev: true - - /@babel/parser@7.22.7: - resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} + /@babel/parser@7.22.10: + resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.9): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.9): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) + '@babel/plugin-transform-optional-chaining': 7.22.10(@babel/core@7.22.10) dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.9): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.10): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-decorators@7.22.7(@babel/core@7.22.9): - resolution: {integrity: sha512-omXqPF7Onq4Bb7wHxXjM3jSMSJvUUbvDvmmds7KI5n9Cq6Ln5I05I1W2nRlRof1rGdiUxJrxwe285WF96XlBXQ==} + /@babel/plugin-proposal-decorators@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-KxN6TqZzcFi4uD3UifqXElBTBNLAEH1l3vzMQj6JwJZbL2sZlThxSViOKCYY+4Ah4V4JhQ95IVB7s/Y6SJSlMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.22.10) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.10): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - dev: true - - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.9): - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.22.10 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.10): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.10): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.10): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA==} + /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.10): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -642,875 +713,879 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.10): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.10): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.9): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.10): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.22.7(@babel/core@7.22.9): - resolution: {integrity: sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==} + /@babel/plugin-transform-async-generator-functions@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.10) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.9) + '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} + /@babel/plugin-transform-block-scoping@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9): + /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.10): resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.5 dev: true - /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} + /@babel/plugin-transform-destructuring@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 + '@babel/core': 7.22.10 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.5 dev: true - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-optional-chaining@7.22.6(@babel/core@7.22.9): - resolution: {integrity: sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==} + /@babel/plugin-transform-optional-chaining@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-constant-elements@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-constant-elements@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) '@babel/types': 7.22.5 dev: true - /@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} + /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.1 + regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-runtime@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ==} + /@babel/plugin-transform-runtime@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-module-imports': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.4(@babel/core@7.22.9) - babel-plugin-polyfill-corejs3: 0.8.2(@babel/core@7.22.9) - babel-plugin-polyfill-regenerator: 0.5.1(@babel/core@7.22.9) + babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.10) + babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.10) + babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.10) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==} + /@babel/plugin-transform-typescript@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10) dev: true - /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} + /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==} + /@babel/preset-env@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-async-generator-functions': 7.22.7(@babel/core@7.22.9) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-optional-chaining': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.9) - '@babel/preset-modules': 0.1.5(@babel/core@7.22.9) - '@babel/types': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.4(@babel/core@7.22.9) - babel-plugin-polyfill-corejs3: 0.8.2(@babel/core@7.22.9) - babel-plugin-polyfill-regenerator: 0.5.1(@babel/core@7.22.9) - core-js-compat: 3.31.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.10) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.10) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.10) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.10) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.10) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.10) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.10) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-async-generator-functions': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-block-scoping': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.10) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-destructuring': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-optional-chaining': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.10) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.22.10) + '@babel/types': 7.22.10 + babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.10) + babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.10) + babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.10) + core-js-compat: 3.32.0 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.5(@babel/core@7.22.9): - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.22.10): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.9) - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 esutils: 2.0.3 dev: true - /@babel/preset-react@7.22.5(@babel/core@7.22.9): + /@babel/preset-react@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.22.10) dev: true - /@babel/preset-typescript@7.22.5(@babel/core@7.22.9): + /@babel/preset-typescript@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-typescript': 7.22.9(@babel/core@7.22.9) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) dev: true /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true + /@babel/runtime@7.22.10: + resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + /@babel/runtime@7.22.6: resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} engines: {node: '>=6.9.0'} @@ -1521,23 +1596,23 @@ packages: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/code-frame': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 dev: true - /@babel/traverse@7.21.5: - resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} + /@babel/traverse@7.22.10: + resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -1548,28 +1623,27 @@ packages: resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.21.5: - resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} + /@babel/types@7.22.10: + resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 - dev: true /@babel/types@7.22.5: resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} @@ -1578,6 +1652,7 @@ packages: '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 + dev: true /@base2/pretty-print-object@1.0.1: resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} @@ -1594,6 +1669,13 @@ packages: dev: true optional: true + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + /@discoveryjs/json-ext@0.5.7: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} @@ -1603,7 +1685,7 @@ packages: resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} dependencies: '@babel/helper-module-imports': 7.22.5 - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 '@emotion/hash': 0.9.1 '@emotion/memoize': 0.8.1 '@emotion/serialize': 1.1.2 @@ -1639,7 +1721,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.1(@types/react@18.2.14)(react@18.2.0): + /@emotion/react@11.11.1(@types/react@18.2.18)(react@18.2.0): resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} peerDependencies: '@types/react': '*' @@ -1655,7 +1737,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.14 + '@types/react': 18.2.18 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false @@ -1674,7 +1756,7 @@ packages: resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@18.2.14)(react@18.2.0): + /@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@18.2.18)(react@18.2.0): resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 @@ -1687,11 +1769,11 @@ packages: '@babel/runtime': 7.22.6 '@emotion/babel-plugin': 11.11.0 '@emotion/is-prop-valid': 1.2.1 - '@emotion/react': 11.11.1(@types/react@18.2.14)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@18.2.18)(react@18.2.0) '@emotion/serialize': 1.1.2 '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 - '@types/react': 18.2.14 + '@types/react': 18.2.18 react: 18.2.0 dev: false @@ -1714,8 +1796,8 @@ packages: resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} dev: false - /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + /@esbuild/android-arm64@0.18.19: + resolution: {integrity: sha512-4+jkUFQxZkQfQOOxfGVZB38YUWHMJX2ihZwF+2nh8m7bHdWXpixiurgGRN3c/KMSwlltbYI0/i929jwBRMFzbA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1723,8 +1805,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + /@esbuild/android-arm@0.18.19: + resolution: {integrity: sha512-1uOoDurJYh5MNqPqpj3l/TQCI1V25BXgChEldCB7D6iryBYqYKrbZIhYO5AI9fulf66sM8UJpc3UcCly2Tv28w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1732,8 +1814,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + /@esbuild/android-x64@0.18.19: + resolution: {integrity: sha512-ae5sHYiP/Ogj2YNrLZbWkBmyHIDOhPgpkGvFnke7XFGQldBDWvc/AyYwSLpNuKw9UNkgnLlB/jPpnBmlF3G9Bg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -1741,8 +1823,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + /@esbuild/darwin-arm64@0.18.19: + resolution: {integrity: sha512-HIpQvNQWFYROmWDANMRL+jZvvTQGOiTuwWBIuAsMaQrnStedM+nEKJBzKQ6bfT9RFKH2wZ+ej+DY7+9xHBTFPg==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1750,8 +1832,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + /@esbuild/darwin-x64@0.18.19: + resolution: {integrity: sha512-m6JdvXJQt0thNLIcWOeG079h2ivhYH4B5sVCgqb/B29zTcFd7EE8/J1nIUHhdtwGeItdUeqKaqqb4towwxvglQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1759,8 +1841,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + /@esbuild/freebsd-arm64@0.18.19: + resolution: {integrity: sha512-G0p4EFMPZhGn/xVNspUyMQbORH3nlKTV0bFNHPIwLraBuAkTeMyxNviTe0ZXUbIXQrR1lrwniFjNFU4s+x7veQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1768,8 +1850,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + /@esbuild/freebsd-x64@0.18.19: + resolution: {integrity: sha512-hBxgRlG42+W+j/1/cvlnSa+3+OBKeDCyO7OG2ICya1YJaSCYfSpuG30KfOnQHI7Ytgu4bRqCgrYXxQEzy0zM5Q==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1777,8 +1859,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + /@esbuild/linux-arm64@0.18.19: + resolution: {integrity: sha512-X8g33tczY0GsJq3lhyBrjnFtaKjWVpp1gMq5IlF9BQJ3TUfSK74nQnz9mRIEejmcV+OIYn6bkOJeUaU1Knrljg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1786,8 +1868,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + /@esbuild/linux-arm@0.18.19: + resolution: {integrity: sha512-qtWyoQskfJlb9MD45mvzCEKeO4uCnDZ7lPFeNqbfaaJHqBiH9qA5Vu2EuckqYZuFMJWy1l4dxTf9NOulCVfUjg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1795,8 +1877,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + /@esbuild/linux-ia32@0.18.19: + resolution: {integrity: sha512-SAkRWJgb+KN+gOhmbiE6/wu23D6HRcGQi15cB13IVtBZZgXxygTV5GJlUAKLQ5Gcx0gtlmt+XIxEmSqA6sZTOw==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1804,8 +1886,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + /@esbuild/linux-loong64@0.18.19: + resolution: {integrity: sha512-YLAslaO8NsB9UOxBchos82AOMRDbIAWChwDKfjlGrHSzS3v1kxce7dGlSTsrb0PJwo1KYccypN3VNjQVLtz7LA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1813,8 +1895,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + /@esbuild/linux-mips64el@0.18.19: + resolution: {integrity: sha512-vSYFtlYds/oTI8aflEP65xo3MXChMwBOG1eWPGGKs/ev9zkTeXVvciU+nifq8J1JYMz+eQ4J9JDN0O2RKF8+1Q==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1822,8 +1904,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + /@esbuild/linux-ppc64@0.18.19: + resolution: {integrity: sha512-tgG41lRVwlzqO9tv9l7aXYVw35BxKXLtPam1qALScwSqPivI8hjkZLNH0deaaSCYCFT9cBIdB+hUjWFlFFLL9A==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1831,8 +1913,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + /@esbuild/linux-riscv64@0.18.19: + resolution: {integrity: sha512-EgBZFLoN1S5RuB4cCJI31pBPsjE1nZ+3+fHRjguq9Ibrzo29bOLSBcH1KZJvRNh5qtd+fcYIGiIUia8Jw5r1lQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1840,8 +1922,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + /@esbuild/linux-s390x@0.18.19: + resolution: {integrity: sha512-q1V1rtHRojAzjSigZEqrcLkpfh5K09ShCoIsdTakozVBnM5rgV58PLFticqDp5UJ9uE0HScov9QNbbl8HBo6QQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1849,8 +1931,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + /@esbuild/linux-x64@0.18.19: + resolution: {integrity: sha512-D0IiYjpZRXxGZLQfsydeAD7ZWqdGyFLBj5f2UshJpy09WPs3qizDCsEr8zyzcym6Woj/UI9ZzMIXwvoXVtyt0A==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1858,8 +1940,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + /@esbuild/netbsd-x64@0.18.19: + resolution: {integrity: sha512-3tt3SOS8L3D54R8oER41UdDshlBIAjYhdWRPiZCTZ1E41+shIZBpTjaW5UaN/jD1ENE/Ok5lkeqhoNMbxstyxw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1867,8 +1949,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + /@esbuild/openbsd-x64@0.18.19: + resolution: {integrity: sha512-MxbhcuAYQPlfln1EMc4T26OUoeg/YQc6wNoEV8xvktDKZhLtBxjkoeESSo9BbPaGKhAPzusXYj5n8n5A8iZSrA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1876,8 +1958,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + /@esbuild/sunos-x64@0.18.19: + resolution: {integrity: sha512-m0/UOq1wj25JpWqOJxoWBRM9VWc3c32xiNzd+ERlYstUZ6uwx5SZsQUtkiFHaYmcaoj+f6+Tfcl7atuAz3idwQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1885,8 +1967,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + /@esbuild/win32-arm64@0.18.19: + resolution: {integrity: sha512-L4vb6pcoB1cEcXUHU6EPnUhUc4+/tcz4OqlXTWPcSQWxegfmcOprhmIleKKwmMNQVc4wrx/+jB7tGkjjDmiupg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1894,8 +1976,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + /@esbuild/win32-ia32@0.18.19: + resolution: {integrity: sha512-rQng7LXSKdrDlNDb7/v0fujob6X0GAazoK/IPd9C3oShr642ri8uIBkgM37/l8B3Rd5sBQcqUXoDdEy75XC/jg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1903,8 +1985,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + /@esbuild/win32-x64@0.18.19: + resolution: {integrity: sha512-z69jhyG20Gq4QL5JKPLqUT+eREuqnDAFItLbza4JCmpvUnIlY73YNjd5djlO7kBiiZnvTnJuAbOjIoZIOa1GjA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1912,28 +1994,28 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.15.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.15.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.46.0 + eslint-visitor-keys: 3.4.2 dev: true - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@1.4.1: - resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + /@eslint/eslintrc@2.1.1: + resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.6.0 + espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -1944,10 +2026,48 @@ packages: - supports-color dev: true + /@eslint/js@8.46.0: + resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@faker-js/faker@8.0.2: + resolution: {integrity: sha512-Uo3pGspElQW91PCvKSIAXoEgAUlRnH29sX2/p89kg7sP1m2PzCufHINd0FhTXQf6DYGiUlVncdSPa2F9wxed2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + dev: true + /@fal-works/esbuild-plugin-global-externals@2.1.2: resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} dev: true + /@floating-ui/core@1.4.1: + resolution: {integrity: sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==} + dependencies: + '@floating-ui/utils': 0.1.1 + dev: true + + /@floating-ui/dom@1.5.1: + resolution: {integrity: sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==} + dependencies: + '@floating-ui/core': 1.4.1 + '@floating-ui/utils': 0.1.1 + dev: true + + /@floating-ui/react-dom@2.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-rZtAmSht4Lry6gdhAJDrCp/6rKN7++JnL1/Anbr/DdeyYXQPxvg/ivrbYvJulbRf4vL8b212suwMM2lxbv+RQA==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.5.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@floating-ui/utils@0.1.1: + resolution: {integrity: sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==} + dev: true + /@formatjs/cli@6.1.3: resolution: {integrity: sha512-PdTXZTY8LqxwmvFqdifn89gjXnPUpGtGyFs0BnoeLuOuxZFSnBfIs5WQCVMaJnr1+0vNNlXyT0VAIAwjRpf6BA==} engines: {node: '>= 16'} @@ -1963,12 +2083,12 @@ packages: resolution: {integrity: sha512-6ueQTeJZtwKjmh23bdkq/DMqH4l4bmfvtQH98blOSbiXv/OUiyijSW6jU22IT8BNM1ujCaEvJfTtyCYVH38EMQ==} dependencies: '@formatjs/intl-localematcher': 0.4.0 - tslib: 2.6.0 + tslib: 2.6.1 /@formatjs/fast-memoize@2.2.0: resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@formatjs/icu-messageformat-parser@2.6.0: @@ -1976,20 +2096,20 @@ packages: dependencies: '@formatjs/ecma402-abstract': 1.17.0 '@formatjs/icu-skeleton-parser': 1.6.0 - tslib: 2.6.0 + tslib: 2.6.1 /@formatjs/icu-skeleton-parser@1.6.0: resolution: {integrity: sha512-eMmxNpoX/J1IPUjPGSZwo0Wh+7CEvdEMddP2Jxg1gQJXfGfht/FdW2D5XDFj3VMbOTUQlDIdZJY7uC6O6gjPoA==} dependencies: '@formatjs/ecma402-abstract': 1.17.0 - tslib: 2.6.0 + tslib: 2.6.1 /@formatjs/intl-displaynames@6.5.0: resolution: {integrity: sha512-sg/nR8ILEdUl+2sWu6jc1nQ5s04yucGlH1RVfatW8TSJ5uG3Yy3vgigi8NNC/BuhcncUNPWqSpTCSI1hA+rhiw==} dependencies: '@formatjs/ecma402-abstract': 1.17.0 '@formatjs/intl-localematcher': 0.4.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@formatjs/intl-listformat@7.4.0: @@ -1997,13 +2117,13 @@ packages: dependencies: '@formatjs/ecma402-abstract': 1.17.0 '@formatjs/intl-localematcher': 0.4.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@formatjs/intl-localematcher@0.4.0: resolution: {integrity: sha512-bRTd+rKomvfdS4QDlVJ6TA/Jx1F2h/TBVO5LjvhQ7QPPHp19oPNMIum7W2CMEReq/zPxpmCeB31F9+5gl/qtvw==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 /@formatjs/intl@2.9.0(typescript@5.1.6): resolution: {integrity: sha512-Ym0trUoC/VO6wQu4YHa0H1VR2tEixFRmwZgADkDLm7nD+vv1Ob+/88mUAoT0pwvirFqYKgUKEwp1tFepqyqvVA==} @@ -2019,7 +2139,7 @@ packages: '@formatjs/intl-displaynames': 6.5.0 '@formatjs/intl-listformat': 7.4.0 intl-messageformat: 10.5.0 - tslib: 2.6.0 + tslib: 2.6.1 typescript: 5.1.6 dev: false @@ -2033,10 +2153,10 @@ packages: dependencies: '@formatjs/icu-messageformat-parser': 2.6.0 '@types/json-stable-stringify': 1.0.34 - '@types/node': 16.18.38 + '@types/node': 16.18.39 chalk: 4.1.2 json-stable-stringify: 1.0.2 - tslib: 2.6.0 + tslib: 2.6.1 typescript: 5.1.6 dev: true @@ -2071,8 +2191,8 @@ packages: xcase: 2.0.1 dev: true - /@humanwhocodes/config-array@0.9.5: - resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + /@humanwhocodes/config-array@0.11.10: + resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -2082,10 +2202,27 @@ packages: - supports-color dev: true + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -2102,6 +2239,13 @@ packages: engines: {node: '>=8'} dev: true + /@jest/expect-utils@29.6.2: + resolution: {integrity: sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.4.3 + dev: true + /@jest/schemas@29.6.0: resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2109,21 +2253,21 @@ packages: '@sinclair/typebox': 0.27.8 dev: true - /@jest/transform@29.6.1: - resolution: {integrity: sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==} + /@jest/transform@29.6.2: + resolution: {integrity: sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@jest/types': 29.6.1 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.6.1 + jest-haste-map: 29.6.2 jest-regex-util: 29.4.3 - jest-util: 29.6.1 + jest-util: 29.6.2 micromatch: 4.0.5 pirates: 4.0.6 slash: 3.0.0 @@ -2132,6 +2276,17 @@ packages: - supports-color dev: true + /@jest/types@27.5.1: + resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.14.2 + '@types/yargs': 16.0.5 + chalk: 4.1.2 + dev: true + /@jest/types@29.6.1: resolution: {integrity: sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2144,7 +2299,7 @@ packages: chalk: 4.1.2 dev: true - /@joshwooding/vite-plugin-react-docgen-typescript@0.2.1(typescript@5.1.6)(vite@4.3.9): + /@joshwooding/vite-plugin-react-docgen-typescript@0.2.1(typescript@5.1.6)(vite@4.4.9): resolution: {integrity: sha512-ou4ZJSXMMWHqGS4g8uNRbC5TiTWxAgQZiVucoUrOCWuPrTbkpJbmVyIi9jU72SBry7gQtuMEDp4YR8EEXAg7VQ==} peerDependencies: typescript: '>= 4.3.x' @@ -2158,7 +2313,7 @@ packages: magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.1.6) typescript: 5.1.6 - vite: 4.3.9(@types/node@18.14.2) + vite: 4.4.9(@types/node@18.14.2) dev: true /@jridgewell/gen-mapping@0.3.3: @@ -2167,11 +2322,11 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 dev: true - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} dev: true @@ -2184,22 +2339,25 @@ packages: resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - dev: true - - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + '@jridgewell/trace-mapping': 0.3.19 dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@juggle/resize-observer@3.4.0: @@ -2212,34 +2370,34 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.5 - '@types/react': 18.2.14 + '@types/react': 18.2.18 react: 18.2.0 dev: true - /@microsoft/api-extractor-model@7.27.4(@types/node@18.14.2): - resolution: {integrity: sha512-HjqQFmuGPOS20rtnu+9Jj0QrqZyR59E+piUWXPMZTTn4jaZI+4UmsHSf3Id8vyueAhOBH2cgwBuRTE5R+MfSMw==} + /@microsoft/api-extractor-model@7.27.5(@types/node@18.14.2): + resolution: {integrity: sha512-9/tBzYMJitR+o+zkPr1lQh2+e8ClcaTF6eZo7vZGDqRt2O5XmXWPbYJZmxyM3wb5at6lfJNEeGZrQXLjsQ0Nbw==} dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.5(@types/node@18.14.2) + '@rushstack/node-core-library': 3.59.6(@types/node@18.14.2) transitivePeerDependencies: - '@types/node' dev: true - /@microsoft/api-extractor@7.36.2(@types/node@18.14.2): - resolution: {integrity: sha512-ONe/jOmTZtR3OjTkWKHmeSV1P5ozbHDxHr6FV3KoWyIl1AcPk2B3dmvVBM5eOlZB5bgM66nxcWQTZ6msQo2hHg==} + /@microsoft/api-extractor@7.36.3(@types/node@18.14.2): + resolution: {integrity: sha512-u0H6362AQq+r55X8drHx4npgkrCfJnMzRRHfQo8PMNKB8TcBnrTLfXhXWi+xnTM6CzlU/netEN8c4bq581Rnrg==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.27.4(@types/node@18.14.2) + '@microsoft/api-extractor-model': 7.27.5(@types/node@18.14.2) '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.5(@types/node@18.14.2) + '@rushstack/node-core-library': 3.59.6(@types/node@18.14.2) '@rushstack/rig-package': 0.4.0 '@rushstack/ts-command-line': 4.15.1 colors: 1.2.5 lodash: 4.17.21 - resolve: 1.22.2 - semver: 7.3.8 + resolve: 1.22.4 + semver: 7.5.4 source-map: 0.6.1 typescript: 5.0.4 transitivePeerDependencies: @@ -2259,8 +2417,8 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mui/base@5.0.0-beta.7(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Pjbwm6gjiS96kOMF7E5fjEJsenc0tZBesrLQ4rrdi3eT/c/yhSWnPbCUkHSz8bnS0l3/VQ8bA+oERSGSV2PK6A==} + /@mui/base@5.0.0-beta.9(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-gm6gnPnc/lS5Z3neH0iuOrK7IbS02+oh6KsMtXYLhI6bJpHs+PNWFsBmISx7x4FSPVJZvZkb8Bw6pEXpIMFt7Q==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 @@ -2270,25 +2428,25 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 '@emotion/is-prop-valid': 1.2.1 - '@mui/types': 7.2.4(@types/react@18.2.14) - '@mui/utils': 5.13.7(react@18.2.0) + '@mui/types': 7.2.4(@types/react@18.2.18) + '@mui/utils': 5.14.3(react@18.2.0) '@popperjs/core': 2.11.8 - '@types/react': 18.2.14 - clsx: 1.2.1 + '@types/react': 18.2.18 + clsx: 2.0.0 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 18.2.0 dev: false - /@mui/core-downloads-tracker@5.14.0: - resolution: {integrity: sha512-SYBOVCatVDUf/lbrLGah09bHhX5WfUXg7kSskfLILr6SvKRni0NLp0aonxQ0SMALVVK3Qwa6cW4CdWuwS0gC1w==} + /@mui/core-downloads-tracker@5.14.3: + resolution: {integrity: sha512-QxvrcDqphZoXRjsAmCaQylmWjC/8/qKWwIde1MJMna5YIst3R9O0qhKRPu36/OE2d8AeTbCVjRcRvNqhhW8jyg==} dev: false - /@mui/material@5.14.0(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-HP7CP71NhMkui2HUIEKl2/JfuHMuoarSUWAKlNw6s17bl/Num9rN61EM6uUzc2A2zHjj/00A66GnvDnmixEJEw==} + /@mui/material@5.14.3(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-dlu4SOcCp9Cy+wkcfZ/ns9ZkP40nr/WPgqxX0HmrE0o+dkE1ropY9BbHsLrTlYJCko8yzcC8bLghrD4xqZG1og==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2304,17 +2462,17 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.22.6 - '@emotion/react': 11.11.1(@types/react@18.2.14)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.14)(react@18.2.0) - '@mui/base': 5.0.0-beta.7(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) - '@mui/core-downloads-tracker': 5.14.0 - '@mui/system': 5.14.0(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.14)(react@18.2.0) - '@mui/types': 7.2.4(@types/react@18.2.14) - '@mui/utils': 5.13.7(react@18.2.0) - '@types/react': 18.2.14 + '@babel/runtime': 7.22.10 + '@emotion/react': 11.11.1(@types/react@18.2.18)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.18)(react@18.2.0) + '@mui/base': 5.0.0-beta.9(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@mui/core-downloads-tracker': 5.14.3 + '@mui/system': 5.14.3(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.18)(react@18.2.0) + '@mui/types': 7.2.4(@types/react@18.2.18) + '@mui/utils': 5.14.3(react@18.2.0) + '@types/react': 18.2.18 '@types/react-transition-group': 4.4.6 - clsx: 1.2.1 + clsx: 2.0.0 csstype: 3.1.2 prop-types: 15.8.1 react: 18.2.0 @@ -2323,7 +2481,7 @@ packages: react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) dev: false - /@mui/private-theming@5.13.7(@types/react@18.2.14)(react@18.2.0): + /@mui/private-theming@5.13.7(@types/react@18.2.18)(react@18.2.0): resolution: {integrity: sha512-qbSr+udcij5F9dKhGX7fEdx2drXchq7htLNr2Qg2Ma+WJ6q0ERlEqGSBiPiVDJkptcjeVL4DGmcf1wl5+vD4EA==} engines: {node: '>=12.0.0'} peerDependencies: @@ -2333,9 +2491,9 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.22.6 - '@mui/utils': 5.13.7(react@18.2.0) - '@types/react': 18.2.14 + '@babel/runtime': 7.22.10 + '@mui/utils': 5.14.3(react@18.2.0) + '@types/react': 18.2.18 prop-types: 15.8.1 react: 18.2.0 dev: false @@ -2353,17 +2511,17 @@ packages: '@emotion/styled': optional: true dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.1(@types/react@18.2.14)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.14)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@18.2.18)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.18)(react@18.2.0) csstype: 3.1.2 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/system@5.14.0(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.14)(react@18.2.0): - resolution: {integrity: sha512-0HZGkX8miJbiNw+rjlZ9l0Cfkz1bSqfSHQH0EH9J+nx0aAm5cBleg9piOlLdCNIWGgecCqsw4x62erGrGjjcJg==} + /@mui/system@5.14.3(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-b+C+j9+75+/iIYSa+1S4eCMc9MDNrj9hzWfExJqS2GffuNocRagjBZFyjtMqsLWLxMxQIX8Cg6j0hAioiw+WfQ==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2378,21 +2536,21 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.22.6 - '@emotion/react': 11.11.1(@types/react@18.2.14)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.14)(react@18.2.0) - '@mui/private-theming': 5.13.7(@types/react@18.2.14)(react@18.2.0) + '@babel/runtime': 7.22.10 + '@emotion/react': 11.11.1(@types/react@18.2.18)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.18)(react@18.2.0) + '@mui/private-theming': 5.13.7(@types/react@18.2.18)(react@18.2.0) '@mui/styled-engine': 5.13.2(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) - '@mui/types': 7.2.4(@types/react@18.2.14) - '@mui/utils': 5.13.7(react@18.2.0) - '@types/react': 18.2.14 - clsx: 1.2.1 + '@mui/types': 7.2.4(@types/react@18.2.18) + '@mui/utils': 5.14.3(react@18.2.0) + '@types/react': 18.2.18 + clsx: 2.0.0 csstype: 3.1.2 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/types@7.2.4(@types/react@18.2.14): + /@mui/types@7.2.4(@types/react@18.2.18): resolution: {integrity: sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==} peerDependencies: '@types/react': '*' @@ -2400,16 +2558,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.14 + '@types/react': 18.2.18 dev: false - /@mui/utils@5.13.7(react@18.2.0): - resolution: {integrity: sha512-/3BLptG/q0u36eYED7Nhf4fKXmcKb6LjjT7ZMwhZIZSdSxVqDqSTmATW3a56n3KEPQUXCU9TpxAfCBQhs6brVA==} + /@mui/utils@5.14.3(react@18.2.0): + resolution: {integrity: sha512-gZ6Etw+ppO43GYc1HFZSLjwd4DoZoa+RrYTD25wQLfzcSoPjVoC/zZqA2Lkq0zjgwGBQOSxKZI6jfp9uXR+kgw==} engines: {node: '>=12.0.0'} peerDependencies: react: ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 '@types/prop-types': 15.7.5 '@types/react-is': 18.2.1 prop-types: 15.8.1 @@ -2417,11 +2575,6 @@ packages: react-is: 18.2.0 dev: false - /@nicolo-ribaudo/semver-v6@6.3.3: - resolution: {integrity: sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==} - hasBin: true - dev: true - /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2453,14 +2606,16 @@ packages: - encoding dev: true - /@nrwl/cypress@16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-F/q5hZrGR4XPSOLiqEGuobUXYPZ8L5K/C3W9QbslFuFzMJM/q/GKmM6G0whZFnzC1e2Pu/6mbRJPQ/Q7m2gmkA==} + /@nrwl/cypress@16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-DxD6rdUbZTMa3d1Reaq1y718fk+4fnDZ3Rpv1r+QhxubyX/FyfomzOC61q75A/XAv9QtiWQUd10diivpPZeZOw==} dependencies: - '@nx/cypress': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + '@nx/cypress': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - cypress - debug - eslint @@ -2470,22 +2625,24 @@ packages: - verdaccio dev: true - /@nrwl/devkit@16.5.1(nx@16.5.1): - resolution: {integrity: sha512-NB+DE/+AFJ7lKH/WBFyatJEhcZGj25F24ncDkwjZ6MzEiSOGOJS0LaV/R+VUsmS5EHTPXYOpn3zHWWAcJhyOmA==} + /@nrwl/devkit@16.6.0(nx@16.6.0): + resolution: {integrity: sha512-xZEN6wfA1uJwv+FVRQFOHsCcpvGvIYGx2zutbzungDodWkfzlJ3tzIGqYjIpPCBVT83erM6Gscnka2W46AuKfA==} dependencies: - '@nx/devkit': 16.5.1(nx@16.5.1) + '@nx/devkit': 16.6.0(nx@16.6.0) transitivePeerDependencies: - nx dev: true - /@nrwl/eslint-plugin-nx@16.5.1(@typescript-eslint/parser@5.60.1)(eslint-config-prettier@8.1.0)(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-pOeeb8I7IeYuf+HRonaJuzIuSygl1JIQ+rutsN4KEPqyqpAw03W11kiPMoOU/HU0SMfTGzO/dN7ICXzVgg0omA==} + /@nrwl/eslint-plugin-nx@16.6.0(@types/node@18.14.2)(@typescript-eslint/parser@6.3.0)(eslint-config-prettier@9.0.0)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-kNT8Q6buTX9kIYgiZZRFcr2bxSgIQR3tpbBlzXhKFeQE31w53fVWbdX3oPbn+VPgza84beVCEUbyOHexA4X82Q==} dependencies: - '@nx/eslint-plugin': 16.5.1(@typescript-eslint/parser@5.60.1)(eslint-config-prettier@8.1.0)(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + '@nx/eslint-plugin': 16.6.0(@types/node@18.14.2)(@typescript-eslint/parser@6.3.0)(eslint-config-prettier@9.0.0)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - '@typescript-eslint/parser' - debug - eslint @@ -2496,14 +2653,16 @@ packages: - verdaccio dev: true - /@nrwl/js@16.5.1(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-fVNMTaG/NiGUrGjGd2wzkiut7UIcVtmTvYOMBiF+yly3ZTrESi4cib0Hg10FbDKi759D/0qcUirFx522ePxv7g==} + /@nrwl/js@16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-fMqMuqF/rwi1diirkNQ0ZgRnPwMoutE92xnLUZcqbyD/P4kTsrxleOAGvxpzpMpdvUU0Cw+cpVwHf6nw7o8JCA==} dependencies: - '@nx/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) + '@nx/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - nx - supports-color @@ -2511,14 +2670,16 @@ packages: - verdaccio dev: true - /@nrwl/linter@16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-rTP2dhJtJNwGNonLAQ4SvT39OrWSNWX5cSyyvMf/QTrL7I1oUvoz9+uLdZEzdWjTIMx429IvFIkVJpRl2FUrHw==} + /@nrwl/linter@16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-E/6E8EVrOECqwevVYBUH/YF2+K2pE0GcNs6233BnGpflyxhxNYaH18vM0y0q8BGbeZEKkqEiiMTryg50+GiBzw==} dependencies: - '@nx/linter': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + '@nx/linter': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - eslint - nx @@ -2527,14 +2688,16 @@ packages: - verdaccio dev: true - /@nrwl/react@16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6)(webpack@5.88.1): - resolution: {integrity: sha512-T5KD3gL+SAgOtUdTgQqiOdZupvveRT5YAAd4QTV4zEJXBhoHPUSgLZlOL8LBTq46Pa6ghQQBN6Ar503bunF9uQ==} + /@nrwl/react@16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6)(webpack@5.88.2): + resolution: {integrity: sha512-2xPakyRN9Gkt7tIbFFJ/sjwnm3HE6v8Oa4k1YfT2NnBV2ZKeMiwMDaHaYBa0709q/eU3QMlonvtx3j1w8r5GTg==} dependencies: - '@nx/react': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6)(webpack@5.88.1) + '@nx/react': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6)(webpack@5.88.2) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - eslint - nx @@ -2544,14 +2707,16 @@ packages: - webpack dev: true - /@nrwl/storybook@16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-bUcv34WK2gYU/hChxf0aOu6+LPVar765U37bTQ5QwaCYK/mRwLIIcF11IO6wA7BFGIXw4cJsRz7RciILN1ZELA==} + /@nrwl/storybook@16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-8wKz2t99wr+EASyFNZV3CiOeSKJPk+OMrOU1q8qeHt6kEKoMrHmQmT4fxEOXA4ud6JxKUNJ/Wkxy90ytOeGyXw==} dependencies: - '@nx/storybook': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + '@nx/storybook': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - cypress - debug - eslint @@ -2561,25 +2726,28 @@ packages: - verdaccio dev: true - /@nrwl/tao@16.5.1: - resolution: {integrity: sha512-x+gi/fKdM6uQNIti9exFlm3V5LBP3Y8vOEziO42HdOigyrXa0S0HD2WMpccmp6PclYKhwEDUjKJ39xh5sdh4Ig==} + /@nrwl/tao@16.6.0: + resolution: {integrity: sha512-NQkDhmzlR1wMuYzzpl4XrKTYgyIzELdJ+dVrNKf4+p4z5WwKGucgRBj60xMQ3kdV25IX95/fmMDB8qVp/pNQ0Q==} hasBin: true dependencies: - nx: 16.5.1 + nx: 16.6.0 + tslib: 2.6.1 transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug dev: true - /@nrwl/vite@16.5.1(nx@16.5.1)(typescript@5.1.6)(vite@4.3.9)(vitest@0.32.0): - resolution: {integrity: sha512-/lvpzGmSk9obL2FaziSHCMI5deZW/JJ7/XB36GH9HgpaIqKeod210NEHVNfdXOHhn2cBMhTebTh8cvPgBYXfhw==} + /@nrwl/vite@16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6)(vite@4.4.9)(vitest@0.34.1): + resolution: {integrity: sha512-TSi/3yHg2nQ2pvWi22aVdSNOUf380wsT8Hbd+A3/QRIL1MZB7sm7rB1IhBZO8Z94xlGoaqum41yq+sTobBvDEA==} dependencies: - '@nx/vite': 16.5.1(nx@16.5.1)(typescript@5.1.6)(vite@4.3.9)(vitest@0.32.0) + '@nx/vite': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6)(vite@4.4.9)(vitest@0.34.1) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - nx - supports-color @@ -2589,14 +2757,16 @@ packages: - vitest dev: true - /@nrwl/web@16.5.1(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-9uOz3SrgJBdvipbvrcrEkOHvL+YORKoc31DHB0WBr2hWW1itMajOBVB06JJ6FbIibgCgHTLXOFvNsEzMpQcUJQ==} + /@nrwl/web@16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-6JQnoZFgnna8QWb5a9q3m3Wz86W+wOtLszLJZlnykskgFf6wEWxFsH77a2SahKafxS8XgZojP7Vun7Z1bUfiLw==} dependencies: - '@nx/web': 16.5.1(nx@16.5.1)(typescript@5.1.6) + '@nx/web': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - nx - supports-color @@ -2604,36 +2774,39 @@ packages: - verdaccio dev: true - /@nrwl/workspace@16.5.1: - resolution: {integrity: sha512-+UvmdrrA887B8Una/grR9WXoM+LzejL5qOKqxSovVcTJ9X9Yr6RBxNMtpqRSq8e2bxi5TNqrgaRQ3+h0ED70JA==} + /@nrwl/workspace@16.6.0: + resolution: {integrity: sha512-Bt2o1tU1ZYQKNtnBbyg62T1ELEdlNwxb5C6MPENnlDB/kkmiLXvPFTzMV2lgDZvMLP6eLazq98P2TQ8jCbY4lA==} dependencies: - '@nx/workspace': 16.5.1 + '@nx/workspace': 16.6.0 transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug dev: true - /@nx/cypress@16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-OBe2UFeumSzT5w52o3MImU17nzVTK6Wsy574UHnet8rOX1UNh2lkGQ9UNyz8J9VFyX0ETvFZkpXbvY/J9ZzIMA==} + /@nx/cypress@16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-nFns4lMN8bE4GxUImSfX3gotQoIH2Fha67q6TkfHYCVrYfPkNDaSzU2cAJ9O0BwyTMFlouHZmcqsdt2Qnl4DtQ==} peerDependencies: cypress: '>= 3 < 13' peerDependenciesMeta: cypress: optional: true dependencies: - '@nrwl/cypress': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) - '@nx/devkit': 16.5.1(nx@16.5.1) - '@nx/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) - '@nx/linter': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) + '@nrwl/cypress': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) + '@nx/devkit': 16.6.0(nx@16.6.0) + '@nx/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) + '@nx/linter': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) detect-port: 1.5.1 dotenv: 10.0.0 semver: 7.5.3 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - eslint - nx @@ -2642,22 +2815,22 @@ packages: - verdaccio dev: true - /@nx/devkit@16.5.1(nx@16.5.1): - resolution: {integrity: sha512-T1acZrVVmJw/sJ4PIGidCBYBiBqlg/jT9e8nIGXLSDS20xcLvfo4zBQf8UZLrmHglnwwpDpOWuVJCp2rYA5aDg==} + /@nx/devkit@16.6.0(nx@16.6.0): + resolution: {integrity: sha512-rhJ0y+MSPHDuoZPxsOYdj/n5ks+gK74TIMgTb8eZgPT/uR86a4oxf62wUQXgECedR5HzLE2HunbnoLhhJXmpJw==} peerDependencies: nx: '>= 15 <= 17' dependencies: - '@nrwl/devkit': 16.5.1(nx@16.5.1) + '@nrwl/devkit': 16.6.0(nx@16.6.0) ejs: 3.1.9 ignore: 5.2.4 - nx: 16.5.1 + nx: 16.6.0 semver: 7.5.3 tmp: 0.2.1 - tslib: 2.6.0 + tslib: 2.6.1 dev: true - /@nx/eslint-plugin@16.5.1(@typescript-eslint/parser@5.60.1)(eslint-config-prettier@8.1.0)(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-vWlNRvTV9Vpy2VpXCgUXRy+Z2WgzG4vHvfhG0fLNnz/DKm1xS/6rUgQVlbQpzn8qzrKUQhyml8DK4zR3ZSBVaA==} + /@nx/eslint-plugin@16.6.0(@types/node@18.14.2)(@typescript-eslint/parser@6.3.0)(eslint-config-prettier@9.0.0)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-fTqGTjAiFGZsYrs5OgwtL7bJ5qaNS6mW2/d/jZiN1oiSLBaJUyceKZWs0y5dvOMlJOo0/UG4hbBoMJGBBBWx+g==} peerDependencies: '@typescript-eslint/parser': ^5.60.1 eslint-config-prettier: ^8.1.0 @@ -2665,21 +2838,24 @@ packages: eslint-config-prettier: optional: true dependencies: - '@nrwl/eslint-plugin-nx': 16.5.1(@typescript-eslint/parser@5.60.1)(eslint-config-prettier@8.1.0)(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) - '@nx/devkit': 16.5.1(nx@16.5.1) - '@nx/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) - '@typescript-eslint/parser': 5.60.1(eslint@8.15.0)(typescript@5.1.6) - '@typescript-eslint/type-utils': 5.62.0(eslint@8.15.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.15.0)(typescript@5.1.6) + '@nrwl/eslint-plugin-nx': 16.6.0(@types/node@18.14.2)(@typescript-eslint/parser@6.3.0)(eslint-config-prettier@9.0.0)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) + '@nx/devkit': 16.6.0(nx@16.6.0) + '@nx/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) chalk: 4.1.2 confusing-browser-globals: 1.0.11 - eslint-config-prettier: 8.1.0(eslint@8.15.0) + eslint-config-prettier: 9.0.0(eslint@8.46.0) jsonc-eslint-parser: 2.3.0 semver: 7.5.3 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - eslint - nx @@ -2688,28 +2864,28 @@ packages: - verdaccio dev: true - /@nx/js@16.5.1(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-H7TLXQXtStOZLk4bknGgKsX+jKq958zwkPjh3TKmurOULWfKSU4BXG9j7/j6rgm5yFBQH7kC1EV/5WjhMeSrJw==} + /@nx/js@16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-9ZTw5cMR1XWfn8SXe4xp2ETAat+SCNcOBqEf/Ih5b3MjodlOVLRQNiYlGSpuCr1keok25DJZxKIbRgoJCLG6JA==} peerDependencies: verdaccio: ^5.0.4 peerDependenciesMeta: verdaccio: optional: true dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-proposal-decorators': 7.22.7(@babel/core@7.22.9) - '@babel/plugin-transform-runtime': 7.22.9(@babel/core@7.22.9) - '@babel/preset-env': 7.22.9(@babel/core@7.22.9) - '@babel/preset-typescript': 7.22.5(@babel/core@7.22.9) - '@babel/runtime': 7.22.6 - '@nrwl/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) - '@nx/devkit': 16.5.1(nx@16.5.1) - '@nx/workspace': 16.5.1 + '@babel/core': 7.22.10 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.10) + '@babel/plugin-proposal-decorators': 7.22.10(@babel/core@7.22.10) + '@babel/plugin-transform-runtime': 7.22.10(@babel/core@7.22.10) + '@babel/preset-env': 7.22.10(@babel/core@7.22.10) + '@babel/preset-typescript': 7.22.5(@babel/core@7.22.10) + '@babel/runtime': 7.22.10 + '@nrwl/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) + '@nx/devkit': 16.6.0(nx@16.6.0) + '@nx/workspace': 16.6.0 '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) - babel-plugin-const-enum: 1.2.0(@babel/core@7.22.9) + babel-plugin-const-enum: 1.2.0(@babel/core@7.22.10) babel-plugin-macros: 2.8.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.22.9) + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.22.10) chalk: 4.1.2 detect-port: 1.5.1 fast-glob: 3.2.7 @@ -2719,36 +2895,42 @@ packages: minimatch: 3.0.5 semver: 7.5.3 source-map-support: 0.5.19 - tslib: 2.6.0 + ts-node: 10.9.1(@types/node@18.14.2)(typescript@5.1.6) + tsconfig-paths: 4.2.0 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - nx - supports-color - typescript dev: true - /@nx/linter@16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-EefOGXCG9Ws3MHtDCa+somRGDif20eHoXWspMq61PU/hiSrFyTYr8BGumFmaB8rdpGMqRRh1cf6Qop7OaeIB0Q==} + /@nx/linter@16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-U0GOjvAm0BnA1AhqVshDrpA0lRDSggPYz4o3I9cCUd6ET41dwXrubZstWZ9tbPMXFlht1+Yk4CfM+XQEWW8JWQ==} peerDependencies: eslint: ^8.0.0 peerDependenciesMeta: eslint: optional: true dependencies: - '@nrwl/linter': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) - '@nx/devkit': 16.5.1(nx@16.5.1) - '@nx/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) + '@nrwl/linter': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) + '@nx/devkit': 16.6.0(nx@16.6.0) + '@nx/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) - eslint: 8.15.0 + eslint: 8.46.0 tmp: 0.2.1 - tslib: 2.6.0 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - nx - supports-color @@ -2756,8 +2938,8 @@ packages: - verdaccio dev: true - /@nx/nx-darwin-arm64@16.5.1: - resolution: {integrity: sha512-q98TFI4B/9N9PmKUr1jcbtD4yAFs1HfYd9jUXXTQOlfO9SbDjnrYJgZ4Fp9rMNfrBhgIQ4x1qx0AukZccKmH9Q==} + /@nx/nx-darwin-arm64@16.6.0: + resolution: {integrity: sha512-8nJuqcWG/Ob39rebgPLpv2h/V46b9Rqqm/AGH+bYV9fNJpxgMXclyincbMIWvfYN2tW+Vb9DusiTxV6RPrLapA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -2765,8 +2947,8 @@ packages: dev: true optional: true - /@nx/nx-darwin-x64@16.5.1: - resolution: {integrity: sha512-j9HmL1l8k7EVJ3eOM5y8COF93gqrydpxCDoz23ZEtsY+JHY77VAiRQsmqBgEx9GGA2dXi9VEdS67B0+1vKariw==} + /@nx/nx-darwin-x64@16.6.0: + resolution: {integrity: sha512-T4DV0/2PkPZjzjmsmQEyjPDNBEKc4Rhf7mbIZlsHXj27BPoeNjEcbjtXKuOZHZDIpGFYECGT/sAF6C2NVYgmxw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -2774,8 +2956,8 @@ packages: dev: true optional: true - /@nx/nx-freebsd-x64@16.5.1: - resolution: {integrity: sha512-CXSPT01aVS869tvCCF2tZ7LnCa8l41wJ3mTVtWBkjmRde68E5Up093hklRMyXb3kfiDYlfIKWGwrV4r0eH6x1A==} + /@nx/nx-freebsd-x64@16.6.0: + resolution: {integrity: sha512-Ck/yejYgp65dH9pbExKN/X0m22+xS3rWF1DBr2LkP6j1zJaweRc3dT83BWgt5mCjmcmZVk3J8N01AxULAzUAqA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] @@ -2783,8 +2965,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm-gnueabihf@16.5.1: - resolution: {integrity: sha512-BhrumqJSZCWFfLFUKl4CAUwR0Y0G2H5EfFVGKivVecEQbb+INAek1aa6c89evg2/OvetQYsJ+51QknskwqvLsA==} + /@nx/nx-linux-arm-gnueabihf@16.6.0: + resolution: {integrity: sha512-eyk/R1mBQ3X0PCSS+Cck3onvr3wmZVmM/+x0x9Ai02Vm6q9Eq6oZ1YtZGQsklNIyw1vk2WV9rJCStfu9mLecEw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -2792,8 +2974,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm64-gnu@16.5.1: - resolution: {integrity: sha512-x7MsSG0W+X43WVv7JhiSq2eKvH2suNKdlUHEG09Yt0vm3z0bhtym1UCMUg3IUAK7jy9hhLeDaFVFkC6zo+H/XQ==} + /@nx/nx-linux-arm64-gnu@16.6.0: + resolution: {integrity: sha512-S0qFFdQFDmBIEZqBAJl4K47V3YuMvDvthbYE0enXrXApWgDApmhtxINXSOjSus7DNq9kMrgtSDGkBmoBot61iw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2801,8 +2983,8 @@ packages: dev: true optional: true - /@nx/nx-linux-arm64-musl@16.5.1: - resolution: {integrity: sha512-J+/v/mFjOm74I0PNtH5Ka+fDd+/dWbKhpcZ2R1/6b9agzZk+Ff/SrwJcSYFXXWKbPX+uQ4RcJoytT06Zs3s0ow==} + /@nx/nx-linux-arm64-musl@16.6.0: + resolution: {integrity: sha512-TXWY5VYtg2wX/LWxyrUkDVpqCyJHF7fWoVMUSlFe+XQnk9wp/yIbq2s0k3h8I4biYb6AgtcVqbR4ID86lSNuMA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2810,8 +2992,8 @@ packages: dev: true optional: true - /@nx/nx-linux-x64-gnu@16.5.1: - resolution: {integrity: sha512-igooWJ5YxQ94Zft7IqgL+Lw0qHaY15Btw4gfK756g/YTYLZEt4tTvR1y6RnK/wdpE3sa68bFTLVBNCGTyiTiDQ==} + /@nx/nx-linux-x64-gnu@16.6.0: + resolution: {integrity: sha512-qQIpSVN8Ij4oOJ5v+U+YztWJ3YQkeCIevr4RdCE9rDilfq9RmBD94L4VDm7NRzYBuQL8uQxqWzGqb7ZW4mfHpw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2819,8 +3001,8 @@ packages: dev: true optional: true - /@nx/nx-linux-x64-musl@16.5.1: - resolution: {integrity: sha512-zF/exnPqFYbrLAduGhTmZ7zNEyADid2bzNQiIjJkh8Y6NpDwrQIwVIyvIxqynsjMrIs51kBH+8TUjKjj2Jgf5A==} + /@nx/nx-linux-x64-musl@16.6.0: + resolution: {integrity: sha512-EYOHe11lfVfEfZqSAIa1c39mx2Obr4mqd36dBZx+0UKhjrcmWiOdsIVYMQSb3n0TqB33BprjI4p9ZcFSDuoNbA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2828,8 +3010,8 @@ packages: dev: true optional: true - /@nx/nx-win32-arm64-msvc@16.5.1: - resolution: {integrity: sha512-qtqiLS9Y9TYyAbbpq58kRoOroko4ZXg5oWVqIWFHoxc5bGPweQSJCROEqd1AOl2ZDC6BxfuVHfhDDop1kK05WA==} + /@nx/nx-win32-arm64-msvc@16.6.0: + resolution: {integrity: sha512-f1BmuirOrsAGh5+h/utkAWNuqgohvBoekQgMxYcyJxSkFN+pxNG1U68P59Cidn0h9mkyonxGVCBvWwJa3svVFA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -2837,8 +3019,8 @@ packages: dev: true optional: true - /@nx/nx-win32-x64-msvc@16.5.1: - resolution: {integrity: sha512-kUJBLakK7iyA9WfsGGQBVennA4jwf5XIgm0lu35oMOphtZIluvzItMt0EYBmylEROpmpEIhHq0P6J9FA+WH0Rg==} + /@nx/nx-win32-x64-msvc@16.6.0: + resolution: {integrity: sha512-UmTTjFLpv4poVZE3RdUHianU8/O9zZYBiAnTRq5spwSDwxJHnLTZBUxFFf3ztCxeHOUIfSyW9utpGfCMCptzvQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2846,23 +3028,26 @@ packages: dev: true optional: true - /@nx/react@16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6)(webpack@5.88.1): - resolution: {integrity: sha512-L2RVoa/i8xDoyc78HOWHYPONLjaHPFJ6kRNFHr+1AETfLlEjO0F1FmNu7jDrsE3ItCS9YepoRWNLnmATMydg6Q==} + /@nx/react@16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6)(webpack@5.88.2): + resolution: {integrity: sha512-snhK7IzeQPXihokLU227A6tgjyJcZaZyjlcS9SLXTSa6XHaPADCh7JboyWdh2l9hGV6br3QTKB1zJB0PTWBW9w==} dependencies: - '@nrwl/react': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6)(webpack@5.88.1) - '@nx/devkit': 16.5.1(nx@16.5.1) - '@nx/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) - '@nx/linter': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) - '@nx/web': 16.5.1(nx@16.5.1)(typescript@5.1.6) + '@nrwl/react': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6)(webpack@5.88.2) + '@nx/devkit': 16.6.0(nx@16.6.0) + '@nx/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) + '@nx/linter': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) + '@nx/web': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) '@svgr/webpack': 8.0.1 chalk: 4.1.2 - file-loader: 6.2.0(webpack@5.88.1) + file-loader: 6.2.0(webpack@5.88.2) minimatch: 3.0.5 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - eslint - nx @@ -2872,22 +3057,25 @@ packages: - webpack dev: true - /@nx/storybook@16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-hHehUp7tjYcJt0RK1GyNvQsblsnGFbXxOr3NLu6maF9K/DwiwtPkPC1NHNDqbP+S7wyAR9jdDLG5dKrI29Attw==} + /@nx/storybook@16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-IF/oD2QgKs1G8anDI7vUEiP785jXgbFWDZtsfdtlgP0O5I48E0naAiGZHyS8vKwe4+W2Fb8wnveQ0qXlA+s1AA==} dependencies: - '@nrwl/storybook': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) - '@nx/cypress': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) - '@nx/devkit': 16.5.1(nx@16.5.1) - '@nx/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) - '@nx/linter': 16.5.1(eslint@8.15.0)(nx@16.5.1)(typescript@5.1.6) - '@nx/workspace': 16.5.1 + '@nrwl/storybook': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) + '@nx/cypress': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) + '@nx/devkit': 16.6.0(nx@16.6.0) + '@nx/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) + '@nx/linter': 16.6.0(@types/node@18.14.2)(eslint@8.46.0)(nx@16.6.0)(typescript@5.1.6) + '@nx/workspace': 16.6.0 '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) dotenv: 10.0.0 semver: 7.5.3 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - cypress - debug - eslint @@ -2897,25 +3085,28 @@ packages: - verdaccio dev: true - /@nx/vite@16.5.1(nx@16.5.1)(typescript@5.1.6)(vite@4.3.9)(vitest@0.32.0): - resolution: {integrity: sha512-LfzkyvEWwR26c9QAP42bW+F+4s8pDxRd/S2WLcQTVugpsil248c7kBKPq9OP5cf2z9w9PWeN+by7hc7ICmFJ6w==} + /@nx/vite@16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6)(vite@4.4.9)(vitest@0.34.1): + resolution: {integrity: sha512-XnBWMl3zdM9Nw7BTkVlukXmO7Ba/U4ZqXZtrqSecNIgIeSiWCkaVehWdroxn8jGezeFHUvzls4eNaOoqvrrUkQ==} peerDependencies: vite: ^4.3.4 vitest: '>=0.31.0 <1.0.0' dependencies: - '@nrwl/vite': 16.5.1(nx@16.5.1)(typescript@5.1.6)(vite@4.3.9)(vitest@0.32.0) - '@nx/devkit': 16.5.1(nx@16.5.1) - '@nx/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) + '@nrwl/vite': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6)(vite@4.4.9)(vitest@0.34.1) + '@nx/devkit': 16.6.0(nx@16.6.0) + '@nx/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) '@swc/helpers': 0.5.1 dotenv: 10.0.0 enquirer: 2.3.6 - vite: 4.3.9(@types/node@18.14.2) - vitest: 0.32.0(@vitest/ui@0.32.0)(jsdom@22.1.0) + tsconfig-paths: 4.2.0 + vite: 4.4.9(@types/node@18.14.2) + vitest: 0.34.1(@vitest/ui@0.34.1)(jsdom@22.1.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - nx - supports-color @@ -2923,22 +3114,24 @@ packages: - verdaccio dev: true - /@nx/web@16.5.1(nx@16.5.1)(typescript@5.1.6): - resolution: {integrity: sha512-Mf3zx8rTw4ngSLIetfTMHzyoG1X7vQ9W+V1t5XKmSUCsDWcoRoezLhtvuQRG+w2P04+HLiBFBfqe58euE8pPrw==} + /@nx/web@16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6): + resolution: {integrity: sha512-ogrSJwPjs+16LA0C+WHuXs4XjfIymzZBP/bGL/QfsOvrYeaQiQVHXCyRoFhwKcczJ+yFG9/9k+XMP6r5BzKaOA==} dependencies: - '@nrwl/web': 16.5.1(nx@16.5.1)(typescript@5.1.6) - '@nx/devkit': 16.5.1(nx@16.5.1) - '@nx/js': 16.5.1(nx@16.5.1)(typescript@5.1.6) + '@nrwl/web': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) + '@nx/devkit': 16.6.0(nx@16.6.0) + '@nx/js': 16.6.0(@types/node@18.14.2)(nx@16.6.0)(typescript@5.1.6) chalk: 4.1.2 chokidar: 3.5.3 detect-port: 1.5.1 http-server: 14.1.1 ignore: 5.2.4 - tslib: 2.6.0 + tslib: 2.6.1 transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' - '@swc/core' + - '@swc/wasm' + - '@types/node' - debug - nx - supports-color @@ -2946,28 +3139,16 @@ packages: - verdaccio dev: true - /@nx/workspace@16.5.1: - resolution: {integrity: sha512-xzibe6Nm2hyyM2kJ1NSL9RnVoVgktd5wQ2XLk5/9z/5a2bXjce48eYNvg3oo2U4O75FndG9pcuGsKXtejsbaSA==} + /@nx/workspace@16.6.0: + resolution: {integrity: sha512-rh+qTQ/Ahszezx+aLjZfpej314w2mrwz2eJAn6LQmlsSnOLHsVIoVRDAGyqT2OF+29K2r5BQ0jRiB3zyYrb5MQ==} dependencies: - '@nrwl/workspace': 16.5.1 - '@nx/devkit': 16.5.1(nx@16.5.1) - '@parcel/watcher': 2.0.4 + '@nrwl/workspace': 16.6.0 + '@nx/devkit': 16.6.0(nx@16.6.0) chalk: 4.1.2 - chokidar: 3.5.3 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - dotenv: 10.0.0 - figures: 3.2.0 - flat: 5.0.2 ignore: 5.2.4 - minimatch: 3.0.5 - npm-run-path: 4.0.1 - nx: 16.5.1 - open: 8.4.2 + nx: 16.6.0 rxjs: 7.8.1 - tmp: 0.2.1 - tslib: 2.6.0 - yargs: 17.7.2 + tslib: 2.6.1 yargs-parser: 21.1.1 transitivePeerDependencies: - '@swc-node/register' @@ -3338,6 +3519,25 @@ packages: typescript: 5.1.6 dev: true + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.1 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.1 + dev: true + /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true @@ -3346,19 +3546,463 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false - /@remix-run/router@1.6.2: - resolution: {integrity: sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==} - engines: {node: '>=14'} - dev: false + /@radix-ui/number@1.0.1: + resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} + dependencies: + '@babel/runtime': 7.22.10 + dev: true - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} + /@radix-ui/primitive@1.0.1: + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 + '@babel/runtime': 7.22.10 + dev: true + + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-context@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-direction@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@radix-ui/react-id@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@floating-ui/react-dom': 2.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/rect': 1.0.1 + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.18)(react@18.2.0) + dev: true + + /@radix-ui/react-slot@1.0.2(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/rect': 1.0.1 + '@types/react': 18.2.18 + react: 18.2.0 dev: true + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.18)(react@18.2.0) + '@types/react': 18.2.18 + react: 18.2.0 + dev: true + + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.18 + '@types/react-dom': 18.2.7 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@radix-ui/rect@1.0.1: + resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + dependencies: + '@babel/runtime': 7.22.10 + dev: true + + /@react-hookz/deep-equal@1.0.4: + resolution: {integrity: sha512-N56fTrAPUDz/R423pag+n6TXWbvlBZDtTehaGFjK0InmN+V2OFWLE/WmORhmn6Ce7dlwH5+tQN1LJFw3ngTJVg==} + dev: false + + /@react-hookz/web@23.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-fvbURdsa1ukttbLR1ASE/XmqXP09vZ1PiCYppYeR1sNMzCrdkG0iBnjxniFSVjJ8gIw2fRs6nqMTbeBz2uAkuA==} + peerDependencies: + js-cookie: ^3.0.5 + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 + peerDependenciesMeta: + js-cookie: + optional: true + dependencies: + '@react-hookz/deep-equal': 1.0.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@remix-run/router@1.7.2: + resolution: {integrity: sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==} + engines: {node: '>=14'} + dev: false + /@rollup/pluginutils@5.0.2: resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} @@ -3373,8 +4017,8 @@ packages: picomatch: 2.3.1 dev: true - /@rushstack/node-core-library@3.59.5(@types/node@18.14.2): - resolution: {integrity: sha512-1IpV7LufrI1EoVO8hYsb3t6L8L+yp40Sa0OaOV2CIu1zx4e6ZeVNaVIEXFgMXBKdGXkAh21MnCaIzlDNpG6ZQw==} + /@rushstack/node-core-library@3.59.6(@types/node@18.14.2): + resolution: {integrity: sha512-bMYJwNFfWXRNUuHnsE9wMlW/mOB4jIwSUkRKtu02CwZhQdmzMsUbxE0s1xOLwTpNIwlzfW/YT7OnOHgDffLgYg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -3386,15 +4030,15 @@ packages: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.2 - semver: 7.3.8 + resolve: 1.22.4 + semver: 7.5.4 z-schema: 5.0.5 dev: true /@rushstack/rig-package@0.4.0: resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==} dependencies: - resolve: 1.22.2 + resolve: 1.22.4 strip-json-comments: 3.1.1 dev: true @@ -3416,8 +4060,8 @@ packages: engines: {node: '>=10'} dev: true - /@storybook/addon-actions@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-sIPY6uH8I26KBWUb5fMYBB9xCKB02oSM8gIHzqPZ0DnW8zl+p6+dX3tAdX+XQvb9YOLJihxZ1GF1tOxFduc3Pw==} + /@storybook/addon-actions@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YUiKksgRIUm80eZacj/x14BEYCQY5iel1/Wo6mrTP7bVQrUNiCmnINSrup0DObg7lmIaq00h3ow7gKeYJ+x6zw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3427,14 +4071,14 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.2.1 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.0.24 - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.0.24 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 dequal: 2.0.3 lodash: 4.17.21 polished: 4.2.2 @@ -3445,10 +4089,13 @@ packages: telejson: 7.1.0 ts-dedent: 2.2.0 uuid: 9.0.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' dev: true - /@storybook/addon-backgrounds@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-vThKkrSj+J7matGowxIJ4eV+kAF8iUHGQjlaW0J7vhzmVkNnxBvNn/DGOWWQLAJPCTmLVelLaBZEWcMNoKJiVA==} + /@storybook/addon-backgrounds@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-F+/eERFnCIjDaOkCbCS0erre1AbjsHoM0IdLu2sGIBwuroFwKYy/ijadSsJ1zk4eBqZFxdyN4CuMN6EsK1Xm+Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3458,22 +4105,25 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.2.1 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.0.24 - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.0.24 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' dev: true - /@storybook/addon-controls@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-x05Ng4wyBRkrupgSkBHKZSGPyUbvIDGiBseA/AjA/BNAMUMWy3t8ll9f7tlKzyDPaUeBSv8peP21r/Ry26Eqhw==} + /@storybook/addon-controls@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ioILEP4wZo6n8ifr1b+o8xCdMVLWyhHqNWoQoBRixxWwpzR4/fHaKo7wBGSkOOWubkhen6wUMUuiJbDdoGyR7g==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3483,47 +4133,48 @@ packages: react-dom: optional: true dependencies: - '@storybook/blocks': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-common': 7.0.24 - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/node-logger': 7.0.24 - '@storybook/preview-api': 7.0.24 - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.0.24 + '@storybook/blocks': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-common': 7.2.1 + '@storybook/core-events': 7.2.1 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/node-logger': 7.2.1 + '@storybook/preview-api': 7.2.1 + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 lodash: 4.17.21 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' - encoding - supports-color dev: true - /@storybook/addon-docs@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-O5S+E6+8c/EHEQc5WcrNQ8dOVg9Q2ONIOYxlbSAcfMUA/d+tRR9xXTZog7nv1tj4U0G29+Vr4pKgsGh3Ya5qcw==} + /@storybook/addon-docs@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QlUM22wK0cE9glMRt1auP3BccjafdRvcsAnaLvDIL12HRaUqMpH6vvNN3A3MXo6XuzbOmDwAov5mXdCenpz02A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) - '@jest/transform': 29.6.1 + '@jest/transform': 29.6.2 '@mdx-js/react': 2.3.0(react@18.2.0) - '@storybook/blocks': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/csf-plugin': 7.0.24 - '@storybook/csf-tools': 7.0.24 + '@storybook/blocks': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/csf-plugin': 7.2.1 + '@storybook/csf-tools': 7.2.1 '@storybook/global': 5.0.0 '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.0.24 - '@storybook/postinstall': 7.0.24 - '@storybook/preview-api': 7.0.24 - '@storybook/react-dom-shim': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.0.24 + '@storybook/node-logger': 7.2.1 + '@storybook/postinstall': 7.2.1 + '@storybook/preview-api': 7.2.1 + '@storybook/react-dom-shim': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 fs-extra: 11.1.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3531,47 +4182,84 @@ packages: remark-slug: 6.1.0 ts-dedent: 2.2.0 transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' - encoding - supports-color dev: true - /@storybook/addon-essentials@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OL27TNQYUJv/FprFCU7Q9RQYrgGdM+4SH+XmsQCcuQuGa67s6/eRKyERwOdy4Pli3Payo76+Vz1DAeJZJ0F8oA==} + /@storybook/addon-essentials@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-+ICPYpuljKOoO1oTRfoax4n+3UD2/xAY8qQmAsRNN3xOBNJfdrsrCocrfY1j74xqoX+Zflvp5V481zq+MpP4XQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/addon-actions': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-backgrounds': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-controls': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-docs': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-highlight': 7.0.24 - '@storybook/addon-measure': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-outline': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-toolbars': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-viewport': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-common': 7.0.24 - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/node-logger': 7.0.24 - '@storybook/preview-api': 7.0.24 + '@storybook/addon-actions': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-backgrounds': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-controls': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-docs': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-highlight': 7.2.1 + '@storybook/addon-measure': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-outline': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-toolbars': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-viewport': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-common': 7.2.1 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/node-logger': 7.2.1 + '@storybook/preview-api': 7.2.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' - encoding - supports-color dev: true - /@storybook/addon-highlight@7.0.24: - resolution: {integrity: sha512-IoCJHiX5Ai+7S08isxt7BH4baNF2RsjuGUA/iMoJtto/rMc5u0xftVeIjh6oVqV3tjckowXpezI3oStnrLWuRw==} + /@storybook/addon-highlight@7.2.1: + resolution: {integrity: sha512-6nNqpSMImn1mSGmEKF1o+C6o4lWJjduGYnCIO/ouXExaNLMrdcGKUEWrluABLOeDRPcNC9/EkuIEd8IsDnUX4A==} + dependencies: + '@storybook/core-events': 7.2.1 + '@storybook/global': 5.0.0 + '@storybook/preview-api': 7.2.1 + dev: true + + /@storybook/addon-interactions@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-EuQMvigfEfQedNBojZhVs8x2mG8tL2n2yhtuYUsmHCmwAITcVxgPRV0xCgv676B8uRQvUru+cm9/nBIf2rUg/A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true dependencies: - '@storybook/core-events': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-common': 7.2.1 + '@storybook/core-events': 7.2.1 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.0.24 + '@storybook/instrumenter': 7.2.1 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 + jest-mock: 27.5.1 + polished: 4.2.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color dev: true - /@storybook/addon-measure@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4VNs4rjdz+YFiJCz9DfCmBJwFuoa3pLhcEsAAdT3B+Hrkae+hvLtnQWIvAMsOlSWdl4tiuEWssDf4cjCEne87w==} + /@storybook/addon-measure@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3Rq/B3Iurbo5dZvUN735GHK+9EDm0xw+liK0PdeYvl21/RkXTV+a4aBcWyyeWwwu1S7pdK1B/0WEc9d5Lot8sA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3581,19 +4269,23 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.2.1 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.0.24 - '@storybook/types': 7.0.24 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/types': 7.2.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + tiny-invariant: 1.3.1 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' dev: true - /@storybook/addon-outline@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-YwSfs8bsmh7mEF+rlmL7zBsebWA5e/Rsf09vVqt6/k3fpopgBrq44zQlMwo1dCWV/0YhhXQF21OGzeJ1dSb8fA==} + /@storybook/addon-outline@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-v2dYDhfSzV8Nsi1pmjcLEOHGJLlUnpnSXlQymb338YJEFKP2G5ylHzKAHG16MmzKeZZd3rthTB0246SFCyf0hg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3603,20 +4295,23 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.2.1 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.0.24 - '@storybook/types': 7.0.24 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/types': 7.2.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' dev: true - /@storybook/addon-toolbars@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+nDVahs2kAojzF6RbChowJmN0z7cyD/5BGMEhBemhBWSuMVnQLLEgtQi/kOY5fUxq3z1BkqcE4LV98u5CIKgKg==} + /@storybook/addon-toolbars@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SEDj9f0EgifPK/Eyh703N1tbk7SZ7yAZOnNUK8T0mwdKrMa7jskvYuift8iSnJA2ldp1siqwe1Obq+Oielp9hQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3626,17 +4321,20 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.0.24 - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' dev: true - /@storybook/addon-viewport@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-bc3TR+feemGxVP1QQT6OsFSldHjLToJNuQAGd5EEBsDFhcMTsmitiGVoxIylqIhfioL9zauLIsk5eLZ/TYxuXQ==} + /@storybook/addon-viewport@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-aHl3rCh4MNByfWVtjBzkwMtz0iHQHFhatWXVt7mQoTQFBbZHpeynKvLfKBprp+2whK9RoDHqBUjqGTZrECdpRA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3646,67 +4344,73 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.2.1 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.0.24 - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) memoizerific: 1.11.3 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' dev: true - /@storybook/blocks@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-76pe4QC3WZBVxBt/RomGubW5xzbh4uF7LVn1Vonfujf4GaHgIDzu7KtLIjgM3NmDJCsp3PNfbgA1EKzWrPQz2A==} + /@storybook/blocks@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1fPsFC6n9R267KwxGHiL80OuIdMDRC9QuIW4sRF0tF/G/yvucbofySYRQl/Y8LjsMJq8D4NpG5xLsneSxMP5cg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/channels': 7.0.24 - '@storybook/client-logger': 7.0.24 - '@storybook/components': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.0.24 + '@storybook/channels': 7.2.1 + '@storybook/client-logger': 7.2.1 + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.2.1 '@storybook/csf': 0.1.1 - '@storybook/docs-tools': 7.0.24 + '@storybook/docs-tools': 7.2.1 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.0.24 - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.0.24 - '@types/lodash': 4.14.195 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 + '@types/lodash': 4.14.196 color-convert: 2.0.1 dequal: 2.0.3 lodash: 4.17.21 - markdown-to-jsx: 7.2.1(react@18.2.0) + markdown-to-jsx: 7.3.2(react@18.2.0) memoizerific: 1.11.3 polished: 4.2.2 react: 18.2.0 react-colorful: 5.6.1(react-dom@18.2.0)(react@18.2.0) react-dom: 18.2.0(react@18.2.0) telejson: 7.1.0 + tocbot: 4.21.1 ts-dedent: 2.2.0 util-deprecate: 1.0.2 transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' - encoding - supports-color dev: true - /@storybook/builder-manager@7.0.24: - resolution: {integrity: sha512-qSehfB1yS1ch/XSUdqNaTXitboNry4aKASte+kFhM5wSJcAgGBeB5akz8pc+JiRPWozqyceYkIdTG/KcRDeojg==} + /@storybook/builder-manager@7.2.1: + resolution: {integrity: sha512-X8B1cUfDaTtsJY3xJNwPy6W4UN7LWXkKktJBoNUGESigQGKpAMvUAmABCZIjZD8GcdGMtU8y/fA7YimUpy/ZKQ==} dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@storybook/core-common': 7.0.24 - '@storybook/manager': 7.0.24 - '@storybook/node-logger': 7.0.24 + '@storybook/core-common': 7.2.1 + '@storybook/manager': 7.2.1 + '@storybook/node-logger': 7.2.1 '@types/ejs': 3.1.2 '@types/find-cache-dir': 3.2.1 - '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.17.19) + '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.18.19) browser-assert: 1.2.1 ejs: 3.1.9 - esbuild: 0.17.19 + esbuild: 0.18.19 esbuild-plugin-alias: 0.2.1 express: 4.18.2 find-cache-dir: 3.3.2 @@ -3718,8 +4422,8 @@ packages: - supports-color dev: true - /@storybook/builder-vite@7.0.24(typescript@5.1.6)(vite@4.3.9): - resolution: {integrity: sha512-pdCHtAe8XhEIajp8s59nzaAJH026ExoRPgBcIuL+H3GyB5xlqf3GbXosFx82X7q1z1HNkGDMoPDiNP9JA2n40g==} + /@storybook/builder-vite@7.2.1(typescript@5.1.6)(vite@4.4.9): + resolution: {integrity: sha512-D/RNcH6WAxMAMmC3w9wwgDbYUJ9SjSwc6NPcxGrKk9o0SWDsKWWx4r6mM0W5FJ7Wh11Ca46LLnPC3cFfEg4YDQ==} peerDependencies: '@preact/preset-vite': '*' typescript: '>= 4.3.x' @@ -3733,105 +4437,97 @@ packages: vite-plugin-glimmerx: optional: true dependencies: - '@storybook/channel-postmessage': 7.0.24 - '@storybook/channel-websocket': 7.0.24 - '@storybook/client-logger': 7.0.24 - '@storybook/core-common': 7.0.24 - '@storybook/csf-plugin': 7.0.24 + '@storybook/channels': 7.2.1 + '@storybook/client-logger': 7.2.1 + '@storybook/core-common': 7.2.1 + '@storybook/csf-plugin': 7.2.1 '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.0.24 - '@storybook/preview': 7.0.24 - '@storybook/preview-api': 7.0.24 - '@storybook/types': 7.0.24 + '@storybook/node-logger': 7.2.1 + '@storybook/preview': 7.2.1 + '@storybook/preview-api': 7.2.1 + '@storybook/types': 7.2.1 + '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 0.9.3 express: 4.18.2 + find-cache-dir: 3.3.2 fs-extra: 11.1.1 - glob: 8.1.0 - glob-promise: 6.0.3(glob@8.1.0) - magic-string: 0.27.0 + magic-string: 0.30.2 remark-external-links: 8.0.0 remark-slug: 6.1.0 - rollup: 3.26.2 + rollup: 3.27.2 typescript: 5.1.6 - vite: 4.3.9(@types/node@18.14.2) + vite: 4.4.9(@types/node@18.14.2) transitivePeerDependencies: - encoding - supports-color dev: true - /@storybook/channel-postmessage@7.0.24: - resolution: {integrity: sha512-QLtLXjEeTEwBN/7pB888mBaykmRU9Jy2BitvZuLJWyHHygTYm3vYZOaGR37DT+q/6Ob5GaZ0tURZmCSNDe8IIA==} + /@storybook/channels@7.2.1: + resolution: {integrity: sha512-3ZogzjwlFG+oarwnI7TTvWvHVOUtJbjrgZkM5QuLMlxNzIR1XuBY8f01yf4K8+VpdNy9DY+7Q/j6tBThfwYvpA==} dependencies: - '@storybook/channels': 7.0.24 - '@storybook/client-logger': 7.0.24 - '@storybook/core-events': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/core-events': 7.2.1 '@storybook/global': 5.0.0 qs: 6.11.2 telejson: 7.1.0 + tiny-invariant: 1.3.1 dev: true - /@storybook/channel-websocket@7.0.24: - resolution: {integrity: sha512-GKSlWx5FgMQM0TKRCSGNTxLh0YU7xmg7m6FH8b/mvhH0Uido487qcJap2Ma/WOLe8aRiZo9jJpfcbUsKBWhuMg==} + /@storybook/client-logger@7.2.1: + resolution: {integrity: sha512-Lyht/lJg2S65CXRy9rXAZXP/Mgye7jbi/aqQL8z9VRMGChbL+k/3pSZnXTTrD1OVSpCEr4UWA+9bStzT4VjtYA==} dependencies: - '@storybook/channels': 7.0.24 - '@storybook/client-logger': 7.0.24 '@storybook/global': 5.0.0 - telejson: 7.1.0 dev: true - /@storybook/channels@7.0.24: - resolution: {integrity: sha512-NZVLwMhtzy6cZrNRjshFvMAD9mQTmJDNwhohodSkM/YFCDVFhmxQk9tgizVGh9MwY3CYGJ1SI96RUejGosb49Q==} - dev: true - - /@storybook/client-logger@7.0.24: - resolution: {integrity: sha512-4zRTb+QQ1hWaRqad/UufZNRfi2d/cf5a40My72Ct97VwjhJFE6aQ3K+hl1Xt6hh8dncDL2JK3cgziw6ElqjT0w==} - dependencies: - '@storybook/global': 5.0.0 - dev: true - - /@storybook/components@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Pu7zGurCyWyiuFl2Pb5gybHA0f4blmHuVqccbMqnUw4Ew80BRu8AqfhNqN2hNdxFCx0mmy0baRGVftx76rNZ0w==} + /@storybook/components@7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-7JuMT2yK9FGPu9hFCo38tC3FDyr/hJ3CQwU6dSR6E5rT9E658dq31Xl3y/fM5OMzl8MX8Off7TWiybHSuwYJTA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/client-logger': 7.0.24 + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.2.1 '@storybook/csf': 0.1.1 '@storybook/global': 5.0.0 - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.0.24 + '@storybook/icons': 1.1.5(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) use-resize-observer: 9.1.0(react-dom@18.2.0)(react@18.2.0) util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' dev: true - /@storybook/core-client@7.0.24: - resolution: {integrity: sha512-uToMHbi5EnOk+8Z941j0hrRE1h9u/QWqCmqS2FBIWrBOeREwy0AAib1/hqihzhO7OzekY5mtLTANiCpIpLHAHQ==} + /@storybook/core-client@7.2.1: + resolution: {integrity: sha512-ujJdkaY6LXGCA8pqFBYTNMySmawm3GPcORYevkmM2edSbNKlu904+HvheRirajluzV7ropzGxUBZR9TMwgmDGg==} dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/preview-api': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/preview-api': 7.2.1 dev: true - /@storybook/core-common@7.0.24: - resolution: {integrity: sha512-FHjL2dpwDHnicLTePkiZMfO5eFxJxpTP2xmGWFQnWFTyEgh+ipcWnLVoYYXiKcc6EzKED0yebk8rAIalbzpICg==} + /@storybook/core-common@7.2.1: + resolution: {integrity: sha512-g1MQ04lgL16Ct89tPj6RSw72yd+a+ZJ4ceH3Ev+SmnU8efBLPmr6+G5Bx7+rY1W2c6NdpFgtSidjgOGqQ8gppw==} dependencies: - '@storybook/node-logger': 7.0.24 - '@storybook/types': 7.0.24 - '@types/node': 16.18.38 + '@storybook/node-logger': 7.2.1 + '@storybook/types': 7.2.1 + '@types/find-cache-dir': 3.2.1 + '@types/node': 16.18.39 '@types/node-fetch': 2.6.4 '@types/pretty-hrtime': 1.0.1 chalk: 4.1.2 - esbuild: 0.17.19 - esbuild-register: 3.4.2(esbuild@0.17.19) + esbuild: 0.18.19 + esbuild-register: 3.4.2(esbuild@0.18.19) file-system-cache: 2.3.0 + find-cache-dir: 3.3.2 find-up: 5.0.0 fs-extra: 11.1.1 - glob: 8.1.0 - glob-promise: 6.0.3(glob@8.1.0) - handlebars: 4.7.7 + glob: 10.3.3 + handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 node-fetch: 2.6.12 picomatch: 2.3.1 @@ -3844,33 +4540,33 @@ packages: - supports-color dev: true - /@storybook/core-events@7.0.24: - resolution: {integrity: sha512-xkf/rihCkhqMeh5EA8lVp90/mzbb2gcg6I3oeFWw2hognVcTnPXg6llhWdU4Spqd0cals7GEFmQugIILCmH8GA==} + /@storybook/core-events@7.2.1: + resolution: {integrity: sha512-EUXYb3gyQ2EzpDAWkgfoDl1EPabj3OE6+zntsD/gwvzQU85BTocs10ksnRyS55bfrQpYbf+Z+gw2CZboyagLgg==} dev: true - /@storybook/core-server@7.0.24: - resolution: {integrity: sha512-FJgdbtLgppFMd/RedF728I+v45TRG7s5/3RJfwgRgbq4ZEhKFzZN66MwWFeq3i5Q8ETHVwAxyVvC/JrRqAJxoA==} + /@storybook/core-server@7.2.1: + resolution: {integrity: sha512-jhS918Frl5j6LSB3x7qzHHuRL5e3RXqCkBQe5KtR2zXMgYlalSyGcX5uT8byWFznUsQIjGmUrf6ZIoKdRdslWg==} dependencies: - '@aw-web-design/x-default-browser': 1.4.88 + '@aw-web-design/x-default-browser': 1.4.126 '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-manager': 7.0.24 - '@storybook/core-common': 7.0.24 - '@storybook/core-events': 7.0.24 + '@storybook/builder-manager': 7.2.1 + '@storybook/channels': 7.2.1 + '@storybook/core-common': 7.2.1 + '@storybook/core-events': 7.2.1 '@storybook/csf': 0.1.1 - '@storybook/csf-tools': 7.0.24 + '@storybook/csf-tools': 7.2.1 '@storybook/docs-mdx': 0.1.0 '@storybook/global': 5.0.0 - '@storybook/manager': 7.0.24 - '@storybook/node-logger': 7.0.24 - '@storybook/preview-api': 7.0.24 - '@storybook/telemetry': 7.0.24 - '@storybook/types': 7.0.24 + '@storybook/manager': 7.2.1 + '@storybook/node-logger': 7.2.1 + '@storybook/preview-api': 7.2.1 + '@storybook/telemetry': 7.2.1 + '@storybook/types': 7.2.1 '@types/detect-port': 1.3.3 - '@types/node': 16.18.38 - '@types/node-fetch': 2.6.4 + '@types/node': 16.18.39 '@types/pretty-hrtime': 1.0.1 '@types/semver': 7.5.0 - better-opn: 2.1.1 + better-opn: 3.0.2 chalk: 4.1.2 cli-table3: 0.6.3 compression: 1.7.4 @@ -3880,15 +4576,16 @@ packages: globby: 11.1.0 ip: 2.0.0 lodash: 4.17.21 - node-fetch: 2.6.12 open: 8.4.2 pretty-hrtime: 1.0.3 prompts: 2.4.2 read-pkg-up: 7.0.1 - semver: 7.5.3 + semver: 7.5.4 serve-favicon: 2.5.0 telejson: 7.1.0 + tiny-invariant: 1.3.1 ts-dedent: 2.2.0 + util: 0.12.5 util-deprecate: 1.0.2 watchpack: 2.4.0 ws: 8.13.0 @@ -3899,25 +4596,26 @@ packages: - utf-8-validate dev: true - /@storybook/csf-plugin@7.0.24: - resolution: {integrity: sha512-+oIZCIhrRFbvplXUwJn671ZM0kgNqZ59jM9RmehJGgu5N5h1JSbBcz1edXgStNsMk9e2NJopuOKrzZGTGyi0XA==} + /@storybook/csf-plugin@7.2.1: + resolution: {integrity: sha512-qhxkKOsUjCS/hqsDgwgoM81ZXAXfTNrJJPHCs4Wa1dHoUVUn7rro7VANIO0GVNrRDnha3YR4fEmnD8kklLKmCQ==} dependencies: - '@storybook/csf-tools': 7.0.24 - unplugin: 0.10.2 + '@storybook/csf-tools': 7.2.1 + unplugin: 1.4.0 transitivePeerDependencies: - supports-color dev: true - /@storybook/csf-tools@7.0.24: - resolution: {integrity: sha512-RBNiXY3ht6XpcIyVgxBo7mK2t32tJuC93OO/HgcoRFClcdA8HUnlva297XpJpMqCgrcF8fPqRo+ZcLeC7vjzvw==} + /@storybook/csf-tools@7.2.1: + resolution: {integrity: sha512-QqZOBd6lmhPoIBLutyYYJ3wBwEZF+fUjiL8vhw3lgq+Mrer14lmKrImKDSjd1PsqVbbGQEJZ4TAJHZc3vdQs0w==} dependencies: - '@babel/generator': 7.21.9 - '@babel/parser': 7.21.9 - '@babel/traverse': 7.21.5 - '@babel/types': 7.21.5 + '@babel/generator': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 '@storybook/csf': 0.1.1 - '@storybook/types': 7.0.24 + '@storybook/types': 7.2.1 fs-extra: 11.1.1 + prettier: 2.8.8 recast: 0.23.3 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -3934,13 +4632,12 @@ packages: resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==} dev: true - /@storybook/docs-tools@7.0.24: - resolution: {integrity: sha512-vmDHmHB1B5CWsYQ7CEtfz4vdf36VK/EZdNQUox9kdN935Dks7KSuGcDdXiRlWc78e94/A9+1mJQpyfwtn3E8fQ==} + /@storybook/docs-tools@7.2.1: + resolution: {integrity: sha512-snRdkqdaxAwlalIEtuElySzC68Lo/0KfrGRR6xSDxWIhjAPNqsRLPHEXlZrJ43Tn/V2oxCRU8eb21pP5/58krw==} dependencies: - '@babel/core': 7.22.9 - '@storybook/core-common': 7.0.24 - '@storybook/preview-api': 7.0.24 - '@storybook/types': 7.0.24 + '@storybook/core-common': 7.2.1 + '@storybook/preview-api': 7.2.1 + '@storybook/types': 7.2.1 '@types/doctrine': 0.0.3 doctrine: 3.0.0 lodash: 4.17.21 @@ -3949,66 +4646,96 @@ packages: - supports-color dev: true + /@storybook/expect@27.5.2-0: + resolution: {integrity: sha512-cP99mhWN/JeCp7VSIiymvj5tmuMY050iFohvp8Zq+kewKsBSZ6/qpTJAGCCZk6pneTcp4S0Fm5BSqyxzbyJ3gw==} + dependencies: + '@types/jest': 29.5.3 + dev: true + /@storybook/global@5.0.0: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} dev: true - /@storybook/manager-api@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-cBpgDWq8reFgyrv4fBZlZJQyWYb9cDW0LDe476rWn/29uXNvYMNsHRwveLNgSA8Oy1NdyQCgf4ZgcYvY3wpvMA==} + /@storybook/icons@1.1.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PWJIaa/NtOu2VSWnj07evF1OI5+6H7ZTAvy0LO38RheW4W8iS+xoYsh2cr/nxLBblfhbw533uJrhdqpxCytxfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@storybook/instrumenter@7.2.1: + resolution: {integrity: sha512-eA1xke6JWhqDNhrn/qK3KxeE9yXySyzK1gUhu1jtIt8npenebZsuG5Uu/IzJkSB8se1F419Pmbcpeq0V8GA1lQ==} + dependencies: + '@storybook/channels': 7.2.1 + '@storybook/client-logger': 7.2.1 + '@storybook/core-events': 7.2.1 + '@storybook/global': 5.0.0 + '@storybook/preview-api': 7.2.1 + dev: true + + /@storybook/jest@0.1.0: + resolution: {integrity: sha512-TmybnEXlv5Fu2/Hq4nRj7alS9mw4CasLR0RDwaAzS+Vpvu1TC4+j9rh+b1BHtmWebbJh0JMT6mgzPqOyJdgtQA==} + dependencies: + '@storybook/expect': 27.5.2-0 + '@storybook/instrumenter': 7.2.1 + '@testing-library/jest-dom': 5.17.0 + jest-mock: 27.5.1 + dev: true + + /@storybook/manager-api@7.2.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jRuYTrsNKq+g1u9kbQRvBsRKVITOdiNu9c633MeCH73oBVo8WNnZF/tW/ER86oTnru0H7EmRdgz3v9ft/wS2GQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/channels': 7.0.24 - '@storybook/client-logger': 7.0.24 - '@storybook/core-events': 7.0.24 + '@storybook/channels': 7.2.1 + '@storybook/client-logger': 7.2.1 + '@storybook/core-events': 7.2.1 '@storybook/csf': 0.1.1 '@storybook/global': 5.0.0 - '@storybook/router': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.0.24 + '@storybook/router': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - semver: 7.5.3 + semver: 7.5.4 store2: 2.14.2 telejson: 7.1.0 ts-dedent: 2.2.0 dev: true - /@storybook/manager@7.0.24: - resolution: {integrity: sha512-LsQd2cFJViwoPJ7K0A/XBWrBBhJv7F0J6+aa7qHszNmIZHVbMXyZfiX7JS3RHVs4I2kLuNpSk4X+iDG0QAafEQ==} + /@storybook/manager@7.2.1: + resolution: {integrity: sha512-wD2tRH8gLk2VNFMVcWmGZTXGTMNXdM3rnXiyKtmSVwFzacmOtLzEsCOprwI6WJpZv3v1vHY0s6idN9iadTVMhw==} dev: true /@storybook/mdx2-csf@1.1.0: resolution: {integrity: sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==} dev: true - /@storybook/node-logger@7.0.24: - resolution: {integrity: sha512-gjcYnreYBBtZVF6p/cHMas4FEafPddjsLMrAfB+0lLGoRdUwWVto46BZTHQ9seY5gPW0JQydAdDGHko8/kEOXA==} - dependencies: - '@types/npmlog': 4.1.4 - chalk: 4.1.2 - npmlog: 5.0.1 - pretty-hrtime: 1.0.3 + /@storybook/node-logger@7.2.1: + resolution: {integrity: sha512-Ywjqi8iAc26RYbZfmpzvzdKbaQZaD1T/IRNfVGReM/jTXnX0VSdsa6P/pfurbyHcQw//D3TSdqRHOMtbp0nIJg==} dev: true - /@storybook/postinstall@7.0.24: - resolution: {integrity: sha512-UYMXyEU4nVIKyrlUdIs3NHQmILzrN+EkEDbmeQC2WMMPw+t4GY2cDVmpx90JYYZcn7gY+cNDgQ55iiqbvlamLQ==} + /@storybook/postinstall@7.2.1: + resolution: {integrity: sha512-xOzX1MygQ+9xpku6FuODhXvfv/CcKlQPOGpZk8ejE/04Eow0JHluGI1cxdnpqGcCBygkw7DP+xrtQCv75c7Gjg==} dev: true - /@storybook/preview-api@7.0.24: - resolution: {integrity: sha512-psycU07tuB5nyJvfAJiDN/9e8cjOdJ+5lrCSYC3vPzH86LxADDIN0/8xFb1CaQWcXZsADEFJGpHKWbRhjym5ew==} + /@storybook/preview-api@7.2.1: + resolution: {integrity: sha512-WKecuOdeh9+og6bPR9KoQf/JCeSRPCcfZv9uNfJzAp3IiTnS3UpfCz+HBZzZJQrisgbd7OulNY400HQUmxY2Ag==} dependencies: - '@storybook/channel-postmessage': 7.0.24 - '@storybook/channels': 7.0.24 - '@storybook/client-logger': 7.0.24 - '@storybook/core-events': 7.0.24 + '@storybook/channels': 7.2.1 + '@storybook/client-logger': 7.2.1 + '@storybook/core-events': 7.2.1 '@storybook/csf': 0.1.1 '@storybook/global': 5.0.0 - '@storybook/types': 7.0.24 + '@storybook/types': 7.2.1 '@types/qs': 6.9.7 dequal: 2.0.3 lodash: 4.17.21 @@ -4019,12 +4746,12 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/preview@7.0.24: - resolution: {integrity: sha512-rej4Wz8Qy4gVuyvg4cpQGkR4wJc3b+0Uv6EYylbmpdj2585cOhFtRBykagDVZteVU4xaLMT7YHIZRnoLmJKIgw==} + /@storybook/preview@7.2.1: + resolution: {integrity: sha512-5mLNhuaePx3Zv8mO93Y/M+U7ppqV5bS13rPfMHcVmSb7mQ/3hN7zkF6NhPOX6LoBUxetHiAJh5dA5McNE3adLQ==} dev: true - /@storybook/react-dom-shim@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-YOP1C3dWTLYP5mPb7hNuDRIhADzz+ppfb+S22JNJ3kqm+tsyE/YtAbRf80k6QIG1LzukMpGoEnjjOPOsWsyvFQ==} + /@storybook/react-dom-shim@7.2.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QzQQN2nZkG7c0Mg5HvhfQuH10HjAJEnA8vDlENIFMj3XqtUAq4HE2n73gEcvdFJMXL4G16N58+TgR1e2cFdRKw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4033,35 +4760,36 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/react-vite@7.0.24(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6)(vite@4.3.9): - resolution: {integrity: sha512-+a01kqBOfH7U5Vd6bFHow3hIvsSMwcmEOnLCNrzuwHwiQxqxMEQLPQ5C7PgqCQl5M1OgR+AjL0dx1g03CqwqRQ==} + /@storybook/react-vite@7.2.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6)(vite@4.4.9): + resolution: {integrity: sha512-sBMlrLf/zUDUk6bWQLu5/tERW82j9spGMD++O1mdum3eVfPwvsqjtGokTVx/eOLUYA9kqQFdUtjLSn0sS84bTQ==} engines: {node: '>=16'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: ^3.0.0 || ^4.0.0 dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.2.1(typescript@5.1.6)(vite@4.3.9) - '@rollup/pluginutils': 4.2.1 - '@storybook/builder-vite': 7.0.24(typescript@5.1.6)(vite@4.3.9) - '@storybook/react': 7.0.24(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6) - '@vitejs/plugin-react': 3.1.0(vite@4.3.9) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.2.1(typescript@5.1.6)(vite@4.4.9) + '@rollup/pluginutils': 5.0.2 + '@storybook/builder-vite': 7.2.1(typescript@5.1.6)(vite@4.4.9) + '@storybook/react': 7.2.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6) + '@vitejs/plugin-react': 3.1.0(vite@4.4.9) ast-types: 0.14.2 - magic-string: 0.27.0 + magic-string: 0.30.2 react: 18.2.0 react-docgen: 6.0.0-alpha.3 react-dom: 18.2.0(react@18.2.0) - vite: 4.3.9(@types/node@18.14.2) + vite: 4.4.9(@types/node@18.14.2) transitivePeerDependencies: - '@preact/preset-vite' - encoding + - rollup - supports-color - typescript - vite-plugin-glimmerx dev: true - /@storybook/react@7.0.24(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6): - resolution: {integrity: sha512-JAgSs8ANysBl3+cOAjFSVG3bA2V/wP6jyu7oK0jSATRQhHRjRS/tHFMA82j0j98G2sr3JXQUxNt55Qq3k2mUcg==} + /@storybook/react@7.2.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.1.6): + resolution: {integrity: sha512-WRAVrSQKAtCoypUrrIXWGOvyGRVkrh73hSkKVC0gEqxWDmjZIZJ1uc3VrUd/yHJdLsqNphcAyU8Ahu52yozubg==} engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4071,16 +4799,16 @@ packages: typescript: optional: true dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/core-client': 7.0.24 - '@storybook/docs-tools': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/core-client': 7.2.1 + '@storybook/docs-tools': 7.2.1 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.0.24 - '@storybook/react-dom-shim': 7.0.24(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.0.24 + '@storybook/preview-api': 7.2.1 + '@storybook/react-dom-shim': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.2.1 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 - '@types/node': 16.18.38 + '@types/node': 16.18.39 acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) acorn-walk: 7.2.0 @@ -4100,154 +4828,262 @@ packages: - supports-color dev: true - /@storybook/router@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-SRCV+srCZUbko/V0phVN8jY8ilrxQWWAY/gegwNlIYaNqLJSyYqIj739VDmX+deXl6rOEpFLZreClVXWiDU9+w==} + /@storybook/router@7.2.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9Cn5boUS+7yhrKlSy1kt7ruNs/znk3555kclBD6+uuhH/dD84feGeiGYE4GUuLmcKrDFtNF185/Gr1huJ556tA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/client-logger': 7.0.24 + '@storybook/client-logger': 7.2.1 memoizerific: 1.11.3 qs: 6.11.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/telemetry@7.0.24: - resolution: {integrity: sha512-mLGwm3yeWlM9Srrcecrpce4m8uyazIMkHIYcBC0cD2L/JzIRzeRS3Na8QlLKz4/+Hxawm7K/pE/DBrVjvBbm8A==} + /@storybook/telemetry@7.2.1: + resolution: {integrity: sha512-ewYvX+ZzuTCl9a8DUbKkSPD6GhxUStl/+Eni1faE1OEnyduwbJFlse0EBpOa4YZTcghlngrHV3pulEW8qOgNFA==} dependencies: - '@storybook/client-logger': 7.0.24 - '@storybook/core-common': 7.0.24 + '@storybook/client-logger': 7.2.1 + '@storybook/core-common': 7.2.1 + '@storybook/csf-tools': 7.2.1 chalk: 4.1.2 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 fs-extra: 11.1.1 - isomorphic-unfetch: 3.1.0 - nanoid: 3.3.6 read-pkg-up: 7.0.1 transitivePeerDependencies: - encoding - supports-color dev: true - /@storybook/theming@7.0.24(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-CMeCCfqffJ/D5rBl1HpAM/e5Vw0h7ucT+CLzP0ALtLrguz9ZzOiIZYgMj17KpfvWqje7HT+DwEtNkSrnJ01FNQ==} + /@storybook/testing-library@0.2.0: + resolution: {integrity: sha512-Ff6jNnrsosmDshgCf0Eb5Cz7IA34p/1Ps5N3Kp3598kfXpBSccSkQQvVFUXC3kIHw/isIXWPqntZuKqnWUz7Gw==} + dependencies: + '@testing-library/dom': 9.3.1 + '@testing-library/user-event': 14.4.3(@testing-library/dom@9.3.1) + ts-dedent: 2.2.0 + dev: true + + /@storybook/theming@7.2.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cfnNCLvKmzxjmoYKfLl7Q64gSTouLvd23CtvBAOlWcRYnMJ9v4/7A2tK3xQyVRlJYh9OuXiHFLL8AXbN58Hkzw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) - '@storybook/client-logger': 7.0.24 + '@storybook/client-logger': 7.2.1 '@storybook/global': 5.0.0 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/types@7.0.24: - resolution: {integrity: sha512-SZh/XBHP1TT5bmEk0W52nT0v6fUnYwmZVls3da5noutdgOAiwL7TANtl41XrNjG+UDr8x0OE3PVVJi+LhwUaNA==} + /@storybook/types@7.2.1: + resolution: {integrity: sha512-YwlIY1uyxfJjijbB5x1d1QOKaUUDJnMX8BSb8oGqU4cyT76X/Is4CbGs+vccFsJo0tZu1GfuahYXl0EDT0nnSQ==} dependencies: - '@storybook/channels': 7.0.24 + '@storybook/channels': 7.2.1 '@types/babel__core': 7.20.1 '@types/express': 4.17.17 file-system-cache: 2.3.0 dev: true - /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.22.9): + /@svgr/babel-plugin-add-jsx-attribute@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 dev: true - /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.22.9): + /@svgr/babel-plugin-remove-jsx-attribute@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-plugin-remove-jsx-empty-expression@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 dev: true - /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.22.9): + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 dev: true - /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.22.9): + /@svgr/babel-plugin-replace-jsx-attribute-value@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-plugin-svg-dynamic-title@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 dev: true - /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.22.9): + /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-plugin-svg-em-dimensions@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 dev: true - /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.22.9): + /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-plugin-transform-react-native-svg@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 dev: true - /@svgr/babel-plugin-transform-react-native-svg@8.0.0(@babel/core@7.22.9): + /@svgr/babel-plugin-transform-react-native-svg@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-UKrY3860AQICgH7g+6h2zkoxeVEPLYwX/uAjmqo4PIq2FIHppwhIqZstIyTz0ZtlwreKR41O3W3BzsBBiJV2Aw==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-plugin-transform-svg-component@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 dev: true - /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.22.9): + /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 + dev: true + + /@svgr/babel-preset@7.0.0(@babel/core@7.22.10): + resolution: {integrity: sha512-EX/NHeFa30j5UjldQGVQikuuQNHUdGmbh9kEpBKofGUtF0GUPJ4T4rhoYiqDAOmBOxojyot36JIFiDUHUK1ilQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + '@svgr/babel-plugin-add-jsx-attribute': 7.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-remove-jsx-attribute': 7.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-remove-jsx-empty-expression': 7.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-replace-jsx-attribute-value': 7.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-svg-dynamic-title': 7.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-svg-em-dimensions': 7.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-transform-react-native-svg': 7.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-transform-svg-component': 7.0.0(@babel/core@7.22.10) dev: true - /@svgr/babel-preset@8.0.0(@babel/core@7.22.9): + /@svgr/babel-preset@8.0.0(@babel/core@7.22.10): resolution: {integrity: sha512-KLcjiZychInVrhs86OvcYPLTFu9L5XV2vj0XAaE1HwE3J3jLmIzRY8ttdeAg/iFyp8nhavJpafpDZTt+1LIpkQ==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.22.9) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.22.9) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.22.9) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.22.9) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.22.9) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.22.9) - '@svgr/babel-plugin-transform-react-native-svg': 8.0.0(@babel/core@7.22.9) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-transform-react-native-svg': 8.0.0(@babel/core@7.22.10) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.22.10) + dev: true + + /@svgr/core@7.0.0: + resolution: {integrity: sha512-ztAoxkaKhRVloa3XydohgQQCb0/8x9T63yXovpmHzKMkHO6pkjdsIAWKOS4bE95P/2quVh1NtjSKlMRNzSBffw==} + engines: {node: '>=14'} + dependencies: + '@babel/core': 7.22.10 + '@svgr/babel-preset': 7.0.0(@babel/core@7.22.10) + camelcase: 6.3.0 + cosmiconfig: 8.2.0 + transitivePeerDependencies: + - supports-color dev: true /@svgr/core@8.0.0: resolution: {integrity: sha512-aJKtc+Pie/rFYsVH/unSkDaZGvEeylNv/s2cP+ta9/rYWxRVvoV/S4Qw65Kmrtah4CBK5PM6ISH9qUH7IJQCng==} engines: {node: '>=14'} dependencies: - '@babel/core': 7.22.9 - '@svgr/babel-preset': 8.0.0(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@svgr/babel-preset': 8.0.0(@babel/core@7.22.10) camelcase: 6.3.0 cosmiconfig: 8.2.0 snake-case: 3.0.4 @@ -4255,22 +5091,42 @@ packages: - supports-color dev: true + /@svgr/hast-util-to-babel-ast@7.0.0: + resolution: {integrity: sha512-42Ej9sDDEmsJKjrfQ1PHmiDiHagh/u9AHO9QWbeNx4KmD9yS5d1XHmXUNINfUcykAU+4431Cn+k6Vn5mWBYimQ==} + engines: {node: '>=14'} + dependencies: + '@babel/types': 7.22.10 + entities: 4.5.0 + dev: true + /@svgr/hast-util-to-babel-ast@8.0.0: resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} engines: {node: '>=14'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 entities: 4.5.0 dev: true + /@svgr/plugin-jsx@7.0.0: + resolution: {integrity: sha512-SWlTpPQmBUtLKxXWgpv8syzqIU8XgFRvyhfkam2So8b3BE0OS0HPe5UfmlJ2KIC+a7dpuuYovPR2WAQuSyMoPw==} + engines: {node: '>=14'} + dependencies: + '@babel/core': 7.22.10 + '@svgr/babel-preset': 7.0.0(@babel/core@7.22.10) + '@svgr/hast-util-to-babel-ast': 7.0.0 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: true + /@svgr/plugin-jsx@8.0.1(@svgr/core@8.0.0): resolution: {integrity: sha512-bfCFb+4ZsM3UuKP2t7KmDwn6YV8qVn9HIQJmau6xeQb/iV65Rpi7NBNBWA2hcCd4GKoCqG8hpaaDk5FDR0eH+g==} engines: {node: '>=14'} peerDependencies: '@svgr/core': '*' dependencies: - '@babel/core': 7.22.9 - '@svgr/babel-preset': 8.0.0(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@svgr/babel-preset': 8.0.0(@babel/core@7.22.10) '@svgr/core': 8.0.0 '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -4294,11 +5150,11 @@ packages: resolution: {integrity: sha512-zSoeKcbCmfMXjA11uDuCJb+1LWNb3vy6Qw/VHj0Nfcl3UuqwuoZWknHsBIhCWvi4wU9vPui3aq054qjVyZqY4A==} engines: {node: '>=14'} dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-react-constant-elements': 7.22.5(@babel/core@7.22.9) - '@babel/preset-env': 7.22.9(@babel/core@7.22.9) - '@babel/preset-react': 7.22.5(@babel/core@7.22.9) - '@babel/preset-typescript': 7.22.5(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/plugin-transform-react-constant-elements': 7.22.5(@babel/core@7.22.10) + '@babel/preset-env': 7.22.10(@babel/core@7.22.10) + '@babel/preset-react': 7.22.5(@babel/core@7.22.10) + '@babel/preset-typescript': 7.22.5(@babel/core@7.22.10) '@svgr/core': 8.0.0 '@svgr/plugin-jsx': 8.0.1(@svgr/core@8.0.0) '@svgr/plugin-svgo': 8.0.1(@svgr/core@8.0.0) @@ -4309,7 +5165,7 @@ packages: /@swc/helpers@0.5.1: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: true /@szmarczak/http-timer@4.0.6: @@ -4319,12 +5175,12 @@ packages: defer-to-connect: 2.0.1 dev: true - /@tanstack/query-core@4.29.19: - resolution: {integrity: sha512-uPe1DukeIpIHpQi6UzIgBcXsjjsDaLnc7hF+zLBKnaUlh7jFE/A+P8t4cU4VzKPMFB/C970n/9SxtpO5hmIRgw==} + /@tanstack/query-core@4.32.6: + resolution: {integrity: sha512-YVB+mVWENQwPyv+40qO7flMgKZ0uI41Ph7qXC2Zf1ft5AIGfnXnMZyifB2ghhZ27u+5wm5mlzO4Y6lwwadzxCA==} dev: false - /@tanstack/react-query@4.29.19(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-XiTIOHHQ5Cw1WUlHaD4fmVUMhoWjuNJlAeJGq7eM4BraI5z7y8WkZO+NR8PSuRnQGblpuVdjClQbDFtwxTtTUw==} + /@tanstack/react-query@4.32.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AITu/IKJJJXsHHeXNBy5bclu12t08usMCY0vFC2dh9SP/w6JAk5U9GwfjOIPj3p+ATADZvxQPe8UiCtMLNeQbg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4335,18 +5191,35 @@ packages: react-native: optional: true dependencies: - '@tanstack/query-core': 4.29.19 + '@tanstack/query-core': 4.32.6 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) use-sync-external-store: 1.2.0(react@18.2.0) dev: false + /@tanstack/react-table@8.9.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ng9rdm3JPoSCi6cVZvANsYnF+UoGVRxflMb270tVj0+LjeT/ZtZ9ckxF6oLPLcKesza6VKBqtdF9mQ+vaz24Aw==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16' + react-dom: '>=16' + dependencies: + '@tanstack/table-core': 8.9.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@tanstack/table-core@8.9.3: + resolution: {integrity: sha512-NpHZBoHTfqyJk0m/s/+CSuAiwtebhYK90mDuf5eylTvgViNOujiaOaxNDxJkQQAsVvHWZftUGAx1EfO1rkKtLg==} + engines: {node: '>=12'} + dev: false + /@testing-library/dom@9.3.1: resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} engines: {node: '>=14'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/runtime': 7.22.6 + '@babel/code-frame': 7.22.10 + '@babel/runtime': 7.22.10 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -4355,6 +5228,21 @@ packages: pretty-format: 27.5.1 dev: true + /@testing-library/jest-dom@5.17.0: + resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==} + engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + dependencies: + '@adobe/css-tools': 4.3.0 + '@babel/runtime': 7.22.10 + '@types/testing-library__jest-dom': 5.14.9 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.5.16 + lodash: 4.17.21 + redent: 3.0.0 + dev: true + /@testing-library/react@14.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==} engines: {node: '>=14'} @@ -4364,11 +5252,20 @@ packages: dependencies: '@babel/runtime': 7.22.6 '@testing-library/dom': 9.3.1 - '@types/react-dom': 18.2.6 + '@types/react-dom': 18.2.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true + /@testing-library/user-event@14.4.3(@testing-library/dom@9.3.1): + resolution: {integrity: sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + dependencies: + '@testing-library/dom': 9.3.1 + dev: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -4379,13 +5276,20 @@ packages: engines: {node: '>=10.13.0'} dev: true - /@ts-morph/common@0.19.0: - resolution: {integrity: sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==} - dependencies: - fast-glob: 3.3.0 - minimatch: 7.4.6 - mkdirp: 2.1.6 - path-browserify: 1.0.1 + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true /@types/argparse@1.0.38: @@ -4403,8 +5307,8 @@ packages: /@types/babel__core@7.20.1: resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} dependencies: - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.20.1 @@ -4413,7 +5317,7 @@ packages: /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@types/babel__helper-plugin-utils@7.10.0: @@ -4425,14 +5329,14 @@ packages: /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 dev: true /@types/babel__traverse@7.20.1: resolution: {integrity: sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: true /@types/body-parser@1.19.2: @@ -4490,12 +5394,12 @@ packages: /@types/eslint-scope@3.7.4: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} dependencies: - '@types/eslint': 8.44.0 + '@types/eslint': 8.44.2 '@types/estree': 1.0.1 dev: true - /@types/eslint@8.44.0: - resolution: {integrity: sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==} + /@types/eslint@8.44.2: + resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} dependencies: '@types/estree': 1.0.1 '@types/json-schema': 7.0.12 @@ -4538,13 +5442,6 @@ packages: '@types/node': 18.14.2 dev: true - /@types/glob@8.1.0: - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.14.2 - dev: true - /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: @@ -4554,7 +5451,7 @@ packages: /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 18.2.14 + '@types/react': 18.2.18 hoist-non-react-statics: 3.3.2 dev: false @@ -4582,6 +5479,13 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true + /@types/jest@29.5.3: + resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==} + dependencies: + expect: 29.6.2 + pretty-format: 29.6.2 + dev: true + /@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true @@ -4606,8 +5510,8 @@ packages: '@types/node': 18.14.2 dev: true - /@types/lodash@4.14.195: - resolution: {integrity: sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==} + /@types/lodash@4.14.196: + resolution: {integrity: sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==} dev: true /@types/mdx@2.0.5: @@ -4633,8 +5537,8 @@ packages: form-data: 3.0.1 dev: true - /@types/node@16.18.38: - resolution: {integrity: sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==} + /@types/node@16.18.39: + resolution: {integrity: sha512-8q9ZexmdYYyc5/cfujaXb4YOucpQxAV4RMG0himLyDUOEr8Mr79VrqsFI+cQ2M2h89YIuy95lbxuYjxT4Hk4kQ==} dev: true /@types/node@18.14.2: @@ -4645,13 +5549,13 @@ packages: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/npmlog@4.1.4: - resolution: {integrity: sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ==} - dev: true - /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + /@types/picomatch@2.3.0: + resolution: {integrity: sha512-O397rnSS9iQI4OirieAtsDqvCj4+3eY1J+EPdNTKuHuRWIfUoGyzX294o8C4KJYaLqgSrd2o60c5EqCU8Zv02g==} + dev: true + /@types/pretty-hrtime@1.0.1: resolution: {integrity: sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==} dev: true @@ -4667,26 +5571,26 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true - /@types/react-dom@18.2.6: - resolution: {integrity: sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==} + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.14 + '@types/react': 18.2.18 dev: true /@types/react-is@18.2.1: resolution: {integrity: sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==} dependencies: - '@types/react': 18.2.14 + '@types/react': 18.2.18 dev: false /@types/react-transition-group@4.4.6: resolution: {integrity: sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==} dependencies: - '@types/react': 18.2.14 + '@types/react': 18.2.18 dev: false - /@types/react@18.2.14: - resolution: {integrity: sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==} + /@types/react@18.2.18: + resolution: {integrity: sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 @@ -4720,6 +5624,16 @@ packages: '@types/node': 18.14.2 dev: true + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/testing-library__jest-dom@5.14.9: + resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} + dependencies: + '@types/jest': 29.5.3 + dev: true + /@types/unist@2.0.7: resolution: {integrity: sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==} dev: true @@ -4728,68 +5642,69 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true + /@types/yargs@16.0.5: + resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + /@types/yargs@17.0.24: resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} dependencies: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.15.0)(typescript@5.1.6): - resolution: {integrity: sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.60.1(eslint@8.15.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 5.60.1 - '@typescript-eslint/type-utils': 5.60.1(eslint@8.15.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.60.1(eslint@8.15.0)(typescript@5.1.6) + '@eslint-community/regexpp': 4.6.2 + '@typescript-eslint/parser': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/type-utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 - eslint: 8.15.0 - grapheme-splitter: 1.0.4 + eslint: 8.46.0 + graphemer: 1.4.0 ignore: 5.2.4 + natural-compare: 1.4.0 natural-compare-lite: 1.4.0 - semver: 7.5.3 - tsutils: 3.21.0(typescript@5.1.6) + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.60.1(eslint@8.15.0)(typescript@5.1.6): - resolution: {integrity: sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.3.0(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.60.1 - '@typescript-eslint/types': 5.60.1 - '@typescript-eslint/typescript-estree': 5.60.1(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 - eslint: 8.15.0 + eslint: 8.46.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.60.1: - resolution: {integrity: sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.60.1 - '@typescript-eslint/visitor-keys': 5.60.1 - dev: true - /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4798,8 +5713,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.60.1(eslint@8.15.0)(typescript@5.1.6): - resolution: {integrity: sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==} + /@typescript-eslint/scope-manager@6.3.0: + resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -4808,38 +5731,38 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.60.1(typescript@5.1.6) - '@typescript-eslint/utils': 5.60.1(eslint@8.15.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.15.0 + eslint: 8.46.0 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.15.0)(typescript@5.1.6): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@6.3.0(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.15.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.15.0 - tsutils: 3.21.0(typescript@5.1.6) + eslint: 8.46.0 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.60.1: - resolution: {integrity: sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==} + /@typescript-eslint/types@5.59.0: + resolution: {integrity: sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -4848,8 +5771,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.60.1(typescript@5.1.6): - resolution: {integrity: sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==} + /@typescript-eslint/types@6.3.0: + resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.59.0(typescript@5.1.6): + resolution: {integrity: sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -4857,12 +5785,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.60.1 - '@typescript-eslint/visitor-keys': 5.60.1 + '@typescript-eslint/types': 5.59.0 + '@typescript-eslint/visitor-keys': 5.59.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.3 + semver: 7.5.4 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: @@ -4883,59 +5811,79 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.3 + semver: 7.5.4 tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.60.1(eslint@8.15.0)(typescript@5.1.6): - resolution: {integrity: sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@6.3.0(typescript@5.1.6): + resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.15.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.60.1 - '@typescript-eslint/types': 5.60.1 - '@typescript-eslint/typescript-estree': 5.60.1(typescript@5.1.6) - eslint: 8.15.0 - eslint-scope: 5.1.1 - semver: 7.5.3 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.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@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color - - typescript dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.15.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.15.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - eslint: 8.15.0 + eslint: 8.46.0 eslint-scope: 5.1.1 - semver: 7.5.3 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils@6.3.0(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + eslint: 8.46.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.60.1: - resolution: {integrity: sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==} + /@typescript-eslint/visitor-keys@5.59.0: + resolution: {integrity: sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.60.1 - eslint-visitor-keys: 3.4.1 + '@typescript-eslint/types': 5.59.0 + eslint-visitor-keys: 3.4.2 dev: true /@typescript-eslint/visitor-keys@5.62.0: @@ -4943,105 +5891,185 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 + dev: true + + /@typescript-eslint/visitor-keys@6.3.0: + resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.3.0 + eslint-visitor-keys: 3.4.2 dev: true - /@vitejs/plugin-react@3.1.0(vite@4.3.9): + /@vitejs/plugin-react@3.1.0(vite@4.4.9): resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.1.0-beta.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.10) magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 4.3.9(@types/node@18.14.2) + vite: 4.4.9(@types/node@18.14.2) transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-react@4.0.0(vite@4.3.9): - resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} + /@vitejs/plugin-react@4.0.4(vite@4.4.9): + resolution: {integrity: sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.10) react-refresh: 0.14.0 - vite: 4.3.9(@types/node@18.14.2) + vite: 4.4.9(@types/node@18.14.2) transitivePeerDependencies: - supports-color dev: true - /@vitest/coverage-c8@0.32.0(vitest@0.32.0): - resolution: {integrity: sha512-FeTzRN5VCL7B6YTRK5ZPQO2iwJzl2x7/mTQ/2uEeKZatAYBtvczeAYnzSUhCPev7p99+5skxMQZwqVcFTrVCdg==} + /@vitest/coverage-c8@0.33.0(vitest@0.34.1): + resolution: {integrity: sha512-DaF1zJz4dcOZS4k/neiQJokmOWqsGXwhthfmUdPGorXIQHjdPvV6JQSYhQDI41MyI8c+IieQUdIDs5XAMHtDDw==} + deprecated: v8 coverage is moved to @vitest/coverage-v8 package peerDependencies: vitest: '>=0.30.0 <1' dependencies: '@ampproject/remapping': 2.2.1 c8: 7.14.0 - magic-string: 0.30.1 + magic-string: 0.30.2 picocolors: 1.0.0 std-env: 3.3.3 - vitest: 0.32.0(@vitest/ui@0.32.0)(jsdom@22.1.0) + vitest: 0.34.1(@vitest/ui@0.34.1)(jsdom@22.1.0) dev: true - /@vitest/expect@0.32.0: - resolution: {integrity: sha512-VxVHhIxKw9Lux+O9bwLEEk2gzOUe93xuFHy9SzYWnnoYZFYg1NfBtnfnYWiJN7yooJ7KNElCK5YtA7DTZvtXtg==} + /@vitest/expect@0.34.1: + resolution: {integrity: sha512-q2CD8+XIsQ+tHwypnoCk8Mnv5e6afLFvinVGCq3/BOT4kQdVQmY6rRfyKkwcg635lbliLPqbunXZr+L1ssUWiQ==} dependencies: - '@vitest/spy': 0.32.0 - '@vitest/utils': 0.32.0 + '@vitest/spy': 0.34.1 + '@vitest/utils': 0.34.1 chai: 4.3.7 dev: true - /@vitest/runner@0.32.0: - resolution: {integrity: sha512-QpCmRxftHkr72xt5A08xTEs9I4iWEXIOCHWhQQguWOKE4QH7DXSKZSOFibuwEIMAD7G0ERvtUyQn7iPWIqSwmw==} + /@vitest/runner@0.34.1: + resolution: {integrity: sha512-YfQMpYzDsYB7yqgmlxZ06NI4LurHWfrH7Wy3Pvf/z/vwUSgq1zLAb1lWcItCzQG+NVox+VvzlKQrYEXb47645g==} dependencies: - '@vitest/utils': 0.32.0 - concordance: 5.0.4 + '@vitest/utils': 0.34.1 p-limit: 4.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@0.32.0: - resolution: {integrity: sha512-yCKorPWjEnzpUxQpGlxulujTcSPgkblwGzAUEL+z01FTUg/YuCDZ8dxr9sHA08oO2EwxzHXNLjQKWJ2zc2a19Q==} + /@vitest/snapshot@0.34.1: + resolution: {integrity: sha512-0O9LfLU0114OqdF8lENlrLsnn024Tb1CsS9UwG0YMWY2oGTQfPtkW+B/7ieyv0X9R2Oijhi3caB1xgGgEgclSQ==} dependencies: - magic-string: 0.30.1 + magic-string: 0.30.2 pathe: 1.1.1 - pretty-format: 27.5.1 + pretty-format: 29.6.2 dev: true - /@vitest/spy@0.32.0: - resolution: {integrity: sha512-MruAPlM0uyiq3d53BkwTeShXY0rYEfhNGQzVO5GHBmmX3clsxcWp79mMnkOVcV244sNTeDcHbcPFWIjOI4tZvw==} + /@vitest/spy@0.34.1: + resolution: {integrity: sha512-UT4WcI3EAPUNO8n6y9QoEqynGGEPmmRxC+cLzneFFXpmacivjHZsNbiKD88KUScv5DCHVDgdBsLD7O7s1enFcQ==} dependencies: tinyspy: 2.1.1 dev: true - /@vitest/ui@0.32.0(vitest@0.32.0): - resolution: {integrity: sha512-55gugh6+owrOqW83RCgLm9q+o3SlzvFVgl1lyfnr0WB8ABxLoM+3pgusEjosscgEYGzTjTXaZY6xLd4qlfH/RQ==} + /@vitest/ui@0.34.1(vitest@0.34.1): + resolution: {integrity: sha512-bwmkgMjDcMr3pg0UXLwfwZ/WI1fq2N+5DUisqHkY9bvnNRnpT6QiewtSS/VhmN61ixgNpSKbEGVboml2GLuxfA==} peerDependencies: vitest: '>=0.30.1 <1' dependencies: - '@vitest/utils': 0.32.0 - fast-glob: 3.3.0 - fflate: 0.7.4 + '@vitest/utils': 0.34.1 + fast-glob: 3.3.1 + fflate: 0.8.0 flatted: 3.2.7 pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - vitest: 0.32.0(@vitest/ui@0.32.0)(jsdom@22.1.0) + vitest: 0.34.1(@vitest/ui@0.34.1)(jsdom@22.1.0) dev: true - /@vitest/utils@0.32.0: - resolution: {integrity: sha512-53yXunzx47MmbuvcOPpLaVljHaeSu1G2dHdmy7+9ngMnQIkBQcvwOcoclWFnxDMxFbnq8exAfh3aKSZaK71J5A==} + /@vitest/utils@0.34.1: + resolution: {integrity: sha512-/ql9dsFi4iuEbiNcjNHQWXBum7aL8pyhxvfnD9gNtbjR9fUKAjxhj4AA3yfLXg6gJpMGGecvtF8Au2G9y3q47Q==} dependencies: - concordance: 5.0.4 + diff-sequences: 29.4.3 loupe: 2.3.6 - pretty-format: 27.5.1 + pretty-format: 29.6.2 + dev: true + + /@volar/language-core@1.10.0: + resolution: {integrity: sha512-ddyWwSYqcbEZNFHm+Z3NZd6M7Ihjcwl/9B5cZd8kECdimVXUFdFi60XHWD27nrWtUQIsUYIG7Ca1WBwV2u2LSQ==} + dependencies: + '@volar/source-map': 1.10.0 + dev: true + + /@volar/source-map@1.10.0: + resolution: {integrity: sha512-/ibWdcOzDGiq/GM1JU2eX8fH1bvAhl66hfe8yEgLEzg9txgr6qb5sQ/DEz5PcDL75tF5H5sCRRwn8Eu8ezi9mw==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.10.0: + resolution: {integrity: sha512-OtqGtFbUKYC0pLNIk3mHQp5xWnvL1CJIUc9VE39VdZ/oqpoBh5jKfb9uJ45Y4/oP/WYTrif/Uxl1k8VTPz66Gg==} + dependencies: + '@volar/language-core': 1.10.0 + dev: true + + /@vue/compiler-core@3.3.4: + resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} + dependencies: + '@babel/parser': 7.22.10 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom@3.3.4: + resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} + dependencies: + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 + dev: true + + /@vue/language-core@1.8.8(typescript@5.1.6): + resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.10.0 + '@volar/source-map': 1.10.0 + '@vue/compiler-dom': 3.3.4 + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 + minimatch: 9.0.3 + muggle-string: 0.3.1 + typescript: 5.1.6 + vue-template-compiler: 2.7.14 + dev: true + + /@vue/reactivity@3.3.4: + resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} + dependencies: + '@vue/shared': 3.3.4 + dev: true + + /@vue/shared@3.3.4: + resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + dev: true + + /@vue/typescript@1.8.8(typescript@5.1.6): + resolution: {integrity: sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==} + dependencies: + '@volar/typescript': 1.10.0 + '@vue/language-core': 1.8.8(typescript@5.1.6) + transitivePeerDependencies: + - typescript dev: true /@webassemblyjs/ast@1.11.6: @@ -5158,14 +6186,14 @@ packages: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} dev: true - /@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.17.19): + /@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.18.19): resolution: {integrity: sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==} engines: {node: '>=14.15.0'} peerDependencies: esbuild: '>=0.10.0' dependencies: - esbuild: 0.17.19 - tslib: 2.6.0 + esbuild: 0.18.19 + tslib: 2.6.1 dev: true /@yarnpkg/lockfile@1.1.0: @@ -5177,7 +6205,7 @@ packages: engines: {node: '>=14.15.0'} dependencies: js-yaml: 3.14.1 - tslib: 2.6.0 + tslib: 2.6.1 dev: true /@zkochan/js-yaml@0.0.6: @@ -5319,6 +6347,11 @@ packages: engines: {node: '>=8'} dev: true + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + /ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} engines: {node: '>=0.10.0'} @@ -5343,6 +6376,11 @@ packages: engines: {node: '>=10'} dev: true + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -5355,16 +6393,8 @@ packages: resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} dev: true - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: true - - /are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true /argparse@1.0.10: @@ -5377,6 +6407,13 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true + /aria-hidden@1.2.3: + resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} + engines: {node: '>=10'} + dependencies: + tslib: 2.6.1 + dev: true + /aria-query@5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: @@ -5416,13 +6453,24 @@ packages: engines: {node: '>=8'} dev: true + /array.prototype.findlastindex@1.2.2: + resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + /array.prototype.flat@1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true @@ -5441,11 +6489,23 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 dev: true + /arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + /asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -5480,14 +6540,14 @@ packages: resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} engines: {node: '>=4'} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: true /ast-types@0.16.1: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: true /async-retry@1.2.3: @@ -5576,15 +6636,15 @@ packages: dev: true optional: true - /babel-plugin-const-enum@1.2.0(@babel/core@7.22.9): + /babel-plugin-const-enum@1.2.0(@babel/core@7.22.10): resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.9) - '@babel/traverse': 7.22.8 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10) + '@babel/traverse': 7.22.10 transitivePeerDependencies: - supports-color dev: true @@ -5602,7 +6662,7 @@ packages: '@types/babel__core': 7.20.1 '@types/babel__helper-plugin-utils': 7.10.0 '@types/babel__traverse': 7.20.1 - tslib: 2.6.0 + tslib: 2.6.1 transitivePeerDependencies: - supports-color - ts-jest @@ -5624,57 +6684,57 @@ packages: /babel-plugin-macros@2.8.0: resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 cosmiconfig: 6.0.0 - resolve: 1.22.2 + resolve: 1.22.4 dev: true /babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 cosmiconfig: 7.1.0 - resolve: 1.22.2 + resolve: 1.22.4 dev: false - /babel-plugin-polyfill-corejs2@0.4.4(@babel/core@7.22.9): - resolution: {integrity: sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==} + /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.10): + resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.1(@babel/core@7.22.9) - '@nicolo-ribaudo/semver-v6': 6.3.3 + '@babel/core': 7.22.10 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.2(@babel/core@7.22.9): - resolution: {integrity: sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==} + /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.10): + resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.1(@babel/core@7.22.9) - core-js-compat: 3.31.1 + '@babel/core': 7.22.10 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) + core-js-compat: 3.32.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.1(@babel/core@7.22.9): - resolution: {integrity: sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==} + /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.10): + resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-define-polyfill-provider': 0.4.1(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.10) transitivePeerDependencies: - supports-color dev: true - /babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.22.9): + /babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.22.10): resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} peerDependencies: '@babel/core': ^7 @@ -5683,7 +6743,7 @@ packages: '@babel/traverse': optional: true dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -5754,11 +6814,11 @@ packages: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} dev: true - /better-opn@2.1.1: - resolution: {integrity: sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==} - engines: {node: '>8.0.0'} + /better-opn@3.0.2: + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} dependencies: - open: 7.4.2 + open: 8.4.2 dev: true /big-integer@1.6.51: @@ -5783,10 +6843,6 @@ packages: readable-stream: 3.6.2 dev: true - /blueimp-md5@2.19.0: - resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} - dev: true - /body-parser@1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -5846,15 +6902,15 @@ packages: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} dev: true - /browserslist@4.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001515 - electron-to-chromium: 1.4.457 + caniuse-lite: 1.0.30001517 + electron-to-chromium: 1.4.477 node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.9) + update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true /bser@2.1.1: @@ -5882,6 +6938,13 @@ packages: ieee754: 1.2.1 dev: true + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + /bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -5902,8 +6965,8 @@ packages: find-up: 5.0.0 foreground-child: 2.0.0 istanbul-lib-coverage: 3.2.0 - istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.5 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.1.6 rimraf: 3.0.2 test-exclude: 6.0.0 v8-to-istanbul: 9.1.0 @@ -5955,8 +7018,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001515: - resolution: {integrity: sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==} + /caniuse-lite@1.0.30001517: + resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} dev: true /caseless@0.12.0: @@ -5997,6 +7060,14 @@ packages: escape-string-regexp: 1.0.5 supports-color: 5.5.0 + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -6110,15 +7181,11 @@ packages: mimic-response: 1.0.1 dev: true - /clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + /clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} engines: {node: '>=6'} dev: false - /code-block-writer@12.0.0: - resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} - dev: true - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -6148,11 +7215,6 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - dev: true - /colors@1.2.5: resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} engines: {node: '>=0.1.90'} @@ -6216,28 +7278,10 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concordance@5.0.4: - resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} - engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} - dependencies: - date-time: 3.1.0 - esutils: 2.0.3 - fast-diff: 1.3.0 - js-string-escape: 1.0.1 - lodash: 4.17.21 - md5-hex: 3.0.1 - semver: 7.5.3 - well-known-symbols: 2.0.0 - dev: true - /confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} dev: true - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: true - /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -6266,10 +7310,10 @@ packages: engines: {node: '>= 0.6'} dev: true - /core-js-compat@3.31.1: - resolution: {integrity: sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==} + /core-js-compat@3.32.0: + resolution: {integrity: sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==} dependencies: - browserslist: 4.21.9 + browserslist: 4.21.10 dev: true /core-js@2.6.12: @@ -6279,8 +7323,8 @@ packages: dev: true optional: true - /core-js@3.31.1: - resolution: {integrity: sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ==} + /core-js@3.32.1: + resolution: {integrity: sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==} requiresBuild: true dev: true @@ -6331,6 +7375,10 @@ packages: path-type: 4.0.0 dev: true + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -6386,6 +7434,10 @@ packages: engines: {node: '>= 6'} dev: true + /css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true + /csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -6442,7 +7494,7 @@ packages: async-retry: 1.2.3 chalk: 2.4.2 commander: 2.20.3 - core-js: 3.31.1 + core-js: 3.32.1 debug: 4.3.4 fast-json-patch: 3.1.1 get-stdin: 6.0.0 @@ -6496,11 +7548,8 @@ packages: whatwg-url: 12.0.1 dev: true - /date-time@3.1.0: - resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} - engines: {node: '>=6'} - dependencies: - time-zone: 1.0.0 + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true /debug@2.6.9: @@ -6580,7 +7629,7 @@ packages: side-channel: 1.0.4 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.10 + which-typed-array: 1.1.11 dev: true /deep-is@0.1.4: @@ -6600,6 +7649,16 @@ packages: untildify: 4.0.0 dev: true + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + /defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} @@ -6610,6 +7669,11 @@ packages: engines: {node: '>=8'} dev: true + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -6623,10 +7687,6 @@ packages: engines: {node: '>=0.4.0'} dev: true - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: true - /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -6654,6 +7714,10 @@ packages: dev: true optional: true + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: true + /detect-package-manager@2.0.1: resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} engines: {node: '>=12'} @@ -6671,6 +7735,16 @@ packages: - supports-color dev: true + /diff-sequences@29.4.3: + resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -6699,7 +7773,7 @@ packages: /dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 csstype: 3.1.2 dev: false @@ -6764,14 +7838,6 @@ packages: dev: true optional: true - /domutils@1.7.0: - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} - dependencies: - dom-serializer: 0.1.1 - domelementtype: 1.3.1 - dev: true - optional: true - /domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: @@ -6784,7 +7850,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.1 dev: true /dotenv-expand@10.0.0: @@ -6806,6 +7872,10 @@ packages: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + /ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} dependencies: @@ -6832,8 +7902,12 @@ packages: jake: 10.8.7 dev: true - /electron-to-chromium@1.4.457: - resolution: {integrity: sha512-/g3UyNDmDd6ebeWapmAoiyy+Sy2HyJ+/X8KyvNeHfKRFfHaA2W8oF5fxD5F3tjBDcjpwo0iek6YNgxNXDBoEtA==} + /electron-to-chromium@1.4.477: + resolution: {integrity: sha512-shUVy6Eawp33dFBFIoYbIwLHrX0IZ857AlH9ug2o4rvbWmpaCUdBpQ5Zw39HRrfzAFm4APJE9V+E2A/WB0YqJw==} + dev: true + + /emoji-regex@10.2.1: + resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} dev: true /emoji-regex@8.0.0: @@ -6890,16 +7964,57 @@ packages: engines: {node: '>=0.12'} dev: true - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - - /es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + + /es-abstract@1.21.2: + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true + + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 available-typed-arrays: 1.0.5 call-bind: 1.0.2 es-set-tostringtag: 2.0.1 @@ -6920,19 +8035,23 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 is-weakref: 1.0.2 object-inspect: 1.12.3 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 safe-regex-test: 1.0.0 string.prototype.trim: 1.2.7 string.prototype.trimend: 1.0.6 string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.10 + which-typed-array: 1.1.11 dev: true /es-get-iterator@1.1.3: @@ -6989,45 +8108,45 @@ packages: resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} dev: true - /esbuild-register@3.4.2(esbuild@0.17.19): + /esbuild-register@3.4.2(esbuild@0.18.19): resolution: {integrity: sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q==} peerDependencies: esbuild: '>=0.12 <1' dependencies: debug: 4.3.4 - esbuild: 0.17.19 + esbuild: 0.18.19 transitivePeerDependencies: - supports-color dev: true - /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + /esbuild@0.18.19: + resolution: {integrity: sha512-ra3CaIKCzJp5bU5BDfrCc0FRqKj71fQi+gbld0aj6lN0ifuX2fWJYPgLVLGwPfA+ruKna+OWwOvf/yHj6n+i0g==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 + '@esbuild/android-arm': 0.18.19 + '@esbuild/android-arm64': 0.18.19 + '@esbuild/android-x64': 0.18.19 + '@esbuild/darwin-arm64': 0.18.19 + '@esbuild/darwin-x64': 0.18.19 + '@esbuild/freebsd-arm64': 0.18.19 + '@esbuild/freebsd-x64': 0.18.19 + '@esbuild/linux-arm': 0.18.19 + '@esbuild/linux-arm64': 0.18.19 + '@esbuild/linux-ia32': 0.18.19 + '@esbuild/linux-loong64': 0.18.19 + '@esbuild/linux-mips64el': 0.18.19 + '@esbuild/linux-ppc64': 0.18.19 + '@esbuild/linux-riscv64': 0.18.19 + '@esbuild/linux-s390x': 0.18.19 + '@esbuild/linux-x64': 0.18.19 + '@esbuild/netbsd-x64': 0.18.19 + '@esbuild/openbsd-x64': 0.18.19 + '@esbuild/sunos-x64': 0.18.19 + '@esbuild/win32-arm64': 0.18.19 + '@esbuild/win32-ia32': 0.18.19 + '@esbuild/win32-x64': 0.18.19 dev: true /escalade@3.1.1: @@ -7043,6 +8162,11 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -7095,26 +8219,26 @@ packages: dev: true optional: true - /eslint-config-prettier@8.1.0(eslint@8.15.0): - resolution: {integrity: sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==} + /eslint-config-prettier@9.0.0(eslint@8.46.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.15.0 + eslint: 8.46.0 dev: true - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + /eslint-import-resolver-node@0.3.8: + resolution: {integrity: sha512-tEe+Pok22qIGaK3KoMP+N96GVDS66B/zreoVVmiavLvRUEmGRtvb4B8wO9jwnb8d2lvHtrkhZ7UD73dWBVnf/Q==} dependencies: debug: 3.2.7 - is-core-module: 2.12.1 - resolve: 1.22.2 + is-core-module: 2.13.0 + resolve: 1.22.4 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-node@0.3.7)(eslint@8.15.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.8)(eslint@8.46.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -7135,25 +8259,47 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.60.1(eslint@8.15.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.3.0(eslint@8.46.0)(typescript@5.1.6) debug: 3.2.7 - eslint: 8.15.0 - eslint-import-resolver-node: 0.3.7 + eslint: 8.46.0 + eslint-import-resolver-node: 0.3.8 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-cypress@2.10.3(eslint@8.15.0): - resolution: {integrity: sha512-CvFeoCquShfO8gHNIKA1VpUTz78WtknMebLemBd1lRbcmJNjwpqCqpQYUG/XVja8GjdX/e2TJXYa+EUBxehtUg==} + /eslint-plugin-cypress@2.13.3(eslint@8.46.0): + resolution: {integrity: sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.15.0 + eslint: 8.46.0 globals: 11.12.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.15.0): - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + /eslint-plugin-formatjs@4.10.3(eslint@8.46.0): + resolution: {integrity: sha512-EHKuEMCmWhAiMdCc8oZU8qBAvnvHPUiJuhGxPqA+GX2Nb7GBsGm2o616KYnSSffDisK+v0E9TDCrS8oJ0QLgcw==} + peerDependencies: + eslint: 7 || 8 + dependencies: + '@formatjs/icu-messageformat-parser': 2.6.0 + '@formatjs/ts-transformer': 3.13.3 + '@types/eslint': 8.44.2 + '@types/picomatch': 2.3.0 + '@typescript-eslint/typescript-estree': 5.59.0(typescript@5.1.6) + emoji-regex: 10.2.1 + eslint: 8.46.0 + magic-string: 0.30.2 + picomatch: 2.3.1 + tslib: 2.5.0 + typescript: 5.1.6 + unicode-emoji-utils: 1.1.2 + transitivePeerDependencies: + - supports-color + - ts-jest + dev: true + + /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0): + resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -7162,21 +8308,24 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.60.1(eslint@8.15.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.3.0(eslint@8.46.0)(typescript@5.1.6) array-includes: 3.1.6 + array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.15.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-node@0.3.7)(eslint@8.15.0) + eslint: 8.46.0 + eslint-import-resolver-node: 0.3.8 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.8)(eslint@8.46.0) has: 1.0.3 - is-core-module: 2.12.1 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 + object.fromentries: 2.0.6 + object.groupby: 1.0.0 object.values: 1.1.6 - resolve: 1.22.2 + resolve: 1.22.4 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -7185,7 +8334,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.15.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.46.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -7200,7 +8349,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.15.0 + eslint: 8.46.0 has: 1.0.3 jsx-ast-utils: 3.3.4 language-tags: 1.0.5 @@ -7210,17 +8359,38 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.15.0): + /eslint-plugin-prettier@5.0.0(eslint-config-prettier@9.0.0)(eslint@8.46.0)(prettier@3.0.1): + resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.46.0 + eslint-config-prettier: 9.0.0(eslint@8.46.0) + prettier: 3.0.1 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.46.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.15.0 + eslint: 8.46.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.15.0): - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + /eslint-plugin-react@7.33.1(eslint@8.46.0): + resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -7229,9 +8399,9 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.15.0 + eslint: 8.46.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.4 + jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 @@ -7243,6 +8413,34 @@ packages: string.prototype.matchall: 4.0.8 dev: true + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.46.0): + resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} + peerDependencies: + eslint: '>=5.0.0' + dependencies: + eslint: 8.46.0 + dev: true + + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.3.0)(eslint@8.46.0): + resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 + eslint-rule-composer: 0.3.0 + dev: true + + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -7251,62 +8449,52 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.15.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.15.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys@3.4.2: + resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.15.0: - resolution: {integrity: sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==} + /eslint@8.46.0: + resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.4.1 - '@humanwhocodes/config-array': 0.9.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.1 + '@eslint/js': 8.46.0 + '@humanwhocodes/config-array': 0.11.10 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-utils: 3.0.0(eslint@8.15.0) - eslint-visitor-keys: 3.4.1 - espree: 9.6.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.2 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 + find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.20.0 + graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + is-path-inside: 3.0.3 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -7314,22 +8502,19 @@ packages: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.3 - regexpp: 3.2.0 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 - v8-compile-cache: 2.3.0 transitivePeerDependencies: - supports-color dev: true - /espree@9.6.0: - resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true /esprima@4.0.1: @@ -7366,8 +8551,8 @@ packages: resolution: {integrity: sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==} engines: {node: '>=8.3.0'} dependencies: - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 c8: 7.14.0 transitivePeerDependencies: - supports-color @@ -7411,6 +8596,21 @@ packages: strip-final-newline: 2.0.0 dev: true + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + /expand-tilde@2.0.2: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} @@ -7418,6 +8618,18 @@ packages: homedir-polyfill: 1.0.3 dev: true + /expect@29.6.2: + resolution: {integrity: sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.6.2 + '@types/node': 18.14.2 + jest-get-type: 29.4.3 + jest-matcher-utils: 29.6.2 + jest-message-util: 29.6.2 + jest-util: 29.6.2 + dev: true + /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -7493,8 +8705,8 @@ packages: micromatch: 4.0.5 dev: true - /fast-glob@3.3.0: - resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7532,8 +8744,8 @@ packages: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} dev: true - /fflate@0.7.4: - resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + /fflate@0.8.0: + resolution: {integrity: sha512-FAdS4qMuFjsJj6XHbBaZeXOgaypXp8iw/Tpyuq/w3XA41jjLHT8NPA+n7czH/DDhdncq0nAyDZmPeWXh2qmdIg==} dev: true /figures@3.2.0: @@ -7550,7 +8762,7 @@ packages: flat-cache: 3.0.4 dev: true - /file-loader@6.2.0(webpack@5.88.1): + /file-loader@6.2.0(webpack@5.88.2): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -7558,7 +8770,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.88.1(esbuild@0.17.19) + webpack: 5.88.2(esbuild@0.18.19) dev: true /file-system-cache@2.3.0: @@ -7671,6 +8883,14 @@ packages: signal-exit: 3.0.7 dev: true + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + /forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true @@ -7723,15 +8943,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -7784,29 +8995,10 @@ packages: functions-have-names: 1.2.3 dev: true - /functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true - /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -7830,6 +9022,11 @@ packages: has-symbols: 1.0.3 dev: true + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: true + /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -7904,27 +9101,29 @@ packages: glob: 7.2.3 dev: true - /glob-promise@6.0.3(glob@8.1.0): - resolution: {integrity: sha512-m+kxywR5j/2Z2V9zvHKfwwL5Gp7gIFEBX+deTB9w2lJB+wSuw9kcS43VfvTAMk8TXL5JCl/cCjsR+tgNVspGyA==} - engines: {node: '>=16'} - peerDependencies: - glob: ^8.0.3 - dependencies: - '@types/glob': 8.1.0 - glob: 8.1.0 - dev: true - /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true + /glob@10.3.3: + resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.2.2 + minimatch: 9.0.3 + minipass: 7.0.2 + path-scurry: 1.10.1 + dev: true + /glob@7.1.4: resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 3.0.5 once: 1.4.0 path-is-absolute: 1.0.1 dev: true @@ -7940,17 +9139,6 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: true - /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -7982,7 +9170,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.0 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -8019,12 +9207,12 @@ packages: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true dependencies: @@ -8101,10 +9289,6 @@ packages: has-symbols: 1.0.3 dev: true - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: true - /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -8154,7 +9338,7 @@ packages: dependencies: domelementtype: 1.3.1 domhandler: 2.4.2 - domutils: 1.7.0 + domutils: 1.5.1 entities: 1.1.2 inherits: 2.0.4 readable-stream: 3.6.2 @@ -8265,6 +9449,11 @@ packages: engines: {node: '>=10.17.0'} dev: true + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + /hyperlinker@1.0.0: resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==} engines: {node: '>=4'} @@ -8353,7 +9542,7 @@ packages: '@formatjs/ecma402-abstract': 1.17.0 '@formatjs/fast-memoize': 2.2.0 '@formatjs/icu-messageformat-parser': 2.6.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /invariant@2.2.4: @@ -8361,7 +9550,6 @@ packages: dependencies: loose-envify: 1.4.0 dev: true - optional: true /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} @@ -8390,7 +9578,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /is-arrayish@0.2.1: @@ -8422,8 +9610,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 @@ -8440,6 +9628,12 @@ packages: hasBin: true dev: true + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + /is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -8475,6 +9669,14 @@ packages: is-extglob: 2.1.1 dev: true + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true @@ -8504,6 +9706,11 @@ packages: engines: {node: '>=0.12.0'} dev: true + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + /is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} @@ -8536,6 +9743,11 @@ packages: engines: {node: '>=8'} dev: true + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -8550,15 +9762,11 @@ packages: has-symbols: 1.0.3 dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 + which-typed-array: 1.1.11 dev: true /is-typedarray@1.0.0: @@ -8603,15 +9811,6 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /isomorphic-unfetch@3.1.0: - resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} - dependencies: - node-fetch: 2.6.12 - unfetch: 4.2.0 - transitivePeerDependencies: - - encoding - dev: true - /isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true @@ -8626,8 +9825,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.9 - '@babel/parser': 7.22.7 + '@babel/core': 7.22.10 + '@babel/parser': 7.22.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -8635,21 +9834,30 @@ packages: - supports-color dev: true - /istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 + make-dir: 4.0.0 supports-color: 7.2.0 dev: true - /istanbul-reports@3.1.5: - resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 + istanbul-lib-report: 3.0.1 + dev: true + + /jackspeak@2.2.2: + resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 dev: true /jake@10.8.7: @@ -8663,8 +9871,23 @@ packages: minimatch: 3.1.2 dev: true - /jest-haste-map@29.6.1: - resolution: {integrity: sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig==} + /jest-diff@29.6.2: + resolution: {integrity: sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.4.3 + jest-get-type: 29.4.3 + pretty-format: 29.6.2 + dev: true + + /jest-get-type@29.4.3: + resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-haste-map@29.6.2: + resolution: {integrity: sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 @@ -8674,21 +9897,54 @@ packages: fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 29.4.3 - jest-util: 29.6.1 - jest-worker: 29.6.1 + jest-util: 29.6.2 + jest-worker: 29.6.2 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true + /jest-matcher-utils@29.6.2: + resolution: {integrity: sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.6.2 + jest-get-type: 29.4.3 + pretty-format: 29.6.2 + dev: true + + /jest-message-util@29.6.2: + resolution: {integrity: sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.22.10 + '@jest/types': 29.6.1 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.6.2 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock@27.5.1: + resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.5.1 + '@types/node': 18.14.2 + dev: true + /jest-regex-util@29.4.3: resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-util@29.6.1: - resolution: {integrity: sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==} + /jest-util@29.6.2: + resolution: {integrity: sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 @@ -8708,12 +9964,12 @@ packages: supports-color: 8.1.1 dev: true - /jest-worker@29.6.1: - resolution: {integrity: sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==} + /jest-worker@29.6.2: + resolution: {integrity: sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.14.2 - jest-util: 29.6.1 + jest-util: 29.6.2 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8722,11 +9978,6 @@ packages: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true - /js-string-escape@1.0.1: - resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} - engines: {node: '>= 0.8'} - dev: true - /js-tokens@3.0.2: resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} dev: true @@ -8881,9 +10132,9 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 - eslint-visitor-keys: 3.4.1 - espree: 9.6.0 - semver: 7.5.3 + eslint-visitor-keys: 3.4.2 + espree: 9.6.1 + semver: 7.5.4 dev: true /jsonc-parser@3.2.0: @@ -8920,7 +10171,7 @@ packages: jws: 3.2.2 lodash: 4.17.21 ms: 2.1.3 - semver: 7.5.3 + semver: 7.5.4 dev: true /jsprim@1.4.2: @@ -8944,6 +10195,16 @@ packages: object.values: 1.1.6 dev: true + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + object.assign: 4.1.4 + object.values: 1.1.6 + dev: true + /jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: @@ -9097,7 +10358,6 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} @@ -9114,7 +10374,7 @@ packages: /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: true /lowercase-keys@2.0.0: @@ -9152,15 +10412,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /magic-string@0.29.0: - resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /magic-string@0.30.1: - resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} + /magic-string@0.30.2: + resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -9173,6 +10426,17 @@ packages: semver: 6.3.1 dev: true + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + /makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: @@ -9183,8 +10447,8 @@ packages: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} dev: true - /markdown-to-jsx@7.2.1(react@18.2.0): - resolution: {integrity: sha512-9HrdzBAo0+sFz9ZYAGT5fB8ilzTW+q6lPocRxrIesMO+aB40V9MgFfbfMXxlGjf22OpRy+IXlvVaQenicdpgbg==} + /markdown-to-jsx@7.3.2(react@18.2.0): + resolution: {integrity: sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==} engines: {node: '>= 10'} peerDependencies: react: '>= 0.14.0' @@ -9199,13 +10463,6 @@ packages: dev: true optional: true - /md5-hex@3.0.1: - resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} - engines: {node: '>=8'} - dependencies: - blueimp-md5: 2.19.0 - dev: true - /mdast-util-definitions@4.0.0: resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} dependencies: @@ -9292,6 +10549,11 @@ packages: engines: {node: '>=6'} dev: true + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -9326,9 +10588,9 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true @@ -9342,6 +10604,11 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true + /minipass@7.0.2: + resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -9349,19 +10616,13 @@ packages: minimist: 1.2.8 dev: true - /mkdirp@2.1.6: - resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} - engines: {node: '>=10'} - hasBin: true - dev: true - /mlly@1.4.0: resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} dependencies: acorn: 8.10.0 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.1.2 + ufo: 1.2.0 dev: true /mrmime@1.0.1: @@ -9385,6 +10646,10 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: true + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -9412,7 +10677,7 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.6.0 + tslib: 2.6.1 dev: true /node-addon-api@3.2.1: @@ -9451,6 +10716,10 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true + /node-machine-id@1.1.12: + resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + dev: true + /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true @@ -9459,7 +10728,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 + resolve: 1.22.4 semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -9481,13 +10750,11 @@ packages: path-key: 3.1.1 dev: true - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 + path-key: 4.0.0 dev: true /nth-check@1.0.2: @@ -9512,8 +10779,8 @@ packages: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} dev: true - /nx@16.5.1: - resolution: {integrity: sha512-I3hJRE4hG7JWAtncWwDEO3GVeGPpN0TtM8xH5ArZXyDuVeTth/i3TtJzdDzqXO1HHtIoAQN0xeq4n9cLuMil5g==} + /nx@16.6.0: + resolution: {integrity: sha512-4UaS9nRakpZs45VOossA7hzSQY2dsr035EoPRGOc81yoMFW6Sqn1Rgq4hiLbHZOY8MnWNsLMkgolNMz1jC8YUQ==} hasBin: true requiresBuild: true peerDependencies: @@ -9525,7 +10792,7 @@ packages: '@swc/core': optional: true dependencies: - '@nrwl/tao': 16.5.1 + '@nrwl/tao': 16.6.0 '@parcel/watcher': 2.0.4 '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 @@ -9547,6 +10814,7 @@ packages: jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 minimatch: 3.0.5 + node-machine-id: 1.1.12 npm-run-path: 4.0.1 open: 8.4.2 semver: 7.5.3 @@ -9555,21 +10823,21 @@ packages: tar-stream: 2.2.0 tmp: 0.2.1 tsconfig-paths: 4.2.0 - tslib: 2.6.0 + tslib: 2.6.1 v8-compile-cache: 2.3.0 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 16.5.1 - '@nx/nx-darwin-x64': 16.5.1 - '@nx/nx-freebsd-x64': 16.5.1 - '@nx/nx-linux-arm-gnueabihf': 16.5.1 - '@nx/nx-linux-arm64-gnu': 16.5.1 - '@nx/nx-linux-arm64-musl': 16.5.1 - '@nx/nx-linux-x64-gnu': 16.5.1 - '@nx/nx-linux-x64-musl': 16.5.1 - '@nx/nx-win32-arm64-msvc': 16.5.1 - '@nx/nx-win32-x64-msvc': 16.5.1 + '@nx/nx-darwin-arm64': 16.6.0 + '@nx/nx-darwin-x64': 16.6.0 + '@nx/nx-freebsd-x64': 16.6.0 + '@nx/nx-linux-arm-gnueabihf': 16.6.0 + '@nx/nx-linux-arm64-gnu': 16.6.0 + '@nx/nx-linux-arm64-musl': 16.6.0 + '@nx/nx-linux-x64-gnu': 16.6.0 + '@nx/nx-linux-x64-musl': 16.6.0 + '@nx/nx-win32-arm64-msvc': 16.6.0 + '@nx/nx-win32-x64-msvc': 16.6.0 transitivePeerDependencies: - debug dev: true @@ -9628,11 +10896,20 @@ packages: es-abstract: 1.21.2 dev: true + /object.groupby@1.0.0: + resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + dev: true + /object.hasown@1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /object.values@1.1.6: @@ -9641,7 +10918,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 dev: true /octokit@3.1.0: @@ -9685,12 +10962,11 @@ packages: mimic-fn: 2.1.0 dev: true - /open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: - is-docker: 2.2.1 - is-wsl: 2.2.0 + mimic-fn: 4.0.0 dev: true /open@8.4.2: @@ -9702,6 +10978,16 @@ packages: is-wsl: 2.2.0 dev: true + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + /opener@1.5.2: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true @@ -9810,7 +11096,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9849,10 +11135,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - dev: true - /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -9868,9 +11150,22 @@ packages: engines: {node: '>=8'} dev: true + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.0.0 + minipass: 7.0.2 + dev: true + /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true @@ -9936,7 +11231,7 @@ packages: resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 dev: true /portfinder@1.0.32: @@ -9950,8 +11245,8 @@ packages: - supports-color dev: true - /postcss@8.4.25: - resolution: {integrity: sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==} + /postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -9970,12 +11265,25 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@2.6.2: - resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==} + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true dev: true + /prettier@3.0.1: + resolution: {integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==} + engines: {node: '>=14'} + hasBin: true + dev: true + /pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -9985,6 +11293,15 @@ packages: react-is: 17.0.2 dev: true + /pretty-format@29.6.2: + resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.0 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /pretty-hrtime@1.0.3: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} @@ -10137,15 +11454,15 @@ packages: engines: {node: '>=12.0.0'} hasBin: true dependencies: - '@babel/core': 7.22.9 - '@babel/generator': 7.22.9 + '@babel/core': 7.22.10 + '@babel/generator': 7.22.10 ast-types: 0.14.2 commander: 2.20.3 doctrine: 3.0.0 estree-to-babel: 3.2.1 neo-async: 2.6.2 node-dir: 0.1.17 - resolve: 1.22.2 + resolve: 1.22.4 strip-indent: 3.0.0 transitivePeerDependencies: - supports-color @@ -10196,11 +11513,11 @@ packages: '@formatjs/intl-displaynames': 6.5.0 '@formatjs/intl-listformat': 7.4.0 '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.14 + '@types/react': 18.2.18 hoist-non-react-statics: 3.3.2 intl-messageformat: 10.5.0 react: 18.2.0 - tslib: 2.6.0 + tslib: 2.6.1 typescript: 5.1.6 dev: false @@ -10217,43 +11534,94 @@ packages: /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: false /react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} engines: {node: '>=0.10.0'} dev: true - /react-router-dom@6.11.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==} + /react-remove-scroll-bar@2.3.4(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.18 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.2.18)(react@18.2.0) + tslib: 2.6.1 + dev: true + + /react-remove-scroll@2.5.5(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.18 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4(@types/react@18.2.18)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.18)(react@18.2.0) + tslib: 2.6.1 + use-callback-ref: 1.3.0(@types/react@18.2.18)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.18)(react@18.2.0) + dev: true + + /react-router-dom@6.14.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.6.2 + '@remix-run/router': 1.7.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.11.2(react@18.2.0) + react-router: 6.14.2(react@18.2.0) dev: false - /react-router@6.11.2(react@18.2.0): - resolution: {integrity: sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==} + /react-router@6.14.2(react@18.2.0): + resolution: {integrity: sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.6.2 + '@remix-run/router': 1.7.2 react: 18.2.0 dev: false + /react-style-singleton@2.2.1(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.18 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.6.1 + dev: true + /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: react: '>=16.6.0' react-dom: '>=16.6.0' dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -10325,7 +11693,15 @@ packages: ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.6.0 + tslib: 2.6.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 dev: true /regenerate-unicode-properties@10.1.0: @@ -10347,10 +11723,13 @@ packages: /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - /regenerator-transform@0.15.1: - resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.22.10 dev: true /regexp.prototype.flags@1.5.0: @@ -10362,11 +11741,6 @@ packages: functions-have-names: 1.2.3 dev: true - /regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} @@ -10470,15 +11844,15 @@ packages: /resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 dev: true - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10486,7 +11860,7 @@ packages: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -10522,8 +11896,8 @@ packages: glob: 7.2.3 dev: true - /rollup@3.26.2: - resolution: {integrity: sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA==} + /rollup@3.27.2: + resolution: {integrity: sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -10534,6 +11908,13 @@ packages: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: true + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -10543,7 +11924,17 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 + dev: true + + /safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 dev: true /safe-buffer@5.1.1: @@ -10610,16 +12001,16 @@ packages: hasBin: true dev: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + /semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 dev: true - /semver@7.5.3: - resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -10676,10 +12067,6 @@ packages: - supports-color dev: true - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: true - /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true @@ -10712,6 +12099,11 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /sirv@2.0.3: resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} engines: {node: '>= 10'} @@ -10734,7 +12126,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.0 + tslib: 2.6.1 dev: true /source-map-js@1.0.2: @@ -10817,6 +12209,13 @@ packages: dev: true optional: true + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true @@ -10841,6 +12240,31 @@ packages: resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} dev: true + /storybook-addon-pseudo-states@2.1.0(@storybook/components@7.2.1)(@storybook/core-events@7.2.1)(@storybook/manager-api@7.2.1)(@storybook/preview-api@7.2.1)(@storybook/theming@7.2.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AwbCL1OiZ16aIeXSP/IOovkMwXy7NTZqmjkz+UM2guSGjvogHNA95NhuVyWoqieE+QWUpGO48+MrBGMeeJcHOQ==} + peerDependencies: + '@storybook/components': ^7.0.0 + '@storybook/core-events': ^7.0.0 + '@storybook/manager-api': ^7.0.0 + '@storybook/preview-api': ^7.0.0 + '@storybook/theming': ^7.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@storybook/components': 7.2.1(@types/react-dom@18.2.7)(@types/react@18.2.18)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.2.1 + '@storybook/manager-api': 7.2.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.2.1 + '@storybook/theming': 7.2.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + /strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} engines: {node: '>=4'} @@ -10860,12 +12284,21 @@ packages: strip-ansi: 6.0.1 dev: true + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - es-abstract: 1.21.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 has-symbols: 1.0.3 internal-slot: 1.0.5 @@ -10924,6 +12357,13 @@ packages: ansi-regex: 5.0.1 dev: true + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -10934,6 +12374,11 @@ packages: engines: {node: '>=6'} dev: true + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -10946,8 +12391,8 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.0.1: - resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.10.0 dev: true @@ -11029,6 +12474,14 @@ packages: resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} dev: true + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.2 + tslib: 2.6.1 + dev: true + /taffydb@2.7.3: resolution: {integrity: sha512-GQ3gtYFSOAxSMN/apGtDKKkbJf+8izz5YfbGqIsUc7AMiQOapARZ76dhilRY2h39cynYxBFdafQo5HUL5vgkrg==} dev: true @@ -11056,7 +12509,7 @@ packages: memoizerific: 1.11.3 dev: true - /terser-webpack-plugin@5.3.9(esbuild@0.17.19)(webpack@5.88.1): + /terser-webpack-plugin@5.3.9(esbuild@0.18.19)(webpack@5.88.2): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -11072,17 +12525,17 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.18 - esbuild: 0.17.19 + '@jridgewell/trace-mapping': 0.3.19 + esbuild: 0.18.19 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.19.0 - webpack: 5.88.1(esbuild@0.17.19) + terser: 5.19.2 + webpack: 5.88.2(esbuild@0.18.19) dev: true - /terser@5.19.0: - resolution: {integrity: sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q==} + /terser@5.19.2: + resolution: {integrity: sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -11109,17 +12562,16 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /time-zone@1.0.0: - resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} - engines: {node: '>=4'} + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: true /tinybench@2.5.0: resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} dev: true - /tinypool@0.5.0: - resolution: {integrity: sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==} + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} engines: {node: '>=14.0.0'} dev: true @@ -11128,6 +12580,11 @@ packages: engines: {node: '>=14.0.0'} dev: true + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + /tmp@0.2.1: resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} engines: {node: '>=8.17.0'} @@ -11156,6 +12613,10 @@ packages: is-number: 7.0.0 dev: true + /tocbot@4.21.1: + resolution: {integrity: sha512-IfajhBTeg0HlMXu1f+VMbPef05QpDTsZ9X2Yn1+8npdaXsXg/+wrm9Ze1WG5OS1UDC3qJ5EQN/XOZ3gfXjPFCw==} + dev: true + /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -11202,16 +12663,49 @@ packages: dev: true optional: true + /ts-api-utils@1.0.1(typescript@5.1.6): + resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.1.6 + dev: true + /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} dev: true - /ts-morph@18.0.0: - resolution: {integrity: sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==} + /ts-node@10.9.1(@types/node@18.14.2)(typescript@5.1.6): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true dependencies: - '@ts-morph/common': 0.19.0 - code-block-writer: 12.0.0 + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.14.2 + acorn: 8.10.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.1.6 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 dev: true /tsconfck@2.1.1(typescript@5.1.6): @@ -11249,8 +12743,12 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.6.0: - resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} + /tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + dev: true + + /tslib@2.6.1: + resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -11322,12 +12820,42 @@ packages: mime-types: 2.1.35 dev: true + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: call-bind: 1.0.2 for-each: 0.3.3 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 dev: true /typescript@5.0.4: @@ -11341,8 +12869,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /ufo@1.1.2: - resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} + /ufo@1.2.0: + resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} dev: true /uglify-js@3.17.4: @@ -11362,15 +12890,17 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /unfetch@4.2.0: - resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} - dev: true - /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} dev: true + /unicode-emoji-utils@1.1.2: + resolution: {integrity: sha512-b0fe4T08DjwayBPvKtG+tKyNMwx/Qdc50EZJhOJlGDwqU24DaxNrHMT8Kl75hVmLabrXC6TQ+CuMEVV163z1eQ==} + dependencies: + emoji-regex: 10.2.1 + dev: true + /unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} @@ -11446,13 +12976,13 @@ packages: engines: {node: '>= 0.8'} dev: true - /unplugin@0.10.2: - resolution: {integrity: sha512-6rk7GUa4ICYjae5PrAllvcDeuT8pA9+j5J5EkxbMFaV+SalHhxZ7X2dohMzu6C3XzsMT+6jwR/+pwPNR3uK9MA==} + /unplugin@1.4.0: + resolution: {integrity: sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==} dependencies: acorn: 8.10.0 chokidar: 3.5.3 webpack-sources: 3.2.3 - webpack-virtual-modules: 0.4.6 + webpack-virtual-modules: 0.5.0 dev: true /untildify@4.0.0: @@ -11460,13 +12990,13 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.9): + /update-browserslist-db@1.0.11(browserslist@4.21.10): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.9 + browserslist: 4.21.10 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -11488,6 +13018,21 @@ packages: requires-port: 1.0.0 dev: true + /use-callback-ref@1.3.0(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.18 + react: 18.2.0 + tslib: 2.6.1 + dev: true + /use-resize-observer@9.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==} peerDependencies: @@ -11499,6 +13044,22 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true + /use-sidecar@1.1.2(@types/react@18.2.18)(react@18.2.0): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.18 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.6.1 + dev: true + /use-sync-external-store@1.2.0(react@18.2.0): resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: @@ -11517,8 +13078,8 @@ packages: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 - is-typed-array: 1.1.10 - which-typed-array: 1.1.10 + is-typed-array: 1.1.12 + which-typed-array: 1.1.11 dev: true /utils-merge@1.0.1: @@ -11538,6 +13099,10 @@ packages: hasBin: true dev: true + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + /v8-compile-cache@2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true @@ -11546,7 +13111,7 @@ packages: resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.9.0 dev: true @@ -11558,8 +13123,8 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /validator@13.9.0: - resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} + /validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} engines: {node: '>= 0.10'} dev: true @@ -11578,8 +13143,8 @@ packages: dev: true optional: true - /vite-node@0.32.0(@types/node@18.14.2): - resolution: {integrity: sha512-220P/y8YacYAU+daOAqiGEFXx2A8AwjadDzQqos6wSukjvvTWNqleJSwoUn0ckyNdjHIKoxn93Nh1vWBqEKr3Q==} + /vite-node@0.34.1(@types/node@18.14.2): + resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: @@ -11588,10 +13153,11 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.3.9(@types/node@18.14.2) + vite: 4.4.9(@types/node@18.14.2) transitivePeerDependencies: - '@types/node' - less + - lightningcss - sass - stylus - sugarss @@ -11599,30 +13165,58 @@ packages: - terser dev: true - /vite-plugin-dts@2.3.0(@types/node@18.14.2)(vite@4.3.9): - resolution: {integrity: sha512-WbJgGtsStgQhdm3EosYmIdTGbag5YQpZ3HXWUAPCDyoXI5qN6EY0V7NXq0lAmnv9hVQsvh0htbYcg0Or5Db9JQ==} + /vite-plugin-dts@3.5.1(@types/node@18.14.2)(typescript@5.1.6)(vite@4.4.9): + resolution: {integrity: sha512-wrrIvRTWq9xL0HKOUvJyJ+wivEoLsZ2GU2I2000v5tAAUtu9gE+5OUmUJ9yNkmyYz3tSPedkkiXHeb5jnnSXhg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=2.9.0' + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true dependencies: - '@babel/parser': 7.22.7 - '@microsoft/api-extractor': 7.36.2(@types/node@18.14.2) + '@microsoft/api-extractor': 7.36.3(@types/node@18.14.2) '@rollup/pluginutils': 5.0.2 - '@rushstack/node-core-library': 3.59.5(@types/node@18.14.2) + '@vue/language-core': 1.8.8(typescript@5.1.6) debug: 4.3.4 - fast-glob: 3.3.0 - fs-extra: 10.1.0 kolorist: 1.8.0 - magic-string: 0.29.0 - ts-morph: 18.0.0 - vite: 4.3.9(@types/node@18.14.2) + typescript: 5.1.6 + vite: 4.4.9(@types/node@18.14.2) + vue-tsc: 1.8.8(typescript@5.1.6) transitivePeerDependencies: - '@types/node' - rollup - supports-color dev: true - /vite-tsconfig-paths@4.2.0(typescript@5.1.6)(vite@4.3.9): + /vite-plugin-static-copy@0.17.0(vite@4.4.9): + resolution: {integrity: sha512-2HpNbHfDt8SDy393AGXh9llHkc8FJMQkI8s3T5WsH3SWLMO+f5cFIyPErl4yGKU9Uh3Vaqsd4lHZYTf042fQ2A==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 + dependencies: + chokidar: 3.5.3 + fast-glob: 3.3.1 + fs-extra: 11.1.1 + picocolors: 1.0.0 + vite: 4.4.9(@types/node@18.14.2) + dev: true + + /vite-plugin-svgr@3.2.0(vite@4.4.9): + resolution: {integrity: sha512-Uvq6niTvhqJU6ga78qLKBFJSDvxWhOnyfQSoKpDPMAGxJPo5S3+9hyjExE5YDj6Lpa4uaLkGc1cBgxXov+LjSw==} + peerDependencies: + vite: ^2.6.0 || 3 || 4 + dependencies: + '@rollup/pluginutils': 5.0.2 + '@svgr/core': 7.0.0 + '@svgr/plugin-jsx': 7.0.0 + vite: 4.4.9(@types/node@18.14.2) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /vite-tsconfig-paths@4.2.0(typescript@5.1.6)(vite@4.4.9): resolution: {integrity: sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw==} peerDependencies: vite: '*' @@ -11633,19 +13227,20 @@ packages: debug: 4.3.4 globrex: 0.1.2 tsconfck: 2.1.1(typescript@5.1.6) - vite: 4.3.9(@types/node@18.14.2) + vite: 4.4.9(@types/node@18.14.2) transitivePeerDependencies: - supports-color - typescript dev: true - /vite@4.3.9(@types/node@18.14.2): - resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} + /vite@4.4.9(@types/node@18.14.2): + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: '@types/node': '>= 14' less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -11655,6 +13250,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -11665,15 +13262,15 @@ packages: optional: true dependencies: '@types/node': 18.14.2 - esbuild: 0.17.19 - postcss: 8.4.25 - rollup: 3.26.2 + esbuild: 0.18.19 + postcss: 8.4.27 + rollup: 3.27.2 optionalDependencies: fsevents: 2.3.2 dev: true - /vitest@0.32.0(@vitest/ui@0.32.0)(jsdom@22.1.0): - resolution: {integrity: sha512-SW83o629gCqnV3BqBnTxhB10DAwzwEx3z+rqYZESehUB+eWsJxwcBQx7CKy0otuGMJTYh7qCVuUX23HkftGl/Q==} + /vitest@0.34.1(@vitest/ui@0.34.1)(jsdom@22.1.0): + resolution: {integrity: sha512-G1PzuBEq9A75XSU88yO5G4vPT20UovbC/2osB2KEuV/FisSIIsw7m5y2xMdB7RsAGHAfg2lPmp2qKr3KWliVlQ==} engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: @@ -11706,32 +13303,32 @@ packages: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 '@types/node': 18.14.2 - '@vitest/expect': 0.32.0 - '@vitest/runner': 0.32.0 - '@vitest/snapshot': 0.32.0 - '@vitest/spy': 0.32.0 - '@vitest/ui': 0.32.0(vitest@0.32.0) - '@vitest/utils': 0.32.0 + '@vitest/expect': 0.34.1 + '@vitest/runner': 0.34.1 + '@vitest/snapshot': 0.34.1 + '@vitest/spy': 0.34.1 + '@vitest/ui': 0.34.1(vitest@0.34.1) + '@vitest/utils': 0.34.1 acorn: 8.10.0 acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.7 - concordance: 5.0.4 debug: 4.3.4 jsdom: 22.1.0 local-pkg: 0.4.3 - magic-string: 0.30.1 + magic-string: 0.30.2 pathe: 1.1.1 picocolors: 1.0.0 std-env: 3.3.3 - strip-literal: 1.0.1 + strip-literal: 1.3.0 tinybench: 2.5.0 - tinypool: 0.5.0 - vite: 4.3.9(@types/node@18.14.2) - vite-node: 0.32.0(@types/node@18.14.2) + tinypool: 0.7.0 + vite: 4.4.9(@types/node@18.14.2) + vite-node: 0.34.1(@types/node@18.14.2) why-is-node-running: 2.2.2 transitivePeerDependencies: - less + - lightningcss - sass - stylus - sugarss @@ -11739,6 +13336,25 @@ packages: - terser dev: true + /vue-template-compiler@2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.8.8(typescript@5.1.6): + resolution: {integrity: sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@vue/language-core': 1.8.8(typescript@5.1.6) + '@vue/typescript': 1.8.8(typescript@5.1.6) + semver: 7.5.4 + typescript: 5.1.6 + dev: true + /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -11779,12 +13395,12 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack-virtual-modules@0.4.6: - resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} + /webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} dev: true - /webpack@5.88.1(esbuild@0.17.19): - resolution: {integrity: sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==} + /webpack@5.88.2(esbuild@0.18.19): + resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -11800,7 +13416,7 @@ packages: '@webassemblyjs/wasm-parser': 1.11.6 acorn: 8.10.0 acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.21.9 + browserslist: 4.21.10 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 es-module-lexer: 1.3.0 @@ -11814,7 +13430,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(esbuild@0.17.19)(webpack@5.88.1) + terser-webpack-plugin: 5.3.9(esbuild@0.18.19)(webpack@5.88.2) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -11823,11 +13439,6 @@ packages: - uglify-js dev: true - /well-known-symbols@2.0.0: - resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} - engines: {node: '>=6'} - dev: true - /whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -11881,8 +13492,8 @@ packages: is-weakset: 2.0.2 dev: true - /which-typed-array@1.1.10: - resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==} + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 @@ -11890,7 +13501,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 dev: true /which@2.0.2: @@ -11910,12 +13520,6 @@ packages: stackback: 0.0.2 dev: true - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - dependencies: - string-width: 4.2.3 - dev: true - /word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -11935,6 +13539,15 @@ packages: strip-ansi: 6.0.1 dev: true + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true @@ -12036,6 +13649,11 @@ packages: yargs-parser: 21.1.1 dev: true + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -12053,7 +13671,7 @@ packages: dependencies: lodash.get: 4.4.2 lodash.isequal: 4.5.0 - validator: 13.9.0 + validator: 13.11.0 optionalDependencies: commander: 9.5.0 dev: true From 73d78adb7e3a89e68fcd4eb88e37dafa8ddf26b9 Mon Sep 17 00:00:00 2001 From: dcodes05 Date: Wed, 23 Aug 2023 13:30:18 +0200 Subject: [PATCH 2/5] ci: chromatic pipeline --- .github/workflows/chromatic.yml | 25 +++++++++++++++++++++++++ .github/workflows/storybook.yml | 27 --------------------------- 2 files changed, 25 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/chromatic.yml delete mode 100644 .github/workflows/storybook.yml diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml new file mode 100644 index 000000000..6b4e13ece --- /dev/null +++ b/.github/workflows/chromatic.yml @@ -0,0 +1,25 @@ +name: ⚡ Chromatic Check + +on: push + +jobs: + publish-chromatic: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - uses: pnpm/action-setup@v2 + with: + version: 8 + run_install: true + + - name: Build storybook + run: pnpm build-storybook + + - name: Publish to Chromatic + uses: chromaui/action@v1 + with: + projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} + storybookBuildDir: 'dist/storybook/shared-storybook' diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml deleted file mode 100644 index 70815d899..000000000 --- a/.github/workflows/storybook.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Build and Deploy Storybook -on: - push -jobs: - deploy-storybook: - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v3 - - name: Install pnpm - uses: pnpm/action-setup@v2 - with: - version: latest - - name: Init 🖥 - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: 'pnpm' - - name: Install dependencies - run: pnpm install - - name: Build Storybook - run: pnpm build-storybook - - name: Deploy 🚀 - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./dist/storybook/shared-storybook From 4b687b678fb5d856cc9e97b48e9a159daeac3ce3 Mon Sep 17 00:00:00 2001 From: dcodes05 Date: Wed, 23 Aug 2023 13:31:44 +0200 Subject: [PATCH 3/5] feat: assets library --- libs/shared/assets/files/arrow-down.svg | 10 ++++++++++ libs/shared/assets/files/arrow-right.svg | 6 ++++++ libs/shared/assets/files/failed.svg | 5 +++++ libs/shared/assets/files/info.svg | 7 +++++++ libs/shared/assets/files/maverick.png | Bin 0 -> 584 bytes libs/shared/assets/files/pending.svg | 7 +++++++ libs/shared/assets/files/success.svg | 5 +++++ libs/shared/assets/files/uniswap.png | Bin 0 -> 782 bytes 8 files changed, 40 insertions(+) create mode 100644 libs/shared/assets/files/arrow-down.svg create mode 100644 libs/shared/assets/files/arrow-right.svg create mode 100644 libs/shared/assets/files/failed.svg create mode 100644 libs/shared/assets/files/info.svg create mode 100644 libs/shared/assets/files/maverick.png create mode 100644 libs/shared/assets/files/pending.svg create mode 100644 libs/shared/assets/files/success.svg create mode 100644 libs/shared/assets/files/uniswap.png diff --git a/libs/shared/assets/files/arrow-down.svg b/libs/shared/assets/files/arrow-down.svg new file mode 100644 index 000000000..28bd11382 --- /dev/null +++ b/libs/shared/assets/files/arrow-down.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/libs/shared/assets/files/arrow-right.svg b/libs/shared/assets/files/arrow-right.svg new file mode 100644 index 000000000..7db4a6de1 --- /dev/null +++ b/libs/shared/assets/files/arrow-right.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/libs/shared/assets/files/failed.svg b/libs/shared/assets/files/failed.svg new file mode 100644 index 000000000..66237ed7d --- /dev/null +++ b/libs/shared/assets/files/failed.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/libs/shared/assets/files/info.svg b/libs/shared/assets/files/info.svg new file mode 100644 index 000000000..bdd686bb2 --- /dev/null +++ b/libs/shared/assets/files/info.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libs/shared/assets/files/maverick.png b/libs/shared/assets/files/maverick.png new file mode 100644 index 0000000000000000000000000000000000000000..baa2e8d51476641e2af8864b653e7c56e8534fc4 GIT binary patch literal 584 zcmV-O0=NB%P){Y024oe#Kn=y zBB`<0bNb-X7AR1E3F&>%|LJ|4{}C92mQ=~Ei5wI%5J=My|ELRHD7=~i&(gqCr7K#a zG(^x~A*s^%#UssT5RMuQl!F3E@4#(b<&=r$6ynTid05Ku$EihdU@dZcN9U&ZY^MZHJQtv z36!R_Z{8N^5f2Q&I2Nu^^Bm#S>-a%7sOXDv?{Ofub9P)d#er3|oCIx<=U1(pID$Wp WAfAa-qSJ~10000 + + + + + + diff --git a/libs/shared/assets/files/success.svg b/libs/shared/assets/files/success.svg new file mode 100644 index 000000000..b788cd29f --- /dev/null +++ b/libs/shared/assets/files/success.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/libs/shared/assets/files/uniswap.png b/libs/shared/assets/files/uniswap.png new file mode 100644 index 0000000000000000000000000000000000000000..0afac2057396358685b91b803a15be8a0f8072d5 GIT binary patch literal 782 zcmV+p1M&QcP)?P~;*aTqv|CC>X^o zh-y?S!bM5tM^R}hSxJpDlHYSWuRAvByf-=w{o%fM=bU@b|DON3@7{q35RqhUrP{pO zIwb^O&{nL?O|-Bk1p~|$RkJ1vuF5CT!g+YkiXUtSHFO{D!||<5l~`f;MGp9t^244CIWCSKO{{@A9&he zR3%!OsC^}_KjcKv5T}o9TUVp1wnX*6up6$cG%GaNo()Ehi%q5mo3t*4nI?8B~_<0G(Dea$^^<^dFWaKImeaCG_L)+;DjZ+`DuXR?`u zwR3XQp|Vi--WIssiW4k?t}yF~``{ab_&EDn_3vOTU~04`Nq5pt9MEr1@Zl%4sYH8k znD4))#q^j5xo4Ol5B>J z%gnb>wLe5|kJ`yIe=58mMRF@e>feeSs}FmGq zRHWjW$iw#{2X2P!qvIlXUOUaI3Mn%Eu(N}2$h@1nL_Dn`eS;B4%k&FK4J9&LSSybV z`-?{%WfD8ehy*d2{GTgxT1~2>2=0{_{#_IY1N@s+XV7Lznj9&{Z(7YSK*vE({Qv*} M07*qoM6N<$f|#pYivR!s literal 0 HcmV?d00001 From a2d34059794a66f07dda8100845cf89813ff9bb4 Mon Sep 17 00:00:00 2001 From: dcodes05 Date: Wed, 23 Aug 2023 20:03:25 +0200 Subject: [PATCH 4/5] feat: shared components library style: hover behaviour for swap item wip --- .../oeth/src/components/Swap/BestRoutes.tsx | 33 +++ .../components/Swap/GasPopover.stories.tsx | 36 +++ .../oeth/src/components/Swap/GasPopover.tsx | 199 +++++++++++++++ .../src/components/Swap/RedeemMix.stories.tsx | 94 +++++++ .../oeth/src/components/Swap/RedeemMix.tsx | 191 +++++++++++++++ .../oeth/src/components/Swap/Swap.stories.tsx | 25 ++ libs/defi/oeth/src/components/Swap/Swap.tsx | 170 +++++++++++++ .../oeth/src/components/Swap/SwapInfo.tsx | 44 ++++ .../src/components/Swap/SwapRoute.stories.tsx | 56 +++++ .../oeth/src/components/Swap/SwapRoute.tsx | 112 +++++++++ .../Swap/SwapRouteAccordion.stories.tsx | 33 +++ .../components/Swap/SwapRouteAccordion.tsx | 112 +++++++++ .../Swap/SwapRouteAccordionItem.stories.tsx | 61 +++++ .../Swap/SwapRouteAccordionItem.tsx | 133 ++++++++++ .../components/Swap/SwapRouteCard.stories.tsx | 86 +++++++ .../src/components/Swap/SwapRouteCard.tsx | 196 +++++++++++++++ .../defi/oeth/src/components/Swap/fixtures.ts | 61 +++++ libs/defi/oeth/src/components/Swap/index.tsx | 2 + .../oeth/src/components/Wrap/SwapWrap.tsx | 62 +++++ libs/defi/oeth/src/components/Wrap/index.tsx | 1 + .../defi/oeth/src/components/shared/index.tsx | 2 + libs/defi/oeth/src/views/History.tsx | 16 ++ libs/defi/oeth/src/views/Swap.tsx | 21 ++ libs/defi/oeth/src/views/Wrap.tsx | 55 +++++ libs/defi/oeth/src/views/index.tsx | 3 + .../ousd/src/components/defi-ousd.stories.tsx | 12 - libs/shared/assets/files/dropdown.svg | 12 + libs/shared/components/.babelrc | 12 + libs/shared/components/.eslintrc.json | 18 ++ libs/shared/components/.storybook/main.ts | 32 +++ libs/shared/components/.storybook/preview.ts | 3 + libs/shared/components/README.md | 7 + libs/shared/components/project.json | 61 +++++ libs/shared/components/src/Cards/Card.tsx | 62 +++++ .../Cards/SwapCard/ActionButton.stories.tsx | 44 ++++ .../src/Cards/SwapCard/ActionButton.tsx | 40 +++ .../src/Cards/SwapCard/Input.stories.tsx | 45 ++++ .../components/src/Cards/SwapCard/Input.tsx | 177 ++++++++++++++ .../src/Cards/SwapCard/Output.stories.tsx | 42 ++++ .../components/src/Cards/SwapCard/Output.tsx | 111 +++++++++ .../src/Cards/SwapCard/SwapButton.stories.tsx | 29 +++ .../src/Cards/SwapCard/SwapButton.tsx | 48 ++++ .../src/Cards/SwapCard/SwapCard.stories.tsx | 81 ++++++ .../src/Cards/SwapCard/SwapCard.tsx | 104 ++++++++ .../src/Cards/SwapCard/SwapItem.stories.tsx | 43 ++++ .../src/Cards/SwapCard/SwapItem.tsx | 78 ++++++ .../src/Cards/SwapCard/SwapItemArrow.tsx | 0 .../Cards/SwapCard/TokenListItem.stories.tsx | 87 +++++++ .../src/Cards/SwapCard/TokenListItem.tsx | 84 +++++++ .../Cards/SwapCard/TokenListModal.stories.tsx | 92 +++++++ .../src/Cards/SwapCard/TokenListModal.tsx | 75 ++++++ .../components/src/Cards/SwapCard/index.tsx | 4 + .../components/src/Cards/SwapCard/utils.ts | 8 + libs/shared/components/src/Cards/index.tsx | 2 + .../components/src/LinkIcon/LinkIcon.tsx | 18 ++ .../components/src/Loader/Loader.stories.tsx | 16 ++ libs/shared/components/src/Loader/Loader.tsx | 16 ++ libs/shared/components/src/Loader/index.tsx | 1 + .../shared/components/src/Mix/Mix.stories.tsx | 20 ++ libs/shared/components/src/Mix/Mix.tsx | 37 +++ libs/shared/components/src/Mix/index.tsx | 1 + libs/shared/components/src/index.ts | 3 + .../src/top-nav/Activity.stories.tsx | 98 ++++++++ .../components/src/top-nav/Activity.tsx | 111 +++++++++ .../src/top-nav/ConnectedButton.stories.tsx | 93 +++++++ .../src/top-nav/ConnectedButton.tsx | 214 ++++++++++++++++ libs/shared/components/src/top-nav/Icon.tsx | 18 ++ .../components/src/top-nav/TopNav.stories.tsx | 161 ++++++++++++ libs/shared/components/src/top-nav/TopNav.tsx | 230 ++++++++++++++++++ .../src/top-nav/Transaction.stories.tsx | 92 +++++++ .../components/src/top-nav/Transaction.tsx | 127 ++++++++++ libs/shared/components/src/top-nav/UserId.tsx | 16 ++ .../shared/components/src/top-nav/fixtures.ts | 115 +++++++++ libs/shared/components/src/top-nav/index.tsx | 2 + libs/shared/components/src/top-nav/types.ts | 45 ++++ libs/shared/components/src/top-nav/utils.ts | 41 ++++ libs/shared/components/tsconfig.json | 24 ++ libs/shared/components/tsconfig.lib.json | 26 ++ libs/shared/components/tsconfig.spec.json | 19 ++ .../shared/components/tsconfig.storybook.json | 31 +++ libs/shared/components/vite.config.ts | 36 +++ libs/shared/storybook/.storybook/main.ts | 7 +- .../storybook/.storybook/preview-head.html | 8 + libs/shared/storybook/src/decorators.tsx | 30 ++- libs/shared/storybook/vite.config.ts | 5 +- libs/shared/theme/src/Palette.stories.tsx | 195 +++++++++++++++ libs/shared/theme/src/theme.tsx | 229 ++++++++++++++--- tsconfig.base.json | 1 + 88 files changed, 5242 insertions(+), 61 deletions(-) create mode 100644 libs/defi/oeth/src/components/Swap/BestRoutes.tsx create mode 100644 libs/defi/oeth/src/components/Swap/GasPopover.stories.tsx create mode 100644 libs/defi/oeth/src/components/Swap/GasPopover.tsx create mode 100644 libs/defi/oeth/src/components/Swap/RedeemMix.stories.tsx create mode 100644 libs/defi/oeth/src/components/Swap/RedeemMix.tsx create mode 100644 libs/defi/oeth/src/components/Swap/Swap.stories.tsx create mode 100644 libs/defi/oeth/src/components/Swap/Swap.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapInfo.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapRoute.stories.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapRoute.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapRouteAccordion.stories.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapRouteAccordion.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapRouteAccordionItem.stories.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapRouteAccordionItem.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapRouteCard.stories.tsx create mode 100644 libs/defi/oeth/src/components/Swap/SwapRouteCard.tsx create mode 100644 libs/defi/oeth/src/components/Swap/fixtures.ts create mode 100644 libs/defi/oeth/src/components/Swap/index.tsx create mode 100644 libs/defi/oeth/src/components/Wrap/SwapWrap.tsx create mode 100644 libs/defi/oeth/src/components/Wrap/index.tsx create mode 100644 libs/defi/oeth/src/components/shared/index.tsx create mode 100644 libs/defi/oeth/src/views/History.tsx create mode 100644 libs/defi/oeth/src/views/Swap.tsx create mode 100644 libs/defi/oeth/src/views/Wrap.tsx create mode 100644 libs/defi/oeth/src/views/index.tsx delete mode 100644 libs/defi/ousd/src/components/defi-ousd.stories.tsx create mode 100644 libs/shared/assets/files/dropdown.svg create mode 100644 libs/shared/components/.babelrc create mode 100644 libs/shared/components/.eslintrc.json create mode 100644 libs/shared/components/.storybook/main.ts create mode 100644 libs/shared/components/.storybook/preview.ts create mode 100644 libs/shared/components/README.md create mode 100644 libs/shared/components/project.json create mode 100644 libs/shared/components/src/Cards/Card.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/ActionButton.stories.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/ActionButton.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/Input.stories.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/Input.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/Output.stories.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/Output.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/SwapButton.stories.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/SwapButton.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/SwapCard.stories.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/SwapCard.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/SwapItem.stories.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/SwapItem.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/SwapItemArrow.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/TokenListItem.stories.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/TokenListItem.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/TokenListModal.stories.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/TokenListModal.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/index.tsx create mode 100644 libs/shared/components/src/Cards/SwapCard/utils.ts create mode 100644 libs/shared/components/src/Cards/index.tsx create mode 100644 libs/shared/components/src/LinkIcon/LinkIcon.tsx create mode 100644 libs/shared/components/src/Loader/Loader.stories.tsx create mode 100644 libs/shared/components/src/Loader/Loader.tsx create mode 100644 libs/shared/components/src/Loader/index.tsx create mode 100644 libs/shared/components/src/Mix/Mix.stories.tsx create mode 100644 libs/shared/components/src/Mix/Mix.tsx create mode 100644 libs/shared/components/src/Mix/index.tsx create mode 100644 libs/shared/components/src/index.ts create mode 100644 libs/shared/components/src/top-nav/Activity.stories.tsx create mode 100644 libs/shared/components/src/top-nav/Activity.tsx create mode 100644 libs/shared/components/src/top-nav/ConnectedButton.stories.tsx create mode 100644 libs/shared/components/src/top-nav/ConnectedButton.tsx create mode 100644 libs/shared/components/src/top-nav/Icon.tsx create mode 100644 libs/shared/components/src/top-nav/TopNav.stories.tsx create mode 100644 libs/shared/components/src/top-nav/TopNav.tsx create mode 100644 libs/shared/components/src/top-nav/Transaction.stories.tsx create mode 100644 libs/shared/components/src/top-nav/Transaction.tsx create mode 100644 libs/shared/components/src/top-nav/UserId.tsx create mode 100644 libs/shared/components/src/top-nav/fixtures.ts create mode 100644 libs/shared/components/src/top-nav/index.tsx create mode 100644 libs/shared/components/src/top-nav/types.ts create mode 100644 libs/shared/components/src/top-nav/utils.ts create mode 100644 libs/shared/components/tsconfig.json create mode 100644 libs/shared/components/tsconfig.lib.json create mode 100644 libs/shared/components/tsconfig.spec.json create mode 100644 libs/shared/components/tsconfig.storybook.json create mode 100644 libs/shared/components/vite.config.ts create mode 100644 libs/shared/storybook/.storybook/preview-head.html create mode 100644 libs/shared/theme/src/Palette.stories.tsx diff --git a/libs/defi/oeth/src/components/Swap/BestRoutes.tsx b/libs/defi/oeth/src/components/Swap/BestRoutes.tsx new file mode 100644 index 000000000..2484e3889 --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/BestRoutes.tsx @@ -0,0 +1,33 @@ +import { Box } from '@mui/material'; + +import { SwapRouteCard } from './SwapRouteCard'; + +import type { Route } from './SwapRoute'; + +interface Props { + routes: Route[]; + selected: number; + onSelect: (index: number) => void; +} + +export function BestRoutes({ routes, selected, onSelect }: Props) { + return ( + + {routes.slice(0, 2).map((route, index) => ( + onSelect(index)} + route={route} + /> + ))} + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/GasPopover.stories.tsx b/libs/defi/oeth/src/components/Swap/GasPopover.stories.tsx new file mode 100644 index 000000000..13b9340f1 --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/GasPopover.stories.tsx @@ -0,0 +1,36 @@ +import { screen, userEvent, within } from '@storybook/testing-library'; + +import { GasPopover } from './GasPopover'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: GasPopover, + title: 'Swap/GasPopover', + args: { + gasPrice: 21, + onPriceToleranceChange: (val) => null, + }, +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const Expanded: StoryObj = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('gas-popover-button').click(); + }, +}; + +export const HighTolerance: StoryObj = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + await canvas.getByTestId('gas-popover-button').click(); + const input = await screen.findByLabelText('Price tolerance'); + await userEvent.clear(input); + await userEvent.type(input, '1.2'); + }, +}; diff --git a/libs/defi/oeth/src/components/Swap/GasPopover.tsx b/libs/defi/oeth/src/components/Swap/GasPopover.tsx new file mode 100644 index 000000000..6df2f071f --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/GasPopover.tsx @@ -0,0 +1,199 @@ +import { useEffect, useState } from 'react'; + +import { + alpha, + Box, + Button, + debounce, + FormControl, + FormHelperText, + IconButton, + InputAdornment, + InputBase, + InputLabel, + Popover, + Stack, + useTheme, +} from '@mui/material'; +import { isNumber } from 'lodash'; +import { useIntl } from 'react-intl'; + +import type { Theme } from '@mui/material'; + +const defaultPriceTolerance = 0.01; + +const gridStyles = { + display: 'grid', + gridTemplateColumns: (theme: Theme) => `1.5fr 1fr`, + gap: 1, + justifyContent: 'space-between', + alignItems: 'center', +}; + +interface Props { + gasPrice: number; + onPriceToleranceChange: (value: number) => void; +} + +export function GasPopover({ gasPrice, onPriceToleranceChange }: Props) { + const theme = useTheme(); + const intl = useIntl(); + const [anchorEl, setAnchorEl] = useState(null); + const [priceTolerance, setPriceTolerance] = useState(defaultPriceTolerance); + + useEffect(() => { + onPriceToleranceChange(priceTolerance); + }, [priceTolerance, onPriceToleranceChange]); + return ( + <> + setAnchorEl(e.currentTarget)} + data-testid="gas-popover-button" + > + + + setAnchorEl(null)} + anchorOrigin={{ + vertical: 'bottom', + horizontal: 'center', + }} + transformOrigin={{ + vertical: 'top', + horizontal: 'right', + }} + sx={{ + '& .MuiPaper-root.MuiPopover-paper': { + padding: 3, + boxSizing: 'border-box', + maxWidth: { + xs: '90vw', + md: '16.5rem', + }, + width: '100%', + border: '1px solid', + borderColor: 'grey.700', + [theme.breakpoints.down('md')]: { + left: '0 !important', + right: 0, + marginInline: 'auto', + }, + }, + }} + > + + + + {intl.formatMessage({ defaultMessage: 'Price tolerance' })} + + + { + if (isNumber(parseFloat(e.target.value))) { + setPriceTolerance(e.target.value); + } + }, 300)} + endAdornment={ + + {intl.formatMessage({ defaultMessage: '%' })} + + } + /> + + + + {priceTolerance > 1 ? ( + theme.typography.pxToRem(12), + color: (theme) => theme.palette.warning.main, + fontWeight: 400, + fontStyle: 'normal', + }} + > + {intl.formatMessage({ + defaultMessage: 'Your transaction may be frontrun', + })} + + ) : null} + + + + {intl.formatMessage({ defaultMessage: 'Gas Price' })} + + + + {intl.formatMessage({ defaultMessage: 'GWEI' })} + + } + /> + + + + + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/RedeemMix.stories.tsx b/libs/defi/oeth/src/components/Swap/RedeemMix.stories.tsx new file mode 100644 index 000000000..2ac0534d4 --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/RedeemMix.stories.tsx @@ -0,0 +1,94 @@ +import { Box } from '@mui/material'; + +import { RedeemMix } from './RedeemMix'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: RedeemMix, + title: 'Swap/Redeem Mix', + args: { + selected: 4, + index: 2, + route: { + value: 282967.55, + quantity: 149.55, + name: 'Redeem for mix via OETH vault', + waitTime: '1 min', + transactionCost: 135.83, + rate: 0.995, + type: 'redeem', + tokenAbbreviation: '', + icon: [ + 'https://app.oeth.com/images/currency/weth-icon-small.png', + 'https://app.oeth.com/images/currency/reth-icon-small.png', + 'https://app.oeth.com/images/currency/steth-icon-small.svg', + 'https://app.oeth.com/images/currency/frxeth-icon-small.svg', + ], + }, + composition: [ + { + name: 'wETH', + quantity: 117.0437, + value: 238378.36, + icon: 'https://app.oeth.com/images/currency/weth-icon-small.png', + }, + { + name: 'frxETH', + quantity: 13.1245, + value: 17643.75, + icon: 'https://app.oeth.com/images/currency/frxeth-icon-small.svg', + }, + { + name: 'rETH', + quantity: 13.1144, + value: 13138.96, + icon: 'https://app.oeth.com/images/currency/reth-icon-small.png', + }, + { + name: 'sETH', + quantity: 4.8354, + value: 13138.96, + icon: 'https://app.oeth.com/images/currency/steth-icon-small.svg', + }, + ], + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; +export const Selected: StoryObj = { + args: { + index: 4, + }, +}; + +export const SmallMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; + +export const LargeMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, +}; diff --git a/libs/defi/oeth/src/components/Swap/RedeemMix.tsx b/libs/defi/oeth/src/components/Swap/RedeemMix.tsx new file mode 100644 index 000000000..eaa64da7e --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/RedeemMix.tsx @@ -0,0 +1,191 @@ +import { Stack, Card, alpha, Box, Typography, Divider } from '@mui/material'; +import { Mix } from 'libs/shared/components/src/Mix'; +import { Redeem, Route } from './SwapRoute'; +import { useIntl } from 'react-intl'; +import { currencyFormat, quantityFormat } from '@origin/shared/components'; +import { SwapInfo } from './SwapInfo'; +import { Icon } from 'libs/shared/components/src/top-nav/Icon'; + +interface Props { + onSelect: (index: number) => void; + index: number; + selected: number; + route: Route; + // no idea if this prop makes sense 🤪 -> prob it needs to be refactored + composition: { + icon: string; + name: string; + quantity: number; + value: number; + }[]; +} + +export function RedeemMix({ + route, + index, + selected, + onSelect, + composition, +}: Props) { + const intl = useIntl(); + return ( + `linear-gradient(var(--mui-palette-grey-800), var(--mui-palette-grey-800)) padding-box, + linear-gradient(90deg, ${alpha( + theme.palette.primary.main, + 0.4, + )} 0%, ${alpha( + theme.palette.primary.dark, + 0.4, + )} 100%) border-box;`, + }, + }), + }} + role="button" + onClick={() => onSelect(index)} + > + + + + + + {intl.formatNumber(route.quantity, quantityFormat)}  + theme.typography.pxToRem(12), + fontWeight: 400, + fontStyle: 'normal', + lineHeight: (theme) => theme.typography.pxToRem(20), + }} + > + ({intl.formatNumber(route.value, currencyFormat)}) + + + + {route.name} + + + + + + {intl.formatMessage({ defaultMessage: 'Gas:' })}  + + ~{intl.formatNumber(route.transactionCost, currencyFormat)} + + + + {intl.formatMessage({ defaultMessage: 'Waiting time:' })}  + + {/* TODO better handling of this duration */}~ + {(route as Redeem).waitTime} + + + + + + + {intl.formatMessage({ defaultMessage: 'Rate' })}  + + 1:{route.rate} + +   + + + + + {composition.map((item) => ( + + + + + {item.name} + + + + + {intl.formatNumber(item.quantity, quantityFormat)} + + + {intl.formatNumber(item.value, currencyFormat)} + + + + ))} + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/Swap.stories.tsx b/libs/defi/oeth/src/components/Swap/Swap.stories.tsx new file mode 100644 index 000000000..3ab1e1c72 --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/Swap.stories.tsx @@ -0,0 +1,25 @@ +import { Container } from '@mui/material'; + +import { Swap } from './Swap'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: Swap, + title: 'Swap', + args: { + isLoading: false, + routes: [], + }, + render: () => ( + + + + ), +}; + +export default meta; + +export const SwapComponent: StoryObj = { + name: 'Swap Component', +}; diff --git a/libs/defi/oeth/src/components/Swap/Swap.tsx b/libs/defi/oeth/src/components/Swap/Swap.tsx new file mode 100644 index 000000000..5d1b6583d --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/Swap.tsx @@ -0,0 +1,170 @@ +import { useState } from 'react'; + +import { Stack } from '@mui/material'; +import { + ActionButton, + DropdownIcon, + SwapCard, + TokenListModal, +} from '@origin/shared/components'; +import random from 'lodash/random'; +import { useIntl } from 'react-intl'; + +import { GasPopover } from './GasPopover'; +import { SwapRoute } from './SwapRoute'; + +import type { Option } from '@origin/shared/components'; + +export function Swap() { + const intl = useIntl(); + + const [isSelectionModalOpen, setSelectionModal] = useState(false); + const [values, setValues] = useState<{ + baseToken: Omit; + exchangeCurrency: Omit; + }>({ + baseToken: { + abbreviation: 'OETH', + imgSrc: 'https://app.oeth.com/images/currency/oeth-icon-small.svg', + quantity: 0, + value: 0, + }, + exchangeCurrency: { + abbreviation: 'ETH', + imgSrc: 'https://app.oeth.com/images/currency/eth-icon-small.svg', + quantity: 0, + value: 0, + }, + }); + + function handleCloseSelectionModal() { + setSelectionModal(false); + } + + function handleValueChange(value: string) { + const number = parseInt(value) || 0; + setValues((prev) => ({ + baseToken: { + ...prev.baseToken, + quantity: number, + value: number * random(18500, 19000, true), + }, + exchangeCurrency: { + ...prev.exchangeCurrency, + quantity: number * random(number - 0.5, number, true), + value: number * random(18500, 19000, true), + }, + })); + } + + function swapTokens() { + setValues((prev) => ({ + baseToken: { + ...prev.exchangeCurrency, + quantity: prev.baseToken.quantity, + value: prev.baseToken.quantity * random(18500, 19000), + }, + exchangeCurrency: { + ...prev.baseToken, + quantity: + prev.baseToken.quantity * + random(prev.baseToken.quantity - 0.5, prev.baseToken.quantity, true), + value: prev.baseToken.quantity * random(18500, 19000, true), + }, + })); + } + + return ( + <> + + {intl.formatMessage({ defaultMessage: 'Swap' })} + null} + /> + + } + onSwap={swapTokens} + onValueChange={handleValueChange} + baseTokenIcon={values.baseToken.imgSrc} + baseTokenName={values.baseToken.abbreviation as string} + baseTokenValue={values.baseToken.value} + exchangeTokenName={values.exchangeCurrency.abbreviation as string} + exchangeTokenIcon={values.exchangeCurrency.imgSrc} + exchangeTokenQuantity={values.exchangeCurrency.quantity} + exchangeTokenValue={values.exchangeCurrency.value} + exchangeTokenNode={ + setSelectionModal(true)} /> + } + > + + console.log('test')}>Swap + + + setValues((prev) => ({ + ...prev, + exchangeCurrency: { + value: prev.baseToken.quantity * random(18500, 19000, true), + quantity: random( + prev.baseToken.quantity - 0.5, + prev.baseToken.quantity, + ), + abbreviation: option.name, + imgSrc: option.imgSrc, + }, + })) + } + selected={values.exchangeCurrency.abbreviation} + options={[ + { + name: intl.formatMessage({ defaultMessage: 'Wrapped Ether' }), + abbreviation: intl.formatMessage({ defaultMessage: 'WETH' }), + imgSrc: 'https://app.oeth.com/images/currency/weth-icon-small.png', + value: 0, + quantity: 0, + }, + { + name: intl.formatMessage({ + defaultMessage: 'Liquid Staked Ether 2.0', + }), + abbreviation: intl.formatMessage({ defaultMessage: 'stETH' }), + imgSrc: 'https://app.oeth.com/images/currency/steth-icon-small.svg', + value: 0, + quantity: 0, + }, + { + name: intl.formatMessage({ defaultMessage: 'Rocket Pool ETH' }), + abbreviation: intl.formatMessage({ defaultMessage: 'rETH' }), + imgSrc: 'https://app.oeth.com/images/currency/reth-icon-small.png', + value: 0, + quantity: 0, + }, + { + name: intl.formatMessage({ defaultMessage: 'Frax Ether' }), + abbreviation: intl.formatMessage({ defaultMessage: 'frxETH' }), + imgSrc: + 'https://app.oeth.com/images/currency/frxeth-icon-small.svg', + value: 0, + quantity: 0, + }, + { + name: intl.formatMessage({ defaultMessage: 'ETH' }), + abbreviation: intl.formatMessage({ defaultMessage: 'ETH' }), + imgSrc: 'https://app.oeth.com/images/currency/eth-icon-small.svg', + value: 0, + quantity: 0, + }, + ]} + /> + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/SwapInfo.tsx b/libs/defi/oeth/src/components/Swap/SwapInfo.tsx new file mode 100644 index 000000000..fd081c28e --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapInfo.tsx @@ -0,0 +1,44 @@ +import { Box, Tooltip, Typography } from '@mui/material'; +import { useIntl } from 'react-intl'; + +import type { Theme } from '@mui/material'; + +export function SwapInfo() { + const intl = useIntl(); + return ( + + {intl.formatMessage({ + defaultMessage: + 'The best swap route factors in the best price after transaction costs', + })} + + } + componentsProps={{ + tooltip: { + // @ts-expect-error type error in MUI + sx: { + paddingInline: 2, + paddingBlock: 1.5, + borderRadius: 2, + border: '1px solid', + borderColor: (theme) => theme.palette.grey[500], + boxShadow: (theme: Theme) => theme.shadows[23], + }, + }, + }} + > + theme.typography.pxToRem(12), + height: (theme) => theme.typography.pxToRem(12), + color: (theme) => theme.palette.text.secondary, + }} + > + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/SwapRoute.stories.tsx b/libs/defi/oeth/src/components/Swap/SwapRoute.stories.tsx new file mode 100644 index 000000000..bb17d7f2d --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapRoute.stories.tsx @@ -0,0 +1,56 @@ +import { Container } from '@mui/material'; +import { userEvent, within } from '@storybook/testing-library'; + +import { routes } from './fixtures'; +import { SwapRoute } from './SwapRoute'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: SwapRoute, + title: 'Swap/Swap Route', + args: { + isLoading: false, + routes: [], + }, + parameters: { + backgrounds: { + default: 'dark', + values: [ + { + name: 'dark', + value: '#282A32', + }, + ], + }, + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const HoverRouteInfo: StoryObj = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + const element = await canvas.findByTestId('swap-route-info'); + userEvent.hover(element); + }, +}; +export const Loading: StoryObj = { + args: { + isLoading: true, + }, +}; + +export const SwapContent: StoryObj = { + args: { + // @ts-expect-error fixtures and type mismatch + routes, + }, +}; diff --git a/libs/defi/oeth/src/components/Swap/SwapRoute.tsx b/libs/defi/oeth/src/components/Swap/SwapRoute.tsx new file mode 100644 index 000000000..853e896b7 --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapRoute.tsx @@ -0,0 +1,112 @@ +import { useState } from 'react'; + +import { Skeleton, Stack, Typography } from '@mui/material'; +import { Card, cardStyles } from '@origin/shared/components'; +import { useIntl } from 'react-intl'; + +import { BestRoutes } from './BestRoutes'; +import { SwapInfo } from './SwapInfo'; +import { SwapRouteAccordion } from './SwapRouteAccordion'; + +interface Swap { + type: 'swap'; +} +export interface Redeem { + type: 'redeem'; + tokenAbbreviation: string; + waitTime: string; +} + +export type Route = { + name: string; + icon: string | string[]; + quantity: number; + value: number; + rate: number; + transactionCost: number; +} & (Swap | Redeem); + +interface Props { + isLoading: boolean; + routes: Route[]; +} + +export function SwapRoute({ isLoading = false, routes }: Props) { + const intl = useIntl(); + const [selectedRoute, setSelectedRoute] = useState(0); + + const hasContent = routes.length > 0; + return ( + theme.palette.background.default, + backgroundColor: 'grey.900', + }} + title={ + isLoading ? ( + theme.typography.pxToRem(12), + display: 'flex', + alignItems: 'center', + }} + > + theme.palette.primary.contrastText, + }} + /> + {intl.formatMessage({ + defaultMessage: 'Finding the best route...', + })} + + ) : ( + + {intl.formatMessage({ defaultMessage: 'Route' })} + + + ) + } + sxCardTitle={{ borderBottom: 'none', paddingBlock: 1, paddingInline: 2 }} + sxCardContent={{ + ...(hasContent + ? cardStyles + : { + p: 0, + paddingBlock: 0, + paddingInline: 0, + '&:last-child': { pb: 0 }, + }), + }} + > + {hasContent ? ( + <> + setSelectedRoute(index)} + /> + setSelectedRoute(index)} + sx={{ mt: 2 }} + /> + + ) : undefined} + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/SwapRouteAccordion.stories.tsx b/libs/defi/oeth/src/components/Swap/SwapRouteAccordion.stories.tsx new file mode 100644 index 000000000..b17007c2c --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapRouteAccordion.stories.tsx @@ -0,0 +1,33 @@ +import { Box } from '@mui/material'; +import { within } from '@storybook/testing-library'; + +import { routes } from './fixtures'; +import { SwapRouteAccordion } from './SwapRouteAccordion'; + +import type { Meta, StoryObj } from '@storybook/react'; + +import type { Route } from './SwapRoute'; + +const meta: Meta = { + component: SwapRouteAccordion, + title: 'Swap/Swap Route Accordion', + args: { + selected: 4, + routes: routes as Route[], + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const Default: StoryObj = {}; +export const Expanded: StoryObj = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + (await canvas.findByText('Show more')).click(); + }, +}; diff --git a/libs/defi/oeth/src/components/Swap/SwapRouteAccordion.tsx b/libs/defi/oeth/src/components/Swap/SwapRouteAccordion.tsx new file mode 100644 index 000000000..96d6816cc --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapRouteAccordion.tsx @@ -0,0 +1,112 @@ +import { + Accordion, + AccordionDetails, + AccordionSummary, + Box, + Stack, + Typography, +} from '@mui/material'; +import { useIntl } from 'react-intl'; + +import { SwapRouteAccordionItem } from './SwapRouteAccordionItem'; + +import type { SxProps } from '@mui/material'; + +import type { Route } from './SwapRoute'; + +interface Props { + routes: Route[]; + selected: number; + onSelect: (index: number) => void; + sx?: SxProps; +} + +export function SwapRouteAccordion({ routes, selected, onSelect, sx }: Props) { + const intl = useIntl(); + return ( + + theme.typography.pxToRem(14), + display: 'flex', + justifyContent: 'space-between', + alignItems: 'center', + '& .MuiAccordionSummary-content': { + margin: 0, + }, + padding: 0, + '&.Mui-expanded': { + minHeight: 0, + '& img': { + transform: 'rotate(-180deg)', + }, + }, + }} + > + + {intl.formatMessage({ defaultMessage: 'Show more' })} + + + theme.typography.pxToRem(12), + width: (theme) => theme.typography.pxToRem(12), + alignSelf: 'center', + }} + > + + theme.spacing(-1), + '&:before': { + content: '""', + width: (theme) => `calc(100% + ${theme.spacing(2)})`, + position: 'absolute', + left: (theme) => theme.spacing(-1), + height: '1px', + borderBlockEnd: '1px solid', + display: 'block', + borderColor: 'grey.800', + }, + }} + > + + {routes.slice(2).map((route, index) => ( + + ))} + + + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/SwapRouteAccordionItem.stories.tsx b/libs/defi/oeth/src/components/Swap/SwapRouteAccordionItem.stories.tsx new file mode 100644 index 000000000..b8cd2eb3b --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapRouteAccordionItem.stories.tsx @@ -0,0 +1,61 @@ +import { Box } from '@mui/material'; + +import { routes } from './fixtures'; +import { SwapRouteAccordionItem } from './SwapRouteAccordionItem'; + +import type { Meta, StoryObj } from '@storybook/react'; + +import type { Route } from './SwapRoute'; + +const meta: Meta = { + component: SwapRouteAccordionItem, + title: 'Swap/Swap Route Accordion Item', + args: { + selected: 4, + index: 2, + route: routes[2] as Route, + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const Default: StoryObj = {}; +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; +export const Selected: StoryObj = { + args: { + selected: 2, + }, +}; + +export const SmallMobile: StoryObj = { + args: { + selected: 2, + }, + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; + +export const LargeMobile: StoryObj = { + args: { + selected: 2, + }, + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, +}; diff --git a/libs/defi/oeth/src/components/Swap/SwapRouteAccordionItem.tsx b/libs/defi/oeth/src/components/Swap/SwapRouteAccordionItem.tsx new file mode 100644 index 000000000..2ee3f1c41 --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapRouteAccordionItem.tsx @@ -0,0 +1,133 @@ +import { alpha, Box, Stack, Typography, useTheme } from '@mui/material'; +import { currencyFormat, quantityFormat } from '@origin/shared/components'; +import { useIntl } from 'react-intl'; + +import { SwapInfo } from './SwapInfo'; + +import type { Route } from './SwapRoute'; + +interface Props { + route: Route; + selected: number; + index: number; + onSelect: (index: number) => void; +} + +export function SwapRouteAccordionItem({ + route, + selected, + index, + onSelect, +}: Props) { + const theme = useTheme(); + const intl = useIntl(); + return ( + + `linear-gradient(${theme.palette.grey[800]}, ${ + theme.palette.grey[800] + }) padding-box, + linear-gradient(90deg, ${alpha( + theme.palette.primary.main, + 0.4, + )} 0%, ${alpha( + theme.palette.primary.dark, + 0.4, + )} 100%) border-box;`, + }, + ...(selected === index + ? { + borderColor: 'transparent', + background: (theme) => + `linear-gradient(${theme.palette.grey[800]}, ${theme.palette.grey[800]}) padding-box, + linear-gradient(90deg, ${theme.palette.primary.main} 0%, ${theme.palette.primary.dark} 100%) border-box;`, + } + : {}), + }} + onClick={() => onSelect(index)} + role="button" + > + + + theme.typography.pxToRem(24), + width: (theme) => theme.typography.pxToRem(24), + }} + /> + + + {intl.formatNumber(route.quantity, quantityFormat)} +   + + ({intl.formatNumber(route.value, currencyFormat)}) + + + + {route.type === 'swap' + ? intl.formatMessage( + { defaultMessage: 'Swap via {name}' }, + { name: route.name }, + ) + : intl.formatMessage( + { defaultMessage: 'Swap for {name}' }, + { name: route.name }, + )} + + + + + + Rate  + +   + + 1:{intl.formatNumber(route.rate, quantityFormat)} + + + + + Est gas:  + + ~{intl.formatNumber(route.transactionCost, currencyFormat)} + + + + + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/SwapRouteCard.stories.tsx b/libs/defi/oeth/src/components/Swap/SwapRouteCard.stories.tsx new file mode 100644 index 000000000..67daa867e --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapRouteCard.stories.tsx @@ -0,0 +1,86 @@ +import { Box } from '@mui/material'; + +import { redeemRoutes, routes } from './fixtures'; +import { SwapRouteCard } from './SwapRouteCard'; + +import type { Meta, StoryObj } from '@storybook/react'; + +import type { Route } from './SwapRoute'; + +const meta: Meta = { + component: SwapRouteCard, + title: 'Swap/SwapRouteCard', + args: { + route: routes[0] as Route, + selected: 3, + index: 4, + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const SwapComponent: StoryObj = {}; + +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; +export const Selected: StoryObj = { + args: { + selected: 4, + }, +}; + +export const Best: StoryObj = { + args: { + selected: 0, + index: 0, + }, +}; + +export const RedeemShort: StoryObj = { + args: { + selected: 0, + index: 0, + route: redeemRoutes[1] as Route, + }, +}; +export const RedeemLong: StoryObj = { + args: { + selected: 0, + index: 0, + route: redeemRoutes[0] as Route, + }, +}; + +export const SmallMobile: StoryObj = { + args: { + selected: 0, + index: 0, + }, + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; + +export const LargeMobile: StoryObj = { + args: { + selected: 0, + index: 0, + }, + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, +}; diff --git a/libs/defi/oeth/src/components/Swap/SwapRouteCard.tsx b/libs/defi/oeth/src/components/Swap/SwapRouteCard.tsx new file mode 100644 index 000000000..e5f5ab6e4 --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/SwapRouteCard.tsx @@ -0,0 +1,196 @@ +import { alpha, Box, Card, CardHeader, Stack, Typography } from '@mui/material'; +import { currencyFormat } from '@origin/shared/components'; +import { useIntl } from 'react-intl'; + +import type { Route } from './SwapRoute'; + +interface Props { + index: number; + selected: number; + onSelect: (index: number) => void; + route: Route; +} + +export function SwapRouteCard({ index, selected, onSelect, route }: Props) { + const intl = useIntl(); + return ( + theme.palette.grey[800], + ...(selected === index + ? { + background: `linear-gradient(var(--mui-palette-grey-800), var(--mui-palette-grey-800)) padding-box, + linear-gradient(90deg, var(--mui-palette-primary-main) 0%, var(--mui-palette-primary-dark) 100%) border-box;`, + borderColor: 'transparent', + } + : { + '&:hover': { + borderColor: 'transparent', + background: ( + theme, + ) => `linear-gradient(var(--mui-palette-grey-800), var(--mui-palette-grey-800)) padding-box, + linear-gradient(90deg, ${alpha( + theme.palette.primary.main, + 0.4, + )} 0%, ${alpha( + theme.palette.primary.dark, + 0.4, + )} 100%) border-box;`, + }, + }), + }} + role="button" + onClick={() => onSelect(index)} + > + + + + + {route.quantity}  + + ({intl.formatNumber(route.value, currencyFormat)}) + + + + {index === 0 ? ( + theme.shape.borderRadius, + background: (theme) => theme.palette.background.gradient1, + color: 'primary.contrastText', + fontSize: (theme) => theme.typography.pxToRem(12), + top: (theme) => theme.spacing(-3), + right: (theme) => theme.spacing(-2), + paddingInline: 1, + }} + > + {intl.formatMessage({ defaultMessage: 'Best' })} + + ) : undefined} + + + + ({intl.formatNumber(route.value, currencyFormat)}) + + + } + > + + + {route.name} + + + + {intl.formatMessage({ defaultMessage: 'Rate:' })} + + 1:{route.rate} + + + + + {intl.formatMessage({ + defaultMessage: 'Gas:', + })} + + + ~{intl.formatNumber(route.transactionCost, currencyFormat)} + + + {route.type === 'redeem' ? ( + + + {intl.formatMessage({ + defaultMessage: 'Wait time:', + })} + + {/* TODO better logic for coloring -> prob time should come as a ms duration and getting it formated */} + + ~{route.waitTime} + + + ) : undefined} + + + ); +} diff --git a/libs/defi/oeth/src/components/Swap/fixtures.ts b/libs/defi/oeth/src/components/Swap/fixtures.ts new file mode 100644 index 000000000..7103e966c --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/fixtures.ts @@ -0,0 +1,61 @@ +export const routes = [ + { + type: 'swap', + name: 'Mint via Oeth zapper', + quantity: 150, + value: 284389.5, + rate: 1, + transactionCost: 89.25, + icon: 'https://app.oeth.com/images/oeth.svg', + }, + { + type: 'swap', + name: 'Curve', + quantity: 149.2832, + value: 282128.93, + rate: 0.9995, + transactionCost: 12.35, + icon: 'https://app.oeth.com/images/currency/eth-icon-small.svg', + }, + { + type: 'swap', + name: 'Maverick', + rate: 0.9796, + quantity: 148.74226, + value: 277106.84, + transactionCost: 46.47, + icon: '/images/maverick.png', + }, + { + type: 'swap', + name: 'Uniswap', + rate: 0.9796, + value: 277106.84, + quantity: 148.74226, + transactionCost: 46.47, + icon: '/images/uniswap.png', + }, +]; + +export const redeemRoutes = [ + { + type: 'redeem', + name: 'Redeem via OETH vault', + rate: 1, + value: 284389.5, + quantity: 150, + transactionCost: 89.25, + waitTime: '3 days', + icon: 'https://app.oeth.com/images/currency/eth-icon-small.svg', + }, + { + type: 'redeem', + name: 'Redeem via OETH vault', + rate: 1, + value: 284389.5, + quantity: 150, + transactionCost: 89.25, + waitTime: '1 min', + icon: 'https://app.oeth.com/images/currency/eth-icon-small.svg', + }, +]; diff --git a/libs/defi/oeth/src/components/Swap/index.tsx b/libs/defi/oeth/src/components/Swap/index.tsx new file mode 100644 index 000000000..d0eaa39ca --- /dev/null +++ b/libs/defi/oeth/src/components/Swap/index.tsx @@ -0,0 +1,2 @@ +export * from './Swap'; +export * from './SwapRoute'; diff --git a/libs/defi/oeth/src/components/Wrap/SwapWrap.tsx b/libs/defi/oeth/src/components/Wrap/SwapWrap.tsx new file mode 100644 index 000000000..f5405e49a --- /dev/null +++ b/libs/defi/oeth/src/components/Wrap/SwapWrap.tsx @@ -0,0 +1,62 @@ +import { useState } from 'react'; + +import { SwapCard } from '@origin/shared/components'; +import random from 'lodash/random'; +import { useIntl } from 'react-intl'; + +export function PortfolioSwap() { + const intl = useIntl(); + const [values, setValues] = useState({ + baseToken: { + abbreviation: 'OETH', + imgSrc: 'https://app.oeth.com/images/currency/oeth-icon-small.svg', + quantity: 0, + }, + exchangeCurrency: { + abbreviation: 'wOETH', + imgSrc: 'https://app.oeth.com/images/currency/woeth-icon-small.svg', + quantity: 0, + }, + }); + + function handleValueChange(value: string) { + const number = parseInt(value) || 0; + setValues((prev) => ({ + baseToken: { + ...prev.baseToken, + quantity: number, + }, + exchangeCurrency: { + ...prev.exchangeCurrency, + quantity: number * random(number - 0.5, number, true), + }, + })); + } + + function swapTokens() { + setValues((prev) => ({ + baseToken: { + ...prev.exchangeCurrency, + quantity: prev.baseToken.quantity, + }, + exchangeCurrency: { + ...prev.baseToken, + quantity: + prev.baseToken.quantity * + random(prev.baseToken.quantity - 0.5, prev.baseToken.quantity, true), + }, + })); + } + return ( + + ); +} diff --git a/libs/defi/oeth/src/components/Wrap/index.tsx b/libs/defi/oeth/src/components/Wrap/index.tsx new file mode 100644 index 000000000..bdd0921e5 --- /dev/null +++ b/libs/defi/oeth/src/components/Wrap/index.tsx @@ -0,0 +1 @@ +export * from './SwapWrap'; diff --git a/libs/defi/oeth/src/components/shared/index.tsx b/libs/defi/oeth/src/components/shared/index.tsx new file mode 100644 index 000000000..e8593a84b --- /dev/null +++ b/libs/defi/oeth/src/components/shared/index.tsx @@ -0,0 +1,2 @@ +export * from './ConnectButton'; +export * from './APY'; diff --git a/libs/defi/oeth/src/views/History.tsx b/libs/defi/oeth/src/views/History.tsx new file mode 100644 index 000000000..b0e915121 --- /dev/null +++ b/libs/defi/oeth/src/views/History.tsx @@ -0,0 +1,16 @@ +import { APY, HistoryCard } from '../components'; + +export function HistoryView() { + return ( + <> + + + + ); +} diff --git a/libs/defi/oeth/src/views/Swap.tsx b/libs/defi/oeth/src/views/Swap.tsx new file mode 100644 index 000000000..3f06fc0ca --- /dev/null +++ b/libs/defi/oeth/src/views/Swap.tsx @@ -0,0 +1,21 @@ +import { Stack } from '@mui/material'; + +import { APY, Swap } from '../components'; + +export function SwapView() { + return ( + <> + + + + + + + ); +} diff --git a/libs/defi/oeth/src/views/Wrap.tsx b/libs/defi/oeth/src/views/Wrap.tsx new file mode 100644 index 000000000..3adce7712 --- /dev/null +++ b/libs/defi/oeth/src/views/Wrap.tsx @@ -0,0 +1,55 @@ +import { Button, Stack } from '@mui/material'; +import { Card } from '@origin/shared/components'; +import { useIntl } from 'react-intl'; + +import { APY, PortfolioSwap } from '../components'; +import { ConnectWallet } from '../components/shared'; + +export function WrapView() { + const intl = useIntl(); + return ( + <> + + + + + + + + + + + ); +} diff --git a/libs/defi/oeth/src/views/index.tsx b/libs/defi/oeth/src/views/index.tsx new file mode 100644 index 000000000..68a2f7e59 --- /dev/null +++ b/libs/defi/oeth/src/views/index.tsx @@ -0,0 +1,3 @@ +export * from './Swap'; +export * from './Wrap'; +export * from './History'; diff --git a/libs/defi/ousd/src/components/defi-ousd.stories.tsx b/libs/defi/ousd/src/components/defi-ousd.stories.tsx deleted file mode 100644 index 470245a06..000000000 --- a/libs/defi/ousd/src/components/defi-ousd.stories.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import type { Meta } from '@storybook/react'; -import { DefiOusd } from './defi-ousd'; - -const Story: Meta = { - component: DefiOusd, - title: 'DefiOusd', -}; -export default Story; - -export const Primary = { - args: {}, -}; diff --git a/libs/shared/assets/files/dropdown.svg b/libs/shared/assets/files/dropdown.svg new file mode 100644 index 000000000..48937021b --- /dev/null +++ b/libs/shared/assets/files/dropdown.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/libs/shared/components/.babelrc b/libs/shared/components/.babelrc new file mode 100644 index 000000000..1ea870ead --- /dev/null +++ b/libs/shared/components/.babelrc @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "@nx/react/babel", + { + "runtime": "automatic", + "useBuiltIns": "usage" + } + ] + ], + "plugins": [] +} diff --git a/libs/shared/components/.eslintrc.json b/libs/shared/components/.eslintrc.json new file mode 100644 index 000000000..75b85077d --- /dev/null +++ b/libs/shared/components/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["plugin:@nx/react", "../../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/libs/shared/components/.storybook/main.ts b/libs/shared/components/.storybook/main.ts new file mode 100644 index 000000000..5995b1e82 --- /dev/null +++ b/libs/shared/components/.storybook/main.ts @@ -0,0 +1,32 @@ +import type { StorybookConfig } from '@storybook/react-vite'; + +const config: StorybookConfig = { + stories: ['../src/**/*.stories.@(js|jsx|ts|tsx|mdx)'], + addons: [ + '@storybook/addon-essentials', + 'storybook-addon-pseudo-states', + '@storybook/addon-interactions', + ], + framework: { + name: '@storybook/react-vite', + options: { + builder: { + viteConfigPath: `${__dirname}../../../storybook/vite.config.ts`, + }, + }, + }, + typescript: { + check: true, + checkOptions: { + typescript: { + configFile: `${__dirname}/../tsconfig.storybook.json`, + }, + }, + }, +}; + +export default config; + +// To customize your Vite configuration you can use the viteFinal field. +// Check https://storybook.js.org/docs/react/builders/vite#configuration +// and https://nx.dev/packages/storybook/documents/custom-builder-configs diff --git a/libs/shared/components/.storybook/preview.ts b/libs/shared/components/.storybook/preview.ts new file mode 100644 index 000000000..d7cc85f52 --- /dev/null +++ b/libs/shared/components/.storybook/preview.ts @@ -0,0 +1,3 @@ +import preview from '@origin/shared/storybook'; + +export default preview; diff --git a/libs/shared/components/README.md b/libs/shared/components/README.md new file mode 100644 index 000000000..22240b2a0 --- /dev/null +++ b/libs/shared/components/README.md @@ -0,0 +1,7 @@ +# shared-components + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test shared-components` to execute the unit tests via [Vitest](https://vitest.dev/). diff --git a/libs/shared/components/project.json b/libs/shared/components/project.json new file mode 100644 index 000000000..54bede57b --- /dev/null +++ b/libs/shared/components/project.json @@ -0,0 +1,61 @@ +{ + "name": "shared-components", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/shared/components/src", + "projectType": "library", + "tags": [], + "targets": { + "lint": { + "executor": "@nx/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": ["libs/shared/components/**/*.{ts,tsx,js,jsx}"] + } + }, + "test": { + "executor": "@nx/vite:test", + "outputs": ["coverage/libs/shared/components"], + "options": { + "passWithNoTests": true, + "reportsDirectory": "../../../coverage/libs/shared/components" + } + }, + "storybook": { + "executor": "@nx/storybook:storybook", + "options": { + "port": 4400, + "configDir": "libs/shared/components/.storybook" + }, + "configurations": { + "ci": { + "quiet": true + } + } + }, + "build-storybook": { + "executor": "@nx/storybook:build", + "outputs": ["{options.outputDir}"], + "options": { + "outputDir": "dist/storybook/shared-components", + "configDir": "libs/shared/components/.storybook" + }, + "configurations": { + "ci": { + "quiet": true + } + } + }, + "static-storybook": { + "executor": "@nx/web:file-server", + "options": { + "buildTarget": "shared-components:build-storybook", + "staticFilePath": "dist/storybook/shared-components" + }, + "configurations": { + "ci": { + "buildTarget": "shared-components:build-storybook:ci" + } + } + } + } +} diff --git a/libs/shared/components/src/Cards/Card.tsx b/libs/shared/components/src/Cards/Card.tsx new file mode 100644 index 000000000..0d7ad9dff --- /dev/null +++ b/libs/shared/components/src/Cards/Card.tsx @@ -0,0 +1,62 @@ +import { Card as MuiCard, CardContent, CardHeader } from '@mui/material'; + +import type { SxProps } from '@mui/material'; +import type { Theme } from '@origin/shared/theme'; + +export const cardStyles = { + paddingBlock: 2.5, + paddingInline: 2, +} as const; + +interface Props { + title: string | React.ReactNode; + children: React.ReactNode; + sxCardContent?: SxProps; + sxCardTitle?: SxProps; + sx?: SxProps; +} + +export function Card({ + title, + children, + sxCardContent, + sxCardTitle, + sx, +}: Props) { + return ( + + theme.typography.pxToRem(14), + }, + ...(sxCardTitle as SxProps), + }} + > + + {children} + + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/ActionButton.stories.tsx b/libs/shared/components/src/Cards/SwapCard/ActionButton.stories.tsx new file mode 100644 index 000000000..6d47f48bc --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/ActionButton.stories.tsx @@ -0,0 +1,44 @@ +import { Container } from '@mui/material'; + +import { ActionButton } from './ActionButton'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: ActionButton, + title: 'Swap Card/Action Button', + args: { + children: 'Swap', + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; + +export const Disabled: StoryObj = { + args: { + disabled: true, + }, +}; + +export const SmallMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; diff --git a/libs/shared/components/src/Cards/SwapCard/ActionButton.tsx b/libs/shared/components/src/Cards/SwapCard/ActionButton.tsx new file mode 100644 index 000000000..8f6d0b399 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/ActionButton.tsx @@ -0,0 +1,40 @@ +import { Button } from '@mui/material'; + +import type { ButtonProps } from '@mui/material'; + +interface Props extends ButtonProps {} + +export function ActionButton({ sx, children, ...rest }: Props) { + return ( + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/Input.stories.tsx b/libs/shared/components/src/Cards/SwapCard/Input.stories.tsx new file mode 100644 index 000000000..93cb83107 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/Input.stories.tsx @@ -0,0 +1,45 @@ +import { Container } from '@mui/material'; +import { userEvent, within } from '@storybook/testing-library'; + +import { Input } from './Input'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: Input, + title: 'Swap Card/Input', + args: { + isLoading: false, + isSwapped: false, + baseTokenBalance: 250, + baseTokenValue: 0, + baseTokenName: 'stETH', + baseTokenIcon: 'https://app.oeth.com/images/currency/steth-icon-small.svg', + onValueChange: () => null, + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; + +export const WithValue: StoryObj = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + const element = canvas.getByTestId('swap-input'); + userEvent.type(element, '150'); + }, +}; diff --git a/libs/shared/components/src/Cards/SwapCard/Input.tsx b/libs/shared/components/src/Cards/SwapCard/Input.tsx new file mode 100644 index 000000000..b0bc3b54b --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/Input.tsx @@ -0,0 +1,177 @@ +import { useState } from 'react'; + +import { alpha, Box, InputBase, Stack, Typography } from '@mui/material'; +import { useDebouncedEffect } from '@react-hookz/web'; +import { useIntl } from 'react-intl'; + +import { Loader } from '../../Loader'; +import { cardStyles } from '../Card'; +import { currencyFormat } from './SwapCard'; +import { SwapItem } from './SwapItem'; +import { styles } from './utils'; + +interface Props { + baseTokenName: string; + baseTokenIcon: string | string[]; + isSwapped: boolean; + baseTokenBalance?: number; + baseTokenValue?: number; + isLoading: boolean; + exchangeTokenNode?: React.ReactNode; + onValueChange: (value: string) => void; +} + +export function Input({ + baseTokenIcon, + baseTokenName, + isSwapped, + baseTokenBalance, + baseTokenValue, + isLoading, + exchangeTokenNode, + onValueChange, +}: Props) { + const intl = useIntl(); + const [value, setValues] = useState(''); + useDebouncedEffect( + () => { + onValueChange(value); + }, + [value], + 350, + ); + return ( + theme.shape.borderRadius, + borderStartEndRadius: (theme) => theme.shape.borderRadius, + }, + '&:hover': { + background: (theme) => + `linear-gradient(${theme.palette.grey[900]}, ${ + theme.palette.grey[900] + }) padding-box, + linear-gradient(90deg, ${alpha( + theme.palette.primary.main, + 0.4, + )} 0%, ${alpha( + theme.palette.primary.dark, + 0.4, + )} 100%) border-box;`, + }, + '&:focus-within': { + background: (theme) => + `linear-gradient(${theme.palette.grey[900]}, ${theme.palette.grey[900]}) padding-box, + linear-gradient(90deg, var(--mui-palette-primary-main) 0%, var(--mui-palette-primary-dark) 100%) border-box;`, + }, + }} + > + + { + setValues(e.target.value.replace(/[^\d.,]/g, '').replace(',', '.')); + }} + data-testid="swap-input" + /> + + + + + {baseTokenValue !== undefined ? ( + isLoading ? ( + + ) : ( + + {intl.formatNumber(baseTokenValue, currencyFormat)} + + ) + ) : undefined} + + {baseTokenBalance ? ( + + {intl.formatMessage( + { defaultMessage: 'Balance: {number}' }, + { number: intl.formatNumber(baseTokenBalance, currencyFormat) }, + )} + {/* alpha(theme.palette.common.white, 0.1), + }} + > + max + */} + + ) : undefined} + + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/Output.stories.tsx b/libs/shared/components/src/Cards/SwapCard/Output.stories.tsx new file mode 100644 index 000000000..43c8228b1 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/Output.stories.tsx @@ -0,0 +1,42 @@ +import { Container } from '@mui/material'; + +import { Output } from './Output'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: Output, + title: 'Swap Card/Output', + args: { + isLoading: false, + isSwapped: false, + exchangeTokenQuantity: 0, + exchangeTokenValue: 0, + exchangeTokenName: 'OETH', + exchangeTokenIcon: + ' https://app.oeth.com/images/currency/oeth-icon-small.svg', + exchangeTokenBalance: 0, + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const WithValue: StoryObj = { + args: { + exchangeTokenQuantity: 150, + exchangeTokenValue: 284389.5, + }, +}; + +export const Loading: StoryObj = { + args: { + isLoading: true, + }, +}; diff --git a/libs/shared/components/src/Cards/SwapCard/Output.tsx b/libs/shared/components/src/Cards/SwapCard/Output.tsx new file mode 100644 index 000000000..e9f24a3f1 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/Output.tsx @@ -0,0 +1,111 @@ +import { alpha, Box, Typography } from '@mui/material'; +import { useIntl } from 'react-intl'; + +import { Loader } from '../../Loader'; +import { cardStyles } from '../Card'; +import { currencyFormat, valueFormat } from './SwapCard'; +import { SwapItem } from './SwapItem'; +import { styles } from './utils'; + +interface Props { + isLoading: boolean; + exchangeTokenQuantity: number; + exchangeTokenName: string; + exchangeTokenIcon: string | string[]; + exchangeTokenValue?: number; + isSwapped: boolean; + exchangeTokenNode?: React.ReactNode; + exchangeTokenBalance?: number; +} + +export function Output({ + isLoading, + exchangeTokenIcon, + exchangeTokenName, + exchangeTokenQuantity, + isSwapped, + exchangeTokenValue, + exchangeTokenNode, + exchangeTokenBalance, +}: Props) { + const intl = useIntl(); + return ( + alpha(theme.palette.grey[400], 0.2), + ...cardStyles, + paddingBlock: 3.0625, + }} + > + + {isLoading ? ( + + ) : ( + + exchangeTokenQuantity === 0 + ? theme.palette.text.secondary + : theme.palette.primary.contrastText, + }} + > + {intl.formatNumber(exchangeTokenQuantity, valueFormat)} + + )} + + + + {exchangeTokenValue !== undefined ? ( + isLoading ? ( + + ) : ( + + {intl.formatNumber(exchangeTokenValue, currencyFormat)} + + ) + ) : undefined} + {exchangeTokenBalance !== undefined ? ( + isLoading ? ( + + ) : ( + + {intl.formatMessage( + { defaultMessage: 'Balance: {number}' }, + { + number: intl.formatNumber( + exchangeTokenBalance, + currencyFormat, + ), + }, + )} + + ) + ) : undefined} + + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/SwapButton.stories.tsx b/libs/shared/components/src/Cards/SwapCard/SwapButton.stories.tsx new file mode 100644 index 000000000..57ee815e1 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/SwapButton.stories.tsx @@ -0,0 +1,29 @@ +import { SwapButton } from './SwapButton'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: SwapButton, + title: 'Swap Card/Swap Button', + args: {}, +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; + +export const Mobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; diff --git a/libs/shared/components/src/Cards/SwapCard/SwapButton.tsx b/libs/shared/components/src/Cards/SwapCard/SwapButton.tsx new file mode 100644 index 000000000..488af9e62 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/SwapButton.tsx @@ -0,0 +1,48 @@ +import { Box, IconButton } from '@mui/material'; + +import type { IconButtonProps } from '@mui/material'; + +interface Props extends IconButtonProps {} + +export function SwapButton({ onClick, sx, ...rest }: Props) { + return ( + theme.palette.background.paper, + strokeWidth: (theme) => theme.typography.pxToRem(2), + stroke: (theme) => theme.palette.grey[700], + transform: { xs: 'translateY(-20%)', md: 'translateY(-8%)' }, + backgroundColor: (theme) => theme.palette.divider, + '& img': { + transition: (theme) => theme.transitions.create('transform'), + }, + '&:hover': { + backgroundColor: (theme) => theme.palette.background.default, + '& img': { + transform: 'rotate(-180deg)', + }, + }, + ...sx, + }} + {...rest} + > + + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/SwapCard.stories.tsx b/libs/shared/components/src/Cards/SwapCard/SwapCard.stories.tsx new file mode 100644 index 000000000..e663f92ac --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/SwapCard.stories.tsx @@ -0,0 +1,81 @@ +import { Container } from '@mui/material'; + +import { SwapCard } from './SwapCard'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: SwapCard, + title: 'Swap Card/Card', + args: { + title: 'Swap', + baseTokenIcon: 'https://app.oeth.com/images/currency/eth-icon-small.svg', + baseTokenName: 'ETH', + baseTokenValue: 0, + exchangeTokenValue: 0, + exchangeTokenQuantity: 0, + exchangeTokenIcon: + 'https://app.oeth.com/images/currency/oeth-icon-small.svg', + exchangeTokenName: 'OETH', + }, + render: (args) => ( + + + + ), +}; +export default meta; + +export const Default: StoryObj = {}; + +export const WithMaxValue: StoryObj = { + args: { + baseTokenBalance: 250, + }, +}; + +export const WithExchangeTokenValue: StoryObj = { + args: { + exchangeTokenValue: 284389.5, + exchangeTokenQuantity: 150, + exchangeTokenBalance: 300, + }, +}; + +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; + +export const IsLoading: StoryObj = { + args: { + isLoading: true, + }, +}; + +export const SmallMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; + +export const LargeMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, +}; + +export const Tablet: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'tablet', + }, + }, +}; diff --git a/libs/shared/components/src/Cards/SwapCard/SwapCard.tsx b/libs/shared/components/src/Cards/SwapCard/SwapCard.tsx new file mode 100644 index 000000000..bc2e2a65e --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/SwapCard.tsx @@ -0,0 +1,104 @@ +import { useState } from 'react'; + +import { Box, Stack } from '@mui/material'; + +import { Card } from '../Card'; +import { Input } from './Input'; +import { Output } from './Output'; +import { SwapButton } from './SwapButton'; + +import type { FormatNumberOptions } from 'react-intl'; + +export const valueFormat: FormatNumberOptions = { + minimumFractionDigits: 2, +}; +export const currencyFormat: FormatNumberOptions = { + style: 'currency', + currency: 'USD', + minimumFractionDigits: 2, +}; +export const quantityFormat: FormatNumberOptions = { + minimumFractionDigits: 0, + maximumFractionDigits: 4, +}; + +interface Props { + title: string | React.ReactNode; + baseTokenName: string; + baseTokenIcon: string | string[]; + baseTokenBalance?: number; + baseTokenValue?: number; + exchangeTokenName: string; + exchangeTokenIcon: string | string[]; + exchangeTokenQuantity: number; + exchangeTokenValue?: number; + exchangeTokenNode?: React.ReactNode; + exchangeTokenBalance?: number; + isLoading?: boolean; + onValueChange: (value: string) => void; + onSwap: () => void; + children?: React.ReactNode[]; +} + +export function SwapCard({ + title, + baseTokenIcon, + baseTokenName, + exchangeTokenIcon, + exchangeTokenNode, + exchangeTokenName, + baseTokenValue, + baseTokenBalance, + exchangeTokenQuantity, + exchangeTokenValue, + exchangeTokenBalance, + onValueChange, + onSwap, + isLoading = false, + children, +}: Props) { + const [isSwapped, setSwapState] = useState(false); + return ( + + + + + { + setSwapState((prev) => !prev); + onSwap(); + }} + /> + + + + {children} + + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/SwapItem.stories.tsx b/libs/shared/components/src/Cards/SwapCard/SwapItem.stories.tsx new file mode 100644 index 000000000..99f9b5074 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/SwapItem.stories.tsx @@ -0,0 +1,43 @@ +import { DropdownIcon, SwapItem } from './SwapItem'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: SwapItem, + title: 'Swap Card/Swap Item', + args: { + name: 'ETH', + icon: 'https://app.oeth.com/images/currency/eth-icon-small.svg', + }, +}; + +export default meta; + +export const Default: StoryObj = {}; +export const WithAdditionalNode: StoryObj = { + args: { + additionalNode: , + }, +}; + +export const Hover: StoryObj = { + args: { + additionalNode: , + }, + parameters: { + pseudo: { + hover: true, + }, + }, +}; +export const Mix: StoryObj = { + args: { + icon: [ + 'https://app.oeth.com/images/currency/weth-icon-small.png', + 'https://app.oeth.com/images/currency/reth-icon-small.png', + 'https://app.oeth.com/images/currency/steth-icon-small.svg', + 'https://app.oeth.com/images/currency/frxeth-icon-small.svg', + ], + name: 'LST Mix', + }, +}; diff --git a/libs/shared/components/src/Cards/SwapCard/SwapItem.tsx b/libs/shared/components/src/Cards/SwapCard/SwapItem.tsx new file mode 100644 index 000000000..a24a8222d --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/SwapItem.tsx @@ -0,0 +1,78 @@ +import { alpha, Box, IconButton, Stack } from '@mui/material'; + +import { Mix } from '../../Mix'; + +import type { ButtonProps, SxProps } from '@mui/material'; + +interface Props { + icon: string | string[]; + name: string; + additionalNode?: React.ReactNode; + sx?: SxProps; +} + +export function SwapItem({ icon, name, additionalNode: Component, sx }: Props) { + return ( + alpha(theme.palette.common.white, 0.1), + fontStyle: 'normal', + cursor: 'pointer', + fontWeight: 500, + position: 'relative', + ':hover': { + background: (theme) => + `linear-gradient(#3B3C3E, #3B3C3E) padding-box, linear-gradient(90deg, ${alpha( + theme.palette.primary.main, + 0.4, + )} 0%, ${alpha(theme.palette.primary.dark, 0.4)} 100%) border-box;`, + }, + ...sx, + }} + role="button" + > + {typeof icon === 'string' ? ( + + ) : ( + + )} + {name} + {Component ? Component : undefined} + + ); +} + +export function DropdownIcon({ sx, ...rest }: ButtonProps) { + return ( + + + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/SwapItemArrow.tsx b/libs/shared/components/src/Cards/SwapCard/SwapItemArrow.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/libs/shared/components/src/Cards/SwapCard/TokenListItem.stories.tsx b/libs/shared/components/src/Cards/SwapCard/TokenListItem.stories.tsx new file mode 100644 index 000000000..aa04c196d --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/TokenListItem.stories.tsx @@ -0,0 +1,87 @@ +import { Container } from '@mui/material'; + +import { TokenListItem } from './TokenListItem'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: TokenListItem, + title: 'Swap Card/Token list item', + args: { + option: { + name: 'Lido Staked Ether', + abbreviation: 'stETH', + imgSrc: ' https://app.oeth.com/images/currency/steth-icon-small.svg', + quantity: 4, + value: 8580.24, + }, + onSelection: () => null, + selected: false, + }, + render: (args) => ( + + + + ), + parameters: { + backgrounds: { + default: 'dark', + values: [ + { + name: 'dark', + value: '#282A32', + }, + ], + }, + }, +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; + +export const Selected: StoryObj = { + args: { + selected: true, + }, +}; + +export const Mix: StoryObj = { + args: { + option: { + imgSrc: [ + 'https://app.oeth.com/images/currency/weth-icon-small.png', + 'https://app.oeth.com/images/currency/reth-icon-small.png', + 'https://app.oeth.com/images/currency/steth-icon-small.svg', + 'https://app.oeth.com/images/currency/frxeth-icon-small.svg', + ], + name: 'LST Mix', + abbreviation: ['wETH', 'rETH', 'stETH', 'frxETH'], + value: 0, + quantity: 0, + }, + }, +}; + +export const MixTwoItems: StoryObj = { + args: { + option: { + imgSrc: [ + 'https://app.oeth.com/images/currency/weth-icon-small.png', + 'https://app.oeth.com/images/currency/reth-icon-small.png', + ], + name: 'LST Mix', + abbreviation: ['wETH', 'rETH'], + value: 0, + quantity: 0, + }, + }, +}; diff --git a/libs/shared/components/src/Cards/SwapCard/TokenListItem.tsx b/libs/shared/components/src/Cards/SwapCard/TokenListItem.tsx new file mode 100644 index 000000000..cfb54a802 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/TokenListItem.tsx @@ -0,0 +1,84 @@ +import { Box, MenuItem, Stack, Typography } from '@mui/material'; +import { useIntl } from 'react-intl'; + +import { Mix } from '../../Mix'; +import { currencyFormat, quantityFormat } from './SwapCard'; + +import type { Option } from './TokenListModal'; + +const gap = 1.5; +interface Props { + option: Option; + onSelection: (option: Pick) => void; + selected: boolean; +} + +export function TokenListItem({ option, onSelection, selected }: Props) { + const intl = useIntl(); + return ( + theme.palette.background.paper, + borderRadius: 1, + '&:hover': { + background: (theme) => theme.palette.grey[700], + }, + ...(selected ? { opacity: 0.5 } : {}), + }} + onClick={() => { + onSelection({ + name: + typeof option.abbreviation === 'string' + ? option.abbreviation + : option.name, + imgSrc: option.imgSrc, + }); + }} + > + + {typeof option.imgSrc === 'string' ? ( + + ) : ( + + )} + + {option.name} + span:not(:last-child):after': { + content: '", "', + }, + }} + > + {typeof option.abbreviation === 'string' + ? option.abbreviation + : option.abbreviation.map((abbr) => ( + {abbr} + ))} + + + + + + + {intl.formatNumber(option.quantity, quantityFormat)} + + + {intl.formatNumber(option.value, currencyFormat)} + + + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/TokenListModal.stories.tsx b/libs/shared/components/src/Cards/SwapCard/TokenListModal.stories.tsx new file mode 100644 index 000000000..24b762007 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/TokenListModal.stories.tsx @@ -0,0 +1,92 @@ +import { TokenListModal } from './TokenListModal'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: TokenListModal, + title: 'Swap Card/Swap Modal', + args: { + handleClose: () => null, + isOpen: true, + onSelection: (option) => null, + options: [ + { + name: 'Ether', + abbreviation: 'ETH', + imgSrc: ' https://app.oeth.com/images/currency/eth-icon-small.svg', + quantity: 13820, + value: 0, + }, + { + name: 'Wrapped Ether', + abbreviation: 'wETH', + imgSrc: 'https://app.oeth.com/images/currency/weth-icon-small.png', + quantity: 0, + value: 0, + }, + { + name: 'Lido Staked Ether', + abbreviation: 'stETH', + imgSrc: 'https://app.oeth.com/images/currency/steth-icon-small.svg', + quantity: 0, + value: 0, + }, + { + name: 'Rocket Pool Ether', + abbreviation: 'rETH', + imgSrc: 'https://app.oeth.com/images/currency/reth-icon-small.png', + quantity: 0, + value: 0, + }, + { + name: 'Frax Ether', + abbreviation: 'frxETH', + imgSrc: 'https://app.oeth.com/images/currency/frxeth-icon-small.svg', + quantity: 0, + value: 0, + }, + { + name: 'Origin Ether', + abbreviation: 'OETH', + imgSrc: 'https://app.oeth.com/images/currency/oeth-icon-small.svg', + quantity: 0, + value: 0, + }, + { + name: 'Wrapped Ether', + abbreviation: 'wOETH', + imgSrc: 'https://app.oeth.com/images/currency/woeth-icon-small.svg', + quantity: 1, + value: 1952.38, + }, + ], + }, +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const SmallMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; + +export const LargeMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, +}; + +export const TableMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'tablet', + }, + }, +}; diff --git a/libs/shared/components/src/Cards/SwapCard/TokenListModal.tsx b/libs/shared/components/src/Cards/SwapCard/TokenListModal.tsx new file mode 100644 index 000000000..c025a1c79 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/TokenListModal.tsx @@ -0,0 +1,75 @@ +import { Dialog, MenuList } from '@mui/material'; +import { eq } from 'lodash'; + +import { TokenListItem } from './TokenListItem'; + +interface MixOption { + imgSrc: string[]; + abbreviation: string[]; +} + +export interface SwapOption { + imgSrc: string; + abbreviation: string; +} + +export type Option = { name: string; value: number; quantity: number } & ( + | SwapOption + | MixOption +); + +interface Props { + handleClose: () => void; + isOpen: boolean; + options: Option[]; + onSelection: (option: Pick) => void; + selected: string | string[]; +} + +export function TokenListModal({ + handleClose, + isOpen, + options, + onSelection, + selected, +}: Props) { + return ( + theme.palette.background.paper, + borderRadius: 2, + border: '1px solid', + borderColor: (theme) => theme.palette.grey[800], + backgroundImage: 'none', + margin: 0, + minWidth: 'min(90vw, 33rem)', + }, + }} + > + + {options.map((option) => ( + { + onSelection(option); + handleClose(); + }} + selected={eq(selected, option.abbreviation)} + /> + ))} + + + ); +} diff --git a/libs/shared/components/src/Cards/SwapCard/index.tsx b/libs/shared/components/src/Cards/SwapCard/index.tsx new file mode 100644 index 000000000..96df922b8 --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/index.tsx @@ -0,0 +1,4 @@ +export * from './SwapCard'; +export * from './TokenListModal'; +export * from './ActionButton'; +export { DropdownIcon } from './SwapItem'; diff --git a/libs/shared/components/src/Cards/SwapCard/utils.ts b/libs/shared/components/src/Cards/SwapCard/utils.ts new file mode 100644 index 000000000..92cfa08ae --- /dev/null +++ b/libs/shared/components/src/Cards/SwapCard/utils.ts @@ -0,0 +1,8 @@ +export const styles = { + display: 'grid', + justifyContent: 'space-between', + alignContent: 'end', + gap: 2.5, + gridTemplateColumns: '1fr auto', + rowGap: 1, +}; diff --git a/libs/shared/components/src/Cards/index.tsx b/libs/shared/components/src/Cards/index.tsx new file mode 100644 index 000000000..79595aed8 --- /dev/null +++ b/libs/shared/components/src/Cards/index.tsx @@ -0,0 +1,2 @@ +export * from './Card'; +export * from './SwapCard'; diff --git a/libs/shared/components/src/LinkIcon/LinkIcon.tsx b/libs/shared/components/src/LinkIcon/LinkIcon.tsx new file mode 100644 index 000000000..02e71d154 --- /dev/null +++ b/libs/shared/components/src/LinkIcon/LinkIcon.tsx @@ -0,0 +1,18 @@ +import { Box, Link } from '@mui/material'; + +interface Props { + url: string; + size?: string; +} + +export function LinkIcon({ url, size = '0.875rem' }: Props) { + return ( + + + + ); +} diff --git a/libs/shared/components/src/Loader/Loader.stories.tsx b/libs/shared/components/src/Loader/Loader.stories.tsx new file mode 100644 index 000000000..e950d52b9 --- /dev/null +++ b/libs/shared/components/src/Loader/Loader.stories.tsx @@ -0,0 +1,16 @@ +import { Loader } from './Loader'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: Loader, + title: 'Shared components/Loader', + args: { + width: 345, + height: 14, + }, +}; + +export default meta; + +export const Default: StoryObj = {}; diff --git a/libs/shared/components/src/Loader/Loader.tsx b/libs/shared/components/src/Loader/Loader.tsx new file mode 100644 index 000000000..cc5dedb7c --- /dev/null +++ b/libs/shared/components/src/Loader/Loader.tsx @@ -0,0 +1,16 @@ +import { Skeleton } from '@mui/material'; + +import type { SkeletonProps } from '@mui/material'; + +interface Props extends SkeletonProps {} + +export function Loader({ sx, ...rest }: Props) { + return ( + + ); +} diff --git a/libs/shared/components/src/Loader/index.tsx b/libs/shared/components/src/Loader/index.tsx new file mode 100644 index 000000000..d5ce98115 --- /dev/null +++ b/libs/shared/components/src/Loader/index.tsx @@ -0,0 +1 @@ +export * from './Loader'; diff --git a/libs/shared/components/src/Mix/Mix.stories.tsx b/libs/shared/components/src/Mix/Mix.stories.tsx new file mode 100644 index 000000000..d41d742f7 --- /dev/null +++ b/libs/shared/components/src/Mix/Mix.stories.tsx @@ -0,0 +1,20 @@ +import { Mix } from './Mix'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: Mix, + title: 'Shared components/Mix', + args: { + imgSrc: [ + 'https://app.oeth.com/images/currency/weth-icon-small.png', + 'https://app.oeth.com/images/currency/reth-icon-small.png', + 'https://app.oeth.com/images/currency/steth-icon-small.svg', + 'https://app.oeth.com/images/currency/frxeth-icon-small.svg', + ], + }, +}; + +export default meta; + +export const Default: StoryObj = {}; diff --git a/libs/shared/components/src/Mix/Mix.tsx b/libs/shared/components/src/Mix/Mix.tsx new file mode 100644 index 000000000..63cac1945 --- /dev/null +++ b/libs/shared/components/src/Mix/Mix.tsx @@ -0,0 +1,37 @@ +import { Box, Stack } from '@mui/material'; + +import type { SxProps } from '@mui/material'; + +interface Props { + imgSrc: string[]; + size?: number; + sx?: SxProps; +} + +export function Mix({ imgSrc, size = 2, sx }: Props) { + return ( + + {imgSrc.map((img, index, arr) => ( + + ))} + + ); +} diff --git a/libs/shared/components/src/Mix/index.tsx b/libs/shared/components/src/Mix/index.tsx new file mode 100644 index 000000000..15ac645c1 --- /dev/null +++ b/libs/shared/components/src/Mix/index.tsx @@ -0,0 +1 @@ +export * from './Mix'; diff --git a/libs/shared/components/src/index.ts b/libs/shared/components/src/index.ts new file mode 100644 index 000000000..785656bb9 --- /dev/null +++ b/libs/shared/components/src/index.ts @@ -0,0 +1,3 @@ +export * from './Cards'; +export * from './top-nav'; +export * from './LinkIcon/LinkIcon'; diff --git a/libs/shared/components/src/top-nav/Activity.stories.tsx b/libs/shared/components/src/top-nav/Activity.stories.tsx new file mode 100644 index 000000000..11c9bad27 --- /dev/null +++ b/libs/shared/components/src/top-nav/Activity.stories.tsx @@ -0,0 +1,98 @@ +import { within } from '@storybook/testing-library'; + +import { Activity } from './Activity'; +import { transactions } from './fixtures'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: Activity, + title: 'Top navigation/Activity', + args: { + transactions: [], + }, +}; +export default meta; + +export const Default: StoryObj = {}; + +export const Hover: StoryObj = { + parameters: { + pseudo: { + hover: true, + }, + }, +}; + +export const Expanded: StoryObj = { + name: 'User clicked on the profile button', + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('activity-button').click(); + }, +}; + +export const ExpandedWithTransactions: StoryObj = { + name: 'Recent activity list', + // @ts-expect-error type mismatch + args: { transactions }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('activity-button').click(); + }, +}; + +export const ExpandedWithLessTransactions: StoryObj = { + name: 'Recent activity list with smaller number of transactions', + // @ts-expect-error type mismatch + args: { transactions: transactions.slice(0, 4) }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('activity-button').click(); + }, +}; + +export const MobileSmall: StoryObj = { + name: 'Mobile -> Recent activity list', + // @ts-expect-error type mismatch + args: { transactions: transactions.slice(0, 4) }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('activity-button').click(); + }, + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; + +export const MobileLarge: StoryObj = { + name: 'Mobile large -> Recent activity list', + // @ts-expect-error type mismatch + args: { transactions: transactions.slice(0, 4) }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('activity-button').click(); + }, + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, +}; + +export const Tablet: StoryObj = { + name: 'Tablet -> Recent activity list', + // @ts-expect-error type mismatch + args: { transactions: transactions.slice(0, 4) }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('activity-button').click(); + }, + parameters: { + viewport: { + defaultViewport: 'tablet', + }, + }, +}; diff --git a/libs/shared/components/src/top-nav/Activity.tsx b/libs/shared/components/src/top-nav/Activity.tsx new file mode 100644 index 000000000..756b835f2 --- /dev/null +++ b/libs/shared/components/src/top-nav/Activity.tsx @@ -0,0 +1,111 @@ +import { useState } from 'react'; + +import { + Box, + Divider, + IconButton, + Popover, + Typography, + useTheme, +} from '@mui/material'; +import { useIntl } from 'react-intl'; + +import { Icon } from './Icon'; +import { Transaction } from './Transaction'; +import { styles } from './utils'; + +import type { Transaction as ITransaction } from './types'; + +interface Props { + transactions: ITransaction[]; +} + +export function Activity({ transactions }: Props) { + const theme = useTheme(); + const intl = useIntl(); + const [anchor, setAnchor] = useState(null); + return ( + <> + theme.typography.pxToRem(40), + height: (theme) => theme.typography.pxToRem(40), + padding: 1, + '&:hover': { + background: (theme) => theme.palette.background.gradientHover, + }, + }} + data-testid="activity-button" + onClick={(e) => setAnchor(e.currentTarget)} + > + + + setAnchor(null)} + anchorOrigin={{ + vertical: 50, + horizontal: 'right', + }} + transformOrigin={{ + vertical: 'top', + horizontal: 'right', + }} + sx={{ + '& .MuiPopover-paper': { + width: (theme) => ({ + xs: '90vw', + md: `min(${theme.typography.pxToRem(370)}, 90vw)`, + }), + maxHeight: (theme) => + `min(${theme.typography.pxToRem(450)}, calc(100vh - 150px))`, + paddingBlockEnd: 3, + display: 'flex', + flexDirection: 'column', + [theme.breakpoints.down('md')]: { + left: '0 !important', + right: 0, + marginInline: 'auto', + }, + }, + }} + transitionDuration={theme.transitions.duration.shortest} + > + + {intl.formatMessage({ defaultMessage: 'Recent activity' })} + + + {!transactions.length ? ( + + {intl.formatMessage({ + defaultMessage: 'No transaction activity', + })} + + ) : ( + + {transactions.map((transaction, index) => ( + + ))} + + )} + {transactions.length ? : undefined} + + + ); +} diff --git a/libs/shared/components/src/top-nav/ConnectedButton.stories.tsx b/libs/shared/components/src/top-nav/ConnectedButton.stories.tsx new file mode 100644 index 000000000..3aab01b33 --- /dev/null +++ b/libs/shared/components/src/top-nav/ConnectedButton.stories.tsx @@ -0,0 +1,93 @@ +import { within } from '@storybook/testing-library'; + +import { ConnectedButton } from './ConnectedButton'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: ConnectedButton, + title: 'Top navigation/User connected', + args: { + userId: '0x65b033bcc4d7f74255bbde2f69966e85', + walletIcon: 'https://app.oeth.com/images/walletconnect-icon.svg', + values: [ + { + token: 'eth', + quantity: 18639.418285, + tokenIcon: 'https://app.oeth.com/images/eth.svg', + }, + { + token: 'weth', + quantity: 1639.418285, + tokenIcon: 'https://app.oeth.com/images/weth.png', + }, + { + token: 'reth', + quantity: 639.418285, + tokenIcon: 'https://app.oeth.com/images/reth.png', + }, + { + token: 'frxeth', + quantity: 39.418, + tokenIcon: ' https://app.oeth.com/images/frxeth.svg', + }, + { + token: 'sfrxeth', + quantity: 23639.415, + tokenIcon: ' https://app.oeth.com/images/sfrxeth.svg', + }, + { + token: 'steth', + quantity: 2639.415, + tokenIcon: ' https://app.oeth.com/images/steth.svg', + }, + ], + }, +}; +export default meta; + +export const Default: StoryObj = {}; + +export const Expanded: StoryObj = { + name: 'User clicked on the profile button', + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('connect-button').click(); + }, +}; + +export const SmallMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('connect-button').click(); + }, +}; + +export const LargeMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('connect-button').click(); + }, +}; + +export const Tablet: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'tablet', + }, + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('connect-button').click(); + }, +}; diff --git a/libs/shared/components/src/top-nav/ConnectedButton.tsx b/libs/shared/components/src/top-nav/ConnectedButton.tsx new file mode 100644 index 000000000..e56767c98 --- /dev/null +++ b/libs/shared/components/src/top-nav/ConnectedButton.tsx @@ -0,0 +1,214 @@ +import { useState } from 'react'; + +import { + alpha, + Box, + Button, + Divider, + Popover, + Stack, + Typography, + useTheme, +} from '@mui/material'; +import { useIntl } from 'react-intl'; + +import { LinkIcon } from '../LinkIcon/LinkIcon'; +import { Icon } from './Icon'; +import { UserId } from './UserId'; +import { styles } from './utils'; + +import type { ButtonProps, SxProps, Theme } from '@mui/material'; + +import type { Connected } from './types'; + +const padding = { paddingBlock: 1.8, paddingInline: 2 }; + +interface Props extends Pick { + onDisconnect?: () => void; +} + +export function ConnectedButton({ + userId, + walletIcon, + values, + onDisconnect, +}: Props) { + const theme = useTheme(); + const intl = useIntl(); + const [anchor, setAnchor] = useState(null); + return ( + <> + setAnchor(e.currentTarget)} + sx={{ + [theme.breakpoints.down('md')]: { + '& p': { + display: 'none', + }, + }, + }} + > + theme.spacing(3), + height: (theme) => theme.spacing(3), + }} + /> + + + setAnchor(null)} + anchorOrigin={{ + vertical: 50, + horizontal: 'right', + }} + transformOrigin={{ + vertical: 'top', + horizontal: 'right', + }} + sx={{ + '& .MuiPopover-paper': { + width: (theme) => ({ + xs: '90vw', + md: `min(${theme.typography.pxToRem(250)}, 90vw)`, + }), + [theme.breakpoints.down('md')]: { + left: '0 !important', + right: 0, + marginInline: 'auto', + }, + }, + }} + > + + + Account + + + + + + + + + + + {values.map((value) => ( + + + {intl.formatNumber(value.quantity)} +   + {value.token} + + ))} + + + + + ); +} + +interface ConnectButtonProps extends ButtonProps { + connected: boolean; +} + +export function ConnectButton({ + onClick, + children, + connected, + sx, + ...rest +}: ConnectButtonProps) { + return ( + + ); +} diff --git a/libs/shared/components/src/top-nav/Icon.tsx b/libs/shared/components/src/top-nav/Icon.tsx new file mode 100644 index 000000000..24879cba7 --- /dev/null +++ b/libs/shared/components/src/top-nav/Icon.tsx @@ -0,0 +1,18 @@ +import { Box } from '@mui/material'; + +import type { BoxProps } from '@mui/material'; + +interface Props extends BoxProps { + src: string; +} + +export function Icon({ src, sx, ...rest }: Props) { + return ( + theme.typography.pxToRem(20), ...sx }} + {...rest} + /> + ); +} diff --git a/libs/shared/components/src/top-nav/TopNav.stories.tsx b/libs/shared/components/src/top-nav/TopNav.stories.tsx new file mode 100644 index 000000000..1563f574e --- /dev/null +++ b/libs/shared/components/src/top-nav/TopNav.stories.tsx @@ -0,0 +1,161 @@ +import { within } from '@storybook/testing-library'; + +import { TopNav } from './TopNav'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const logo = 'https://app.oeth.com/images/origin-ether-logo.svg'; +const tabs = ['Swap', 'Wrap', 'History']; + +const connected = { + logo, + tabs, + selected: 0, + connected: true, + ipfsLink: 'https://oeth.on.fleek.co/', + userId: '0x65b033bcc4d7f74255bbde2f69966e85', + walletIcon: 'https://app.oeth.com/images/walletconnect-icon.svg', + transactions: [], + values: [ + { + token: 'eth', + quantity: 18639.418285, + tokenIcon: 'https://app.oeth.com/images/eth.svg', + }, + { + token: 'weth', + quantity: 1639.418285, + tokenIcon: 'https://app.oeth.com/images/weth.png', + }, + { + token: 'reth', + quantity: 639.418285, + tokenIcon: 'https://app.oeth.com/images/reth.png', + }, + { + token: 'frxeth', + quantity: 39.418, + tokenIcon: ' https://app.oeth.com/images/frxeth.svg', + }, + { + token: 'sfrxeth', + quantity: 23639.415, + tokenIcon: ' https://app.oeth.com/images/sfrxeth.svg', + }, + { + token: 'steth', + quantity: 2639.415, + tokenIcon: ' https://app.oeth.com/images/steth.svg', + }, + ], +} as const; + +const meta: Meta = { + component: TopNav, + title: 'Top navigation/Navigation bar', + args: { + logo, + tabs, + selected: 0, + ipfsLink: 'https://oeth.on.fleek.co/', + }, +}; +export default meta; + +export const Default: StoryObj = {}; +export const HoverItem: StoryObj = { + parameters: { + pseudo: { + hover: [ + '[href="/wrap"]', + '[href="https://oeth.on.fleek.co/"]', + '[data-testid="connect-button"]', + ], + }, + }, +}; + +export const UserConnected: StoryObj = { + // @ts-expect-error values mismatch + args: connected, +}; + +export const UserConnectedPopover: StoryObj = { + name: 'Profile button clicked', + // @ts-expect-error values mismatch + args: connected, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('connect-button').click(); + }, +}; + +export const ActivityPopover: StoryObj = { + name: 'Transaction popover clicked', + // @ts-expect-error values mismatch + args: connected, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByTestId('activity-button').click(); + }, +}; + +export const SmallMobile: StoryObj = { + name: 'Small mobile with user disconnected', + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; + +export const SmallMobileConnected: StoryObj = { + name: 'Small mobile with user connected', + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, + // @ts-expect-error values mismatch + args: connected, +}; + +export const LargeMobile: StoryObj = { + name: 'Large mobile with user disconnected', + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, +}; + +export const LargeMobileConnected: StoryObj = { + name: 'Large mobile with user connected', + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, + // @ts-expect-error values mismatch + args: connected, +}; + +export const Tablet: StoryObj = { + name: 'Tablet with user disconnected', + parameters: { + viewport: { + defaultViewport: 'tablet', + }, + }, +}; + +export const TabletConnected: StoryObj = { + name: 'Tablet with user connected', + parameters: { + viewport: { + defaultViewport: 'tablet', + }, + }, + // @ts-expect-error values mismatch + args: connected, +}; diff --git a/libs/shared/components/src/top-nav/TopNav.tsx b/libs/shared/components/src/top-nav/TopNav.tsx new file mode 100644 index 000000000..48b957740 --- /dev/null +++ b/libs/shared/components/src/top-nav/TopNav.tsx @@ -0,0 +1,230 @@ +import { useState } from 'react'; + +import { + alpha, + Box, + Divider, + Link as MuiLink, + Tab, + Tabs, + useTheme, +} from '@mui/material'; +import { useIntl } from 'react-intl'; +import { Link } from 'react-router-dom'; + +import { Activity } from './Activity'; +import { ConnectButton, ConnectedButton } from './ConnectedButton'; +import { styles } from './utils'; + +import type { SxProps } from '@mui/material'; + +import type { Connected } from './types'; + +type Props = { + tabs: string[]; + logo: string; + selected: number; + ipfsLink: string; + sx?: SxProps; +} & ({ connected: false } | Connected); + +export function TopNav({ + sx, + tabs, + logo, + selected, + ipfsLink, + connected = false, + ...rest +}: Props) { + const theme = useTheme(); + const intl = useIntl(); + const [value, setValue] = useState(selected); + return ( + + ({ + '& img': { + maxHeight: { + xs: '1rem', + md: '1.5rem', + }, + maxWidth: { + xs: theme.typography.pxToRem(100), + sm: theme.typography.pxToRem(120), + md: theme.typography.pxToRem(180), + }, + }, + })} + onClick={() => setValue(0)} + > + + + setValue(value)} + sx={{ + order: { + xs: 2, + md: 0, + }, + gridColumn: { + xs: 'span 2', + md: 'span 1', + }, + backgroundColor: 'transparent', + minHeight: 0, + overflow: 'visible', + '& .MuiTabs-fixed': { + overflow: 'visible !important', + }, + fontSize: { + xs: '0.875rem', + md: '1rem', + }, + '& .MuiTabs-flexContainer': { + justifyContent: { + xs: 'center', + md: 'flex-start', + }, + }, + }} + value={value} + > + {tabs.map((tab) => ( + + `linear-gradient(90deg, ${alpha( + theme.palette.primary.main, + 0.4, + )} 0%, ${alpha(theme.palette.primary.dark, 0.4)} 100%)`, + position: 'absolute', + left: 0, + bottom: 0, + zIndex: 2, + }, + }} + > + ))} + + + a': { + fontSize: { + xs: '0.75rem', + md: '1rem', + }, + color: (theme) => theme.palette.primary.contrastText, + lineHeight: (theme) => theme.spacing(3), + }, + }} + > + theme.palette.background.paper, + backgroundImage: 'none', + }, + }} + > + {theme.breakpoints.down('md') + ? intl.formatMessage({ defaultMessage: 'IPFS' }) + : intl.formatMessage({ defaultMessage: 'View on IPFS' })} + + {connected ? ( + + ) : ( + + {intl.formatMessage({ defaultMessage: 'Connect' })} + + )} + {connected ? ( + + ) : undefined} + + + + ); +} diff --git a/libs/shared/components/src/top-nav/Transaction.stories.tsx b/libs/shared/components/src/top-nav/Transaction.stories.tsx new file mode 100644 index 000000000..c08e55be7 --- /dev/null +++ b/libs/shared/components/src/top-nav/Transaction.stories.tsx @@ -0,0 +1,92 @@ +import { Box } from '@mui/material'; + +import { transactions } from './fixtures'; +import { Transaction } from './Transaction'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: Transaction, + title: 'Top navigation/Transaction', + render: (args) => ( + + + + ), +}; +export default meta; + +export const ApprovalSuccess: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[0], + }, +}; +export const ApprovalPending: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[1], + }, +}; + +export const ApprovalFailed: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[2], + }, +}; +export const RebaseSuccess: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[3], + }, +}; +export const RebasePending: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[4], + }, +}; +export const RebaseFailed: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[5], + }, +}; + +export const SwapSuccess: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[6], + }, +}; +export const SwapFailed: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[7], + }, +}; +export const SwapPending: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[8], + }, +}; +export const RedeemPending: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[9], + }, +}; +export const RedeemSuccess: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[10], + }, +}; +export const RedeemFailed: StoryObj = { + args: { + // @ts-expect-error type mismatch + transaction: transactions[11], + }, +}; diff --git a/libs/shared/components/src/top-nav/Transaction.tsx b/libs/shared/components/src/top-nav/Transaction.tsx new file mode 100644 index 000000000..2ec8ada3d --- /dev/null +++ b/libs/shared/components/src/top-nav/Transaction.tsx @@ -0,0 +1,127 @@ +import { keyframes } from '@emotion/react'; +import { Stack, Typography } from '@mui/material'; +import { useIntl } from 'react-intl'; + +import { LinkIcon } from '../LinkIcon/LinkIcon'; +import { Icon } from './Icon'; +import { messages } from './utils'; + +import type { Approval, Rebase, Redeem, Swap, Transaction } from './types'; + +const spin = keyframes` + 0 { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +`; + +interface Props { + transaction: Transaction; +} + +export function Transaction({ transaction }: Props) { + const intl = useIntl(); + return ( + + + + theme.typography.pxToRem(14), + ...(transaction.status === 'pending' + ? { + animation: `${spin} 3s linear infinite`, + } + : {}), + }} + /> + {intl.formatMessage( + messages[`${transaction.type}-${transaction.status}`], + )} + + + + {transaction.type === 'approval' && transaction.status === 'success' + ? intl.formatMessage(messages['approval-success-message'], { + token: transaction.token, + }) + : transaction.type === 'approval' + ? intl.formatMessage(messages['approval-message'], { + token: transaction.token, + }) + : transaction.type === 'rebase' && transaction.status === 'pending' + ? intl.formatMessage(messages['rebase-pending-message']) + : transaction.type === 'rebase' + ? intl.formatMessage(messages['rebase-message']) + : intl.formatMessage(messages['swap-message'], { + baseTokenValue: intl.formatNumber( + transaction.baseTokenQuantity, + ), + baseToken: transaction.baseToken, + exchangeTokenValue: intl.formatNumber( + transaction.exchangeTokenQuantity, + ), + exchangeToken: transaction.exchangeToken, + })} + + + theme.palette.grey['900'], + }} + direction="row" + gap={1} + alignItems="center" + > + {transaction.type === 'swap' || transaction.type === 'redeem' ? ( + <> + theme.typography.pxToRem(24), + }} + /> + theme.typography.pxToRem(8) }} + /> + theme.typography.pxToRem(24), + }} + /> + + ) : ( + theme.typography.pxToRem(24) }} + /> + )} + + + ); +} diff --git a/libs/shared/components/src/top-nav/UserId.tsx b/libs/shared/components/src/top-nav/UserId.tsx new file mode 100644 index 000000000..ab547c380 --- /dev/null +++ b/libs/shared/components/src/top-nav/UserId.tsx @@ -0,0 +1,16 @@ +import { Typography } from '@mui/material'; + +import type { TypographyProps } from '@mui/material'; + +interface Props extends TypographyProps { + userId: string; +} + +export function UserId({ userId, sx, ...rest }: Props) { + return ( + + {userId.slice(0, 4)}... + {userId.slice(-4)} + + ); +} diff --git a/libs/shared/components/src/top-nav/fixtures.ts b/libs/shared/components/src/top-nav/fixtures.ts new file mode 100644 index 000000000..66f9e4e44 --- /dev/null +++ b/libs/shared/components/src/top-nav/fixtures.ts @@ -0,0 +1,115 @@ +import { faker } from '@faker-js/faker'; + +export const transactions = [ + { + token: 'stETH', + type: 'approval', + status: 'success', + url: faker.internet.url(), + tokenIcon: 'https://oeth.on.fleek.co/images/currency/steth-icon-small.svg', + }, + { + token: 'stETH', + type: 'approval', + status: 'pending', + url: faker.internet.url(), + tokenIcon: 'https://oeth.on.fleek.co/images/currency/steth-icon-small.svg', + }, + { + token: 'stETH', + type: 'approval', + status: 'failed', + url: faker.internet.url(), + tokenIcon: 'https://oeth.on.fleek.co/images/currency/steth-icon-small.svg', + }, + { + token: 'OETH', + type: 'rebase', + status: 'success', + url: faker.internet.url(), + tokenIcon: 'https://app.oeth.com/images/oeth.svg', + }, + { + token: 'OETH', + type: 'rebase', + status: 'pending', + url: faker.internet.url(), + tokenIcon: 'https://app.oeth.com/images/oeth.svg', + }, + { + token: 'OETH', + type: 'rebase', + status: 'failed', + url: faker.internet.url(), + tokenIcon: 'https://app.oeth.com/images/oeth.svg', + }, + { + baseToken: 'stETH', + baseTokenQuantity: 4.7713, + type: 'swap', + status: 'success', + url: faker.internet.url(), + exchangeToken: 'OETH', + exchangeTokenQuantity: 4.815, + exchangeTokenIcon: 'https://app.oeth.com/images/oeth.svg', + baseTokenIcon: 'https://app.oeth.com/images/currency/steth-icon-small.svg', + }, + { + baseToken: 'stETH', + baseTokenQuantity: 4.7713, + type: 'swap', + status: 'failed', + url: faker.internet.url(), + exchangeToken: 'OETH', + exchangeTokenQuantity: 4.815, + exchangeTokenIcon: 'https://app.oeth.com/images/oeth.svg', + baseTokenIcon: 'https://app.oeth.com/images/currency/steth-icon-small.svg', + }, + { + baseToken: 'stETH', + baseTokenQuantity: 4.7713, + type: 'swap', + status: 'pending', + url: faker.internet.url(), + exchangeToken: 'OETH', + exchangeTokenQuantity: 4.815, + exchangeTokenIcon: 'https://app.oeth.com/images/oeth.svg', + baseTokenIcon: 'https://app.oeth.com/images/currency/steth-icon-small.svg', + }, + { + exchangeToken: 'stETH', + exchangeTokenQuantity: 4.7713, + type: 'redeem', + status: 'pending', + url: faker.internet.url(), + baseToken: 'OETH', + baseTokenQuantity: 4.815, + baseTokenIcon: 'https://app.oeth.com/images/oeth.svg', + exchangeTokenIcon: + 'https://app.oeth.com/images/currency/steth-icon-small.svg', + }, + { + exchangeToken: 'stETH', + exchangeTokenQuantity: 4.7713, + type: 'redeem', + status: 'success', + url: faker.internet.url(), + baseToken: 'OETH', + baseTokenQuantity: 4.815, + baseTokenIcon: 'https://app.oeth.com/images/oeth.svg', + exchangeTokenIcon: + 'https://app.oeth.com/images/currency/steth-icon-small.svg', + }, + { + exchangeToken: 'stETH', + exchangeTokenQuantity: 4.7713, + type: 'redeem', + status: 'failed', + url: faker.internet.url(), + baseToken: 'OETH', + baseTokenQuantity: 4.815, + baseTokenIcon: 'https://app.oeth.com/images/oeth.svg', + exchangeTokenIcon: + 'https://app.oeth.com/images/currency/steth-icon-small.svg', + }, +]; diff --git a/libs/shared/components/src/top-nav/index.tsx b/libs/shared/components/src/top-nav/index.tsx new file mode 100644 index 000000000..0b5f66e91 --- /dev/null +++ b/libs/shared/components/src/top-nav/index.tsx @@ -0,0 +1,2 @@ +export * from './TopNav'; +export * from './Icon'; diff --git a/libs/shared/components/src/top-nav/types.ts b/libs/shared/components/src/top-nav/types.ts new file mode 100644 index 000000000..9b49005ac --- /dev/null +++ b/libs/shared/components/src/top-nav/types.ts @@ -0,0 +1,45 @@ +export interface Connected { + connected: true; + userAvatar: string; + userId: string; + walletIcon: string; + values: { token: string; tokenIcon: string; quantity: number }[]; + transactions: Transaction[]; +} + +export type Transaction = { + status: 'pending' | 'failed' | 'success'; + url: string; +} & (Approval | Swap | Redeem | Rebase); + +export interface Approval { + token: string; + tokenIcon: string; + type: 'approval'; +} + +export interface Swap { + baseToken: string; + baseTokenQuantity: number; + baseTokenIcon: string; + exchangeToken: string; + exchangeTokenQuantity: number; + exchangeTokenIcon: string; + type: 'swap'; +} + +export interface Redeem { + baseToken: string; + baseTokenQuantity: number; + baseTokenIcon: string; + exchangeToken: string; + exchangeTokenQuantity: number; + exchangeTokenIcon: string; + type: 'redeem'; +} + +export interface Rebase { + type: 'rebase'; + token: string; + tokenIcon: string; +} diff --git a/libs/shared/components/src/top-nav/utils.ts b/libs/shared/components/src/top-nav/utils.ts new file mode 100644 index 000000000..67eb42df6 --- /dev/null +++ b/libs/shared/components/src/top-nav/utils.ts @@ -0,0 +1,41 @@ +import { defineMessage } from 'react-intl'; + +import type { SxProps, Theme } from '@mui/material'; + +export const styles: SxProps = { + backgroundColor: 'background.paper', + borderRadius: 25, + paddingBlock: 1, + paddingInline: { xs: 2, md: 3 }, + color: 'primary.contrastText', + boxShadow: (theme) => theme.shadows['24'], +}; + +export const messages = { + 'approval-pending': defineMessage({ defaultMessage: 'Pending Approval' }), + 'approval-success': defineMessage({ defaultMessage: 'Approved' }), + 'approval-failed': defineMessage({ defaultMessage: 'Approval failed' }), + 'swap-pending': defineMessage({ defaultMessage: 'Pending Swap' }), + 'swap-success': defineMessage({ defaultMessage: 'Swapped' }), + 'swap-failed': defineMessage({ defaultMessage: 'Swap failed' }), + 'redeem-success': defineMessage({ defaultMessage: 'Redeemed' }), + 'redeem-pending': defineMessage({ defaultMessage: 'Pending Redeem' }), + 'redeem-failed': defineMessage({ defaultMessage: 'Redeem failed' }), + 'rebase-success': defineMessage({ defaultMessage: 'Rebased opt-in' }), + 'rebase-failed': defineMessage({ defaultMessage: 'Rebase opt-in Failed' }), + 'rebase-pending': defineMessage({ defaultMessage: 'Rebase opt-in Pending' }), + 'swap-message': defineMessage({ + defaultMessage: + '{baseTokenValue} {baseToken} for {exchangeTokenValue} {exchangeToken}', + }), + 'approval-message': defineMessage({ + defaultMessage: 'Approve {token} for swapping', + }), + 'approval-success-message': defineMessage({ + defaultMessage: 'Approved {token} for swapping', + }), + 'rebase-message': defineMessage({ defaultMessage: 'To receive yield' }), + 'rebase-pending-message': defineMessage({ + defaultMessage: 'You will receive yield', + }), +}; diff --git a/libs/shared/components/tsconfig.json b/libs/shared/components/tsconfig.json new file mode 100644 index 000000000..d29cb83ed --- /dev/null +++ b/libs/shared/components/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "jsx": "react-jsx", + "allowJs": false, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "types": ["vitest"] + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + }, + { + "path": "./tsconfig.storybook.json" + } + ], + "extends": "../../../tsconfig.base.json" +} diff --git a/libs/shared/components/tsconfig.lib.json b/libs/shared/components/tsconfig.lib.json new file mode 100644 index 000000000..a9c281594 --- /dev/null +++ b/libs/shared/components/tsconfig.lib.json @@ -0,0 +1,26 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "types": ["node"] + }, + "files": [ + "../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../node_modules/@nx/react/typings/image.d.ts" + ], + "exclude": [ + "**/*.spec.ts", + "**/*.test.ts", + "**/*.spec.tsx", + "**/*.test.tsx", + "**/*.spec.js", + "**/*.test.js", + "**/*.spec.jsx", + "**/*.test.jsx", + "**/*.stories.ts", + "**/*.stories.js", + "**/*.stories.jsx", + "**/*.stories.tsx" + ], + "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] +} diff --git a/libs/shared/components/tsconfig.spec.json b/libs/shared/components/tsconfig.spec.json new file mode 100644 index 000000000..6d3be7427 --- /dev/null +++ b/libs/shared/components/tsconfig.spec.json @@ -0,0 +1,19 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"] + }, + "include": [ + "vite.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts" + ] +} diff --git a/libs/shared/components/tsconfig.storybook.json b/libs/shared/components/tsconfig.storybook.json new file mode 100644 index 000000000..3555ddd4f --- /dev/null +++ b/libs/shared/components/tsconfig.storybook.json @@ -0,0 +1,31 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "emitDecoratorMetadata": true, + "outDir": "" + }, + "files": [ + "../../../node_modules/@nx/react/typings/styled-jsx.d.ts", + "../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../node_modules/@nx/react/typings/image.d.ts" + ], + "exclude": [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "src/**/*.spec.js", + "src/**/*.test.js", + "src/**/*.spec.tsx", + "src/**/*.test.tsx", + "src/**/*.spec.jsx", + "src/**/*.test.js" + ], + "include": [ + "src/**/*.stories.ts", + "src/**/*.stories.js", + "src/**/*.stories.jsx", + "src/**/*.stories.tsx", + "src/**/*.stories.mdx", + ".storybook/*.js", + ".storybook/*.ts" + ] +} diff --git a/libs/shared/components/vite.config.ts b/libs/shared/components/vite.config.ts new file mode 100644 index 000000000..98ff22e76 --- /dev/null +++ b/libs/shared/components/vite.config.ts @@ -0,0 +1,36 @@ +/// +/// +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; +import svgr from 'vite-plugin-svgr'; +import viteTsConfigPaths from 'vite-tsconfig-paths'; + +export default defineConfig({ + cacheDir: '../../../node_modules/.vite/shared-components', + + plugins: [ + svgr(), + react(), + viteTsConfigPaths({ + root: '../../../', + }), + ], + + // Uncomment this if you are using workers. + // worker: { + // plugins: [ + // viteTsConfigPaths({ + // root: '../../../', + // }), + // ], + // }, + + test: { + globals: true, + cache: { + dir: '../../../node_modules/.vitest', + }, + environment: 'jsdom', + include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + }, +}); diff --git a/libs/shared/storybook/.storybook/main.ts b/libs/shared/storybook/.storybook/main.ts index 3ab09e8d5..15142ba69 100644 --- a/libs/shared/storybook/.storybook/main.ts +++ b/libs/shared/storybook/.storybook/main.ts @@ -2,7 +2,12 @@ import type { StorybookConfig } from '@storybook/react-vite'; const config: StorybookConfig = { stories: ['../../../**/*.stories.@(js|jsx|ts|tsx|mdx)'], - addons: ['@storybook/addon-essentials'], + addons: [ + '@storybook/addon-essentials', + 'storybook-addon-pseudo-states', + '@storybook/addon-interactions', + ], + staticDirs: [{ from: '../../assets/files', to: '/images' }], framework: { name: '@storybook/react-vite', options: { diff --git a/libs/shared/storybook/.storybook/preview-head.html b/libs/shared/storybook/.storybook/preview-head.html new file mode 100644 index 000000000..293349bfa --- /dev/null +++ b/libs/shared/storybook/.storybook/preview-head.html @@ -0,0 +1,8 @@ + + + + + diff --git a/libs/shared/storybook/src/decorators.tsx b/libs/shared/storybook/src/decorators.tsx index 49e5085c7..40792ea49 100644 --- a/libs/shared/storybook/src/decorators.tsx +++ b/libs/shared/storybook/src/decorators.tsx @@ -1,23 +1,39 @@ -import type { Preview } from '@storybook/react'; import * as React from 'react'; -import { IntlProvider } from 'react-intl'; + import { Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material'; import { theme } from '@origin/shared/theme'; +import { IntlProvider } from 'react-intl'; +import { MemoryRouter } from 'react-router-dom'; + +import type { Preview } from '@storybook/react'; export const decorators: Preview['decorators'] = [ (StoryComponent) => { return ( - // - - - - // + + + + + + + ); }, ]; const preview: Preview = { decorators, + parameters: { + backgrounds: { + default: 'dark', + values: [ + { + name: 'dark', + value: '#141519', + }, + ], + }, + }, }; export default preview; diff --git a/libs/shared/storybook/vite.config.ts b/libs/shared/storybook/vite.config.ts index e26084052..3692a959a 100644 --- a/libs/shared/storybook/vite.config.ts +++ b/libs/shared/storybook/vite.config.ts @@ -1,10 +1,13 @@ /// -import { defineConfig } from 'vite'; +/// import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; +import svgr from 'vite-plugin-svgr'; import viteTsConfigPaths from 'vite-tsconfig-paths'; export default defineConfig({ plugins: [ + svgr(), react({ babel: { plugins: [ diff --git a/libs/shared/theme/src/Palette.stories.tsx b/libs/shared/theme/src/Palette.stories.tsx new file mode 100644 index 000000000..c9d3a8015 --- /dev/null +++ b/libs/shared/theme/src/Palette.stories.tsx @@ -0,0 +1,195 @@ +import { Box, capitalize, Stack, Typography, useTheme } from '@mui/material'; + +import type { + BoxProps, + Palette, + SimplePaletteColorOptions, + StackProps, +} from '@mui/material'; +import type { Meta, StoryObj } from '@storybook/react'; + +const isColor = (value: unknown) => + typeof value === 'string' && value.match(/^(#|rgba?)/); + +const isGradient = (value: unknown) => + typeof value === 'string' && value.match(/^linear-gradient/); + +const meta: Meta = { + title: 'Origin Theme/Palette', +}; + +export interface PaletteViewProps extends StackProps { + palette: Palette; +} + +interface PaletteElemProps extends BoxProps { + keyStr: string; + value: string | number; + contrastBkg?: string; +} + +const PaletteElem = ({ + keyStr, + value, + contrastBkg, + ...rest +}: PaletteElemProps) => { + const theme = useTheme(); + const bkgColor = contrastBkg + ? contrastBkg + : isColor(value) || isGradient(value) + ? value + : '#FFF'; + let valueStr = ['string', 'number'].includes(typeof value) ? value : ''; + if ( + typeof value === 'number' || + typeof value === 'function' || + keyStr.endsWith('Channel') + ) + return <>; + if (value.split(' ').length === 3) + valueStr = `rbg(${value.split(' ').join(',')})`; + + return ( + + + + {keyStr} + + + {valueStr} + + + + {contrastBkg && ( + + T + + )} + {/* {!value && <>} */} + {!isColor(value) && !isGradient(value) && ( + + {capitalize(typeof value)} value + + )} + + + ); +}; + +const PaletteView = ({ palette, ...rest }: PaletteViewProps) => ( + + {Object.keys(palette) + .filter( + (key) => + ![ + 'mode', + 'contrastThreshold', + 'getContrastText', + 'augmentColor', + 'tonalOffset', + 'Alert', + 'AppBar', + 'Avatar', + 'Button', + 'Chip', + 'FilledInput', + 'LinearProgress', + 'Skeleton', + 'Slider', + 'SnackbarContent', + 'SpeedDialAction', + 'StepConnector', + 'StepContent', + 'Switch', + 'TableCell', + 'Tooltip', + 'dividerChannel', + 'colorScheme', + ].includes(key), + ) + .map((key: string) => ( + + + {capitalize(key)} + + {typeof palette[key] === 'object' ? ( + Object.keys(palette[key]).map((k) => ( + + )) + ) : ( + + )} + + ))} + +); + +export default meta; + +const Container = () => { + const { palette } = useTheme(); + return ; +}; + +export const Default: StoryObj = { + render: (args) => , + args: { defaultMode: 'dark' }, +}; diff --git a/libs/shared/theme/src/theme.tsx b/libs/shared/theme/src/theme.tsx index 7ea8b17cc..9b90ffdd0 100644 --- a/libs/shared/theme/src/theme.tsx +++ b/libs/shared/theme/src/theme.tsx @@ -1,14 +1,26 @@ -import { experimental_extendTheme as extendTheme } from '@mui/material/styles'; +import { + alpha, + experimental_extendTheme as extendTheme, +} from '@mui/material/styles'; +import shadows from '@mui/material/styles/shadows'; declare module '@mui/material/styles' { interface TypeBackground { gradient1: string; gradient2: string; + gradient3: string; + gradientSuccess: string; + gradientHover: string; + gradientHoverActionButton: string; } interface TypeBackgroundOptions { gradient1: string; gradient2: string; + gradient3: string; + gradientSuccess: string; + gradientHover: string; + gradientHoverActionButton: string; } interface Shape { @@ -25,25 +37,74 @@ export const theme = extendTheme({ dark: { palette: { primary: { - main: 'rgb(130, 134, 153)', - contrastText: '#fff', + main: '#8c66fc', + dark: '#0274f1', + light: '#b361e6', + contrastText: '#FAFBFB', }, - divider: '#141519', + divider: '#101113', background: { - paper: 'rgb(30, 31, 37)', - default: '#141519', + paper: '#1E1F25', + default: '#101113', + // TODO cleanup these gradients after theme is properly configured -> gradients can be generated based on css vars gradient1: 'linear-gradient(90deg,#8c66fc -28.99%,#0274f1 144.97%)', - gradient2: 'linear-gradient(90deg,#b361e6 -28.99%,#6a36fc 144.97%)', + gradient2: 'linear-gradient(90deg, #8C66FC 0%, #0274F1 100%)', + gradient3: + 'linear-gradient(90deg, rgb(179, 97, 230) 20.29%, rgb(106, 54, 252) 79.06%)', + gradientSuccess: + 'linear-gradient(97.67deg, rgb(102, 254, 144) -10.09%, rgb(102, 217, 254) 120.99%)', + gradientHover: + 'linear-gradient(0deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.05) 100%), #1E1F25', + gradientHoverActionButton: + 'linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%), linear-gradient(90deg, #8C66FC 0%, #0274F1 100%)', + }, + action: { + hoverOpacity: 0.1, + disabledOpacity: 0.3, + }, + text: { + primary: '#828699', + secondary: '#BABDCC', + }, + grey: { + 200: '#B5BECA', + 400: '#515466', + 500: '#252833', + 700: '#141519', + 800: '#282A32', + 900: '#18191C', + }, + warning: { + main: '#FFDC86', + }, + error: { + main: '#FF8686', }, }, }, }, typography: { - fontFamily: 'Inter, Helvetica, Arial, sans-serif', + fontFamily: 'Inter, Sailec, Helvetica, Arial, sans-serif', + body1: { + fontSize: '0.875rem', + lineHeight: '1.4375rem', + }, + body2: { + fontSize: '0.75rem', + fontWeight: 400, + lineHeight: '1.25rem', + }, }, shape: { - borderRadius: 11, + borderRadius: 4, }, + shadows: [ + // @ts-expect-error remove one box shadow + ...shadows.slice(0, -2), + '0px 6px 12px 0px rgba(0, 0, 0, 0.20)', + 'rgba(0, 0, 0, 0.25) 0px 4px 4px 0px', + '0px 1.7955275774002075px 5.32008171081543px 0px rgba(0, 0, 0, 0.03), 0px 6.030803203582764px 17.869047164916992px 0px rgba(0, 0, 0, 0.04), 0px 27px 80px 0px rgba(0, 0, 0, 0.07)', + ], components: { MuiButton: { styleOverrides: { @@ -54,29 +115,51 @@ export const theme = extendTheme({ color: theme.palette.primary.contrastText, background: theme.palette.background.gradient1, }), + containedSecondary: ({ theme }) => ({ + color: theme.palette.primary.contrastText, + background: alpha(theme.palette.common.white, 0.1), + boxShadow: 'none', + '&:hover': { + background: theme.palette.background.paper, + }, + }), + }, + defaultProps: { + disableTouchRipple: true, + }, + }, + MuiIconButton: { + defaultProps: { + disableTouchRipple: true, + }, + }, + MuiCard: { + styleOverrides: { + root: { + backgroundImage: 'none', + }, }, }, MuiTab: { styleOverrides: { root: ({ theme }) => ({ + minHeight: 0, + paddingBlock: theme.spacing(1), + paddingInline: theme.spacing(2.5), '&.Mui-selected': { - zIndex: 2, color: theme.palette.primary.contrastText, }, }), }, + defaultProps: { + disableRipple: true, + disableTouchRipple: true, + }, }, MuiTabs: { styleOverrides: { - root: ({ theme }) => ({ - backgroundColor: theme.palette.background.paper, - borderRadius: theme.shape.borderRadius * 5, - }), indicator: ({ theme }) => ({ - height: '100%', background: theme.palette.background.gradient2, - zIndex: 1, - borderRadius: theme.shape.borderRadius * 5, }), }, }, @@ -93,7 +176,7 @@ export const theme = extendTheme({ root: ({ theme }) => ({ '&.Mui-selected': { backgroundColor: 'transparent', - color: theme.palette.primary.main, + color: theme.palette.text.secondary, '&:hover': { backgroundColor: theme.palette.grey[800], }, @@ -118,37 +201,103 @@ export const theme = extendTheme({ MuiFormControl: { styleOverrides: { root: { - position: 'static' - } - } + position: 'static', + }, + }, }, MuiFormLabel: { styleOverrides: { - root: { - '&.MuiInputLabel-root':{ + root: ({ theme }) => ({ + '&.MuiInputLabel-root': { position: 'static', transform: 'none', - transformOrigin: 'none', - fontSize: '0.75rem', - marginBlockEnd: '0.25rem' - } - } - } + transformOrigin: 'initial', + fontSize: theme.typography.pxToRem(14), + marginBlockEnd: '0.5rem', + color: `${theme.palette.text.primary}`, + }, + }), + }, }, MuiInputBase: { styleOverrides: { - root: ({theme})=>({ - borderRadius: 40, + root: ({ theme }) => ({ + borderRadius: 20, border: '1px solid', - borderColor:theme.palette.info.main, - fontSize: '1rem', + borderColor: theme.palette.info.main, backgroundColor: theme.palette.background.default, width: 'auto', - padding: '7px 12px', - - - }) - } - } + paddingBlock: theme.spacing(0.5), + paddingInline: theme.spacing(1.5), + + '& .MuiInputBase-input': { + color: theme.palette.text.primary, + fontSize: theme.typography.pxToRem(14), + }, + }), + input: ({ theme }) => ({ + padding: theme.spacing(0.5), + }), + }, + }, + MuiAccordion: { + styleOverrides: { + root: ({ theme }) => ({ + borderRadius: theme.shape.borderRadius, + backgroundColor: theme.palette.grey[900], + border: '1px solid', + borderColor: alpha(theme.palette.grey[200], 0.2), + boxShadow: 'none', + '&:before': { + height: 0, + }, + }), + }, + }, + MuiTableCell: { + styleOverrides: { + root: ({ theme }) => ({ + paddingInline: theme.spacing(5), + paddingBlock: theme.spacing(3), + color: theme.palette.primary.contrastText, + }), + head: ({ theme }) => ({ + color: theme.palette.text.secondary, + }), + }, + }, + MuiPaginationItem: { + styleOverrides: { + outlined: ({ theme }) => ({ + borderColor: theme.palette.divider, + '&.Mui-selected': { + color: theme.palette.primary.contrastText, + background: theme.palette.background.paper, + }, + }), + }, + }, + MuiPopover: { + styleOverrides: { + root: ({ theme }) => ({ + boxShadow: theme.shadows[23], + backgroundImage: 'none', + borderRadius: theme.shape.borderRadius * 2.5, + background: 'transparent', + }), + paper: { + backgroundImage: 'none', + }, + }, + }, + MuiSkeleton: { + styleOverrides: { + text: ({ theme }) => ({ + borderRadius: theme.shape.borderRadius * 22, + }), + }, + }, }, -}); \ No newline at end of file +}); + +export type Theme = typeof theme; diff --git a/tsconfig.base.json b/tsconfig.base.json index 21b63f18a..fa7f24d88 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -18,6 +18,7 @@ "paths": { "@origin/defi/oeth": ["libs/defi/oeth/src/index.ts"], "@origin/defi/ousd": ["libs/defi/ousd/src/index.ts"], + "@origin/shared/components": ["libs/shared/components/src/index.ts"], "@origin/shared/data-access": ["libs/shared/data-access/src/index.ts"], "@origin/shared/storybook": ["libs/shared/storybook/src/index.ts"], "@origin/shared/theme": ["libs/shared/theme/src/index.ts"] From 32451f076b98b2dda30855fc122aa3c6bb3760fc Mon Sep 17 00:00:00 2001 From: dcodes05 Date: Wed, 23 Aug 2023 13:35:52 +0200 Subject: [PATCH 5/5] feat: oeth app uses shared components library, APY components, History tab --- apps/oeth/index.html | 11 +- apps/oeth/src/components/App.tsx | 17 ++ apps/oeth/src/components/Layout.tsx | 39 +++ apps/oeth/src/components/index.tsx | 1 + apps/oeth/src/index.tsx | 4 - apps/oeth/src/main.tsx | 4 +- apps/oeth/src/views/root/index.tsx | 13 - apps/oeth/tsconfig.app.json | 2 +- apps/oeth/vite.config.ts | 15 +- apps/ousd/index.html | 3 +- .../History/HistoryButton.stories.tsx | 30 +++ .../src/components/History/HistoryButton.tsx | 69 +++++ .../src/components/History/HistoryCard.tsx | 83 ++++++ .../History/HistoryTable.stories.tsx | 116 +++++++++ .../src/components/History/HistoryTable.tsx | 166 ++++++++++++ .../oeth/src/components/History/index.tsx | 1 + libs/defi/oeth/src/components/Swap/Swap.tsx | 4 +- .../oeth/src/components/defi-oeth.stories.tsx | 12 - libs/defi/oeth/src/components/index.tsx | 4 + .../src/components/shared/APY.stories.tsx | 48 ++++ libs/defi/oeth/src/components/shared/APY.tsx | 240 ++++++++++++++++++ .../defi/oeth/src/components/shared/index.tsx | 1 - libs/defi/oeth/src/constants.ts | 11 + libs/defi/oeth/src/index.ts | 2 +- libs/defi/oeth/src/views/Wrap.tsx | 7 +- 25 files changed, 860 insertions(+), 43 deletions(-) create mode 100644 apps/oeth/src/components/App.tsx create mode 100644 apps/oeth/src/components/Layout.tsx create mode 100644 apps/oeth/src/components/index.tsx delete mode 100644 apps/oeth/src/index.tsx delete mode 100644 apps/oeth/src/views/root/index.tsx create mode 100644 libs/defi/oeth/src/components/History/HistoryButton.stories.tsx create mode 100644 libs/defi/oeth/src/components/History/HistoryButton.tsx create mode 100644 libs/defi/oeth/src/components/History/HistoryCard.tsx create mode 100644 libs/defi/oeth/src/components/History/HistoryTable.stories.tsx create mode 100644 libs/defi/oeth/src/components/History/HistoryTable.tsx create mode 100644 libs/defi/oeth/src/components/History/index.tsx delete mode 100644 libs/defi/oeth/src/components/defi-oeth.stories.tsx create mode 100644 libs/defi/oeth/src/components/index.tsx create mode 100644 libs/defi/oeth/src/components/shared/APY.stories.tsx create mode 100644 libs/defi/oeth/src/components/shared/APY.tsx create mode 100644 libs/defi/oeth/src/constants.ts diff --git a/apps/oeth/index.html b/apps/oeth/index.html index d55247934..aaf7aa420 100644 --- a/apps/oeth/index.html +++ b/apps/oeth/index.html @@ -1,4 +1,4 @@ - + @@ -7,7 +7,14 @@ - + + + + +
diff --git a/apps/oeth/src/components/App.tsx b/apps/oeth/src/components/App.tsx new file mode 100644 index 000000000..45621181b --- /dev/null +++ b/apps/oeth/src/components/App.tsx @@ -0,0 +1,17 @@ +import { HistoryView, SwapView, WrapView } from '@origin/defi/oeth'; +import { Route, Routes } from 'react-router-dom'; + +import { Layout } from './Layout'; + +export function App() { + return ( + + }> + } /> + } /> + } /> + } /> + + + ); +} diff --git a/apps/oeth/src/components/Layout.tsx b/apps/oeth/src/components/Layout.tsx new file mode 100644 index 000000000..b404853c0 --- /dev/null +++ b/apps/oeth/src/components/Layout.tsx @@ -0,0 +1,39 @@ +import { Container } from '@mui/material'; +import { TopNav } from '@origin/shared/components'; +import { useIntl } from 'react-intl'; +import { Outlet } from 'react-router-dom'; + +export function Layout() { + const intl = useIntl(); + + return ( + <> + + + + + + ); +} diff --git a/apps/oeth/src/components/index.tsx b/apps/oeth/src/components/index.tsx new file mode 100644 index 000000000..9342f378e --- /dev/null +++ b/apps/oeth/src/components/index.tsx @@ -0,0 +1 @@ +export * from './App'; \ No newline at end of file diff --git a/apps/oeth/src/index.tsx b/apps/oeth/src/index.tsx deleted file mode 100644 index 0fb71c82c..000000000 --- a/apps/oeth/src/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -// placeholder component until we actually start migration -export function OUSDRoot() { - return

ousd

-} \ No newline at end of file diff --git a/apps/oeth/src/main.tsx b/apps/oeth/src/main.tsx index 1898e9b7f..5e65c7a48 100644 --- a/apps/oeth/src/main.tsx +++ b/apps/oeth/src/main.tsx @@ -1,7 +1,6 @@ import { StrictMode } from 'react'; import * as ReactDOM from 'react-dom/client'; import { BrowserRouter } from 'react-router-dom'; -import { OethRoot } from './views/root'; import { QueryClientProvider } from '@tanstack/react-query'; import { queryClient } from '@origin/shared/data-access'; import { theme } from '@origin/shared/theme'; @@ -11,6 +10,7 @@ import { } from '@mui/material'; import { IntlProvider } from 'react-intl'; import { en } from './lang'; +import { App } from './components'; const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement @@ -22,7 +22,7 @@ root.render( - + diff --git a/apps/oeth/src/views/root/index.tsx b/apps/oeth/src/views/root/index.tsx deleted file mode 100644 index 517bdaba2..000000000 --- a/apps/oeth/src/views/root/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -// placeholder component until we actually start migration -import { DefiOeth } from '@origin/defi/oeth'; -import { useIntl } from 'react-intl'; - -export function OethRoot() { - const intl = useIntl(); - return ( - <> -

{intl.formatMessage({ defaultMessage: 'test OEth' })}

- - - ); -} diff --git a/apps/oeth/tsconfig.app.json b/apps/oeth/tsconfig.app.json index e4322b551..eb2d36377 100644 --- a/apps/oeth/tsconfig.app.json +++ b/apps/oeth/tsconfig.app.json @@ -18,5 +18,5 @@ "src/**/*.spec.jsx", "src/**/*.test.jsx" ], - "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"] + "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx", "../../libs/defi/oeth/src/components/TopNav.tsx"] } diff --git a/apps/oeth/vite.config.ts b/apps/oeth/vite.config.ts index 39f6c9cba..89ae276f5 100644 --- a/apps/oeth/vite.config.ts +++ b/apps/oeth/vite.config.ts @@ -1,6 +1,10 @@ /// -import { defineConfig } from 'vite'; +/// import react from '@vitejs/plugin-react'; +import path from 'path'; +import { defineConfig } from 'vite'; +import { viteStaticCopy } from 'vite-plugin-static-copy'; +import svgr from 'vite-plugin-svgr'; import viteTsConfigPaths from 'vite-tsconfig-paths'; export default defineConfig({ @@ -17,6 +21,7 @@ export default defineConfig({ }, plugins: [ + svgr(), react({ babel: { plugins: [ @@ -33,6 +38,14 @@ export default defineConfig({ viteTsConfigPaths({ root: '../../', }), + viteStaticCopy({ + targets: [ + { + src: path.resolve(__dirname, '../../libs/shared/assets/files/*'), + dest: './images', + }, + ], + }), ], // Uncomment this if you are using workers. diff --git a/apps/ousd/index.html b/apps/ousd/index.html index 53b2040b3..01bc9d957 100644 --- a/apps/ousd/index.html +++ b/apps/ousd/index.html @@ -1,4 +1,4 @@ - + @@ -7,7 +7,6 @@ -
diff --git a/libs/defi/oeth/src/components/History/HistoryButton.stories.tsx b/libs/defi/oeth/src/components/History/HistoryButton.stories.tsx new file mode 100644 index 000000000..6943e2112 --- /dev/null +++ b/libs/defi/oeth/src/components/History/HistoryButton.stories.tsx @@ -0,0 +1,30 @@ +import { HistoryFilterButton } from './HistoryButton'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: HistoryFilterButton, + title: 'History/History filter button', + args: { + circle: false, + children: 'Test', + }, + render: (args) => , +}; + +export default meta; + +export const Primary: StoryObj = {}; + +export const WithCircle: StoryObj = { + args: { + circle: true, + }, +}; + +export const Selected: StoryObj = { + args: { + circle: true, + selected: true, + }, +}; diff --git a/libs/defi/oeth/src/components/History/HistoryButton.tsx b/libs/defi/oeth/src/components/History/HistoryButton.tsx new file mode 100644 index 000000000..9c5f4b672 --- /dev/null +++ b/libs/defi/oeth/src/components/History/HistoryButton.tsx @@ -0,0 +1,69 @@ +import { alpha, Box, Button } from '@mui/material'; + +import type { ButtonProps, SxProps } from '@mui/material'; +import type { Theme } from '@origin/shared/theme'; + +interface Props extends ButtonProps { + circle?: boolean; + selected?: boolean; +} + +export function HistoryFilterButton({ + children, + circle = false, + onClick, + selected = false, + sx, + ...rest +}: Props) { + return ( + + ); +} + +function Circle({ sx }: { sx: SxProps }) { + return ( + theme.palette.background.default, + height: '0.5rem', + width: '0.5rem', + borderRadius: '100%', + ...sx, + }} + /> + ); +} diff --git a/libs/defi/oeth/src/components/History/HistoryCard.tsx b/libs/defi/oeth/src/components/History/HistoryCard.tsx new file mode 100644 index 000000000..c13d944c7 --- /dev/null +++ b/libs/defi/oeth/src/components/History/HistoryCard.tsx @@ -0,0 +1,83 @@ +import { useState } from 'react'; + +import { Box, Button, Stack, Typography } from '@mui/material'; +import { Card } from '@origin/shared/components'; +import { useIntl } from 'react-intl'; + +import { HistoryFilterButton } from './HistoryButton'; +import { HistoryTable } from './HistoryTable'; + +import type { ColumnFilter } from '@tanstack/react-table'; + +export function HistoryCard() { + const [isConnected, setConnectionState] = useState(false); + const intl = useIntl(); + const [filter, setFilter] = useState({ + id: 'type', + value: [], + }); + + function filterRows(value: string) { + setFilter((prev) => { + if ((prev.value as string[]).includes(value)) { + return { + ...prev, + value: [...(prev.value as string[]).filter((val) => val !== value)], + }; + } else { + return { + ...prev, + value: [...(prev.value as string[]), value], + }; + } + }); + } + return ( + + History + + {[ + intl.formatMessage({ defaultMessage: 'Received' }), + intl.formatMessage({ defaultMessage: 'Sent' }), + intl.formatMessage({ defaultMessage: 'Swap' }), + intl.formatMessage({ defaultMessage: 'Yield' }), + ].map((label) => ( + filterRows(label.toLowerCase())} + > + {label} + + ))} + + + {intl.formatMessage({ defaultMessage: 'Export CSV' })} + + + } + > + {isConnected ? ( + + ) : ( + + + {intl.formatMessage({ + defaultMessage: 'Connect your wallet to see your history', + })} + + + + )} + + ); +} diff --git a/libs/defi/oeth/src/components/History/HistoryTable.stories.tsx b/libs/defi/oeth/src/components/History/HistoryTable.stories.tsx new file mode 100644 index 000000000..dc19da82b --- /dev/null +++ b/libs/defi/oeth/src/components/History/HistoryTable.stories.tsx @@ -0,0 +1,116 @@ +import { useState } from 'react'; + +import { faker } from '@faker-js/faker'; +import { Container, Stack, Typography } from '@mui/material'; +import { within } from '@storybook/testing-library'; + +import { HistoryFilterButton } from './HistoryButton'; +import { HistoryTable } from './HistoryTable'; + +import type { Meta, StoryObj } from '@storybook/react'; +import type { ColumnFilter } from '@tanstack/react-table'; + +import type { HistoryRow } from './HistoryTable'; + +const rows = faker.helpers.multiple( + () => ({ + date: faker.date.recent({ days: 35 }), + balance: faker.number.float({ + min: 10000, + max: 10000000000, + precision: 10, + }), + change: faker.number.float({ min: -10, max: 25 }), + type: faker.helpers.arrayElement(['swap', 'received', 'sent', 'yield']), + link: faker.internet.url(), + }), + { count: 150 }, +); + +const WithFilters = () => { + const [filter, setFilter] = useState({ id: 'type', value: [] }); + return ( + + + History + + {['Received', 'Sent', 'Swap', 'Yield'].map((label) => ( + + setFilter((prev) => { + const filter = label.toLowerCase(); + if ((prev.value as string[]).includes(filter)) { + return { + ...prev, + value: [ + ...(prev.value as string[]).filter( + (val) => val !== filter, + ), + ], + }; + } else { + return { + ...prev, + value: [...(prev.value as string[]), filter], + }; + } + }) + } + circle + > + {label} + + ))} + + + + + ); +}; + +const meta: Meta = { + component: HistoryTable, + title: 'History/History table', + args: { + isLoading: false, + rows, + }, + render: (args) => ( + + + + ), +}; +export default meta; + +export const Primary = { + args: {}, +}; + +export const Filter: StoryObj = { + render: () => ( + + + + ), +}; + +export const SelectedFilters: StoryObj = { + render: () => ( + + + + ), + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await canvas.getByText('Received').click(); + await canvas.getByText('Yield').click(); + }, +}; diff --git a/libs/defi/oeth/src/components/History/HistoryTable.tsx b/libs/defi/oeth/src/components/History/HistoryTable.tsx new file mode 100644 index 000000000..2401bb7dc --- /dev/null +++ b/libs/defi/oeth/src/components/History/HistoryTable.tsx @@ -0,0 +1,166 @@ +import { useEffect, useMemo, useState } from 'react'; + +import { + Box, + Pagination, + Stack, + Table, + TableBody, + TableCell, + TableHead, + TableRow, +} from '@mui/material'; +import { LinkIcon, quantityFormat } from '@origin/shared/components'; +import { + createColumnHelper, + flexRender, + getCoreRowModel, + getFilteredRowModel, + getPaginationRowModel, + useReactTable, +} from '@tanstack/react-table'; +import { useIntl } from 'react-intl'; + +import type { ColumnFilter, ColumnFiltersState } from '@tanstack/react-table'; + +type Filter = 'swap' | 'yield' | 'received' | 'sent'; + +export interface HistoryRow { + date: Date; + type: Filter; + change: number; + balance: number; + link: string; +} + +interface Props { + rows: HistoryRow[]; + isLoading: boolean; + filter: ColumnFilter; +} + +const columnHelper = createColumnHelper(); + +export function HistoryTable({ rows, filter }: Props) { + const intl = useIntl(); + const [columnFilters, setColumnFilters] = useState([]); + const columns = useMemo( + () => [ + columnHelper.accessor('date', { + cell: (info) => intl.formatDate(info.getValue()), + header: intl.formatMessage({ defaultMessage: 'Date' }), + }), + columnHelper.accessor('type', { + id: 'type', + cell: (info) => info.getValue(), + header: intl.formatMessage({ defaultMessage: 'Type' }), + enableColumnFilter: true, + filterFn: (row, _, value) => { + if (!value.value.length) return true; + return value.value.includes(row.original.type); + }, + }), + columnHelper.accessor('change', { + cell: (info) => intl.formatNumber(info.getValue(), quantityFormat), + header: intl.formatMessage({ defaultMessage: 'Change' }), + }), + columnHelper.accessor('balance', { + cell: (info) => ( + + + {intl.formatNumber(info.getValue(), quantityFormat)} + + + + + ), + header: intl.formatMessage({ defaultMessage: 'OETH Balance' }), + }), + ], + [intl], + ); + + const table = useReactTable({ + data: rows, + columns, + state: { + pagination: { + pageSize: 20, + pageIndex: 0, + }, + columnFilters, + }, + getCoreRowModel: getCoreRowModel(), + getPaginationRowModel: getPaginationRowModel(), + getFilteredRowModel: getFilteredRowModel(), + onColumnFiltersChange: setColumnFilters, + // add when we do server side pagination + // manualPagination: true, + pageCount: rows.length / 3, + // add when we do server side pagination + // onPaginationChange: setPagination + }); + + useEffect(() => { + table.getColumn('type')?.setFilterValue(filter); + }, [filter, table]); + return ( + + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + + ))} + + ))} + + + {table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + ))} + +
+ table.setPageIndex(page)} + /> +
+ ); +} diff --git a/libs/defi/oeth/src/components/History/index.tsx b/libs/defi/oeth/src/components/History/index.tsx new file mode 100644 index 000000000..27e462d84 --- /dev/null +++ b/libs/defi/oeth/src/components/History/index.tsx @@ -0,0 +1 @@ +export * from './HistoryCard'; diff --git a/libs/defi/oeth/src/components/Swap/Swap.tsx b/libs/defi/oeth/src/components/Swap/Swap.tsx index 5d1b6583d..6850604fb 100644 --- a/libs/defi/oeth/src/components/Swap/Swap.tsx +++ b/libs/defi/oeth/src/components/Swap/Swap.tsx @@ -104,7 +104,9 @@ export function Swap() { } > - console.log('test')}>Swap + console.log('test')}> + {intl.formatMessage({ defaultMessage: 'Swap' })} +
= { - component: DefiOeth, - title: 'DefiOeth', -}; -export default Story; - -export const Primary = { - args: {}, -}; diff --git a/libs/defi/oeth/src/components/index.tsx b/libs/defi/oeth/src/components/index.tsx new file mode 100644 index 000000000..b99afaa6d --- /dev/null +++ b/libs/defi/oeth/src/components/index.tsx @@ -0,0 +1,4 @@ +export * from './shared'; +export * from './Swap'; +export * from './Wrap'; +export * from './History'; diff --git a/libs/defi/oeth/src/components/shared/APY.stories.tsx b/libs/defi/oeth/src/components/shared/APY.stories.tsx new file mode 100644 index 000000000..25356ef12 --- /dev/null +++ b/libs/defi/oeth/src/components/shared/APY.stories.tsx @@ -0,0 +1,48 @@ +import { Container } from '@mui/material'; + +import { APY } from './APY'; + +import type { Meta, StoryObj } from '@storybook/react'; + +const meta: Meta = { + component: APY, + title: 'OETH/APY', + args: { + tokenIcon: ' https://app.oeth.com/images/oeth.svg', + value: 8.71, + balance: 250.1937, + pendingYield: 0.0023, + earnings: 15.1937, + }, + render: (args) => ( + + + + ), +}; + +export default meta; + +export const Default: StoryObj = {}; + +export const SmallMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile1', + }, + }, +}; +export const LargeMobile: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'mobile2', + }, + }, +}; +export const Tablet: StoryObj = { + parameters: { + viewport: { + defaultViewport: 'tablet', + }, + }, +}; diff --git a/libs/defi/oeth/src/components/shared/APY.tsx b/libs/defi/oeth/src/components/shared/APY.tsx new file mode 100644 index 000000000..34a7a9307 --- /dev/null +++ b/libs/defi/oeth/src/components/shared/APY.tsx @@ -0,0 +1,240 @@ +import React, { useState } from 'react'; + +import { + alpha, + Box, + Divider, + IconButton, + Menu, + MenuItem, + Stack, + Typography, +} from '@mui/material'; +import { Icon } from '@origin/shared/components'; +import { useIntl } from 'react-intl'; + +const days = [7, 30]; + +interface Props { + value: number; + tokenIcon: string; + balance: number; + pendingYield: number; + earnings: number; +} + +export function APY({ + value, + tokenIcon, + balance, + pendingYield, + earnings, +}: Props) { + const intl = useIntl(); + const [selectedPeriod, setSelectedPeriod] = useState(30); + const [anchorEl, setAnchorEl] = React.useState(null); + + function handleClose() { + setAnchorEl(null); + } + + return ( + <> + + {days.map((day) => ( + { + setSelectedPeriod(day); + setAnchorEl(null); + }} + > + {intl.formatMessage( + { defaultMessage: '{days} day trailing' }, + { days: day }, + )} + + ))} + + + + + {intl.formatMessage( + { defaultMessage: '{days} day trailing APY' }, + { days: selectedPeriod }, + )} + + + + {intl.formatNumber(value / 100, { + minimumFractionDigits: 2, + style: 'percent', + })} + + setAnchorEl(e.currentTarget)} + sx={{ + backgroundColor: (theme) => + alpha(theme.palette.common.white, 0.15), + marginInlineStart: 1, + alignSelf: 'center', + position: 'relative', + height: '26px', + borderRadius: '100%', + top: '-2px', + }} + > + + + + + + + + + + + + + + + + + + + ); +} + +function ValueContainer({ + text, + value, + icon, +}: { + text: string; + value: string; + icon?: string; +}) { + return ( + + + {text} + + + {icon ? ( + + ) : undefined} + + {value} + + + ); +} diff --git a/libs/defi/oeth/src/components/shared/index.tsx b/libs/defi/oeth/src/components/shared/index.tsx index e8593a84b..fa1f0843c 100644 --- a/libs/defi/oeth/src/components/shared/index.tsx +++ b/libs/defi/oeth/src/components/shared/index.tsx @@ -1,2 +1 @@ -export * from './ConnectButton'; export * from './APY'; diff --git a/libs/defi/oeth/src/constants.ts b/libs/defi/oeth/src/constants.ts new file mode 100644 index 000000000..2337e9e1d --- /dev/null +++ b/libs/defi/oeth/src/constants.ts @@ -0,0 +1,11 @@ +import { FormatNumberOptions } from 'react-intl'; + +export const numberCurrencyFormat: FormatNumberOptions = { + minimumFractionDigits: 2, + style: 'currency', + currency: 'USD', +}; + +export const valueFormat: FormatNumberOptions = { + minimumFractionDigits: 2, +}; diff --git a/libs/defi/oeth/src/index.ts b/libs/defi/oeth/src/index.ts index 1147309dc..792962380 100644 --- a/libs/defi/oeth/src/index.ts +++ b/libs/defi/oeth/src/index.ts @@ -1 +1 @@ -export * from './components/defi-oeth'; +export * from './views'; diff --git a/libs/defi/oeth/src/views/Wrap.tsx b/libs/defi/oeth/src/views/Wrap.tsx index 3adce7712..54ba19d6a 100644 --- a/libs/defi/oeth/src/views/Wrap.tsx +++ b/libs/defi/oeth/src/views/Wrap.tsx @@ -1,9 +1,8 @@ import { Button, Stack } from '@mui/material'; -import { Card } from '@origin/shared/components'; +import { ActionButton, Card } from '@origin/shared/components'; import { useIntl } from 'react-intl'; import { APY, PortfolioSwap } from '../components'; -import { ConnectWallet } from '../components/shared'; export function WrapView() { const intl = useIntl(); @@ -48,7 +47,9 @@ export function WrapView() { - + console.log('test')}> + {intl.formatMessage({ defaultMessage: 'Connect' })} + );