diff --git a/.eslintrc.yml b/.eslintrc.yml index f54d9140..05b23a82 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -37,6 +37,15 @@ rules: - blankLine: always prev: '*' next: if + - blankLine: always + prev: 'if' + next: '*' + - blankLine: always + prev: '*' + next: switch + - blankLine: always + prev: switch + next: '*' react/prop-types: off react/display-name: off react/self-closing-comp: error diff --git a/package.json b/package.json index a6f8c732..9e9eafe9 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "prepare": "husky install" }, "dependencies": { - "@commitlint/cli": "^17.6.5", - "@commitlint/config-conventional": "^17.6.5", + "@commitlint/cli": "^17.6.6", + "@commitlint/config-conventional": "^17.6.6", "@dnd-kit/core": "^6.0.8", "@dnd-kit/modifiers": "^6.0.1", "@dnd-kit/sortable": "^7.0.2", @@ -30,34 +30,35 @@ "@graphql-codegen/client-preset": "4.0.1", "@graphql-codegen/introspection": "4.0.0", "@graphql-typed-document-node/core": "^3.2.0", - "@mantine/carousel": "^6.0.14", - "@mantine/core": "^6.0.14", - "@mantine/dates": "^6.0.14", - "@mantine/dropzone": "^6.0.14", - "@mantine/form": "^6.0.14", - "@mantine/hooks": "^6.0.14", - "@mantine/modals": "^6.0.14", - "@mantine/notifications": "^6.0.14", - "@mantine/nprogress": "^6.0.14", - "@mantine/prism": "^6.0.14", - "@mantine/spotlight": "^6.0.14", - "@mantine/tiptap": "^6.0.14", + "@mantine/carousel": "^6.0.15", + "@mantine/core": "^6.0.15", + "@mantine/dates": "^6.0.15", + "@mantine/dropzone": "^6.0.15", + "@mantine/form": "^6.0.15", + "@mantine/hooks": "^6.0.15", + "@mantine/modals": "^6.0.15", + "@mantine/notifications": "^6.0.15", + "@mantine/nprogress": "^6.0.15", + "@mantine/prism": "^6.0.15", + "@mantine/spotlight": "^6.0.15", + "@mantine/tiptap": "^6.0.15", "@monaco-editor/react": "^4.5.1", "@nanostores/persistent": "^0.9.0", "@nanostores/react": "^0.7.1", - "@tabler/icons-react": "^2.22.0", + "@tabler/icons-react": "^2.23.0", "@tanstack/eslint-plugin-query": "^4.29.9", - "@tanstack/react-query": "^4.29.15", - "@tanstack/react-query-devtools": "^4.29.15", + "@tanstack/react-query": "^4.29.19", + "@tanstack/react-query-devtools": "^4.29.19", "@tiptap/extension-link": "^2.0.3", "@tiptap/react": "^2.0.3", "@tiptap/starter-kit": "^2.0.3", - "@types/node": "^20.3.1", - "@types/react": "^18.2.13", + "@types/node": "^20.3.2", + "@types/react": "^18.2.14", "@types/react-dom": "^18.2.6", + "@types/urijs": "^1.19.19", "@types/uuid": "^9.0.2", - "@typescript-eslint/eslint-plugin": "^5.60.0", - "@typescript-eslint/parser": "^5.60.0", + "@typescript-eslint/eslint-plugin": "^5.60.1", + "@typescript-eslint/parser": "^5.60.1", "@vitejs/plugin-react-swc": "^3.3.2", "dayjs": "^1.11.8", "embla-carousel-react": "8.0.0-rc07", @@ -69,15 +70,16 @@ "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "framer-motion": "^10.12.17", - "graphiql": "^2.4.7", + "graphiql": "^3.0.0", "graphql": "^16.7.1", "graphql-request": "^6.1.0", "husky": "^8.0.3", - "i18next": "^23.2.3", - "i18next-browser-languagedetector": "^7.0.2", + "i18next": "^23.2.5", + "i18next-browser-languagedetector": "^7.1.0", "immer": "^10.0.2", - "lint-staged": "^13.2.2", - "mantine-datatable": "^2.6.4", + "js-base64": "^3.7.5", + "lint-staged": "^13.2.3", + "mantine-datatable": "^2.6.5", "monaco-editor": "^0.39.0", "monaco-themes": "^0.4.4", "nanostores": "^0.9.2", @@ -86,9 +88,10 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-i18next": "^13.0.1", - "react-router": "^6.13.0", - "react-router-dom": "^6.13.0", - "typescript": "^5.1.3", + "react-router": "^6.14.0", + "react-router-dom": "^6.14.0", + "typescript": "^5.1.6", + "urijs": "^1.19.11", "vite": "^4.3.9", "zod": "^3.21.4" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8437f57e..6f4c0c6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: dependencies: '@commitlint/cli': - specifier: ^17.6.5 - version: 17.6.5 + specifier: ^17.6.6 + version: 17.6.6 '@commitlint/config-conventional': - specifier: ^17.6.5 - version: 17.6.5 + specifier: ^17.6.6 + version: 17.6.6 '@dnd-kit/core': specifier: ^6.0.8 version: 6.0.8(react-dom@18.2.0)(react@18.2.0) @@ -25,7 +25,7 @@ dependencies: version: 3.2.1(react@18.2.0) '@emotion/react': specifier: ^11.11.1 - version: 11.11.1(@types/react@18.2.13)(react@18.2.0) + version: 11.11.1(@types/react@18.2.14)(react@18.2.0) '@faker-js/faker': specifier: ^8.0.2 version: 8.0.2 @@ -37,10 +37,10 @@ dependencies: version: 5.0.3 '@graphiql/toolkit': specifier: ^0.8.4 - version: 0.8.4(@types/node@20.3.1)(graphql@16.7.1) + version: 0.8.4(@types/node@20.3.2)(graphql@16.7.1) '@graphql-codegen/cli': specifier: 4.0.1 - version: 4.0.1(@babel/core@7.22.5)(@types/node@20.3.1)(graphql@16.7.1) + version: 4.0.1(@babel/core@7.22.5)(@types/node@20.3.2)(graphql@16.7.1) '@graphql-codegen/client-preset': specifier: 4.0.1 version: 4.0.1(graphql@16.7.1) @@ -51,41 +51,41 @@ dependencies: specifier: ^3.2.0 version: 3.2.0(graphql@16.7.1) '@mantine/carousel': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(embla-carousel-react@8.0.0-rc07)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(embla-carousel-react@8.0.0-rc07)(react@18.2.0) '@mantine/core': - specifier: ^6.0.14 - version: 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) '@mantine/dates': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(dayjs@1.11.8)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(dayjs@1.11.8)(react@18.2.0) '@mantine/dropzone': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0) '@mantine/form': - specifier: ^6.0.14 - version: 6.0.14(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(react@18.2.0) '@mantine/hooks': - specifier: ^6.0.14 - version: 6.0.14(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(react@18.2.0) '@mantine/modals': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0) '@mantine/notifications': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0) '@mantine/nprogress': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0) '@mantine/prism': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0) '@mantine/spotlight': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0) '@mantine/tiptap': - specifier: ^6.0.14 - version: 6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(@tabler/icons-react@2.22.0)(@tiptap/extension-link@2.0.3)(@tiptap/react@2.0.3)(react@18.2.0) + specifier: ^6.0.15 + version: 6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(@tabler/icons-react@2.23.0)(@tiptap/extension-link@2.0.3)(@tiptap/react@2.0.3)(react@18.2.0) '@monaco-editor/react': specifier: ^4.5.1 version: 4.5.1(monaco-editor@0.39.0)(react-dom@18.2.0)(react@18.2.0) @@ -96,17 +96,17 @@ dependencies: specifier: ^0.7.1 version: 0.7.1(nanostores@0.9.2)(react@18.2.0) '@tabler/icons-react': - specifier: ^2.22.0 - version: 2.22.0(react@18.2.0) + specifier: ^2.23.0 + version: 2.23.0(react@18.2.0) '@tanstack/eslint-plugin-query': specifier: ^4.29.9 version: 4.29.9 '@tanstack/react-query': - specifier: ^4.29.15 - version: 4.29.15(react-dom@18.2.0)(react@18.2.0) + specifier: ^4.29.19 + version: 4.29.19(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query-devtools': - specifier: ^4.29.15 - version: 4.29.15(@tanstack/react-query@4.29.15)(react-dom@18.2.0)(react@18.2.0) + specifier: ^4.29.19 + version: 4.29.19(@tanstack/react-query@4.29.19)(react-dom@18.2.0)(react@18.2.0) '@tiptap/extension-link': specifier: ^2.0.3 version: 2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3) @@ -117,23 +117,26 @@ dependencies: specifier: ^2.0.3 version: 2.0.3(@tiptap/pm@2.0.3) '@types/node': - specifier: ^20.3.1 - version: 20.3.1 + specifier: ^20.3.2 + version: 20.3.2 '@types/react': - specifier: ^18.2.13 - version: 18.2.13 + specifier: ^18.2.14 + version: 18.2.14 '@types/react-dom': specifier: ^18.2.6 version: 18.2.6 + '@types/urijs': + specifier: ^1.19.19 + version: 1.19.19 '@types/uuid': specifier: ^9.0.2 version: 9.0.2 '@typescript-eslint/eslint-plugin': - specifier: ^5.60.0 - version: 5.60.0(@typescript-eslint/parser@5.60.0)(eslint@8.43.0)(typescript@5.1.3) + specifier: ^5.60.1 + version: 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: ^5.60.0 - version: 5.60.0(eslint@8.43.0)(typescript@5.1.3) + specifier: ^5.60.1 + version: 5.60.1(eslint@8.43.0)(typescript@5.1.6) '@vitejs/plugin-react-swc': specifier: ^3.3.2 version: 3.3.2(vite@4.3.9) @@ -151,10 +154,10 @@ dependencies: version: 8.8.0(eslint@8.43.0) eslint-import-resolver-typescript: specifier: ^3.5.5 - version: 3.5.5(@typescript-eslint/parser@5.60.0)(eslint-plugin-import@2.27.5)(eslint@8.43.0) + version: 3.5.5(@typescript-eslint/parser@5.60.1)(eslint-plugin-import@2.27.5)(eslint@8.43.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.60.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) + version: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.43.0)(prettier@2.8.8) @@ -168,8 +171,8 @@ dependencies: specifier: ^10.12.17 version: 10.12.17(react-dom@18.2.0)(react@18.2.0) graphiql: - specifier: ^2.4.7 - version: 2.4.7(@codemirror/language@6.0.0)(@types/node@20.3.1)(@types/react@18.2.13)(graphql@16.7.1)(react-dom@18.2.0)(react-is@17.0.2)(react@18.2.0) + specifier: ^3.0.0 + version: 3.0.0(@codemirror/language@6.0.0)(@types/node@20.3.2)(@types/react-dom@18.2.6)(@types/react@18.2.14)(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0) graphql: specifier: ^16.7.1 version: 16.7.1 @@ -180,20 +183,23 @@ dependencies: specifier: ^8.0.3 version: 8.0.3 i18next: - specifier: ^23.2.3 - version: 23.2.3 + specifier: ^23.2.5 + version: 23.2.5 i18next-browser-languagedetector: - specifier: ^7.0.2 - version: 7.0.2 + specifier: ^7.1.0 + version: 7.1.0 immer: specifier: ^10.0.2 version: 10.0.2 + js-base64: + specifier: ^3.7.5 + version: 3.7.5 lint-staged: - specifier: ^13.2.2 - version: 13.2.2 + specifier: ^13.2.3 + version: 13.2.3 mantine-datatable: - specifier: ^2.6.4 - version: 2.6.4(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react@18.2.0) + specifier: ^2.6.5 + version: 2.6.5(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react@18.2.0) monaco-editor: specifier: ^0.39.0 version: 0.39.0 @@ -217,25 +223,33 @@ dependencies: version: 18.2.0(react@18.2.0) react-i18next: specifier: ^13.0.1 - version: 13.0.1(i18next@23.2.3)(react-dom@18.2.0)(react@18.2.0) + version: 13.0.1(i18next@23.2.5)(react-dom@18.2.0)(react@18.2.0) react-router: - specifier: ^6.13.0 - version: 6.13.0(react@18.2.0) + specifier: ^6.14.0 + version: 6.14.0(react@18.2.0) react-router-dom: - specifier: ^6.13.0 - version: 6.13.0(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.14.0 + version: 6.14.0(react-dom@18.2.0)(react@18.2.0) typescript: - specifier: ^5.1.3 - version: 5.1.3 + specifier: ^5.1.6 + version: 5.1.6 + urijs: + specifier: ^1.19.11 + version: 1.19.11 vite: specifier: ^4.3.9 - version: 4.3.9(@types/node@20.3.1) + version: 4.3.9(@types/node@20.3.2) zod: specifier: ^3.21.4 version: 3.21.4 packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: false + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -904,13 +918,13 @@ packages: w3c-keyname: 2.2.8 dev: false - /@commitlint/cli@17.6.5: - resolution: {integrity: sha512-3PQrWr/uo6lzF5k7n5QuosCYnzaxP9qGBp3jhWP0Vmsa7XA6wrl9ccPqfQyXpSbQE3zBROVO3TDqgPKe4tfmLQ==} + /@commitlint/cli@17.6.6: + resolution: {integrity: sha512-sTKpr2i/Fjs9OmhU+beBxjPavpnLSqZaO6CzwKVq2Tc4UYVTMFgpKOslDhUBVlfAUBfjVO8ParxC/MXkIOevEA==} engines: {node: '>=v14'} hasBin: true dependencies: '@commitlint/format': 17.4.4 - '@commitlint/lint': 17.6.5 + '@commitlint/lint': 17.6.6 '@commitlint/load': 17.5.0 '@commitlint/read': 17.5.1 '@commitlint/types': 17.4.4 @@ -924,8 +938,8 @@ packages: - '@swc/wasm' dev: false - /@commitlint/config-conventional@17.6.5: - resolution: {integrity: sha512-Xl9H9KLl86NZm5CYNTNF9dcz1xelE/EbvhWIWcYxG/rn3UWYWdWmmnX2q6ZduNdLFSGbOxzUpIx61j5zxbeXxg==} + /@commitlint/config-conventional@17.6.6: + resolution: {integrity: sha512-phqPz3BDhfj49FUYuuZIuDiw+7T6gNAEy7Yew1IBHqSohVUCWOK2FXMSAExzS2/9X+ET93g0Uz83KjiHDOOFag==} engines: {node: '>=v14'} dependencies: conventional-changelog-conventionalcommits: 5.0.0 @@ -964,19 +978,19 @@ packages: chalk: 4.1.2 dev: false - /@commitlint/is-ignored@17.6.5: - resolution: {integrity: sha512-CQvAPt9gX7cuUbMrIaIMKczfWJqqr6m8IlJs0F2zYwyyMTQ87QMHIj5jJ5HhOaOkaj6dvTMVGx8Dd1I4xgUuoQ==} + /@commitlint/is-ignored@17.6.6: + resolution: {integrity: sha512-4Fw875faAKO+2nILC04yW/2Vy/wlV3BOYCSQ4CEFzriPEprc1Td2LILmqmft6PDEK5Sr14dT9tEzeaZj0V56Gg==} engines: {node: '>=v14'} dependencies: '@commitlint/types': 17.4.4 - semver: 7.5.0 + semver: 7.5.2 dev: false - /@commitlint/lint@17.6.5: - resolution: {integrity: sha512-BSJMwkE4LWXrOsiP9KoHG+/heSDfvOL/Nd16+ojTS/DX8HZr8dNl8l3TfVr/d/9maWD8fSegRGtBtsyGuugFrw==} + /@commitlint/lint@17.6.6: + resolution: {integrity: sha512-5bN+dnHcRLkTvwCHYMS7Xpbr+9uNi0Kq5NR3v4+oPNx6pYXt8ACuw9luhM/yMgHYwW0ajIR20wkPAFkZLEMGmg==} engines: {node: '>=v14'} dependencies: - '@commitlint/is-ignored': 17.6.5 + '@commitlint/is-ignored': 17.6.6 '@commitlint/parse': 17.6.5 '@commitlint/rules': 17.6.5 '@commitlint/types': 17.4.4 @@ -990,16 +1004,16 @@ packages: '@commitlint/execute-rule': 17.4.0 '@commitlint/resolve-extends': 17.4.4 '@commitlint/types': 17.4.4 - '@types/node': 20.3.1 + '@types/node': 20.3.2 chalk: 4.1.2 cosmiconfig: 8.2.0 - cosmiconfig-typescript-loader: 4.3.0(@types/node@20.3.1)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.3) + cosmiconfig-typescript-loader: 4.3.0(@types/node@20.3.2)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.6) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) - typescript: 5.1.3 + ts-node: 10.9.1(@types/node@20.3.2)(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -1085,7 +1099,7 @@ packages: react: '>=16.8.0' dependencies: react: 18.2.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@dnd-kit/core@6.0.8(react-dom@18.2.0)(react@18.2.0): @@ -1098,7 +1112,7 @@ packages: '@dnd-kit/utilities': 3.2.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@dnd-kit/modifiers@6.0.1(@dnd-kit/core@6.0.8)(react@18.2.0): @@ -1110,7 +1124,7 @@ packages: '@dnd-kit/core': 6.0.8(react-dom@18.2.0)(react@18.2.0) '@dnd-kit/utilities': 3.2.1(react@18.2.0) react: 18.2.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@dnd-kit/sortable@7.0.2(@dnd-kit/core@6.0.8)(react@18.2.0): @@ -1122,7 +1136,7 @@ packages: '@dnd-kit/core': 6.0.8(react-dom@18.2.0)(react@18.2.0) '@dnd-kit/utilities': 3.2.1(react@18.2.0) react: 18.2.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@dnd-kit/utilities@3.2.1(react@18.2.0): @@ -1131,7 +1145,7 @@ packages: react: '>=16.8.0' dependencies: react: 18.2.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@emotion/babel-plugin@11.11.0: @@ -1181,7 +1195,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.1(@types/react@18.2.13)(react@18.2.0): + /@emotion/react@11.11.1(@types/react@18.2.14)(react@18.2.0): resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} peerDependencies: '@types/react': '*' @@ -1197,7 +1211,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.13 + '@types/react': 18.2.14 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false @@ -1480,8 +1494,8 @@ packages: resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} dev: false - /@floating-ui/dom@1.4.2: - resolution: {integrity: sha512-VKmvHVatWnewmGGy+7Mdy4cTJX71Pli6v/Wjb5RQBuq5wjUYx+Ef+kRThi8qggZqDgD8CogCpqhRoVp3+yQk+g==} + /@floating-ui/dom@1.4.3: + resolution: {integrity: sha512-nB/68NyaQlcdY22L+Fgd1HERQ7UGv7XFN+tPxwrEfQL4nKtAP/jIZnZtpUlXbtV+VEGHh6W/63Gy2C5biWI3sA==} dependencies: '@floating-ui/core': 1.3.1 dev: false @@ -1492,7 +1506,18 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@floating-ui/dom': 1.4.2 + '@floating-ui/dom': 1.4.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@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.4.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1507,7 +1532,7 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - tabbable: 6.1.2 + tabbable: 6.2.0 dev: false /@fontsource/fira-sans@5.0.3: @@ -1518,26 +1543,27 @@ packages: resolution: {integrity: sha512-y8xlJrYGNRH2l7cDQRRE1AkO2clDqksGQDTNNCi+oGUcpKh1t4V+/ChIctx3Belp+cgKcCGYBNW3yvitlQTMmw==} dev: false - /@graphiql/react@0.17.6(@codemirror/language@6.0.0)(@types/node@20.3.1)(@types/react@18.2.13)(graphql@16.7.1)(react-dom@18.2.0)(react-is@17.0.2)(react@18.2.0): - resolution: {integrity: sha512-3k1paSRbRwVNxr2U80xnRhkws8tSErWlETJvEQBmqRcWbt0+WmwFJorkLnG1n3Wj0Ho6k4a2BAiTfJ6F4SPrLg==} + /@graphiql/react@0.18.0(@codemirror/language@6.0.0)(@types/node@20.3.2)(@types/react-dom@18.2.6)(@types/react@18.2.14)(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OIzUjnxBM4k9DY0DXBMRfU+fTak2tbnmY2o6J5t/vKvqGaa4opRUhgIZEvrerjnktjCxj2dJY706gCwnUZQsNg==} peerDependencies: graphql: ^15.5.0 || ^16.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@graphiql/toolkit': 0.8.4(@types/node@20.3.1)(graphql@16.7.1) - '@reach/combobox': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/dialog': 0.17.0(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@reach/listbox': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/menu-button': 0.17.0(react-dom@18.2.0)(react-is@17.0.2)(react@18.2.0) - '@reach/tooltip': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/visually-hidden': 0.17.0(react-dom@18.2.0)(react@18.2.0) + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + dependencies: + '@graphiql/toolkit': 0.8.4(@types/node@20.3.2)(graphql@16.7.1) + '@headlessui/react': 1.7.15(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.4(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dropdown-menu': 2.0.5(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-tooltip': 1.0.6(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@types/codemirror': 5.60.8 clsx: 1.2.1 codemirror: 5.65.13 - codemirror-graphql: 2.0.8(@codemirror/language@6.0.0)(codemirror@5.65.13)(graphql@16.7.1) + codemirror-graphql: 2.0.9(@codemirror/language@6.0.0)(codemirror@5.65.13)(graphql@16.7.1) copy-to-clipboard: 3.3.3 + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) graphql: 16.7.1 - graphql-language-service: 5.1.6(graphql@16.7.1) + graphql-language-service: 5.1.7(graphql@16.7.1) markdown-it: 12.3.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1546,11 +1572,11 @@ packages: - '@codemirror/language' - '@types/node' - '@types/react' + - '@types/react-dom' - graphql-ws - - react-is dev: false - /@graphiql/toolkit@0.8.4(@types/node@20.3.1)(graphql@16.7.1): + /@graphiql/toolkit@0.8.4(@types/node@20.3.2)(graphql@16.7.1): resolution: {integrity: sha512-cFUGqh3Dau+SD3Vq9EFlZrhzYfaHKyOJveFtaCR+U5Cn/S68p7oy+vQBIdwtO6J2J58FncnwBbVRfr+IvVfZqQ==} peerDependencies: graphql: ^15.5.0 || ^16.0.0 @@ -1561,7 +1587,7 @@ packages: dependencies: '@n1ru4l/push-pull-async-iterable-iterator': 3.2.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.3.1) + meros: 1.3.0(@types/node@20.3.2) transitivePeerDependencies: - '@types/node' dev: false @@ -1576,7 +1602,7 @@ packages: tslib: 2.5.3 dev: false - /@graphql-codegen/cli@4.0.1(@babel/core@7.22.5)(@types/node@20.3.1)(graphql@16.7.1): + /@graphql-codegen/cli@4.0.1(@babel/core@7.22.5)(@types/node@20.3.2)(graphql@16.7.1): resolution: {integrity: sha512-/H4imnGOl3hoPXLKmIiGUnXpmBmeIClSZie/YHDzD5N59cZlGGJlIOOrUlOTDpJx5JNU1MTQcRjyTToOYM5IfA==} hasBin: true peerDependencies: @@ -1590,12 +1616,12 @@ packages: '@graphql-tools/apollo-engine-loader': 8.0.0(graphql@16.7.1) '@graphql-tools/code-file-loader': 8.0.1(@babel/core@7.22.5)(graphql@16.7.1) '@graphql-tools/git-loader': 8.0.1(@babel/core@7.22.5)(graphql@16.7.1) - '@graphql-tools/github-loader': 8.0.0(@babel/core@7.22.5)(@types/node@20.3.1)(graphql@16.7.1) + '@graphql-tools/github-loader': 8.0.0(@babel/core@7.22.5)(@types/node@20.3.2)(graphql@16.7.1) '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.7.1) '@graphql-tools/json-file-loader': 8.0.0(graphql@16.7.1) '@graphql-tools/load': 8.0.0(graphql@16.7.1) - '@graphql-tools/prisma-loader': 8.0.1(@types/node@20.3.1)(graphql@16.7.1) - '@graphql-tools/url-loader': 8.0.0(@types/node@20.3.1)(graphql@16.7.1) + '@graphql-tools/prisma-loader': 8.0.1(@types/node@20.3.2)(graphql@16.7.1) + '@graphql-tools/url-loader': 8.0.0(@types/node@20.3.2)(graphql@16.7.1) '@graphql-tools/utils': 10.0.1(graphql@16.7.1) '@parcel/watcher': 2.1.0 '@whatwg-node/fetch': 0.8.8 @@ -1604,7 +1630,7 @@ packages: debounce: 1.2.1 detect-indent: 6.1.0 graphql: 16.7.1 - graphql-config: 5.0.2(@types/node@20.3.1)(graphql@16.7.1) + graphql-config: 5.0.2(@types/node@20.3.2)(graphql@16.7.1) inquirer: 8.2.5 is-glob: 4.0.3 jiti: 1.18.2 @@ -1615,7 +1641,7 @@ packages: shell-quote: 1.8.1 string-env-interpolation: 1.0.1 ts-log: 2.2.5 - tslib: 2.5.3 + tslib: 2.6.0 yaml: 1.10.2 yargs: 17.7.2 transitivePeerDependencies: @@ -1799,7 +1825,7 @@ packages: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) '@whatwg-node/fetch': 0.9.7 graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 transitivePeerDependencies: - encoding dev: false @@ -1813,7 +1839,7 @@ packages: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) dataloader: 2.2.2 graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 value-or-promise: 1.0.12 dev: false @@ -1827,7 +1853,7 @@ packages: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) globby: 11.1.0 graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 unixify: 1.0.0 transitivePeerDependencies: - '@babel/core' @@ -1846,7 +1872,7 @@ packages: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) dataloader: 2.2.2 graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 value-or-promise: 1.0.12 dev: false @@ -1873,14 +1899,14 @@ packages: graphql: 16.7.1 graphql-ws: 5.14.0(graphql@16.7.1) isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.5.3 + tslib: 2.6.0 ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate dev: false - /@graphql-tools/executor-http@1.0.0(@types/node@20.3.1)(graphql@16.7.1): + /@graphql-tools/executor-http@1.0.0(@types/node@20.3.2)(graphql@16.7.1): resolution: {integrity: sha512-7R9IWRN1Iszyayd4qgguITLLTmRUZ3wSS5umK0xwShB8mFQ5cSsVx6rewPhGIwGEenN6e9ahwcGX9ytuLlw55g==} engines: {node: '>=16.0.0'} peerDependencies: @@ -1892,8 +1918,8 @@ packages: dset: 3.1.2 extract-files: 11.0.0 graphql: 16.7.1 - meros: 1.3.0(@types/node@20.3.1) - tslib: 2.5.3 + meros: 1.3.0(@types/node@20.3.2) + tslib: 2.6.0 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' @@ -1909,7 +1935,7 @@ packages: '@types/ws': 8.5.5 graphql: 16.7.1 isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.5.3 + tslib: 2.6.0 ws: 8.13.0 transitivePeerDependencies: - bufferutil @@ -1926,7 +1952,7 @@ packages: '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) '@repeaterjs/repeater': 3.0.4 graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 value-or-promise: 1.0.12 dev: false @@ -1941,26 +1967,26 @@ packages: graphql: 16.7.1 is-glob: 4.0.3 micromatch: 4.0.5 - tslib: 2.5.3 + tslib: 2.6.0 unixify: 1.0.0 transitivePeerDependencies: - '@babel/core' - supports-color dev: false - /@graphql-tools/github-loader@8.0.0(@babel/core@7.22.5)(@types/node@20.3.1)(graphql@16.7.1): + /@graphql-tools/github-loader@8.0.0(@babel/core@7.22.5)(@types/node@20.3.2)(graphql@16.7.1): resolution: {integrity: sha512-VuroArWKcG4yaOWzV0r19ElVIV6iH6UKDQn1MXemND0xu5TzrFme0kf3U9o0YwNo0kUYEk9CyFM0BYg4he17FA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/executor-http': 1.0.0(@types/node@20.3.1)(graphql@16.7.1) + '@graphql-tools/executor-http': 1.0.0(@types/node@20.3.2)(graphql@16.7.1) '@graphql-tools/graphql-tag-pluck': 8.0.1(@babel/core@7.22.5)(graphql@16.7.1) '@graphql-tools/utils': 10.0.1(graphql@16.7.1) '@whatwg-node/fetch': 0.9.7 graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 value-or-promise: 1.0.12 transitivePeerDependencies: - '@babel/core' @@ -1979,7 +2005,7 @@ packages: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) globby: 11.1.0 graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 unixify: 1.0.0 dev: false @@ -1995,7 +2021,7 @@ packages: '@babel/types': 7.22.5 '@graphql-tools/utils': 10.0.1(graphql@16.7.1) graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 transitivePeerDependencies: - '@babel/core' - supports-color @@ -2010,7 +2036,7 @@ packages: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) graphql: 16.7.1 resolve-from: 5.0.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@graphql-tools/json-file-loader@8.0.0(graphql@16.7.1): @@ -2022,7 +2048,7 @@ packages: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) globby: 11.1.0 graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 unixify: 1.0.0 dev: false @@ -2036,7 +2062,7 @@ packages: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) graphql: 16.7.1 p-limit: 3.1.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@graphql-tools/merge@9.0.0(graphql@16.7.1): @@ -2047,7 +2073,7 @@ packages: dependencies: '@graphql-tools/utils': 10.0.1(graphql@16.7.1) graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@graphql-tools/optimize@2.0.0(graphql@16.7.1): @@ -2060,13 +2086,13 @@ packages: tslib: 2.5.3 dev: false - /@graphql-tools/prisma-loader@8.0.1(@types/node@20.3.1)(graphql@16.7.1): + /@graphql-tools/prisma-loader@8.0.1(@types/node@20.3.2)(graphql@16.7.1): resolution: {integrity: sha512-bl6e5sAYe35Z6fEbgKXNrqRhXlCJYeWKBkarohgYA338/SD9eEhXtg3Cedj7fut3WyRLoQFpHzfiwxKs7XrgXg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/url-loader': 8.0.0(@types/node@20.3.1)(graphql@16.7.1) + '@graphql-tools/url-loader': 8.0.0(@types/node@20.3.2)(graphql@16.7.1) '@graphql-tools/utils': 10.0.1(graphql@16.7.1) '@types/js-yaml': 4.0.5 '@types/json-stable-stringify': 1.0.34 @@ -2083,7 +2109,7 @@ packages: json-stable-stringify: 1.0.2 lodash: 4.17.21 scuid: 1.1.0 - tslib: 2.5.3 + tslib: 2.6.0 yaml-ast-parser: 0.0.43 transitivePeerDependencies: - '@types/node' @@ -2117,11 +2143,11 @@ packages: '@graphql-tools/merge': 9.0.0(graphql@16.7.1) '@graphql-tools/utils': 10.0.1(graphql@16.7.1) graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 value-or-promise: 1.0.12 dev: false - /@graphql-tools/url-loader@8.0.0(@types/node@20.3.1)(graphql@16.7.1): + /@graphql-tools/url-loader@8.0.0(@types/node@20.3.2)(graphql@16.7.1): resolution: {integrity: sha512-rPc9oDzMnycvz+X+wrN3PLrhMBQkG4+sd8EzaFN6dypcssiefgWKToXtRKI8HHK68n2xEq1PyrOpkjHFJB+GwA==} engines: {node: '>=16.0.0'} peerDependencies: @@ -2130,7 +2156,7 @@ packages: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 10.0.0(graphql@16.7.1) '@graphql-tools/executor-graphql-ws': 1.0.1(graphql@16.7.1) - '@graphql-tools/executor-http': 1.0.0(@types/node@20.3.1)(graphql@16.7.1) + '@graphql-tools/executor-http': 1.0.0(@types/node@20.3.2)(graphql@16.7.1) '@graphql-tools/executor-legacy-ws': 1.0.1(graphql@16.7.1) '@graphql-tools/utils': 10.0.1(graphql@16.7.1) '@graphql-tools/wrap': 10.0.0(graphql@16.7.1) @@ -2138,7 +2164,7 @@ packages: '@whatwg-node/fetch': 0.9.7 graphql: 16.7.1 isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.5.3 + tslib: 2.6.0 value-or-promise: 1.0.12 ws: 8.13.0 transitivePeerDependencies: @@ -2156,7 +2182,7 @@ packages: dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@graphql-tools/wrap@10.0.0(graphql@16.7.1): @@ -2169,7 +2195,7 @@ packages: '@graphql-tools/schema': 10.0.0(graphql@16.7.1) '@graphql-tools/utils': 10.0.1(graphql@16.7.1) graphql: 16.7.1 - tslib: 2.5.3 + tslib: 2.6.0 value-or-promise: 1.0.12 dev: false @@ -2181,6 +2207,18 @@ packages: graphql: 16.7.1 dev: false + /@headlessui/react@1.7.15(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OTO0XtoRQ6JPB1cKNFYBZv2Q0JMqMGNhYP1CjPvcJvjz8YGokz8oAj89HIYZGN0gZzn/4kk9iUpmMF4Q21Gsqw==} + engines: {node: '>=10'} + peerDependencies: + react: ^16 || ^17 || ^18 + react-dom: ^16 || ^17 || ^18 + dependencies: + client-only: 0.0.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@humanwhocodes/config-array@0.11.10: resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} @@ -2311,75 +2349,75 @@ packages: - supports-color dev: false - /@mantine/carousel@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(embla-carousel-react@8.0.0-rc07)(react@18.2.0): - resolution: {integrity: sha512-3mITs1jJ3cFL4y/GQQ77LimxbEN8wjsixN1wcH6xQtx5LwD0bkVwXpcjWL6iRTHCUA+9QxPmJzv95nvsL5QfcA==} + /@mantine/carousel@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(embla-carousel-react@8.0.0-rc07)(react@18.2.0): + resolution: {integrity: sha512-5eYPSi8Q6Ze9YDQ8iaNmBHI542PZlzj4SIxF900B1R0D9NckXbev/1pa16Z9ogKNwxttgYzmMq6GDKvfgGzR3A==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 embla-carousel-react: ^7.0.0 react: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) embla-carousel-react: 8.0.0-rc07(react@18.2.0) react: 18.2.0 dev: false - /@mantine/core@6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-O916itwsB5XtEStVZRqp3SlB4aLM0sSgOFYYCVnLJ3E9O9E8h1xhaNEml1FJbMtrlNaXYUd6sy/OSRqNl9DyKA==} + /@mantine/core@6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CN2UV2RXumxac75cWgUPMcHiE36T4ciIpFf20JwpazshnwFNu7scvy6GJDwUouf0zTBLnPMAD1S/B4mIRc3aQw==} peerDependencies: - '@mantine/hooks': 6.0.14 + '@mantine/hooks': 6.0.15 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: '@floating-ui/react': 0.19.2(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/styles': 6.0.14(@emotion/react@11.11.1)(react-dom@18.2.0)(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/styles': 6.0.15(@emotion/react@11.11.1)(react-dom@18.2.0)(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) '@radix-ui/react-scroll-area': 1.0.2(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.6(@types/react@18.2.13)(react@18.2.0) - react-textarea-autosize: 8.3.4(@types/react@18.2.13)(react@18.2.0) + react-remove-scroll: 2.5.6(@types/react@18.2.14)(react@18.2.0) + react-textarea-autosize: 8.3.4(@types/react@18.2.14)(react@18.2.0) transitivePeerDependencies: - '@emotion/react' - '@types/react' dev: false - /@mantine/dates@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(dayjs@1.11.8)(react@18.2.0): - resolution: {integrity: sha512-iQxZcqTpH/sHv1ZdCru3hFLlXQFA+qT/19a1EmtSJrspITZQJ8xYf8xSkkLyY6Wc6KviX2Lp0fSDE72mQvNbyg==} + /@mantine/dates@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(dayjs@1.11.8)(react@18.2.0): + resolution: {integrity: sha512-dUcVZnfZ4AmyIkPCHxv1834oKNf9Ww9T5Dw7YdRzv5zfGBXjf8vY6YtHgaf5/U2fF1NGgMelY08lFxEYMiAi3w==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 dayjs: '>=1.0.0' react: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) dayjs: 1.11.8 react: 18.2.0 dev: false - /@mantine/dropzone@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-rurn7wfqMx4vuU3glS2UpwbKId+TB7H1mY4s5Z2YExMb5ffty58G+io10ACKIhQ7iTgcvxpK9fyFVLsnRHT64A==} + /@mantine/dropzone@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-f03se8qE7AEcg6sYaRDhsvU0EjyAiQKtDGrKVDlnKL1zGDe1ATm31GbKWDjsouMIuoZCIdEdhEOFArV0B+Z2Ag==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-dropzone: 14.2.3(react@18.2.0) dev: false - /@mantine/form@6.0.14(react@18.2.0): - resolution: {integrity: sha512-2QlDN3PBMxHUxtoBy0ycc3InpATGje5sJXmw/Co9qiVtKUHe5pxcVl341CnA+MCI91uC2Ycucf20n/8GTLezrw==} + /@mantine/form@6.0.15(react@18.2.0): + resolution: {integrity: sha512-Tz4AuZZ/ddGvEh5zJbDyi9PlGqTilJBdCjRGIgs3zn3hQsfg+ku7/NUR5zNB64dcWPJvGKc074y4iopNIl3FWQ==} peerDependencies: react: '>=16.8.0' dependencies: @@ -2388,126 +2426,126 @@ packages: react: 18.2.0 dev: false - /@mantine/hooks@6.0.14(react@18.2.0): - resolution: {integrity: sha512-cBGdTSdBDLcPScoeI12DCWFVzmT4tX+DmI9s+MOBm4IdhF4ogkLbbRgKosFbaBWNKx9WzYAUiQR/tUI5dTkJPQ==} + /@mantine/hooks@6.0.15(react@18.2.0): + resolution: {integrity: sha512-2CtNKw/tdiXjeseldrg1J2jy+WKrwiCY/J6UMkZqlZ8aM0j3vFVl5cnyn46i5KzbdGqNjW01aihfJJfkeQh4oQ==} peerDependencies: react: '>=16.8.0' dependencies: react: 18.2.0 dev: false - /@mantine/modals@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-54kOKLfbsp3ox51DYTgMJgBQ3QQ6qaTPZBdABaBPNJcJ1mwIFUQ457+evegwf2r4sKqaT2edTMmumFoa0YXyVg==} + /@mantine/modals@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1uGeE/IBA5EZRTzovUaAwv0gwVjDy4CGp8XO05HKuyj2jyzUIqRVpPNXD1VuMwLnzKyxabN8Al408fRgsxXGoQ==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mantine/notifications@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ElzIVojgAplm9Gtq1qZWR/kjGupttRq8ctTUYmANV8yyXcbpErFr45RlYjDgJs2klQcZid3Pq7hVsjGKLF2MQw==} + /@mantine/notifications@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UIp3X7vFUPFQdyPSOPufTt0PyTOPIYob0i3gsYn5Kp7Nbo4qBhn1jt/Tw58L1kYDEvLB10NvGee6UCdHz6lF1A==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-transition-group: 4.4.2(react-dom@18.2.0)(react@18.2.0) dev: false - /@mantine/nprogress@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-6wAnUqrSXPeAMj7EmtP/2WCx1a8El05wBe08ejxc7wgwRsVHOPZGXcdTOdzIMOm3IZDR2LvAlhaexwyqvXxtKQ==} + /@mantine/nprogress@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SHmRq3t0iy1FsZ0E4vdlR/EHsQHeo9dt3920KJqvTUyJLIk8DY8cIDK36qav56V49Ocef4uIEUR+G/foTa2EgQ==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mantine/prism@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-w7isUgEintOY3d6m0t31oA+2YvgI78gXBLOCdnGgBiE4kbYYnXUUBo5oTS6Otro1v+pXWZ5rZqPZlDT21jSxSA==} + /@mantine/prism@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-NvctDHwAzwAEeszc6VleUYxhJR4MrKjplx9cZ0w3eCmyWHgJPvrLxcnZBSi8fHRRAHKNjtLdbPhIySOM9n2i8w==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) prism-react-renderer: 1.3.5(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mantine/spotlight@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-FQtEys0awz/wYyrDXIaScWl8DVgGYzutp4+3PyTcAvoyJBp0NzUNFBudHoUYQwXpwWBJwKKUbY30DVBeijXhAQ==} + /@mantine/spotlight@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-dJJb4KdAMCSLhDAsu0/NUiaCrVYaINnfUydorrQxF8iftAJ7Ijc5B8WCf8AFHdVant9w7VJ7z9IWPa6MdQLsAw==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mantine/styles@6.0.14(@emotion/react@11.11.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-qkqUodvVPzthmVzWQHYe/yWrc8UZcz8A5KfegK2Ps67bZzfoZs/NBVcEx6REq8HTsISjYw3jJyMRxAE3G7Ms4Q==} + /@mantine/styles@6.0.15(@emotion/react@11.11.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lOcEshBVbaN55gqsaiRPDY3///gfE+0o13ePp5PbCIA1sTKCvHz9aojHxXIICQV0ua9CXyleHzn5G0Ypw21/NQ==} peerDependencies: '@emotion/react': '>=11.9.0' react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@emotion/react': 11.11.1(@types/react@18.2.13)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@18.2.14)(react@18.2.0) clsx: 1.1.1 csstype: 3.0.9 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mantine/tiptap@6.0.14(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(@tabler/icons-react@2.22.0)(@tiptap/extension-link@2.0.3)(@tiptap/react@2.0.3)(react@18.2.0): - resolution: {integrity: sha512-J7hhgLcCAN4snc7PKlU6ou0/Tvf0bWhexR/vExoNdYLvnCd7JfdDGWL+1O1SaXd2kDgWCmxzLTAiXoS71+l/Pw==} + /@mantine/tiptap@6.0.15(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(@tabler/icons-react@2.23.0)(@tiptap/extension-link@2.0.3)(@tiptap/react@2.0.3)(react@18.2.0): + resolution: {integrity: sha512-vOyxg3yQJ6XeEgiMGiezKlEwNiONV47snbXhs+pi1wJLvLBiZTPvtE2nntgbT4M7H91HjAS/Q2aHgbEOrN1eYA==} peerDependencies: - '@mantine/core': 6.0.14 - '@mantine/hooks': 6.0.14 + '@mantine/core': 6.0.15 + '@mantine/hooks': 6.0.15 '@tabler/icons-react': '>=2.1.0' '@tiptap/extension-link': ^2.0.0-beta.202 '@tiptap/react': ^2.0.0-beta.202 react: '>=16.8.0' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) - '@mantine/utils': 6.0.14(react@18.2.0) - '@tabler/icons-react': 2.22.0(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) + '@mantine/utils': 6.0.15(react@18.2.0) + '@tabler/icons-react': 2.23.0(react@18.2.0) '@tiptap/extension-link': 2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3) '@tiptap/react': 2.0.3(@tiptap/core@2.0.3)(@tiptap/pm@2.0.3)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: false - /@mantine/utils@6.0.14(react@18.2.0): - resolution: {integrity: sha512-se+3IXJsNj4wnLMlqc7LiBe74m+JLQJ5o3wEcDtFzaJEtEt1rtw/1q3xKuROkH3xEiauhxQgzsc4gj/AslHy2A==} + /@mantine/utils@6.0.15(react@18.2.0): + resolution: {integrity: sha512-iVaobFQTCQWG6SRi3im0/nONKCtGRPobG7bXn9GiIT96E4t7uTPglQpo/ZktDrF1XCL8CO/HoQmks4A2iXuMFw==} peerDependencies: react: '>=16.8.0' dependencies: @@ -2536,6 +2574,53 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@motionone/animation@10.15.1: + resolution: {integrity: sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==} + dependencies: + '@motionone/easing': 10.15.1 + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + tslib: 2.6.0 + dev: false + + /@motionone/dom@10.12.0: + resolution: {integrity: sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==} + dependencies: + '@motionone/animation': 10.15.1 + '@motionone/generators': 10.15.1 + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + hey-listen: 1.0.8 + tslib: 2.6.0 + dev: false + + /@motionone/easing@10.15.1: + resolution: {integrity: sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==} + dependencies: + '@motionone/utils': 10.15.1 + tslib: 2.6.0 + dev: false + + /@motionone/generators@10.15.1: + resolution: {integrity: sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==} + dependencies: + '@motionone/types': 10.15.1 + '@motionone/utils': 10.15.1 + tslib: 2.6.0 + dev: false + + /@motionone/types@10.15.1: + resolution: {integrity: sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==} + dev: false + + /@motionone/utils@10.15.1: + resolution: {integrity: sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==} + dependencies: + '@motionone/types': 10.15.1 + hey-listen: 1.0.8 + tslib: 2.6.0 + dev: false + /@n1ru4l/push-pull-async-iterable-iterator@3.2.0: resolution: {integrity: sha512-3fkKj25kEjsfObL6IlKPAlHYPq/oYwUkkQ03zsTTiDjD7vg/RxjdiLeCydqtxHZP0JgsXL3D/X5oAkMGzuUp/Q==} engines: {node: '>=12'} @@ -2598,14 +2683,14 @@ packages: dependencies: asn1js: 3.0.5 pvtsutils: 1.3.2 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@peculiar/json-schema@1.1.12: resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} engines: {node: '>=8.0.0'} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@peculiar/webcrypto@1.4.3: @@ -2615,7 +2700,7 @@ packages: '@peculiar/asn1-schema': 2.3.6 '@peculiar/json-schema': 1.1.12 pvtsutils: 1.3.2 - tslib: 2.5.3 + tslib: 2.6.0 webcrypto-core: 1.7.7 dev: false @@ -2628,7 +2713,7 @@ packages: is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@popperjs/core@2.11.8: @@ -2647,6 +2732,57 @@ packages: '@babel/runtime': 7.22.5 dev: false + /@radix-ui/primitive@1.0.1: + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} + dependencies: + '@babel/runtime': 7.22.5 + dev: false + + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(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.5 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(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.5 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: @@ -2656,6 +2792,20 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.14)(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.5 + '@types/react': 18.2.14 + react: 18.2.0 + dev: false + /@radix-ui/react-context@1.0.0(react@18.2.0): resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} peerDependencies: @@ -2665,6 +2815,54 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-context@1.0.1(@types/react@18.2.14)(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.5 + '@types/react': 18.2.14 + react: 18.2.0 + dev: false + + /@radix-ui/react-dialog@1.0.4(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-hJtRy/jPULGQZceSAP2Re6/4NpKo8im6V8P2hUqZsdFiSL8l35kYsw3qbRI6Ay5mQd2+wlLqje770eq+RJ3yZg==} + 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.5 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + 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.14)(react@18.2.0) + dev: false + /@radix-ui/react-direction@1.0.0(react@18.2.0): resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} peerDependencies: @@ -2674,6 +2872,213 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-direction@1.0.1(@types/react@18.2.14)(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.5 + '@types/react': 18.2.14 + react: 18.2.0 + dev: false + + /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.6)(@types/react@18.2.14)(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.5 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-dropdown-menu@2.0.5(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xdOrZzOTocqqkCkYo8yRPCib5OkTkqN7lqNCdxwPOdE466DOaNl4N8PkUIlsXthQvW5Wwkd+aEmWpfWlBoDPEw==} + 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.5 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-menu': 2.0.5(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.14)(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.5 + '@types/react': 18.2.14 + react: 18.2.0 + dev: false + + /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(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.5 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-id@1.0.1(@types/react@18.2.14)(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.5 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + react: 18.2.0 + dev: false + + /@radix-ui/react-menu@2.0.5(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Gw4f9pwdH+w5w+49k0gLjN0PfRDHvxmAgG16AbyJZ7zhwZ6PBHKtWohvnSwfusfnK3L68dpBREHpVkj8wEM7ZA==} + 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.5 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + 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.14)(react@18.2.0) + dev: false + + /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.6)(@types/react@18.2.14)(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.5 + '@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.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/rect': 1.0.1 + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(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.5 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} peerDependencies: @@ -2687,14 +3092,86 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-primitive@1.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} + /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} + 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.5 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.22.5 + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(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.5 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} 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.5 - '@radix-ui/react-slot': 1.0.1(react@18.2.0) + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -2729,233 +3206,184 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): - resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + /@radix-ui/react-slot@1.0.2(@types/react@18.2.14)(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.5 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): - resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + /@radix-ui/react-tooltip@1.0.6(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-DmNFOiwEc2UDigsYj6clJENma58OelxD24O4IODoZ+3sQc3Zb+L8w1EP+y9laTuKCLAysPw4fD6/v0j4KNV8rg==} 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.5 - react: 18.2.0 - dev: false - - /@reach/auto-id@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ud8iPwF52RVzEmkHq1twuqGuPA+moreumUHdtgvU3sr3/15BNhwp3KyDLrKKSz0LP1r3V4pSdyF9MbYM8BoSjA==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tslib: 2.5.3 - dev: false - - /@reach/combobox@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-2mYvU5agOBCQBMdlM4cri+P1BbNwp05P1OuDyc33xJSNiBG7BMy4+ZSHJ0X4fyle6rHwSgCAOCLOeWV1XUYjoQ==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/auto-id': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/descendants': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/popover': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/portal': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tiny-warning: 1.0.3 - tslib: 2.5.3 - dev: false - - /@reach/descendants@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-c7lUaBfjgcmKFZiAWqhG+VnXDMEhPkI4kAav/82XKZD6NVvFjsQOTH+v3tUkskrAPV44Yuch0mFW/u5Ntifr7Q==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tslib: 2.5.3 - dev: false - - /@reach/dialog@0.17.0(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-AnfKXugqDTGbeG3c8xDcrQDE4h9b/vnc27Sa118oQSquz52fneUeX9MeFb5ZEiBJK8T5NJpv7QUTBIKnFCAH5A==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - dependencies: - '@reach/portal': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - prop-types: 15.8.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-focus-lock: 2.9.4(@types/react@18.2.13)(react@18.2.0) - react-remove-scroll: 2.5.6(@types/react@18.2.13)(react@18.2.0) - tslib: 2.5.3 - transitivePeerDependencies: - - '@types/react' dev: false - /@reach/dropdown@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-qBTIGInhxtPHtdj4Pl2XZgZMz3e37liydh0xR3qc48syu7g71sL4nqyKjOzThykyfhA3Pb3/wFgsFJKGTSdaig==} + /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): + resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@reach/auto-id': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/descendants': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/popover': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.22.5 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tslib: 2.5.3 dev: false - /@reach/listbox@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-AMnH1P6/3VKy2V/nPb4Es441arYR+t4YRdh9jdcFVrCOD6y7CQrlmxsYjeg9Ocdz08XpdoEBHM3PKLJqNAUr7A==} + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.14)(react@18.2.0): + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@reach/auto-id': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/descendants': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/machine': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/popover': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - prop-types: 15.8.1 + '@babel/runtime': 7.22.5 + '@types/react': 18.2.14 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) dev: false - /@reach/machine@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9EHnuPgXzkbRENvRUzJvVvYt+C2jp7PGN0xon7ffmKoK8rTO6eA/bb7P0xgloyDDQtu88TBUXKzW0uASqhTXGA==} + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.14)(react@18.2.0): + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@xstate/fsm': 1.4.0 + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tslib: 2.5.3 dev: false - /@reach/menu-button@0.17.0(react-dom@18.2.0)(react-is@17.0.2)(react@18.2.0): - resolution: {integrity: sha512-YyuYVyMZKamPtivoEI6D0UEILYH3qZtg4kJzEAuzPmoR/aHN66NZO75Fx0gtjG1S6fZfbiARaCOZJC0VEiDOtQ==} + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.14)(react@18.2.0): + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x - react-is: ^16.8.0 || 17.x + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@reach/dropdown': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/popover': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - prop-types: 15.8.1 + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 17.0.2 - tiny-warning: 1.0.3 - tslib: 2.5.3 - dev: false - - /@reach/observe-rect@1.2.0: - resolution: {integrity: sha512-Ba7HmkFgfQxZqqaeIWWkNK0rEhpxVQHIoVyW1YDSkGsGIXzcaW4deC8B0pZrNSSyLTdIk7y+5olKt5+g0GmFIQ==} dev: false - /@reach/popover@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-yYbBF4fMz4Ml4LB3agobZjcZ/oPtPsNv70ZAd7lEC2h7cvhF453pA+zOBGYTPGupKaeBvgAnrMjj7RnxDU5hoQ==} + /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): + resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + react: ^16.8 || ^17.0 || ^18.0 dependencies: - '@reach/portal': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/rect': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.22.5 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tabbable: 4.0.0 - tslib: 2.5.3 dev: false - /@reach/portal@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+IxsgVycOj+WOeNPL2NdgooUdHPSY285wCtj/iWID6akyr4FgGUK7sMhRM9aGFyrGpx2vzr+eggbUmAVZwOz+A==} + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.14)(react@18.2.0): + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.22.5 + '@types/react': 18.2.14 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tiny-warning: 1.0.3 - tslib: 2.5.3 dev: false - /@reach/rect@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-3YB7KA5cLjbLc20bmPkJ06DIfXSK06Cb5BbD2dHgKXjUkT9WjZaLYIbYCO8dVjwcyO3GCNfOmPxy62VsPmZwYA==} + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.14)(react@18.2.0): + resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@reach/observe-rect': 1.2.0 - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - prop-types: 15.8.1 + '@babel/runtime': 7.22.5 + '@radix-ui/rect': 1.0.1 + '@types/react': 18.2.14 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tiny-warning: 1.0.3 - tslib: 2.5.3 dev: false - /@reach/tooltip@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-HP8Blordzqb/Cxg+jnhGmWQfKgypamcYLBPlcx6jconyV5iLJ5m93qipr1giK7MqKT2wlsKWy44ZcOrJ+Wrf8w==} + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.14)(react@18.2.0): + resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@reach/auto-id': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/portal': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/rect': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/utils': 0.17.0(react-dom@18.2.0)(react@18.2.0) - '@reach/visually-hidden': 0.17.0(react-dom@18.2.0)(react@18.2.0) - prop-types: 15.8.1 + '@babel/runtime': 7.22.5 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.14)(react@18.2.0) + '@types/react': 18.2.14 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tiny-warning: 1.0.3 - tslib: 2.5.3 dev: false - /@reach/utils@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-M5y8fCBbrWeIsxedgcSw6oDlAMQDkl5uv3VnMVJ7guwpf4E48Xlh1v66z/1BgN/WYe2y8mB/ilFD2nysEfdGeA==} + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + '@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.5 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.6)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.14 + '@types/react-dom': 18.2.6 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - tiny-warning: 1.0.3 - tslib: 2.5.3 dev: false - /@reach/visually-hidden@0.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-T6xF3Nv8vVnjVkGU6cm0+kWtvliLqPAo8PcZ+WxkKacZsaHTjaZb4v1PaCcyQHmuTNT/vtTVNOJLG0SjQOIb7g==} - peerDependencies: - react: ^16.8.0 || 17.x - react-dom: ^16.8.0 || 17.x + /@radix-ui/rect@1.0.1: + resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} dependencies: - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tslib: 2.5.3 + '@babel/runtime': 7.22.5 dev: false /@remirror/core-constants@2.0.1: @@ -2992,8 +3420,8 @@ packages: type-fest: 2.19.0 dev: false - /@remix-run/router@1.6.3: - resolution: {integrity: sha512-EXJysQ7J3veRECd0kZFQwYYd5sJMcq2O/m60zu1W2l3oVQ9xtub8jTOtYRE0+M2iomyG/W3Ps7+vp2kna0C27Q==} + /@remix-run/router@1.7.0: + resolution: {integrity: sha512-Eu1V3kz3mV0wUpVTiFHuaT8UD1gj/0VnoFHQYX35xlslQUpe8CuYoKFn9d4WZFHm3yDywz6ALZuGdnUPKrNeAw==} engines: {node: '>=14'} dev: false @@ -3001,8 +3429,8 @@ packages: resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} dev: false - /@swc/core-darwin-arm64@1.3.66: - resolution: {integrity: sha512-UijJsvuLy73vxeVYEy7urIHksXS+3BdvJ9s9AY+bRMSQW483NO7RLp8g4FdTyJbRaN0BH15SQnY0dcjQBkVuHw==} + /@swc/core-darwin-arm64@1.3.67: + resolution: {integrity: sha512-zCT2mCkOBVNf5uJDcQ3A9KDoO1OEaGdfjsRTZTo7sejDd9AXLfJg+xgyCBBrK2jNS/uWcT21IvSv3LqKp4K8pA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -3010,8 +3438,8 @@ packages: dev: false optional: true - /@swc/core-darwin-x64@1.3.66: - resolution: {integrity: sha512-xGsHKvViQnwTNLF30Y/5OqWdnN6RsiyUI8awZXfz1sHcXCEaLe+v+WLQ+/E8sgw0YUkYVHzzfV/sAN2CezJK5Q==} + /@swc/core-darwin-x64@1.3.67: + resolution: {integrity: sha512-hXTVsfTatPEec5gFVyjGj3NccKZsYj/OXyHn6XA+l3Q76lZzGm2ISHdku//XNwXu8OmJ0HhS7LPsC4XXwxXQhg==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -3019,8 +3447,8 @@ packages: dev: false optional: true - /@swc/core-linux-arm-gnueabihf@1.3.66: - resolution: {integrity: sha512-gNbLcSIV2pq90BkMSpzvK4xPXOl8GEF3YR4NaqF0CYSzQsVXXTTqMuX/r26xNYudBKzH0345S1MpoRk2qricnA==} + /@swc/core-linux-arm-gnueabihf@1.3.67: + resolution: {integrity: sha512-l8AKL0RkDL5FRTeWMmjoz9zvAc37amxC+0rheaNwE+gZya7ObyNjnIYz5FwN+3y+z6JFU7LS2x/5f6iwruv6pg==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -3028,8 +3456,8 @@ packages: dev: false optional: true - /@swc/core-linux-arm64-gnu@1.3.66: - resolution: {integrity: sha512-cJSQ0oplyWbJqy4rzVcnBYLAi6z1QT3QCcR7iAey0aAmCvfRBZJfXlyjggMjn4iosuadkauwCZR1xYNhBDRn7w==} + /@swc/core-linux-arm64-gnu@1.3.67: + resolution: {integrity: sha512-S8zOB1AXEpb7kmtgMaFNeLAj01VOky4B0RNZ+uJWigdrDiFT67FeZzNHUNmNSOU0QM79G+Lie/xD/beqEw0vDg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -3038,8 +3466,8 @@ packages: dev: false optional: true - /@swc/core-linux-arm64-musl@1.3.66: - resolution: {integrity: sha512-GDQZpcB9aGxG9PTA2shdIkoMZlGK5omJ8NR49uoBTtLBVYiGeXAwV0U1Uaw8kXEZj9i7wZDkvjzjSaNH3evRsg==} + /@swc/core-linux-arm64-musl@1.3.67: + resolution: {integrity: sha512-Fex8J8ASrt13pmOr2xWh41tEeKWwXYGk3sV8L/aGHiYtIJEUi2f+RtMx3jp7LIdOD8pQptor7i5WBlfR9jhp8A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -3048,8 +3476,8 @@ packages: dev: false optional: true - /@swc/core-linux-x64-gnu@1.3.66: - resolution: {integrity: sha512-lg8E4O/Pd9KfK0lajdinVMuGME8dSv7V9arhEpmlfGE2eXSDCWqDn5Htk5QVBstt9lt1lsRhWHJ/YYc2eQY30Q==} + /@swc/core-linux-x64-gnu@1.3.67: + resolution: {integrity: sha512-9bz9/bMphrv5vDg0os/d8ve0QgFpDzJgZgHUaHiGwcmfnlgdOSAaYJLIvWdcGTjZuQeV4L0m+iru357D9TXEzA==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -3058,8 +3486,8 @@ packages: dev: false optional: true - /@swc/core-linux-x64-musl@1.3.66: - resolution: {integrity: sha512-lo8ZcAO/zL2pZWH+LZIyge8u2MklaeuT6+FpVVpBFktMVdYXbaVtzpvWbgRFBZHvL3SRDF+u8jxjtkXhvGUpTw==} + /@swc/core-linux-x64-musl@1.3.67: + resolution: {integrity: sha512-ED0H6oLvQmhgo9zs8usmEA/lcZPGTu7K9og9K871b7HhHX0h/R+Xg2pb5KD7S/GyUHpfuopxjVROm+h6X1jMUA==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -3068,8 +3496,8 @@ packages: dev: false optional: true - /@swc/core-win32-arm64-msvc@1.3.66: - resolution: {integrity: sha512-cQoVwBuJY5WkHbfpCOlndNwYr1ZThatRjQQvKy540NUIeAEk9Fa6ozlDBtU75UdaWKtUG6YQ/bWz+KTemheVxw==} + /@swc/core-win32-arm64-msvc@1.3.67: + resolution: {integrity: sha512-J1yFDLgPFeRtA8t5E159OXX+ww1gbkFg70yr4OP7EsOkOD1uMkuTf9yK/woHfsaVJlUYjJHzw7MkUIEgQBucqQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -3077,8 +3505,8 @@ packages: dev: false optional: true - /@swc/core-win32-ia32-msvc@1.3.66: - resolution: {integrity: sha512-y/FrAIINK4UBeUQQknGlWXEyjo+MBvjF7WkUf2KP7sNr9EHHy8+dXohAGd5Anz0eJrqOM1ZXR/GEjxRp7bGQ1Q==} + /@swc/core-win32-ia32-msvc@1.3.67: + resolution: {integrity: sha512-bK11/KtasewqHxzkjKUBXRE9MSAidbZCxrgJUd49bItG2N/DHxkwMYu8Xkh5VDHdTYWv/2idYtf/VM9Yi+53qw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -3086,8 +3514,8 @@ packages: dev: false optional: true - /@swc/core-win32-x64-msvc@1.3.66: - resolution: {integrity: sha512-yI64ACzS14qFLrfyO12qW+f/UROTotzDeEbuyJAaPD2IZexoT1cICznI3sBmIfrSt33mVuW8eF5m3AG/NUImzw==} + /@swc/core-win32-x64-msvc@1.3.67: + resolution: {integrity: sha512-GxzUU3+NA3cPcYxCxtfSQIS2ySD7Z8IZmKTVaWA9GOUQbKLyCE8H5js31u39+0op/1gNgxOgYFDoj2lUyvLCqw==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -3095,8 +3523,8 @@ packages: dev: false optional: true - /@swc/core@1.3.66: - resolution: {integrity: sha512-Hpf91kH5ly7fHkWnApwryTQryT+TO4kMMPH3WyciUSQOWLE3UuQz1PtETHQQk7PZ/b1QF0qQurJrgfBr5bSKUA==} + /@swc/core@1.3.67: + resolution: {integrity: sha512-9DROjzfAEt0xt0CDkOYsWpkUPyne8fl5ggWGon049678BOM7p0R0dmaalZGAsKatG5vYP1IWSKWsKhJIubDCsQ==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -3105,30 +3533,30 @@ packages: '@swc/helpers': optional: true optionalDependencies: - '@swc/core-darwin-arm64': 1.3.66 - '@swc/core-darwin-x64': 1.3.66 - '@swc/core-linux-arm-gnueabihf': 1.3.66 - '@swc/core-linux-arm64-gnu': 1.3.66 - '@swc/core-linux-arm64-musl': 1.3.66 - '@swc/core-linux-x64-gnu': 1.3.66 - '@swc/core-linux-x64-musl': 1.3.66 - '@swc/core-win32-arm64-msvc': 1.3.66 - '@swc/core-win32-ia32-msvc': 1.3.66 - '@swc/core-win32-x64-msvc': 1.3.66 + '@swc/core-darwin-arm64': 1.3.67 + '@swc/core-darwin-x64': 1.3.67 + '@swc/core-linux-arm-gnueabihf': 1.3.67 + '@swc/core-linux-arm64-gnu': 1.3.67 + '@swc/core-linux-arm64-musl': 1.3.67 + '@swc/core-linux-x64-gnu': 1.3.67 + '@swc/core-linux-x64-musl': 1.3.67 + '@swc/core-win32-arm64-msvc': 1.3.67 + '@swc/core-win32-ia32-msvc': 1.3.67 + '@swc/core-win32-x64-msvc': 1.3.67 dev: false - /@tabler/icons-react@2.22.0(react@18.2.0): - resolution: {integrity: sha512-9udRxrbsbWzUETur4jmbZQIZkH7jVA2GU7YnKYS7ZCUjdOHZZEhmsfJ/Gdbzz0gSRC3mU7SDMsKejun/IBjvpQ==} + /@tabler/icons-react@2.23.0(react@18.2.0): + resolution: {integrity: sha512-+H4mC1EZVCzCRhnPwZEVTI0veVCJuAKlopeCnRlfsYcmzgJm6Ye234c4A2qrLPQoi1Y29uN9+kqCyuYW007jPg==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: - '@tabler/icons': 2.22.0 + '@tabler/icons': 2.23.0 prop-types: 15.8.1 react: 18.2.0 dev: false - /@tabler/icons@2.22.0: - resolution: {integrity: sha512-lOsGHqRPIKNARMWHHFkUUJH78C8ptQmUcDnumFBUI4YLRKFouKa7uAZL3ZfuH0HjDpOhsnWqUYZ7FhMCLcGpAQ==} + /@tabler/icons@2.23.0: + resolution: {integrity: sha512-dU54aBwaxG0H+jQ4BdrqtYFN5L7PZevvlnzyL6XeOZgfDS3+sVNCtuG3JmpTEqQSwGLYC1IEwogPGA/Iit2bOA==} dev: false /@tanstack/eslint-plugin-query@4.29.9: @@ -3142,27 +3570,27 @@ packages: remove-accents: 0.4.2 dev: false - /@tanstack/query-core@4.29.15: - resolution: {integrity: sha512-Recc1d5rjHesKhzlH3Aw66v+vQxtB9OHEXP/vxgEcEJ0DwEpfe3EQ4id20vuBJHY2XRjfgWGmUs6ZgK6PSsTXA==} + /@tanstack/query-core@4.29.19: + resolution: {integrity: sha512-uPe1DukeIpIHpQi6UzIgBcXsjjsDaLnc7hF+zLBKnaUlh7jFE/A+P8t4cU4VzKPMFB/C970n/9SxtpO5hmIRgw==} dev: false - /@tanstack/react-query-devtools@4.29.15(@tanstack/react-query@4.29.15)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Mtt0c4xNVuo8T6K5+wQZ8hgL8wme99M/+XPwgLDS34PjmTPJs7kWyUuweNyWQZZZsUpAts69k4Dssh+nB5rwsg==} + /@tanstack/react-query-devtools@4.29.19(@tanstack/react-query@4.29.19)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-rL2xqTPr+7gJvVGwyq8E8CWqqw950N4lZ6ffJeNX0qqymKHxHW1FM6nZaYt7Aufs/bXH0m1L9Sj3kDGQbp0rwg==} peerDependencies: - '@tanstack/react-query': 4.29.15 + '@tanstack/react-query': 4.29.19 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@tanstack/match-sorter-utils': 8.8.4 - '@tanstack/react-query': 4.29.15(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-query': 4.29.19(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - superjson: 1.12.3 + superjson: 1.12.4 use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /@tanstack/react-query@4.29.15(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1zDkv95ljuJ623hhbYU8YIprPW2x6774kh3IQNEuZav62+S+Zr26uUOrE2zGRp9I1uO5Liw/0uYB3dWXQP5+3Q==} + /@tanstack/react-query@4.29.19(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-XiTIOHHQ5Cw1WUlHaD4fmVUMhoWjuNJlAeJGq7eM4BraI5z7y8WkZO+NR8PSuRnQGblpuVdjClQbDFtwxTtTUw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3173,7 +3601,7 @@ packages: react-native: optional: true dependencies: - '@tanstack/query-core': 4.29.15 + '@tanstack/query-core': 4.29.19 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) use-sync-external-store: 1.2.0(react@18.2.0) @@ -3460,6 +3888,16 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: false + /@types/codemirror@5.60.8: + resolution: {integrity: sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==} + dependencies: + '@types/tern': 0.23.4 + dev: false + + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + dev: false + /@types/js-yaml@4.0.5: resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} dev: false @@ -3480,8 +3918,8 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: false - /@types/node@20.3.1: - resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==} + /@types/node@20.3.2: + resolution: {integrity: sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==} dev: false /@types/normalize-package-data@2.4.1: @@ -3507,11 +3945,11 @@ packages: /@types/react-dom@18.2.6: resolution: {integrity: sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==} dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.14 dev: false - /@types/react@18.2.13: - resolution: {integrity: sha512-vJ+zElvi/Zn9cVXB5slX2xL8PZodPCwPRDpittQdw43JR2AJ5k3vKdgJJyneV/cYgIbLQUwXa9JVDvUZXGba+Q==} + /@types/react@18.2.14: + resolution: {integrity: sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 @@ -3526,10 +3964,20 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: false + /@types/tern@0.23.4: + resolution: {integrity: sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==} + dependencies: + '@types/estree': 1.0.1 + dev: false + /@types/throttle-debounce@2.1.0: resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} dev: false + /@types/urijs@1.19.19: + resolution: {integrity: sha512-FDJNkyhmKLw7uEvTxx5tSXfPeQpO0iy73Ry+PmYZJvQy0QIWX8a7kJ4kLWRf+EbTPJEPDSgPXHaM7pzr5lmvCg==} + dev: false + /@types/uuid@9.0.2: resolution: {integrity: sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==} dev: false @@ -3537,11 +3985,11 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: false - /@typescript-eslint/eslint-plugin@5.60.0(@typescript-eslint/parser@5.60.0)(eslint@8.43.0)(typescript@5.1.3): - resolution: {integrity: sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==} + /@typescript-eslint/eslint-plugin@5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@5.1.6): + resolution: {integrity: sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -3552,24 +4000,24 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.60.0(eslint@8.43.0)(typescript@5.1.3) - '@typescript-eslint/scope-manager': 5.60.0 - '@typescript-eslint/type-utils': 5.60.0(eslint@8.43.0)(typescript@5.1.3) - '@typescript-eslint/utils': 5.60.0(eslint@8.43.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 5.60.1 + '@typescript-eslint/type-utils': 5.60.1(eslint@8.43.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@5.1.6) debug: 4.3.4 eslint: 8.43.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.3 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/parser@5.60.0(eslint@8.43.0)(typescript@5.1.3): - resolution: {integrity: sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ==} + /@typescript-eslint/parser@5.60.1(eslint@8.43.0)(typescript@5.1.6): + resolution: {integrity: sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3578,26 +4026,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.60.0 - '@typescript-eslint/types': 5.60.0 - '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3) + '@typescript-eslint/scope-manager': 5.60.1 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/typescript-estree': 5.60.1(typescript@5.1.6) debug: 4.3.4 eslint: 8.43.0 - typescript: 5.1.3 + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/scope-manager@5.60.0: - resolution: {integrity: sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ==} + /@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.0 - '@typescript-eslint/visitor-keys': 5.60.0 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/visitor-keys': 5.60.1 dev: false - /@typescript-eslint/type-utils@5.60.0(eslint@8.43.0)(typescript@5.1.3): - resolution: {integrity: sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==} + /@typescript-eslint/type-utils@5.60.1(eslint@8.43.0)(typescript@5.1.6): + resolution: {integrity: sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3606,23 +4054,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3) - '@typescript-eslint/utils': 5.60.0(eslint@8.43.0)(typescript@5.1.3) + '@typescript-eslint/typescript-estree': 5.60.1(typescript@5.1.6) + '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@5.1.6) debug: 4.3.4 eslint: 8.43.0 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/types@5.60.0: - resolution: {integrity: sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==} + /@typescript-eslint/types@5.60.1: + resolution: {integrity: sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /@typescript-eslint/typescript-estree@5.60.0(typescript@5.1.3): - resolution: {integrity: sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==} + /@typescript-eslint/typescript-estree@5.60.1(typescript@5.1.6): + resolution: {integrity: sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -3630,20 +4078,20 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.60.0 - '@typescript-eslint/visitor-keys': 5.60.0 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/visitor-keys': 5.60.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.3 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/utils@5.60.0(eslint@8.43.0)(typescript@5.1.3): - resolution: {integrity: sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==} + /@typescript-eslint/utils@5.60.1(eslint@8.43.0)(typescript@5.1.6): + resolution: {integrity: sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3651,9 +4099,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.60.0 - '@typescript-eslint/types': 5.60.0 - '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3) + '@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.43.0 eslint-scope: 5.1.1 semver: 7.5.3 @@ -3662,11 +4110,11 @@ packages: - typescript dev: false - /@typescript-eslint/visitor-keys@5.60.0: - resolution: {integrity: sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==} + /@typescript-eslint/visitor-keys@5.60.1: + resolution: {integrity: sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.60.0 + '@typescript-eslint/types': 5.60.1 eslint-visitor-keys: 3.4.1 dev: false @@ -3675,8 +4123,8 @@ packages: peerDependencies: vite: ^4 dependencies: - '@swc/core': 1.3.66 - vite: 4.3.9(@types/node@20.3.1) + '@swc/core': 1.3.67 + vite: 4.3.9(@types/node@20.3.2) transitivePeerDependencies: - '@swc/helpers' dev: false @@ -3715,7 +4163,7 @@ packages: busboy: 1.6.0 fast-querystring: 1.1.2 fast-url-parser: 1.1.3 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /@whatwg-node/node-fetch@0.4.6: @@ -3726,11 +4174,7 @@ packages: busboy: 1.6.0 fast-querystring: 1.1.2 fast-url-parser: 1.1.3 - tslib: 2.5.3 - dev: false - - /@xstate/fsm@1.4.0: - resolution: {integrity: sha512-uTHDeu2xI5E1IFwf37JFQM31RrH7mY7877RqPBS4ZqSNUwoLDuct8AhBWaXGnVizBAYyimVwgCyGa9z/NiRhXA==} + tslib: 2.6.0 dev: false /JSONStream@1.3.5: @@ -3843,7 +4287,7 @@ packages: resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} engines: {node: '>=10'} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /array-buffer-byte-length@1.0.0: @@ -3918,7 +4362,7 @@ packages: dependencies: pvtsutils: 1.3.2 pvutils: 1.1.3 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /astral-regex@2.0.0: @@ -4048,8 +4492,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001507 - electron-to-chromium: 1.4.439 + caniuse-lite: 1.0.30001509 + electron-to-chromium: 1.4.445 node-releases: 2.0.12 update-browserslist-db: 1.0.11(browserslist@4.21.9) dev: false @@ -4097,7 +4541,7 @@ packages: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /camelcase-keys@6.2.2: @@ -4114,15 +4558,15 @@ packages: engines: {node: '>=6'} dev: false - /caniuse-lite@1.0.30001507: - resolution: {integrity: sha512-SFpUDoSLCaE5XYL2jfqe9ova/pbQHEmbheDf5r4diNwbAgR3qxM9NQtfsiSscjqoya5K7kFcHPUQ+VsUkIJR4A==} + /caniuse-lite@1.0.30001509: + resolution: {integrity: sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA==} dev: false /capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: no-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 upper-case-first: 2.0.2 dev: false @@ -4182,7 +4626,7 @@ packages: path-case: 3.0.4 sentence-case: 3.0.4 snake-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /chardet@0.7.0: @@ -4227,6 +4671,10 @@ packages: engines: {node: '>= 10'} dev: false + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + /cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: @@ -4259,8 +4707,8 @@ packages: engines: {node: '>=6'} dev: false - /codemirror-graphql@2.0.8(@codemirror/language@6.0.0)(codemirror@5.65.13)(graphql@16.7.1): - resolution: {integrity: sha512-EU+pXsSKZJAFVdF8j5hbB5gqXsDDjsBiJoohQq09yhsr69pzaI8ZrXjmpuR4CMyf9jgqcz5KK7rsTmxDHmeJPQ==} + /codemirror-graphql@2.0.9(@codemirror/language@6.0.0)(codemirror@5.65.13)(graphql@16.7.1): + resolution: {integrity: sha512-gl1LR6XSBgZtl7Dr2q4jjRNfhxMF8vn+rnjZTZPf/l+VrQgavY8l3G//hW7s3hWy73iiqkq5LZ4KE1tdaxB/vQ==} peerDependencies: '@codemirror/language': 6.0.0 codemirror: ^5.65.3 @@ -4269,7 +4717,7 @@ packages: '@codemirror/language': 6.0.0 codemirror: 5.65.13 graphql: 16.7.1 - graphql-language-service: 5.1.6(graphql@16.7.1) + graphql-language-service: 5.1.7(graphql@16.7.1) dev: false /codemirror@5.65.13: @@ -4326,7 +4774,7 @@ packages: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} dependencies: no-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 upper-case: 2.0.2 dev: false @@ -4377,7 +4825,7 @@ packages: toggle-selection: 1.0.6 dev: false - /cosmiconfig-typescript-loader@4.3.0(@types/node@20.3.1)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.3): + /cosmiconfig-typescript-loader@4.3.0(@types/node@20.3.2)(cosmiconfig@8.2.0)(ts-node@10.9.1)(typescript@5.1.6): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -4386,10 +4834,10 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 cosmiconfig: 8.2.0 - ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) - typescript: 5.1.3 + ts-node: 10.9.1(@types/node@20.3.2)(typescript@5.1.6) + typescript: 5.1.6 dev: false /cosmiconfig@7.1.0: @@ -4605,7 +5053,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /dot-prop@5.3.0: @@ -4629,8 +5077,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: false - /electron-to-chromium@1.4.439: - resolution: {integrity: sha512-BHpErPSNhb9FB25+OwQP6mCAf3ZXfGbmuvc4LzBNVJwpCcXQJm++LerimocYRG9FRxUVRKZqaB7d0+pImSTPSg==} + /electron-to-chromium@1.4.445: + resolution: {integrity: sha512-++DB+9VK8SBJwC+X1zlMfJ1tMA3F0ipi39GdEp+x3cV2TyBihqAgad8cNMWtLDEkbH39nlDQP7PfGrDr3Dr7HA==} dev: false /embla-carousel-react@8.0.0-rc07(react@18.2.0): @@ -4814,7 +5262,7 @@ packages: - supports-color dev: false - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.60.0)(eslint-plugin-import@2.27.5)(eslint@8.43.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.60.1)(eslint-plugin-import@2.27.5)(eslint@8.43.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4824,9 +5272,9 @@ packages: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.43.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.60.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) - get-tsconfig: 4.6.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) + get-tsconfig: 4.6.2 globby: 13.2.0 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -4838,7 +5286,7 @@ packages: - supports-color dev: false - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.60.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4859,16 +5307,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.60.0(eslint@8.43.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@5.1.6) debug: 3.2.7 eslint: 8.43.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.60.0)(eslint-plugin-import@2.27.5)(eslint@8.43.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.60.1)(eslint-plugin-import@2.27.5)(eslint@8.43.0) transitivePeerDependencies: - supports-color dev: false - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.60.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4878,7 +5326,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.60.0(eslint@8.43.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -4886,7 +5334,7 @@ packages: doctrine: 2.1.0 eslint: 8.43.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.60.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -4939,7 +5387,7 @@ packages: doctrine: 2.1.0 eslint: 8.43.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 + jsx-ast-utils: 3.3.4 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 @@ -5012,7 +5460,7 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 @@ -5197,7 +5645,7 @@ packages: resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} engines: {node: '>= 12'} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /fill-range@7.0.1: @@ -5239,13 +5687,6 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: false - /focus-lock@0.11.6: - resolution: {integrity: sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==} - engines: {node: '>=10'} - dependencies: - tslib: 2.5.3 - dev: false - /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: @@ -5265,11 +5706,35 @@ packages: dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - tslib: 2.5.3 + tslib: 2.6.0 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + dev: false + + /framer-motion@6.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} + peerDependencies: + react: '>=16.8 || ^17.0.0 || ^18.0.0' + react-dom: '>=16.8 || ^17.0.0 || ^18.0.0' + dependencies: + '@motionone/dom': 10.12.0 + framesync: 6.0.1 + hey-listen: 1.0.8 + popmotion: 11.0.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + style-value-types: 5.0.0 + tslib: 2.6.0 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 dev: false + /framesync@6.0.1: + resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==} + dependencies: + tslib: 2.6.0 + dev: false + /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -5346,8 +5811,8 @@ packages: get-intrinsic: 1.2.1 dev: false - /get-tsconfig@4.6.0: - resolution: {integrity: sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg==} + /get-tsconfig@4.6.2: + resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} dependencies: resolve-pkg-maps: 1.0.0 dev: false @@ -5456,17 +5921,17 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: false - /graphiql@2.4.7(@codemirror/language@6.0.0)(@types/node@20.3.1)(@types/react@18.2.13)(graphql@16.7.1)(react-dom@18.2.0)(react-is@17.0.2)(react@18.2.0): - resolution: {integrity: sha512-Fm3fVI65EPyXy+PdbeQUyODTwl2NhpZ47msGnGwpDvdEzYdgF7pPrxL96xCfF31KIauS4+ceEJ+ZwEe5iLWiQw==} + /graphiql@3.0.0(@codemirror/language@6.0.0)(@types/node@20.3.2)(@types/react-dom@18.2.6)(@types/react@18.2.14)(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-MmXcEIcku4gLc+wk23yAe07B0ZHTgRFNsPCnRJXBVkO5sgdfvtJ98J0zczz0GA52DG5XTQ6mKXPJHNysj4ePQw==} peerDependencies: graphql: ^15.5.0 || ^16.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 dependencies: - '@graphiql/react': 0.17.6(@codemirror/language@6.0.0)(@types/node@20.3.1)(@types/react@18.2.13)(graphql@16.7.1)(react-dom@18.2.0)(react-is@17.0.2)(react@18.2.0) - '@graphiql/toolkit': 0.8.4(@types/node@20.3.1)(graphql@16.7.1) + '@graphiql/react': 0.18.0(@codemirror/language@6.0.0)(@types/node@20.3.2)(@types/react-dom@18.2.6)(@types/react@18.2.14)(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0) + '@graphiql/toolkit': 0.8.4(@types/node@20.3.2)(graphql@16.7.1) graphql: 16.7.1 - graphql-language-service: 5.1.6(graphql@16.7.1) + graphql-language-service: 5.1.7(graphql@16.7.1) markdown-it: 12.3.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -5474,11 +5939,11 @@ packages: - '@codemirror/language' - '@types/node' - '@types/react' + - '@types/react-dom' - graphql-ws - - react-is dev: false - /graphql-config@5.0.2(@types/node@20.3.1)(graphql@16.7.1): + /graphql-config@5.0.2(@types/node@20.3.2)(graphql@16.7.1): resolution: {integrity: sha512-7TPxOrlbiG0JplSZYCyxn2XQtqVhXomEjXUmWJVSS5ET1nPhOJSsIb/WTwqWhcYX6G0RlHXSj9PLtGTKmxLNGg==} engines: {node: '>= 16.0.0'} peerDependencies: @@ -5492,14 +5957,14 @@ packages: '@graphql-tools/json-file-loader': 8.0.0(graphql@16.7.1) '@graphql-tools/load': 8.0.0(graphql@16.7.1) '@graphql-tools/merge': 9.0.0(graphql@16.7.1) - '@graphql-tools/url-loader': 8.0.0(@types/node@20.3.1)(graphql@16.7.1) + '@graphql-tools/url-loader': 8.0.0(@types/node@20.3.2)(graphql@16.7.1) '@graphql-tools/utils': 10.0.1(graphql@16.7.1) cosmiconfig: 8.2.0 graphql: 16.7.1 jiti: 1.18.2 minimatch: 4.2.3 string-env-interpolation: 1.0.1 - tslib: 2.5.3 + tslib: 2.6.0 transitivePeerDependencies: - '@types/node' - bufferutil @@ -5507,8 +5972,8 @@ packages: - utf-8-validate dev: false - /graphql-language-service@5.1.6(graphql@16.7.1): - resolution: {integrity: sha512-sl9HTlE/sBoFvZ2SPGnApwpp/a4ahl1d49SOxGm2OIYOslFv00MK7AYms9Yx91omOwAp74is10S7Cjamh5TRQw==} + /graphql-language-service@5.1.7(graphql@16.7.1): + resolution: {integrity: sha512-xkawYMJeoNYGhT+SpSH3c2qf6HpGHQ/duDmrseVHBpVCrXAiGnliXGSCC4jyMGgZQ05GytsZ12p0nUo7s6lSSw==} hasBin: true peerDependencies: graphql: ^15.5.0 || ^16.0.0 @@ -5607,7 +6072,11 @@ packages: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} dependencies: capital-case: 1.0.4 - tslib: 2.5.3 + tslib: 2.6.0 + dev: false + + /hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} dev: false /hoist-non-react-statics@3.3.2: @@ -5669,14 +6138,14 @@ packages: hasBin: true dev: false - /i18next-browser-languagedetector@7.0.2: - resolution: {integrity: sha512-5ViaK+gikxfqZ9M3jJ7gJkUzzu/p3HwiqfLoL1bdiL7CUb0IylcTyVLdPaTU3pH5VFWFCiGFuJDg3VkLUikWgg==} + /i18next-browser-languagedetector@7.1.0: + resolution: {integrity: sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA==} dependencies: '@babel/runtime': 7.22.5 dev: false - /i18next@23.2.3: - resolution: {integrity: sha512-5spO7L0rNmW0jFuNhz+gfirlFt1anle4mTy4+gFkgsH0+T3R5++4oncBrzeKa7v8pweRyGBoGmOpboqlxovg6A==} + /i18next@23.2.5: + resolution: {integrity: sha512-x9PUkAjm6APvEfaLhDjBuIPs6TEvwXAveQmIrDKKRYyZGA9v5oKdBzbzhLNKjPZfz7+t9mYW5JIJXt4VXHH4zA==} dependencies: '@babel/runtime': 7.22.5 dev: false @@ -5889,7 +6358,7 @@ packages: /is-lower-case@2.0.2: resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /is-negative-zero@2.0.2: @@ -6014,7 +6483,7 @@ packages: /is-upper-case@2.0.2: resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /is-weakref@1.0.2: @@ -6066,6 +6535,10 @@ packages: resolution: {integrity: sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==} dev: false + /js-base64@3.7.5: + resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==} + dev: false + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false @@ -6143,12 +6616,14 @@ packages: engines: {'0': node >= 0.2.0} dev: false - /jsx-ast-utils@3.3.3: - resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + /jsx-ast-utils@3.3.4: + resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==} 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: false /kind-of@6.0.3: @@ -6194,8 +6669,8 @@ packages: resolution: {integrity: sha512-zFN/CTVmbcVef+WaDXT63dNzzkfRBKT1j464NJQkV7iSgJU0sLBus9W0HBwnXK13/hf168pbrx/V/bjEHOXNHA==} dev: false - /lint-staged@13.2.2: - resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==} + /lint-staged@13.2.3: + resolution: {integrity: sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==} engines: {node: ^14.13.1 || >=16.0.0} hasBin: true dependencies: @@ -6345,13 +6820,13 @@ packages: /lower-case-first@2.0.2: resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /lru-cache@5.1.1: @@ -6371,15 +6846,15 @@ packages: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: false - /mantine-datatable@2.6.4(@mantine/core@6.0.14)(@mantine/hooks@6.0.14)(react@18.2.0): - resolution: {integrity: sha512-CKinqNoTWhgRB/b6NioYPQcrcQp+SQTv1L/TIOHsTOTyH+ao5Gb2YDaCYYOM/n0YdFBLwHh2eGl8zVfRMKEpnA==} + /mantine-datatable@2.6.5(@mantine/core@6.0.15)(@mantine/hooks@6.0.15)(react@18.2.0): + resolution: {integrity: sha512-MI0rZTZ+ElhGJpkhvurHKgRqMtiuQwcea9a1ZnqEN8TGto8RLwE9VnkuFC9XbiR+l1lvd9YCrH4zpaYot1Xi8g==} peerDependencies: - '@mantine/core': ^6.0.14 - '@mantine/hooks': ^6.0.14 - react: ^18.2.0 + '@mantine/core': '>=6' + '@mantine/hooks': '>=6' + react: '>=18' dependencies: - '@mantine/core': 6.0.14(@emotion/react@11.11.1)(@mantine/hooks@6.0.14)(@types/react@18.2.13)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.14(react@18.2.0) + '@mantine/core': 6.0.15(@emotion/react@11.11.1)(@mantine/hooks@6.0.15)(@types/react@18.2.14)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 6.0.15(react@18.2.0) react: 18.2.0 dev: false @@ -6450,7 +6925,7 @@ packages: engines: {node: '>= 8'} dev: false - /meros@1.3.0(@types/node@20.3.1): + /meros@1.3.0(@types/node@20.3.2): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -6459,7 +6934,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 dev: false /micromatch@4.0.5: @@ -6556,7 +7031,7 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /node-addon-api@3.2.1: @@ -6739,16 +7214,16 @@ packages: is-wsl: 2.2.0 dev: false - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: false /ora@5.4.1: @@ -6819,7 +7294,7 @@ packages: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /parent-module@1.0.1: @@ -6852,14 +7327,14 @@ packages: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /path-case@3.0.4: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} dependencies: dot-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /path-exists@4.0.0: @@ -6918,6 +7393,15 @@ packages: hasBin: true dev: false + /popmotion@11.0.3: + resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} + dependencies: + framesync: 6.0.1 + hey-listen: 1.0.8 + style-value-types: 5.0.0 + tslib: 2.6.0 + dev: false + /postcss@8.4.24: resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} engines: {node: ^10 || ^12 || >=14} @@ -7125,7 +7609,7 @@ packages: /pvtsutils@1.3.2: resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /pvutils@1.1.3: @@ -7155,15 +7639,6 @@ packages: engines: {node: '>=8'} dev: false - /react-clientside-effect@1.2.6(react@18.2.0): - resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} - peerDependencies: - react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.22.5 - react: 18.2.0 - dev: false - /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -7186,26 +7661,7 @@ packages: react: 18.2.0 dev: false - /react-focus-lock@2.9.4(@types/react@18.2.13)(react@18.2.0): - resolution: {integrity: sha512-7pEdXyMseqm3kVjhdVH18sovparAzLg5h6WvIx7/Ck3ekjhrrDMEegHSa3swwC8wgfdd7DIdUVRGeiHT9/7Sgg==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.22.5 - '@types/react': 18.2.13 - focus-lock: 0.11.6 - prop-types: 15.8.1 - react: 18.2.0 - react-clientside-effect: 1.2.6(react@18.2.0) - use-callback-ref: 1.3.0(@types/react@18.2.13)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.13)(react@18.2.0) - dev: false - - /react-i18next@13.0.1(i18next@23.2.3)(react-dom@18.2.0)(react@18.2.0): + /react-i18next@13.0.1(i18next@23.2.5)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-gMO6N2GfSfuH7xlHSsZ/mZf+Py9bLm/+EDKIn5fNTuDTjcCcwmMU5UEuGCDk5mdfivbo7ySyYXBN7B9tbGUxiA==} peerDependencies: i18next: '>= 23.2.3' @@ -7220,7 +7676,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 html-parse-stringify: 3.0.1 - i18next: 23.2.3 + i18next: 23.2.5 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -7229,12 +7685,24 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: false - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + /react-remove-scroll-bar@2.3.4(@types/react@18.2.14)(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.14 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.2.14)(react@18.2.0) + tslib: 2.6.0 dev: false - /react-remove-scroll-bar@2.3.4(@types/react@18.2.13)(react@18.2.0): - resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + /react-remove-scroll@2.5.5(@types/react@18.2.14)(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 @@ -7243,13 +7711,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.14 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.13)(react@18.2.0) - tslib: 2.5.3 + react-remove-scroll-bar: 2.3.4(@types/react@18.2.14)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.14)(react@18.2.0) + tslib: 2.6.0 + use-callback-ref: 1.3.0(@types/react@18.2.14)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.14)(react@18.2.0) dev: false - /react-remove-scroll@2.5.6(@types/react@18.2.13)(react@18.2.0): + /react-remove-scroll@2.5.6(@types/react@18.2.14)(react@18.2.0): resolution: {integrity: sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg==} engines: {node: '>=10'} peerDependencies: @@ -7259,39 +7730,39 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.14 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.13)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.13)(react@18.2.0) - tslib: 2.5.3 - use-callback-ref: 1.3.0(@types/react@18.2.13)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.13)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.14)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.14)(react@18.2.0) + tslib: 2.6.0 + use-callback-ref: 1.3.0(@types/react@18.2.14)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.14)(react@18.2.0) dev: false - /react-router-dom@6.13.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-6Nqoqd7fgwxxVGdbiMHTpDHCYPq62d7Wk1Of7B82vH7ZPwwsRaIa22zRZKPPg413R5REVNiyuQPKDG1bubcOFA==} + /react-router-dom@6.14.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YEwlApKwzMMMbGbhh+Q7MsloTldcwMgHxUY/1g0uA62+B1hZo2jsybCWIDCL8zvIDB1FA0pBKY9chHbZHt+2dQ==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.6.3 + '@remix-run/router': 1.7.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.13.0(react@18.2.0) + react-router: 6.14.0(react@18.2.0) dev: false - /react-router@6.13.0(react@18.2.0): - resolution: {integrity: sha512-Si6KnfEnJw7gUQkNa70dlpI1bul46FuSxX5t5WwlUBxE25DAz2BjVkwaK8Y2s242bQrZPXCpmwLPtIO5pv4tXg==} + /react-router@6.14.0(react@18.2.0): + resolution: {integrity: sha512-OD+vkrcGbvlwkspUFDgMzsu1RXwdjNh83YgG/28lBnDzgslhCgxIqoExLlxsfTpIygp7fc+Hd3esloNwzkm2xA==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.6.3 + '@remix-run/router': 1.7.0 react: 18.2.0 dev: false - /react-style-singleton@2.2.1(@types/react@18.2.13)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.2.14)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -7301,14 +7772,14 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.14 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false - /react-textarea-autosize@8.3.4(@types/react@18.2.13)(react@18.2.0): + /react-textarea-autosize@8.3.4(@types/react@18.2.14)(react@18.2.0): resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} engines: {node: '>=10'} peerDependencies: @@ -7317,7 +7788,7 @@ packages: '@babel/runtime': 7.22.5 react: 18.2.0 use-composed-ref: 1.3.0(react@18.2.0) - use-latest: 1.2.1(@types/react@18.2.13)(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.14)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -7495,8 +7966,8 @@ packages: glob: 7.2.3 dev: false - /rollup@3.25.1: - resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} + /rollup@3.25.3: + resolution: {integrity: sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -7528,7 +7999,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /safe-buffer@5.2.1: @@ -7567,8 +8038,8 @@ packages: hasBin: true dev: false - /semver@7.5.0: - resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} + /semver@7.5.2: + resolution: {integrity: sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==} engines: {node: '>=10'} hasBin: true dependencies: @@ -7587,7 +8058,7 @@ packages: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} dependencies: no-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 upper-case-first: 2.0.2 dev: false @@ -7679,7 +8150,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /source-map-js@1.0.2: @@ -7723,7 +8194,7 @@ packages: /sponge-case@1.0.1: resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /state-local@1.0.7: @@ -7851,12 +8322,19 @@ packages: resolution: {integrity: sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==} dev: false + /style-value-types@5.0.0: + resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} + dependencies: + hey-listen: 1.0.8 + tslib: 2.6.0 + dev: false + /stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} dev: false - /superjson@1.12.3: - resolution: {integrity: sha512-0j+U70KUtP8+roVPbwfqkyQI7lBt7ETnuA7KXbTDX3mCKiD/4fXs2ldKSMdt0MCfpTwiMxo20yFU3vu6ewETpQ==} + /superjson@1.12.4: + resolution: {integrity: sha512-vkpPQAxdCg9SLfPv5GPC5fnGrui/WryktoN9O5+Zif/14QIMjw+RITf/5LbBh+9QpBFb3KNvJth+puz2H8o6GQ==} engines: {node: '>=10'} dependencies: copy-anything: 3.0.5 @@ -7884,7 +8362,7 @@ packages: /swap-case@2.0.2: resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /synckit@0.8.5: @@ -7892,15 +8370,11 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.1 - tslib: 2.5.3 - dev: false - - /tabbable@4.0.0: - resolution: {integrity: sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ==} + tslib: 2.6.0 dev: false - /tabbable@6.1.2: - resolution: {integrity: sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ==} + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} dev: false /tapable@2.2.1: @@ -7932,10 +8406,6 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: false - /tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - dev: false - /tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} dependencies: @@ -7945,7 +8415,7 @@ packages: /title-case@3.0.3: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /titleize@3.0.0: @@ -7989,7 +8459,7 @@ packages: resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==} dev: false - /ts-node@10.9.1(@types/node@20.3.1)(typescript@5.1.3): + /ts-node@10.9.1(@types/node@20.3.2)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -8008,14 +8478,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.3.1 + '@types/node': 20.3.2 acorn: 8.9.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.3 + typescript: 5.1.6 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: false @@ -8037,14 +8507,18 @@ packages: resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} dev: false - /tsutils@3.21.0(typescript@5.1.3): + /tslib@2.6.0: + resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} + dev: false + + /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.1.3 + typescript: 5.1.6 dev: false /type-check@0.4.0: @@ -8092,8 +8566,8 @@ packages: is-typed-array: 1.1.10 dev: false - /typescript@5.1.3: - resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + /typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true dev: false @@ -8151,13 +8625,13 @@ packages: /upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /upper-case@2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: false /uri-js@4.4.1: @@ -8166,6 +8640,10 @@ packages: punycode: 2.3.0 dev: false + /urijs@1.19.11: + resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} + dev: false + /urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} dev: false @@ -8174,7 +8652,7 @@ packages: resolution: {integrity: sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==} dev: false - /use-callback-ref@1.3.0(@types/react@18.2.13)(react@18.2.0): + /use-callback-ref@1.3.0(@types/react@18.2.14)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -8184,9 +8662,9 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.14 react: 18.2.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /use-composed-ref@1.3.0(react@18.2.0): @@ -8197,7 +8675,7 @@ packages: react: 18.2.0 dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.13)(react@18.2.0): + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.14)(react@18.2.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -8206,11 +8684,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.14 react: 18.2.0 dev: false - /use-latest@1.2.1(@types/react@18.2.13)(react@18.2.0): + /use-latest@1.2.1(@types/react@18.2.14)(react@18.2.0): resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' @@ -8219,12 +8697,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.14 react: 18.2.0 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.13)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.14)(react@18.2.0) dev: false - /use-sidecar@1.1.2(@types/react@18.2.13)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.14)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -8234,10 +8712,10 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.14 detect-node-es: 1.1.0 react: 18.2.0 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /use-sync-external-store@1.2.0(react@18.2.0): @@ -8268,7 +8746,7 @@ packages: engines: {node: '>=12'} dev: false - /vite@4.3.9(@types/node@20.3.1): + /vite@4.3.9(@types/node@20.3.2): resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -8293,10 +8771,10 @@ packages: terser: optional: true dependencies: - '@types/node': 20.3.1 + '@types/node': 20.3.2 esbuild: 0.17.19 postcss: 8.4.24 - rollup: 3.25.1 + rollup: 3.25.3 optionalDependencies: fsevents: 2.3.2 dev: false @@ -8332,7 +8810,7 @@ packages: '@peculiar/json-schema': 1.1.12 asn1js: 3.0.5 pvtsutils: 1.3.2 - tslib: 2.5.3 + tslib: 2.6.0 dev: false /webidl-conversions@3.0.1: @@ -8380,11 +8858,6 @@ packages: isexe: 2.0.0 dev: false - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: false - /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} diff --git a/src/apis/mutation.ts b/src/apis/mutation.ts index f83298e9..5056b414 100644 --- a/src/apis/mutation.ts +++ b/src/apis/mutation.ts @@ -683,6 +683,7 @@ export const useRemoveNodesMutation = () => { onSuccess: () => { queryClient.invalidateQueries({ queryKey: QUERY_KEY_NODE }) queryClient.invalidateQueries({ queryKey: QUERY_KEY_GROUP }) + queryClient.invalidateQueries({ queryKey: QUERY_KEY_CONFIG }) }, }) } @@ -748,6 +749,8 @@ export const useUpdateSubscriptionsMutation = () => { ), onSuccess: () => { queryClient.invalidateQueries({ queryKey: QUERY_KEY_SUBSCRIPTION }) + queryClient.invalidateQueries({ queryKey: QUERY_KEY_GROUP }) + queryClient.invalidateQueries({ queryKey: QUERY_KEY_GENERAL }) }, }) } @@ -771,6 +774,7 @@ export const useRemoveSubscriptionsMutation = () => { onSuccess: () => { queryClient.invalidateQueries({ queryKey: QUERY_KEY_SUBSCRIPTION }) queryClient.invalidateQueries({ queryKey: QUERY_KEY_GROUP }) + queryClient.invalidateQueries({ queryKey: QUERY_KEY_GENERAL }) }, }) } diff --git a/src/components/ConfigureNodeFormModal/HTTPForm.tsx b/src/components/ConfigureNodeFormModal/HTTPForm.tsx new file mode 100644 index 00000000..178634f3 --- /dev/null +++ b/src/components/ConfigureNodeFormModal/HTTPForm.tsx @@ -0,0 +1,62 @@ +import { NumberInput, Select, TextInput } from '@mantine/core' +import { useForm, zodResolver } from '@mantine/form' +import { useTranslation } from 'react-i18next' +import { z } from 'zod' + +import { FormActions } from '~/components/FormActions' +import { DEFAULT_HTTP_FORM_VALUES, httpSchema } from '~/constants' +import { GenerateURLParams, generateURL } from '~/utils' + +export const HTTPForm = ({ onLinkGeneration }: { onLinkGeneration: (link: string) => void }) => { + const { t } = useTranslation() + const { onSubmit, getInputProps, reset } = useForm & { protocol: 'http' | 'https' }>({ + initialValues: { + protocol: 'http', + ...DEFAULT_HTTP_FORM_VALUES, + }, + validate: zodResolver(httpSchema), + }) + + const handleSubmit = onSubmit((values) => { + const generateURLParams: GenerateURLParams = { + protocol: values.protocol, + host: values.host, + port: values.port, + hash: values.name, + } + + if (values.username && values.password) { + Object.assign(generateURLParams, { + username: values.username, + password: values.password, + }) + } + + return onLinkGeneration(generateURL(generateURLParams)) + }) + + return ( +
+ + + + ))} + + {values.plugin === 'simple-obfs' && ( + + )} + + {values.plugin === 'v2ray-plugin' && ( + + + + + {values.obfs !== 'plain' && } + + + + ) +} diff --git a/src/components/ConfigureNodeFormModal/Socks5Form.tsx b/src/components/ConfigureNodeFormModal/Socks5Form.tsx new file mode 100644 index 00000000..92e740ae --- /dev/null +++ b/src/components/ConfigureNodeFormModal/Socks5Form.tsx @@ -0,0 +1,50 @@ +import { NumberInput, TextInput } from '@mantine/core' +import { useForm, zodResolver } from '@mantine/form' +import { useTranslation } from 'react-i18next' +import { z } from 'zod' + +import { FormActions } from '~/components/FormActions' +import { DEFAULT_SOCKS5_FORM_VALUES, socks5Schema } from '~/constants' +import { GenerateURLParams, generateURL } from '~/utils' + +export const Socks5Form = ({ onLinkGeneration }: { onLinkGeneration: (link: string) => void }) => { + const { t } = useTranslation() + const { onSubmit, getInputProps, reset } = useForm>({ + initialValues: DEFAULT_SOCKS5_FORM_VALUES, + validate: zodResolver(socks5Schema), + }) + + const handleSubmit = onSubmit((values) => { + const generateURLParams: GenerateURLParams = { + protocol: 'socks5', + host: values.host, + port: values.port, + hash: values.name, + } + + if (values.username && values.password) { + Object.assign(generateURLParams, { + username: values.username, + password: values.password, + }) + } + + return onLinkGeneration(generateURL(generateURLParams)) + }) + + return ( +
+ + + + + + + + + + + + + ) +} diff --git a/src/components/ConfigureNodeFormModal/TrojanForm.tsx b/src/components/ConfigureNodeFormModal/TrojanForm.tsx new file mode 100644 index 00000000..1ff1bd2c --- /dev/null +++ b/src/components/ConfigureNodeFormModal/TrojanForm.tsx @@ -0,0 +1,118 @@ +import { Checkbox, NumberInput, Select, TextInput } from '@mantine/core' +import { useForm, zodResolver } from '@mantine/form' +import { useTranslation } from 'react-i18next' +import { z } from 'zod' + +import { FormActions } from '~/components/FormActions' +import { DEFAULT_TROJAN_FORM_VALUES, trojanSchema } from '~/constants' +import { generateURL } from '~/utils' + +export const TrojanForm = ({ onLinkGeneration }: { onLinkGeneration: (link: string) => void }) => { + const { t } = useTranslation() + const { values, onSubmit, getInputProps, reset } = useForm>({ + initialValues: DEFAULT_TROJAN_FORM_VALUES, + validate: zodResolver(trojanSchema), + }) + + const handleSubmit = onSubmit((values) => { + const query: Record = { + allowInsecure: values.allowInsecure, + } + + if (values.peer !== '') { + query.sni = values.peer + } + + let protocol = 'trojan' + + if (values.method !== 'origin' || values.obfs !== 'none') { + protocol = 'trojan-go' + query.type = values.obfs === 'none' ? 'original' : 'ws' + + if (values.method === 'shadowsocks') { + query.encryption = `ss;${values.ssCipher};${values.ssPassword}` + } + + if (query.type === 'ws') { + query.host = values.host || '' + query.path = values.path || '/' + } + + delete query.allowInsecure + } + + return onLinkGeneration( + generateURL({ + protocol: protocol, + username: values.password, + host: values.server, + port: values.port, + hash: values.name, + params: query, + }) + ) + }) + + return ( +
+ + + + + + + + + + )} + + {values.method === 'shadowsocks' && ( + + )} + + + + + + + + + + + + + + + + {values.protocol === 'vmess' && } + + {values.protocol === 'vmess' && ( + + )} + + {values.tls !== 'none' && } + + + + {values.net === 'tcp' && ( + + )} + + {(values.net === 'ws' || + values.net === 'h2' || + values.tls === 'tls' || + (values.net === 'tcp' && values.type === 'http')) && ( + + )} + + {values.tls === 'tls' && } + + {values.net === 'ws' || + values.net === 'h2' || + (values.net === 'tcp' && values.type === 'http' && ( + + ))} + + {values.net === 'kcp' && } + + {values.net === 'grpc' && } + + + + ) +} diff --git a/src/components/ConfigureNodeFormModal/index.tsx b/src/components/ConfigureNodeFormModal/index.tsx new file mode 100644 index 00000000..0c9c75bd --- /dev/null +++ b/src/components/ConfigureNodeFormModal/index.tsx @@ -0,0 +1,103 @@ +import { Divider, MantineProvider, Modal, Stack, Tabs, TextInput } from '@mantine/core' +import { useForm, zodResolver } from '@mantine/form' +import { useTranslation } from 'react-i18next' +import { z } from 'zod' + +import { useImportNodesMutation } from '~/apis' + +import { HTTPForm } from './HTTPForm' +import { SSForm } from './SSForm' +import { SSRForm } from './SSRForm' +import { Socks5Form } from './Socks5Form' +import { TrojanForm } from './TrojanForm' +import { V2rayForm } from './V2rayForm' + +const schema = z.object({ + tag: z.string().nonempty(), +}) + +export const ConfigureNodeFormModal = ({ opened, onClose }: { opened: boolean; onClose: () => void }) => { + const { t } = useTranslation() + const importNodesMutation = useImportNodesMutation() + const form = useForm>({ + initialValues: { tag: '' }, + validate: zodResolver(schema), + }) + + const onLinkGeneration = async (link: string) => { + const { hasErrors } = form.validate() + + if (hasErrors) return + + await importNodesMutation.mutateAsync([ + { + link, + tag: form.values.tag, + }, + ]) + + onClose() + } + + return ( + + + + + + + + + V2RAY + SS + SSR + Trojan + HTTP + SOCKS5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/src/components/CreateNodeFormModal.tsx b/src/components/CreateNodeFormModal.tsx deleted file mode 100644 index 9b6643c7..00000000 --- a/src/components/CreateNodeFormModal.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Modal, Stack, Tabs } from '@mantine/core' - -import { FormActions } from './FormActions' - -export const CreateNodeFormModal = ({ opened, onClose }: { opened: boolean; onClose: () => void }) => { - return ( - - - - - V2RAY - SS - SSR - Trojan - HTTP - SOCKS5 - - - - - - - ) -} diff --git a/src/components/DraggableResourceBadge.tsx b/src/components/DraggableResourceBadge.tsx index 2abcd43d..0e029d2a 100644 --- a/src/components/DraggableResourceBadge.tsx +++ b/src/components/DraggableResourceBadge.tsx @@ -50,6 +50,7 @@ export const DraggableResourceBadge = ({ } style={{ zIndex: isDragging ? 10 : 0, + cursor: isDragging ? 'grabbing' : 'grab', }} opacity={isDragging ? 0.5 : undefined} > diff --git a/src/components/GroupFormModal.tsx b/src/components/GroupFormModal.tsx index 9c9f1f6e..991cf43e 100644 --- a/src/components/GroupFormModal.tsx +++ b/src/components/GroupFormModal.tsx @@ -88,6 +88,7 @@ export const GroupFormModal = forwardRef(({ opened, onClose }: { opened: boolean policyParams: [], }) } + onClose() form.reset() })} diff --git a/src/components/Header.tsx b/src/components/Header.tsx index edc59cd6..5786ef87 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -258,7 +258,9 @@ export const HeaderWithActions = () => { offLabel={} disabled={!generalQuery?.general.dae.running && runMutation.isLoading} checked={generalQuery?.general.dae.running} - onChange={(e) => runMutation.mutateAsync(!e.target.checked)} + onChange={(e) => { + runMutation.mutateAsync(!e.target.checked) + }} /> diff --git a/src/components/PlainTextFormModal.tsx b/src/components/PlainTextFormModal.tsx index 884c2f10..d82363ce 100644 --- a/src/components/PlainTextFormModal.tsx +++ b/src/components/PlainTextFormModal.tsx @@ -6,7 +6,7 @@ import { forwardRef, useImperativeHandle, useState } from 'react' import { useTranslation } from 'react-i18next' import { z } from 'zod' -import { EDITOR_OPTIONS, EDITOR_THEME_DARK, EDITOR_THEME_LIGHT } from '~/constants/editor' +import { EDITOR_OPTIONS, EDITOR_THEME_DARK, EDITOR_THEME_LIGHT } from '~/constants' import { colorSchemeAtom } from '~/store' import { FormActions } from './FormActions' diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100644 index 00000000..c1bf1925 --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1,18 @@ +export * from './ConfigFormModal' +export * from './ConfigureNodeFormModal' +export * from './DraggableResourceBadge' +export * from './DraggableResourceCard' +export * from './DroppableGroupCard' +export * from './ExpandedTableRow' +export * from './FormActions' +export * from './GroupFormModal' +export * from './Header' +export * from './ImportResourceFormModal' +export * from './PlainTextFormModal' +export * from './QRCodeModal' +export * from './RenameFormModal' +export * from './Section' +export * from './SelectItemWithDescription' +export * from './SimpleCard' +export * from './Table' +export * from './UpdateSubscriptionAction' diff --git a/src/constants/default.ts b/src/constants/default.ts new file mode 100644 index 00000000..cf77728a --- /dev/null +++ b/src/constants/default.ts @@ -0,0 +1,147 @@ +import { z } from 'zod' + +import { GlobalInput, Policy } from '~/schemas/gql/graphql' + +import { DialMode, LogLevel, TLSImplementation, TcpCheckHttpMethod, UTLSImitate } from './misc' +import { httpSchema, socks5Schema, ssSchema, ssrSchema, trojanSchema, v2raySchema } from './schema' + +export const DEFAULT_ENDPOINT_URL = `${location.protocol}//${location.hostname}:2023/graphql` + +export const DEFAULT_LOG_LEVEL = LogLevel.info +export const DEFAULT_TPROXY_PORT = 12345 +export const DEFAULT_TPROXY_PORT_PROTECT = true +export const DEFAULT_ALLOW_INSECURE = false +export const DEFAULT_CHECK_INTERVAL_SECONDS = 30 +export const DEFAULT_CHECK_TOLERANCE_MS = 0 +export const DEFAULT_SNIFFING_TIMEOUT_MS = 100 +export const DEFAULT_UDP_CHECK_DNS = ['dns.google.com:53', '8.8.8.8', '2001:4860:4860::8888'] +export const DEFAULT_TCP_CHECK_URL = ['http://cp.cloudflare.com', '1.1.1.1', '2606:4700:4700::1111'] +export const DEFAULT_DIAL_MODE = DialMode.domain +export const DEFAULT_TCP_CHECK_HTTP_METHOD = TcpCheckHttpMethod.HEAD +export const DEFAULT_DISABLE_WAITING_NETWORK = false +export const DEFAULT_AUTO_CONFIG_KERNEL_PARAMETER = true +export const DEFAULT_TLS_IMPLEMENTATION = TLSImplementation.tls +export const DEFAULT_UTLS_IMITATE = UTLSImitate.chrome_auto + +export const DEFAULT_CONFIG_NAME = 'global' +export const DEFAULT_GROUP_NAME = 'proxy' + +export const DEFAULT_CONFIG_WITH_INTERFACE = (interfaces?: string[]): GlobalInput => ({ + logLevel: DEFAULT_LOG_LEVEL, + tproxyPort: DEFAULT_TPROXY_PORT, + tproxyPortProtect: DEFAULT_TPROXY_PORT_PROTECT, + allowInsecure: DEFAULT_ALLOW_INSECURE, + checkInterval: `${DEFAULT_CHECK_INTERVAL_SECONDS}s`, + checkTolerance: `${DEFAULT_CHECK_TOLERANCE_MS}ms`, + sniffingTimeout: `${DEFAULT_SNIFFING_TIMEOUT_MS}ms`, + lanInterface: interfaces ? interfaces : [], + wanInterface: interfaces ? interfaces : [], + udpCheckDns: DEFAULT_UDP_CHECK_DNS, + tcpCheckUrl: DEFAULT_TCP_CHECK_URL, + tcpCheckHttpMethod: DEFAULT_TCP_CHECK_HTTP_METHOD, + dialMode: DEFAULT_DIAL_MODE, + autoConfigKernelParameter: DEFAULT_AUTO_CONFIG_KERNEL_PARAMETER, + tlsImplementation: DEFAULT_TLS_IMPLEMENTATION, + utlsImitate: DEFAULT_UTLS_IMITATE, + disableWaitingNetwork: DEFAULT_DISABLE_WAITING_NETWORK, +}) + +export const DEFAULT_GROUP_POLICY = Policy.MinMovingAvg + +export const DEFAULT_ROUTING = ` +pname(NetworkManager, systemd-resolved) -> direct +dip(geoip:private) -> direct +dip(geoip:cn) -> direct +domain(geosite:cn) -> direct +fallback: ${DEFAULT_GROUP_NAME} +`.trim() + +export const DEFAULT_DNS = ` +upstream { + alidns: 'udp://223.5.5.5:53' + googledns: 'tcp+udp://8.8.8.8:53' +} +routing { + request { + qname(geosite:cn) -> alidns + fallback: googledns + } +} +`.trim() + +export const DEFAULT_V2RAY_FORM_VALUES: z.infer = { + type: 'none', + tls: 'none', + net: 'tcp', + scy: 'auto', + add: '', + aid: 0, + allowInsecure: false, + alpn: '', + flow: 'none', + host: '', + id: '', + path: '', + port: 0, + ps: '', + v: '', + sni: '', +} + +export const DEFAULT_SS_FORM_VALUES: z.infer = { + plugin: '', + method: 'aes-128-gcm', + obfs: 'http', + host: '', + impl: '', + mode: '', + name: '', + password: '', + path: '', + port: 0, + server: '', + tls: '', +} + +export const DEFAULT_SSR_FORM_VALUES: z.infer = { + method: 'aes-128-cfb', + proto: 'origin', + obfs: 'plain', + name: '', + obfsParam: '', + password: '', + port: 0, + protoParam: '', + server: '', +} + +export const DEFAULT_TROJAN_FORM_VALUES: z.infer = { + method: 'origin', + obfs: 'none', + allowInsecure: false, + host: '', + name: '', + password: '', + path: '', + peer: '', + port: 0, + server: '', + ssCipher: 'aes-128-gcm', + ssPassword: '', +} + +export const DEFAULT_HTTP_FORM_VALUES: z.infer = { + host: '', + name: '', + password: '', + port: 0, + username: '', +} + +export const DEFAULT_SOCKS5_FORM_VALUES: z.infer = { + host: '', + name: '', + password: '', + port: 0, + username: '', +} diff --git a/src/constants/index.ts b/src/constants/index.ts index 2a318299..5bd40a3a 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1,306 +1,4 @@ -import { TFunction } from 'i18next' -import { z } from 'zod' - -import { GlobalInput, Policy } from '~/schemas/gql/graphql' - -export const DEFAULT_ENDPOINT_URL = `${location.protocol}//${location.hostname}:2023/graphql` - -export enum MODE { - simple = 'simple', - advanced = 'advanced', -} - -export const COLS_PER_ROW = 3 -export const QUERY_KEY_HEALTH_CHECK = ['healthCheck'] -export const QUERY_KEY_GENERAL = ['general'] -export const QUERY_KEY_USER = ['user'] -export const QUERY_KEY_NODE = ['node'] -export const QUERY_KEY_SUBSCRIPTION = ['subscription'] -export const QUERY_KEY_CONFIG = ['config'] -export const QUERY_KEY_ROUTING = ['routing'] -export const QUERY_KEY_DNS = ['dns'] -export const QUERY_KEY_GROUP = ['group'] -export const QUERY_KEY_STORAGE = ['storage'] - -export enum LogLevel { - error = 'error', - warn = 'warn', - info = 'info', - debug = 'debug', - trace = 'trace', -} - -export enum DialMode { - ip = 'ip', - domain = 'domain', - domainP = 'domain+', - domainPP = 'domain++', -} - -export enum TcpCheckHttpMethod { - CONNECT = 'CONNECT', - HEAD = 'HEAD', - OPTIONS = 'OPTIONS', - TRACE = 'TRACE', - GET = 'GET', - POST = 'POST', - DELETE = 'DELETE', - PATCH = 'PATCH', - PUT = 'PUT', -} - -export enum TLSImplementation { - tls = 'tls', - utls = 'utls', -} - -export enum UTLSImitate { - randomized = 'randomized', - randomizedalpn = 'randomizedalpn', - randomizednoalpn = 'randomizednoalpn', - firefox_auto = 'firefox_auto', - firefox_55 = 'firefox_55', - firefox_56 = 'firefox_56', - firefox_63 = 'firefox_63', - firefox_65 = 'firefox_65', - firefox_99 = 'firefox_99', - firefox_102 = 'firefox_102', - firefox_105 = 'firefox_105', - chrome_auto = 'chrome_auto', - chrome_58 = 'chrome_58', - chrome_62 = 'chrome_62', - chrome_70 = 'chrome_70', - chrome_72 = 'chrome_72', - chrome_83 = 'chrome_83', - chrome_87 = 'chrome_87', - chrome_96 = 'chrome_96', - chrome_100 = 'chrome_100', - chrome_102 = 'chrome_102', - ios_auto = 'ios_auto', - ios_11_1 = 'ios_11_1', - ios_12_1 = 'ios_12_1', - ios_13 = 'ios_13', - ios_14 = 'ios_14', - android_11_okhttp = 'android_11_okhttp', - edge_auto = 'edge_auto', - edge_85 = 'edge_85', - edge_106 = 'edge_106', - safari_auto = 'safari_auto', - safari_16_0 = 'safari_16_0', - utls_360_auto = '360_auto', - utls_360_7_5 = '360_7_5', - utls_360_11_0 = '360_11_0', - qq_auto = 'qq_auto', - qq_11_1 = 'qq_11_1', -} - -export const DEFAULT_LOG_LEVEL = LogLevel.info -export const DEFAULT_TPROXY_PORT = 12345 -export const DEFAULT_TPROXY_PORT_PROTECT = true -export const DEFAULT_ALLOW_INSECURE = false -export const DEFAULT_CHECK_INTERVAL_SECONDS = 30 -export const DEFAULT_CHECK_TOLERANCE_MS = 0 -export const DEFAULT_SNIFFING_TIMEOUT_MS = 100 -export const DEFAULT_UDP_CHECK_DNS = ['dns.google.com:53', '8.8.8.8', '2001:4860:4860::8888'] -export const DEFAULT_TCP_CHECK_URL = ['http://cp.cloudflare.com', '1.1.1.1', '2606:4700:4700::1111'] -export const DEFAULT_DIAL_MODE = DialMode.domain -export const DEFAULT_TCP_CHECK_HTTP_METHOD = TcpCheckHttpMethod.HEAD -export const DEFAULT_DISABLE_WAITING_NETWORK = false -export const DEFAULT_AUTO_CONFIG_KERNEL_PARAMETER = true -export const DEFAULT_TLS_IMPLEMENTATION = TLSImplementation.tls -export const DEFAULT_UTLS_IMITATE = UTLSImitate.chrome_auto - -export const DEFAULT_CONFIG_NAME = 'global' -export const DEFAULT_GROUP_NAME = 'proxy' - -export const DEFAULT_CONFIG_WITH_INTERFACE = (interfaces?: string[]): GlobalInput => ({ - logLevel: DEFAULT_LOG_LEVEL, - tproxyPort: DEFAULT_TPROXY_PORT, - tproxyPortProtect: DEFAULT_TPROXY_PORT_PROTECT, - allowInsecure: DEFAULT_ALLOW_INSECURE, - checkInterval: `${DEFAULT_CHECK_INTERVAL_SECONDS}s`, - checkTolerance: `${DEFAULT_CHECK_TOLERANCE_MS}ms`, - sniffingTimeout: `${DEFAULT_SNIFFING_TIMEOUT_MS}ms`, - lanInterface: interfaces ? interfaces : [], - wanInterface: interfaces ? interfaces : [], - udpCheckDns: DEFAULT_UDP_CHECK_DNS, - tcpCheckUrl: DEFAULT_TCP_CHECK_URL, - tcpCheckHttpMethod: DEFAULT_TCP_CHECK_HTTP_METHOD, - dialMode: DEFAULT_DIAL_MODE, - autoConfigKernelParameter: DEFAULT_AUTO_CONFIG_KERNEL_PARAMETER, - tlsImplementation: DEFAULT_TLS_IMPLEMENTATION, - utlsImitate: DEFAULT_UTLS_IMITATE, - disableWaitingNetwork: DEFAULT_DISABLE_WAITING_NETWORK, -}) - -export const GET_LOG_LEVEL_STEPS = (t: TFunction) => [ - [t('error'), LogLevel.error], - [t('warn'), LogLevel.warn], - [t('info'), LogLevel.info], - [t('debug'), LogLevel.debug], - [t('trace'), LogLevel.trace], -] - -export const DEFAULT_GROUP_POLICY = Policy.MinMovingAvg - -export const DEFAULT_ROUTING = ` -pname(NetworkManager, systemd-resolved) -> direct -dip(geoip:private) -> direct -dip(geoip:cn) -> direct -domain(geosite:cn) -> direct -fallback: ${DEFAULT_GROUP_NAME} -`.trim() - -export const DEFAULT_DNS = ` -upstream { - alidns: 'udp://223.5.5.5:53' - googledns: 'tcp+udp://8.8.8.8:53' -} -routing { - request { - qname(geosite:cn) -> alidns - fallback: googledns - } -} -`.trim() - -export enum DraggableResourceType { - node = 'node', - subscription = 'subscription', - subscription_node = 'subscription_node', - groupNode = 'group_node', - groupSubscription = 'group_subscription', -} - -export type DraggingResource = { - type: DraggableResourceType - nodeID?: string - groupID?: string - subscriptionID?: string -} - -export enum RuleType { - config = 'config', - dns = 'dns', - routing = 'routing', - group = 'group', -} - -export const v2raySchema = z.object({ - ps: z.string().default(''), - add: z.string().url().nonempty().or(z.string().ip().nonempty()), - port: z.number().min(0).max(65535).positive(), - id: z.string().uuid().nonempty(), - aid: z.number().min(0).max(65535).default(0), - net: z.enum(['tcp', 'kcp', 'ws', 'h2', 'grpc']).default('tcp'), - type: z.enum(['none', 'http', 'srtp', 'utp', 'wechat-video', 'dtls', 'wireguard']).default('none'), - host: z.string().url().default(''), - path: z.string().default(''), - tls: z.enum(['none', 'tls']).default('none'), - flow: z - .enum(['none', 'xtls-rprx-origin', 'xtls-rprx-origin-udp443', 'xtls-rprx-vision', 'xtls-rprx-vision-udp443']) - .default('none'), - alpn: z.enum(['http/1.1', 'h2']), - scy: z.enum(['auto', 'aes-128-gcm', 'chacha20-poly1305', 'none', 'zero']).default('auto'), - v: z.literal(''), - allowInsecure: z.boolean().default(false), -}) - -export const ssSchema = z.object({ - method: z - .enum(['aes-128-gcm', 'aes-256-gcm', 'chacha20-poly1305', 'chacha20-ietf-poly1305', 'plain', 'none']) - .default('aes-128-gcm'), - plugin: z.enum(['', 'simple-obfs', 'v2ray-plugin']).default(''), - obfs: z.enum(['http', 'tls']).default('http'), - tls: z.enum(['', 'tls']).default(''), - path: z.string().default('/'), - mode: z.string().default('websocket'), - host: z.string().url().default(''), - password: z.string().nonempty(), - server: z.string().url().nonempty().or(z.string().ip().nonempty()), - port: z.number().min(0).max(65535), - name: z.string().default(''), - impl: z.enum(['', 'chained', 'transport']).default(''), -}) - -export const ssrSchema = z.object({ - method: z - .enum([ - 'aes-128-cfb', - 'aes-192-cfb', - 'aes-256-cfb', - 'aes-128-ctr', - 'aes-192-ctr', - 'aes-256-ctr', - 'aes-128-ofb', - 'aes-192-ofb', - 'aes-256-ofb', - 'des-cfb', - 'bf-cfb', - 'cast5-cfb', - 'rc4-md5', - 'chacha20-ietf', - 'salsa20', - 'camellia-128-cfb', - 'camellia-192-cfb', - 'camellia-256-cfb', - 'idea-cfb', - 'rc2-cfb', - 'seed-cfb', - 'none', - ]) - .default('aes-128-cfb'), - password: z.string().nonempty(), - server: z.string().url().nonempty().or(z.string().ip().nonempty()), - port: z.number().min(0).max(65535).positive(), - name: z.string().default(''), - proto: z - .enum([ - 'origin', - 'verify_sha1', - 'auth_sha1_v4', - 'auth_aes128_md5', - 'auth_aes128_sha1', - 'auth_chain_a', - 'auth_chain_b', - ]) - .default('origin'), - protoParam: z.string().default(''), - obfs: z.enum(['plain', 'http_simple', 'http_post', 'random_head', 'tls1.2_ticket_auth']).default('plain'), - obfsParam: z.string().default(''), -}) - -export const trojanSchema = z.object({ - name: z.string().default(''), - server: z.string().url().nonempty().or(z.string().ip().nonempty()), - peer: z.string().url().default(''), - host: z.string().url().default(''), - path: z.string().default(''), - allowInsecure: z.boolean().default(false), - port: z.number().min(0).max(65535), - password: z.string().nonempty(), - method: z.enum(['origin', 'shadowsocks']).default('origin'), - ssCipher: z - .enum(['aes-128-gcm', 'aes-256-gcm', 'chacha20-poly1305', 'chacha20-ietf-poly1305']) - .default('aes-128-gcm'), - ssPassword: z.string(), - obfs: z.enum(['none', 'websocket']).default('none'), -}) - -export const httpSchema = z.object({ - username: z.string().default(''), - password: z.string().default(''), - host: z.string().nonempty(), - port: z.number().min(0).max(65535), - protocol: z.enum(['http', 'https']).default('http'), - name: z.string().default(''), -}) - -export const socks5Schema = z.object({ - username: z.string().default(''), - password: z.string().default(''), - host: z.string().nonempty(), - port: z.number().min(0).max(65535), - protocol: z.literal('socks5'), - name: z.string().default(''), -}) +export * from './default' +export * from './editor' +export * from './misc' +export * from './schema' diff --git a/src/constants/misc.ts b/src/constants/misc.ts new file mode 100644 index 00000000..98073c92 --- /dev/null +++ b/src/constants/misc.ts @@ -0,0 +1,120 @@ +import { TFunction } from 'i18next' + +export enum LogLevel { + error = 'error', + warn = 'warn', + info = 'info', + debug = 'debug', + trace = 'trace', +} + +export enum DialMode { + ip = 'ip', + domain = 'domain', + domainP = 'domain+', + domainPP = 'domain++', +} + +export enum TcpCheckHttpMethod { + CONNECT = 'CONNECT', + HEAD = 'HEAD', + OPTIONS = 'OPTIONS', + TRACE = 'TRACE', + GET = 'GET', + POST = 'POST', + DELETE = 'DELETE', + PATCH = 'PATCH', + PUT = 'PUT', +} + +export enum TLSImplementation { + tls = 'tls', + utls = 'utls', +} + +export enum UTLSImitate { + randomized = 'randomized', + randomizedalpn = 'randomizedalpn', + randomizednoalpn = 'randomizednoalpn', + firefox_auto = 'firefox_auto', + firefox_55 = 'firefox_55', + firefox_56 = 'firefox_56', + firefox_63 = 'firefox_63', + firefox_65 = 'firefox_65', + firefox_99 = 'firefox_99', + firefox_102 = 'firefox_102', + firefox_105 = 'firefox_105', + chrome_auto = 'chrome_auto', + chrome_58 = 'chrome_58', + chrome_62 = 'chrome_62', + chrome_70 = 'chrome_70', + chrome_72 = 'chrome_72', + chrome_83 = 'chrome_83', + chrome_87 = 'chrome_87', + chrome_96 = 'chrome_96', + chrome_100 = 'chrome_100', + chrome_102 = 'chrome_102', + ios_auto = 'ios_auto', + ios_11_1 = 'ios_11_1', + ios_12_1 = 'ios_12_1', + ios_13 = 'ios_13', + ios_14 = 'ios_14', + android_11_okhttp = 'android_11_okhttp', + edge_auto = 'edge_auto', + edge_85 = 'edge_85', + edge_106 = 'edge_106', + safari_auto = 'safari_auto', + safari_16_0 = 'safari_16_0', + utls_360_auto = '360_auto', + utls_360_7_5 = '360_7_5', + utls_360_11_0 = '360_11_0', + qq_auto = 'qq_auto', + qq_11_1 = 'qq_11_1', +} + +export const GET_LOG_LEVEL_STEPS = (t: TFunction) => [ + [t('error'), LogLevel.error], + [t('warn'), LogLevel.warn], + [t('info'), LogLevel.info], + [t('debug'), LogLevel.debug], + [t('trace'), LogLevel.trace], +] + +export enum MODE { + simple = 'simple', + advanced = 'advanced', +} + +export const COLS_PER_ROW = 3 +export const QUERY_KEY_HEALTH_CHECK = ['healthCheck'] +export const QUERY_KEY_GENERAL = ['general'] +export const QUERY_KEY_USER = ['user'] +export const QUERY_KEY_NODE = ['node'] +export const QUERY_KEY_SUBSCRIPTION = ['subscription'] +export const QUERY_KEY_CONFIG = ['config'] +export const QUERY_KEY_ROUTING = ['routing'] +export const QUERY_KEY_DNS = ['dns'] +export const QUERY_KEY_GROUP = ['group'] +export const QUERY_KEY_STORAGE = ['storage'] + +export enum DraggableResourceType { + node = 'node', + subscription = 'subscription', + subscription_node = 'subscription_node', + groupNode = 'group_node', + groupSubscription = 'group_subscription', +} + +export type DraggingResource = { + type: DraggableResourceType + nodeID?: string + groupID?: string + subscriptionID?: string +} + +export enum RuleType { + config = 'config', + dns = 'dns', + routing = 'routing', + group = 'group', +} diff --git a/src/constants/schema.ts b/src/constants/schema.ts new file mode 100644 index 00000000..24755ca2 --- /dev/null +++ b/src/constants/schema.ts @@ -0,0 +1,109 @@ +import { z } from 'zod' + +export const v2raySchema = z.object({ + ps: z.string(), + add: z.string().nonempty(), + port: z.number().min(0).max(65535), + id: z.string().nonempty(), + aid: z.number().min(0).max(65535), + net: z.enum(['tcp', 'kcp', 'ws', 'h2', 'grpc']), + type: z.enum(['none', 'http', 'srtp', 'utp', 'wechat-video', 'dtls', 'wireguard']), + host: z.string(), + path: z.string(), + tls: z.enum(['none', 'tls']), + flow: z.enum(['none', 'xtls-rprx-origin', 'xtls-rprx-origin-udp443', 'xtls-rprx-vision', 'xtls-rprx-vision-udp443']), + alpn: z.string(), + scy: z.enum(['auto', 'aes-128-gcm', 'chacha20-poly1305', 'none', 'zero']), + v: z.literal(''), + allowInsecure: z.boolean(), + sni: z.string(), +}) + +export const ssSchema = z.object({ + method: z.enum(['aes-128-gcm', 'aes-256-gcm', 'chacha20-poly1305', 'chacha20-ietf-poly1305', 'plain', 'none']), + plugin: z.enum(['', 'simple-obfs', 'v2ray-plugin']), + obfs: z.enum(['http', 'tls']), + tls: z.enum(['', 'tls']), + path: z.string(), + mode: z.string(), + host: z.string(), + password: z.string().nonempty(), + server: z.string().nonempty(), + port: z.number().min(0).max(65535), + name: z.string(), + impl: z.enum(['', 'chained', 'transport']), +}) + +export const ssrSchema = z.object({ + method: z.enum([ + 'aes-128-cfb', + 'aes-192-cfb', + 'aes-256-cfb', + 'aes-128-ctr', + 'aes-192-ctr', + 'aes-256-ctr', + 'aes-128-ofb', + 'aes-192-ofb', + 'aes-256-ofb', + 'des-cfb', + 'bf-cfb', + 'cast5-cfb', + 'rc4-md5', + 'chacha20-ietf', + 'salsa20', + 'camellia-128-cfb', + 'camellia-192-cfb', + 'camellia-256-cfb', + 'idea-cfb', + 'rc2-cfb', + 'seed-cfb', + 'none', + ]), + password: z.string().nonempty(), + server: z.string().nonempty(), + port: z.number().min(0).max(65535).positive(), + name: z.string(), + proto: z.enum([ + 'origin', + 'verify_sha1', + 'auth_sha1_v4', + 'auth_aes128_md5', + 'auth_aes128_sha1', + 'auth_chain_a', + 'auth_chain_b', + ]), + protoParam: z.string(), + obfs: z.enum(['plain', 'http_simple', 'http_post', 'random_head', 'tls1.2_ticket_auth']), + obfsParam: z.string(), +}) + +export const trojanSchema = z.object({ + name: z.string(), + server: z.string().nonempty(), + peer: z.string(), + host: z.string(), + path: z.string(), + allowInsecure: z.boolean(), + port: z.number().min(0).max(65535), + password: z.string().nonempty(), + method: z.enum(['origin', 'shadowsocks']), + ssCipher: z.enum(['aes-128-gcm', 'aes-256-gcm', 'chacha20-poly1305', 'chacha20-ietf-poly1305']), + ssPassword: z.string(), + obfs: z.enum(['none', 'websocket']), +}) + +export const httpSchema = z.object({ + username: z.string(), + password: z.string(), + host: z.string().nonempty(), + port: z.number().min(0).max(65535), + name: z.string(), +}) + +export const socks5Schema = z.object({ + username: z.string(), + password: z.string(), + host: z.string().nonempty(), + port: z.number().min(0).max(65535), + name: z.string(), +}) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index ef5bd26d..1bfb2139 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -39,6 +39,37 @@ "checkTolerance": "Check Tolerance", "collapse": "collapse", "config": "Config", + "configureNode": { + "dtlsObfuscation": "Obfuscated as DTLS1.2 Packets", + "forceTLS": "forcibly TLS on", + "host": "Host", + "hostObfuscation": "Host", + "httpObfuscation": "Obfuscated as HTTP", + "name": "Name", + "network": "Network", + "noObfuscation": "No obfuscation", + "obfs": "Obfuscation", + "obfsParam": "Obfs Param", + "origin": "origin", + "password": "Password", + "path": "Path", + "pathObfuscation": "Path", + "port": "Port", + "protocol": "Protocol", + "protocolParam": "Protocol Param", + "security": "Security", + "seedObfuscation": "Seed", + "servername": "Servername", + "srtpObfuscation": "Obfuscated as Video Calls (SRTP)", + "title": "Configure Node", + "type": "Type", + "username": "Username", + "utpObfuscation": "Obfuscated as Bittorrent (uTP)", + "websocketHost": "WebSocket Host", + "websocketPath": "WebSocket Path", + "wechatVideoObfuscation": "Obfuscated as Wechat Video Calls", + "wireguardObfuscation": "Obfuscated as WireGuard Packets" + }, "confirmModal": { "cancel": "No, It's a mistake", "confirm": "Yes, I'm sure", diff --git a/src/i18n/locales/zh-Hans.json b/src/i18n/locales/zh-Hans.json index 0f57f150..2a402a7a 100644 --- a/src/i18n/locales/zh-Hans.json +++ b/src/i18n/locales/zh-Hans.json @@ -39,6 +39,37 @@ "checkTolerance": "检测公差", "collapse": "折叠", "config": "配置", + "configureNode": { + "dtlsObfuscation": "伪装为 DTLS1.2 数据包", + "forceTLS": "强制开启 TLS", + "host": "主机地址", + "hostObfuscation": "域名 (host)", + "httpObfuscation": "伪装为 HTTP", + "name": "名字", + "network": "网络", + "noObfuscation": "不伪装", + "obfs": "混淆", + "obfsParam": "混淆参数", + "origin": "原版", + "password": "密码", + "path": "路径", + "pathObfuscation": "路径 (path)", + "port": "端口号", + "protocol": "协议", + "protocolParam": "协议参数", + "security": "安全", + "seedObfuscation": "混淆种子", + "servername": "节点名称", + "srtpObfuscation": "伪装视频通话 (SRTP)", + "title": "配置节点", + "type": "类型", + "username": "用户名", + "utpObfuscation": "伪装为 BT 下载 (uTP)", + "websocketHost": "WebSocket 地址", + "websocketPath": "WebSocket 路径", + "wechatVideoObfuscation": "伪装为微信视频通话", + "wireguardObfuscation": "伪装为 WireGuard 数据包" + }, "confirmModal": { "cancel": "不, 我点错了", "confirm": "是,我确定", @@ -52,7 +83,7 @@ "descriptions": { "config": { "allowInsecure": "允许使用不安全的TLS证书。除非迫不得已,否则不建议打开它。", - "autoConfigKernelParameter": "自动配置 Linux 内核参数,如 ip_forward(端口转发)和 send_redirects(发送重定向)。", + "autoConfigKernelParameter": "自动配置 Linux 内核参数,如 ip_forward(路由转发)和 send_redirects(发送重定向)。", "checkTolerance": "只有当新的延迟 <= 旧的延迟 - 公差时,群组才会切换节点。", "dialMode": { "domain": "通过嗅探使用域名拨号代理。如果 DNS 环境不纯净,这将在很大程度上缓解 DNS 污染问题。通常,这种模式会带来更快的代理响应时间,因为代理会在远程重新解析域名,从而获得更好的 IP 连接结果。此策略不影响路由。也就是说,域重写将在流量拆分后进行路由,dae 不会对其进行重新路由。", diff --git a/src/pages/Experiment.tsx b/src/pages/Experiment.tsx index 08f08793..63040179 100644 --- a/src/pages/Experiment.tsx +++ b/src/pages/Experiment.tsx @@ -21,7 +21,7 @@ import { import { useDisclosure } from '@mantine/hooks' import { Prism } from '@mantine/prism' import Editor from '@monaco-editor/react' -import { IconForms } from '@tabler/icons-react' +import { IconFileImport, IconForms } from '@tabler/icons-react' import dayjs from 'dayjs' import { produce } from 'immer' import { useRef, useState } from 'react' @@ -33,19 +33,21 @@ import { useImportNodesMutation, useImportSubscriptionsMutation, } from '~/apis' -import { ConfigFormDrawer } from '~/components/ConfigFormModal' -import { CreateNodeFormModal } from '~/components/CreateNodeFormModal' -import { DraggableResourceBadge } from '~/components/DraggableResourceBadge' -import { DraggableResourceCard } from '~/components/DraggableResourceCard' -import { DroppableGroupCard } from '~/components/DroppableGroupCard' -import { GroupFormModal } from '~/components/GroupFormModal' -import { ImportResourceFormModal } from '~/components/ImportResourceFormModal' -import { PlainTextFormModal } from '~/components/PlainTextFormModal' -import { RenameFormModal, RenameFormModalRef } from '~/components/RenameFormModal' -import { Section } from '~/components/Section' -import { SimpleCard } from '~/components/SimpleCard' -import { DialMode, DraggableResourceType, LogLevel, RuleType } from '~/constants' -import { EDITOR_OPTIONS } from '~/constants/editor' +import { + ConfigFormDrawer, + ConfigureNodeFormModal, + DraggableResourceBadge, + DraggableResourceCard, + DroppableGroupCard, + GroupFormModal, + ImportResourceFormModal, + PlainTextFormModal, + RenameFormModal, + RenameFormModalRef, + Section, + SimpleCard, +} from '~/components' +import { DialMode, DraggableResourceType, EDITOR_OPTIONS, LogLevel, RuleType } from '~/constants' import { Policy } from '~/schemas/gql/graphql' export const ExperimentPage = () => { @@ -217,6 +219,8 @@ export const ExperimentPage = () => { useDisclosure(false) const [openedCreateGroupModal, { open: openCreateGroupModal, close: closeCreateGroupModal }] = useDisclosure(false) const [openedImportNodeModal, { open: openImportNodeModal, close: closeImportNodeModal }] = useDisclosure(false) + const [openedConfigureNodeFormModal, { open: openConfigureNodeFormModal, close: closeConfigureNodeFormModal }] = + useDisclosure(false) const [openedImportSubscriptionModal, { open: openImportSubscriptionModal, close: closeImportSubscriptionModal }] = useDisclosure(false) @@ -250,6 +254,7 @@ export const ExperimentPage = () => { oldName: config.name, }) } + openRenameModal() }} > @@ -282,6 +287,7 @@ export const ExperimentPage = () => { oldName: dns.name, }) } + openRenameModal() }} > @@ -314,6 +320,7 @@ export const ExperimentPage = () => { oldName: routing.name, }) } + openRenameModal() }} > @@ -501,7 +508,16 @@ export const ExperimentPage = () => { -
+
+ + + } + bordered + > {fakeNodes.map(({ id, name, tag, protocol, link }) => ( { }} /> - { - // - }} - /> - + + ) } diff --git a/src/pages/Orchestrate/Config.tsx b/src/pages/Orchestrate/Config.tsx index 116d5603..104a6099 100644 --- a/src/pages/Orchestrate/Config.tsx +++ b/src/pages/Orchestrate/Config.tsx @@ -51,6 +51,7 @@ export const Config = () => { oldName: config.name, }) } + openRenameFormModal() }} > diff --git a/src/pages/Orchestrate/DNS.tsx b/src/pages/Orchestrate/DNS.tsx index 2db7fd28..c3ad33cd 100644 --- a/src/pages/Orchestrate/DNS.tsx +++ b/src/pages/Orchestrate/DNS.tsx @@ -56,6 +56,7 @@ export const DNS = () => { oldName: dns.name, }) } + openRenameFormModal() }} > diff --git a/src/pages/Orchestrate/Group.tsx b/src/pages/Orchestrate/Group.tsx index ed08a438..214d7c25 100644 --- a/src/pages/Orchestrate/Group.tsx +++ b/src/pages/Orchestrate/Group.tsx @@ -58,6 +58,7 @@ export const GroupResource = ({ highlight }: { highlight?: boolean }) => { oldName: name, }) } + openRenameFormModal() }} > diff --git a/src/pages/Orchestrate/Node.tsx b/src/pages/Orchestrate/Node.tsx index 47ceae94..512f3c68 100644 --- a/src/pages/Orchestrate/Node.tsx +++ b/src/pages/Orchestrate/Node.tsx @@ -1,10 +1,11 @@ import { ActionIcon, Spoiler, Text, useMantineTheme } from '@mantine/core' import { useDisclosure } from '@mantine/hooks' -import { IconCloud, IconDetails } from '@tabler/icons-react' +import { IconCloud, IconDetails, IconFileImport } from '@tabler/icons-react' import { useRef } from 'react' import { useTranslation } from 'react-i18next' import { useImportNodesMutation, useNodesQuery, useRemoveNodesMutation } from '~/apis' +import { ConfigureNodeFormModal } from '~/components' import { DraggableResourceCard } from '~/components/DraggableResourceCard' import { ImportResourceFormModal } from '~/components/ImportResourceFormModal' import { QRCodeModal, QRCodeModalRef } from '~/components/QRCodeModal' @@ -18,13 +19,25 @@ export const NodeResource = () => { const [openedQRCodeModal, { open: openQRCodeModal, close: closeQRCodeModal }] = useDisclosure(false) const [openedImportNodeFormModal, { open: openImportNodeFormModal, close: closeImportNodeFormModal }] = useDisclosure(false) + const [openedConfigureNodeFormModal, { open: openConfigureNodeFormModal, close: closeConfigureNodeFormModal }] = + useDisclosure(false) const qrCodeModalRef = useRef(null) const { data: nodesQuery } = useNodesQuery() const removeNodesMutation = useRemoveNodesMutation() const importNodesMutation = useImportNodesMutation() return ( -
} onCreate={openImportNodeFormModal} bordered> +
} + onCreate={openConfigureNodeFormModal} + actions={ + + + + } + bordered + > {nodesQuery?.nodes.edges.map(({ id, name, tag, protocol, link }) => ( { await importNodesMutation.mutateAsync(values.resources.map(({ link, tag }) => ({ link, tag }))) }} /> + +
) } diff --git a/src/pages/Orchestrate/Routing.tsx b/src/pages/Orchestrate/Routing.tsx index 7591ecbd..ba05def1 100644 --- a/src/pages/Orchestrate/Routing.tsx +++ b/src/pages/Orchestrate/Routing.tsx @@ -55,6 +55,7 @@ export const Routing = () => { oldName: routing.name, }) } + openRenameFormModal() }} > diff --git a/src/pages/Orchestrate/index.tsx b/src/pages/Orchestrate/index.tsx index a28aefad..9d655bae 100644 --- a/src/pages/Orchestrate/index.tsx +++ b/src/pages/Orchestrate/index.tsx @@ -12,7 +12,7 @@ import { useSubscriptionsQuery, } from '~/apis' import { DraggableResourceType, DraggingResource } from '~/constants' -import { restrictToElement } from '~/utils/dnd-kit' +import { restrictToElement } from '~/utils' import { Config } from './Config' import { DNS } from './DNS' diff --git a/src/utils/helper.ts b/src/utils/helper.ts new file mode 100644 index 00000000..aef177f1 --- /dev/null +++ b/src/utils/helper.ts @@ -0,0 +1,50 @@ +import dayjs from 'dayjs' +import { DurationUnitType } from 'dayjs/plugin/duration' + +export class Defer { + promise: Promise + resolve?: (value: T | PromiseLike) => void + reject?: (reason?: unknown) => void + + constructor() { + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve + this.reject = reject + }) + } +} + +export const fileToBase64 = (file: File) => { + const reader = new FileReader() + reader.readAsDataURL(file) + + const defer = new Defer() + + reader.onload = () => { + if (defer.resolve) { + defer.resolve(reader.result as string) + } + } + + reader.onerror = (err) => { + if (defer.reject) { + defer.reject(err) + } + } + + return defer.promise +} + +const r = new RegExp('([0-9]+)([a-z]+)') + +export const deriveTime = (timeStr: string, outputUnit: 'ms' | 's') => { + const execRes = r.exec(timeStr) + + if (!execRes) { + return 0 + } + + return dayjs + .duration(Number.parseInt(execRes[1]), execRes[2] as DurationUnitType) + .as(outputUnit === 'ms' ? 'milliseconds' : 'seconds') +} diff --git a/src/utils/index.ts b/src/utils/index.ts index aef177f1..053cb2be 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,50 +1,3 @@ -import dayjs from 'dayjs' -import { DurationUnitType } from 'dayjs/plugin/duration' - -export class Defer { - promise: Promise - resolve?: (value: T | PromiseLike) => void - reject?: (reason?: unknown) => void - - constructor() { - this.promise = new Promise((resolve, reject) => { - this.resolve = resolve - this.reject = reject - }) - } -} - -export const fileToBase64 = (file: File) => { - const reader = new FileReader() - reader.readAsDataURL(file) - - const defer = new Defer() - - reader.onload = () => { - if (defer.resolve) { - defer.resolve(reader.result as string) - } - } - - reader.onerror = (err) => { - if (defer.reject) { - defer.reject(err) - } - } - - return defer.promise -} - -const r = new RegExp('([0-9]+)([a-z]+)') - -export const deriveTime = (timeStr: string, outputUnit: 'ms' | 's') => { - const execRes = r.exec(timeStr) - - if (!execRes) { - return 0 - } - - return dayjs - .duration(Number.parseInt(execRes[1]), execRes[2] as DurationUnitType) - .as(outputUnit === 'ms' ? 'milliseconds' : 'seconds') -} +export * from './dnd-kit' +export * from './helper' +export * from './node' diff --git a/src/utils/node.ts b/src/utils/node.ts new file mode 100644 index 00000000..18fb6c1a --- /dev/null +++ b/src/utils/node.ts @@ -0,0 +1,31 @@ +import URI from 'urijs' + +export type GenerateURLParams = { + username?: string + password?: string + protocol: string + host: string + port: number + params?: Record + hash: string + path?: string +} + +export const generateURL = ({ username, password, protocol, host, port, params, hash, path }: GenerateURLParams) => { + /** + * 所有参数设置默认值 + * 避免方法检测到参数为null/undefine返回该值查询结果 + * 查询结果当然不是URI类型,导致链式调用失败 + */ + const uri = URI() + .protocol(protocol || 'http') + .username(username || '') + .password(password || '') + .host(host || '') + .port(String(port) || '80') + .path(path || '') + .query(params || {}) + .hash(hash || '') + + return uri.toString() +}