diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 70868b8e..bd02bacd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,8 +51,8 @@ jobs: - uses: tauri-apps/tauri-action@dev env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }} APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} @@ -62,7 +62,7 @@ jobs: APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} with: tagName: v__VERSION__ - releaseName: 'App v__VERSION__' + releaseName: 'v__VERSION__' releaseBody: 'See the assets to download this version and install.' releaseDraft: true prerelease: false diff --git a/package.json b/package.json index 3a5e687e..42b9b30e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "lume", "description": "the communication app", "private": true, - "version": "2.0.1", + "version": "2.1.0", "scripts": { "dev": "vite", "build": "vite build", @@ -19,9 +19,8 @@ }, "dependencies": { "@evilmartians/harmony": "^1.1.0", - "@getalby/sdk": "^2.5.0", + "@getalby/sdk": "^2.6.0", "@nostr-dev-kit/ndk": "^2.0.5", - "@nostr-dev-kit/ndk-cache-dexie": "^2.0.3", "@nostr-fetch/adapter-ndk": "^0.13.1", "@radix-ui/react-alert-dialog": "^1.0.5", "@radix-ui/react-avatar": "^1.0.4", @@ -30,11 +29,10 @@ "@radix-ui/react-dropdown-menu": "^2.0.6", "@radix-ui/react-hover-card": "^1.0.7", "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-toolbar": "^1.0.4", "@radix-ui/react-tooltip": "^1.0.7", - "@tanstack/query-sync-storage-persister": "^5.4.3", - "@tanstack/react-query": "^5.4.3", - "@tanstack/react-query-persist-client": "^5.4.3", + "@tanstack/react-query": "^5.8.4", "@tauri-apps/api": "2.0.0-alpha.11", "@tauri-apps/cli": "2.0.0-alpha.17", "@tauri-apps/plugin-clipboard-manager": "2.0.0-alpha.3", @@ -60,61 +58,61 @@ "@tiptap/starter-kit": "^2.1.12", "@tiptap/suggestion": "^2.1.12", "dayjs": "^1.11.10", - "destr": "^2.0.2", - "framer-motion": "^10.16.4", + "framer-motion": "^10.16.5", "html-to-text": "^9.0.5", - "immer": "^10.0.3", + "idb-keyval": "^6.2.1", "light-bolt11-decoder": "^3.0.0", - "lru-cache": "^10.0.1", + "lru-cache": "^10.0.2", "markdown-to-jsx": "^7.3.2", - "media-chrome": "^1.5.0", - "million": "^2.6.4", + "media-chrome": "^1.5.3", "minidenticons": "^4.2.0", + "nanoid": "^5.0.3", "nostr-fetch": "^0.13.1", "nostr-tools": "^1.17.0", "qrcode.react": "^3.1.0", "re-resizable": "^6.9.11", "react": "^18.2.0", - "react-currency-input-field": "^3.6.11", + "react-currency-input-field": "^3.6.12", "react-dom": "^18.2.0", - "react-hook-form": "^7.47.0", + "react-hook-form": "^7.48.2", "react-hotkeys-hook": "^4.4.1", - "react-router-dom": "^6.18.0", - "reactflow": "^11.9.4", - "sonner": "^1.1.0", + "react-router-dom": "^6.19.0", + "react-string-replace": "^1.1.1", + "reactflow": "^11.10.1", + "sonner": "^1.2.0", "tailwind-scrollbar": "^3.0.5", - "tauri-controls": "^0.2.0", + "tauri-controls": "github:reyamir/tauri-controls", "tippy.js": "^6.3.7", - "tiptap-markdown": "^0.8.3", - "virtua": "^0.16.0", - "zustand": "^4.4.5" + "tiptap-markdown": "^0.8.4", + "virtua": "^0.16.4", + "zustand": "^4.4.6" }, "devDependencies": { "@tailwindcss/typography": "^0.5.10", - "@trivago/prettier-plugin-sort-imports": "^4.2.1", - "@types/html-to-text": "^9.0.3", - "@types/node": "^20.8.10", - "@types/react": "^18.2.34", - "@types/react-dom": "^18.2.14", - "@types/youtube-player": "^5.5.9", - "@typescript-eslint/eslint-plugin": "^6.9.1", - "@typescript-eslint/parser": "^6.9.1", - "@vitejs/plugin-react-swc": "^3.4.1", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "@types/html-to-text": "^9.0.4", + "@types/node": "^20.9.1", + "@types/react": "^18.2.37", + "@types/react-dom": "^18.2.15", + "@types/youtube-player": "^5.5.10", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "@vitejs/plugin-react-swc": "^3.5.0", "autoprefixer": "^10.4.16", "clsx": "^2.0.0", "cross-env": "^7.0.3", "csstype": "^3.1.2", "encoding": "^0.1.13", - "eslint": "^8.52.0", + "eslint": "^8.53.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-simple-import-sort": "^10.0.0", "husky": "^8.0.3", - "lint-staged": "^15.0.2", + "lint-staged": "^15.1.0", "postcss": "^8.4.31", - "prettier": "^3.0.3", - "prettier-plugin-tailwindcss": "^0.5.6", + "prettier": "^3.1.0", + "prettier-plugin-tailwindcss": "^0.5.7", "prop-types": "^15.8.1", "tailwind-merge": "^1.14.0", "tailwindcss": "^3.3.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b7a42d6..4e1bea0c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,53 +9,47 @@ dependencies: specifier: ^1.1.0 version: 1.1.0 '@getalby/sdk': - specifier: ^2.5.0 - version: 2.5.0 + specifier: ^2.6.0 + version: 2.6.0 '@nostr-dev-kit/ndk': specifier: ^2.0.5 version: 2.0.5(typescript@5.2.2) - '@nostr-dev-kit/ndk-cache-dexie': - specifier: ^2.0.3 - version: 2.0.3(typescript@5.2.2) '@nostr-fetch/adapter-ndk': specifier: ^0.13.1 version: 0.13.1(@nostr-dev-kit/ndk@2.0.5)(nostr-fetch@0.13.1) '@radix-ui/react-alert-dialog': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-avatar': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-collapsible': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': specifier: ^2.0.6 - version: 2.0.6(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.6(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-hover-card': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.7(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.7(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-switch': + specifier: ^1.0.3 + version: 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-toolbar': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@tanstack/query-sync-storage-persister': - specifier: ^5.4.3 - version: 5.4.3 + version: 1.0.7(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query': - specifier: ^5.4.3 - version: 5.4.3(react-dom@18.2.0)(react@18.2.0) - '@tanstack/react-query-persist-client': - specifier: ^5.4.3 - version: 5.4.3(@tanstack/react-query@5.4.3)(react-dom@18.2.0)(react@18.2.0) + specifier: ^5.8.4 + version: 5.8.4(react-dom@18.2.0)(react@18.2.0) '@tauri-apps/api': specifier: 2.0.0-alpha.11 version: 2.0.0-alpha.11 @@ -131,36 +125,33 @@ dependencies: dayjs: specifier: ^1.11.10 version: 1.11.10 - destr: - specifier: ^2.0.2 - version: 2.0.2 framer-motion: - specifier: ^10.16.4 - version: 10.16.4(react-dom@18.2.0)(react@18.2.0) + specifier: ^10.16.5 + version: 10.16.5(react-dom@18.2.0)(react@18.2.0) html-to-text: specifier: ^9.0.5 version: 9.0.5 - immer: - specifier: ^10.0.3 - version: 10.0.3 + idb-keyval: + specifier: ^6.2.1 + version: 6.2.1 light-bolt11-decoder: specifier: ^3.0.0 version: 3.0.0 lru-cache: - specifier: ^10.0.1 - version: 10.0.1 + specifier: ^10.0.2 + version: 10.0.2 markdown-to-jsx: specifier: ^7.3.2 version: 7.3.2(react@18.2.0) media-chrome: - specifier: ^1.5.0 - version: 1.5.0 - million: - specifier: ^2.6.4 - version: 2.6.4 + specifier: ^1.5.3 + version: 1.5.3 minidenticons: specifier: ^4.2.0 version: 4.2.0 + nanoid: + specifier: ^5.0.3 + version: 5.0.3 nostr-fetch: specifier: ^0.13.1 version: 0.13.1 @@ -177,76 +168,79 @@ dependencies: specifier: ^18.2.0 version: 18.2.0 react-currency-input-field: - specifier: ^3.6.11 - version: 3.6.11(react@18.2.0) + specifier: ^3.6.12 + version: 3.6.12(react@18.2.0) react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) react-hook-form: - specifier: ^7.47.0 - version: 7.47.0(react@18.2.0) + specifier: ^7.48.2 + version: 7.48.2(react@18.2.0) react-hotkeys-hook: specifier: ^4.4.1 version: 4.4.1(react-dom@18.2.0)(react@18.2.0) react-router-dom: - specifier: ^6.18.0 - version: 6.18.0(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.19.0 + version: 6.19.0(react-dom@18.2.0)(react@18.2.0) + react-string-replace: + specifier: ^1.1.1 + version: 1.1.1 reactflow: - specifier: ^11.9.4 - version: 11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + specifier: ^11.10.1 + version: 11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) sonner: - specifier: ^1.1.0 - version: 1.1.0(react-dom@18.2.0)(react@18.2.0) + specifier: ^1.2.0 + version: 1.2.0(react-dom@18.2.0)(react@18.2.0) tailwind-scrollbar: specifier: ^3.0.5 version: 3.0.5(tailwindcss@3.3.5) tauri-controls: - specifier: ^0.2.0 - version: 0.2.0(@tauri-apps/plugin-os@2.0.0-alpha.4)(@tauri-apps/plugin-window@2.0.0-alpha.1)(clsx@2.0.0)(react-dom@18.2.0)(react@18.2.0)(tailwind-merge@1.14.0) + specifier: github:reyamir/tauri-controls + version: github.com/reyamir/tauri-controls/15e98afd9abd588144d2ac36db6833f2ca6e1405 tippy.js: specifier: ^6.3.7 version: 6.3.7 tiptap-markdown: - specifier: ^0.8.3 - version: 0.8.3(@tiptap/core@2.1.12) + specifier: ^0.8.4 + version: 0.8.4(@tiptap/core@2.1.12) virtua: - specifier: ^0.16.0 - version: 0.16.0(react-dom@18.2.0)(react@18.2.0) + specifier: ^0.16.4 + version: 0.16.4(react-dom@18.2.0)(react@18.2.0) zustand: - specifier: ^4.4.5 - version: 4.4.5(@types/react@18.2.34)(immer@10.0.3)(react@18.2.0) + specifier: ^4.4.6 + version: 4.4.6(@types/react@18.2.37)(react@18.2.0) devDependencies: '@tailwindcss/typography': specifier: ^0.5.10 version: 0.5.10(tailwindcss@3.3.5) '@trivago/prettier-plugin-sort-imports': - specifier: ^4.2.1 - version: 4.2.1(prettier@3.0.3) + specifier: ^4.3.0 + version: 4.3.0(prettier@3.1.0) '@types/html-to-text': - specifier: ^9.0.3 - version: 9.0.3 + specifier: ^9.0.4 + version: 9.0.4 '@types/node': - specifier: ^20.8.10 - version: 20.8.10 + specifier: ^20.9.1 + version: 20.9.1 '@types/react': - specifier: ^18.2.34 - version: 18.2.34 + specifier: ^18.2.37 + version: 18.2.37 '@types/react-dom': - specifier: ^18.2.14 - version: 18.2.14 + specifier: ^18.2.15 + version: 18.2.15 '@types/youtube-player': - specifier: ^5.5.9 - version: 5.5.9 + specifier: ^5.5.10 + version: 5.5.10 '@typescript-eslint/eslint-plugin': - specifier: ^6.9.1 - version: 6.9.1(@typescript-eslint/parser@6.9.1)(eslint@8.52.0)(typescript@5.2.2) + specifier: ^6.11.0 + version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/parser': - specifier: ^6.9.1 - version: 6.9.1(eslint@8.52.0)(typescript@5.2.2) + specifier: ^6.11.0 + version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) '@vitejs/plugin-react-swc': - specifier: ^3.4.1 - version: 3.4.1(vite@4.5.0) + specifier: ^3.5.0 + version: 3.5.0(vite@4.5.0) autoprefixer: specifier: ^10.4.16 version: 10.4.16(postcss@8.4.31) @@ -263,35 +257,35 @@ devDependencies: specifier: ^0.1.13 version: 0.1.13 eslint: - specifier: ^8.52.0 - version: 8.52.0 + specifier: ^8.53.0 + version: 8.53.0 eslint-config-prettier: specifier: ^9.0.0 - version: 9.0.0(eslint@8.52.0) + version: 9.0.0(eslint@8.53.0) eslint-plugin-jsx-a11y: specifier: ^6.8.0 - version: 6.8.0(eslint@8.52.0) + version: 6.8.0(eslint@8.53.0) eslint-plugin-react: specifier: ^7.33.2 - version: 7.33.2(eslint@8.52.0) + version: 7.33.2(eslint@8.53.0) eslint-plugin-simple-import-sort: specifier: ^10.0.0 - version: 10.0.0(eslint@8.52.0) + version: 10.0.0(eslint@8.53.0) husky: specifier: ^8.0.3 version: 8.0.3 lint-staged: - specifier: ^15.0.2 - version: 15.0.2 + specifier: ^15.1.0 + version: 15.1.0 postcss: specifier: ^8.4.31 version: 8.4.31 prettier: - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^3.1.0 + version: 3.1.0 prettier-plugin-tailwindcss: - specifier: ^0.5.6 - version: 0.5.6(@trivago/prettier-plugin-sort-imports@4.2.1)(prettier@3.0.3) + specifier: ^0.5.7 + version: 0.5.7(@trivago/prettier-plugin-sort-imports@4.3.0)(prettier@3.1.0) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -306,7 +300,7 @@ devDependencies: version: 5.2.2 vite: specifier: ^4.5.0 - version: 4.5.0(@types/node@20.8.10) + version: 4.5.0(@types/node@20.9.1) vite-tsconfig-paths: specifier: ^4.2.1 version: 4.2.1(typescript@5.2.2)(vite@4.5.0) @@ -322,48 +316,13 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - dev: false - /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.22.20 chalk: 2.4.2 - - /@babel/compat-data@7.23.2: - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/core@7.23.2: - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) - '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.0 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false + dev: true /@babel/generator@7.17.7: resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} @@ -374,105 +333,52 @@ packages: source-map: 0.5.7 dev: true - /@babel/generator@7.23.0: - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + /@babel/generator@7.23.3: + resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 - - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.2 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: false + dev: true /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 + dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 - - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 - dev: false - - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - dev: false - - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 - dev: false + '@babel/types': 7.23.3 + dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 + dev: true /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helpers@7.23.2: - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 - transitivePeerDependencies: - - supports-color - dev: false + dev: true /@babel/highlight@7.22.20: resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} @@ -481,33 +387,15 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.17.0 - - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: false - - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: false + dev: true /@babel/runtime@7.23.2: resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} @@ -520,25 +408,27 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + dev: true /@babel/traverse@7.23.2: resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 + '@babel/generator': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true /@babel/types@7.17.0: resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} @@ -546,14 +436,16 @@ packages: dependencies: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + dev: true - /@babel/types@7.23.0: - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + /@babel/types@7.23.3: + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + dev: true /@emotion/is-prop-valid@0.8.8: resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} @@ -767,13 +659,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.52.0 + eslint: 8.53.0 eslint-visitor-keys: 3.4.3 dev: true @@ -782,15 +674,15 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 globals: 13.23.0 - ignore: 5.2.4 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -799,8 +691,8 @@ packages: - supports-color dev: true - /@eslint/js@8.52.0: - resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -821,8 +713,8 @@ packages: '@floating-ui/utils': 0.1.6 dev: false - /@floating-ui/react-dom@2.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==} + /@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' @@ -836,8 +728,8 @@ packages: resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} dev: false - /@getalby/sdk@2.5.0: - resolution: {integrity: sha512-MRLgI6WxCCLgrar+qDqm/UhKs+V6yXzNm4y1bJRAuN72nkKT+TjTJHCmk9GjTngR3FrOfLbeMsPwBxCmbvfrLQ==} + /@getalby/sdk@2.6.0: + resolution: {integrity: sha512-klD1FrpGY39QldPf00KtzIveWj0dXtgGdZH6nLWdJ0Ness7FAqy2RkgSF7JQfKJeJSFek7Ip3AL/KCT5/lZgww==} engines: {node: '>=14'} dependencies: crypto-js: 4.2.0 @@ -938,38 +830,6 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@nostr-dev-kit/ndk-cache-dexie@2.0.3(typescript@5.2.2): - resolution: {integrity: sha512-+hSskmdo6GNp/wghCG1WRnm0HGipoJSRCOPeGHSRoUnwUpXlA9NobAjI5XOakrBGKhkWOQpsUgumHGADUX8oAQ==} - dependencies: - '@nostr-dev-kit/ndk': 2.0.3(typescript@5.2.2) - debug: 4.3.4 - dexie: 3.2.4 - nostr-tools: 1.17.0(typescript@5.2.2) - typescript-lru-cache: 2.0.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: false - - /@nostr-dev-kit/ndk@2.0.3(typescript@5.2.2): - resolution: {integrity: sha512-rKIJBIU0dZHaXwj1TY18VSLYsoIe1aQ7TAxkH3WFx3lGTXCz+nlGh5bsyvgMBdbyb0iecdjsaKqBRpEWMzYC9g==} - dependencies: - '@noble/hashes': 1.3.2 - '@noble/secp256k1': 2.0.0 - '@scure/base': 1.1.3 - debug: 4.3.4 - eventemitter3: 5.0.1 - light-bolt11-decoder: 3.0.0 - node-fetch: 3.3.2 - nostr-tools: 1.17.0(typescript@5.2.2) - typescript-lru-cache: 2.0.0 - utf8-buffer: 1.0.0 - websocket-polyfill: 0.0.3 - transitivePeerDependencies: - - supports-color - - typescript - dev: false - /@nostr-dev-kit/ndk@2.0.5(typescript@5.2.2): resolution: {integrity: sha512-EvVr43y+4N9lMSZIIe5V8jFWYlKTVkMyyJfbgRaDGCGiBZAm9iy0wcO2Yi+W57awOAlvr3mjT5fAwG9RDb6HSA==} dependencies: @@ -1017,7 +877,7 @@ packages: '@babel/runtime': 7.23.2 dev: false - /@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==} peerDependencies: '@types/react': '*' @@ -1032,18 +892,18 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -1057,14 +917,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==} peerDependencies: '@types/react': '*' @@ -1078,17 +938,17 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: '@types/react': '*' @@ -1103,20 +963,20 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 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.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -1130,17 +990,17 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -1150,11 +1010,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-context@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -1164,11 +1024,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: '@types/react': '*' @@ -1183,26 +1043,26 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 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.34)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.37)(react@18.2.0) dev: false - /@radix-ui/react-direction@1.0.1(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -1212,11 +1072,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: '@types/react': '*' @@ -1231,17 +1091,17 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' @@ -1256,19 +1116,19 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 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.34)(react@18.2.0): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -1278,11 +1138,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: '@types/react': '*' @@ -1296,16 +1156,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-hover-card@1.0.7(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-hover-card@1.0.7(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==} peerDependencies: '@types/react': '*' @@ -1320,21 +1180,21 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 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.34)(react@18.2.0): + /@radix-ui/react-id@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -1344,12 +1204,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' @@ -1364,30 +1224,30 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 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.34)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.37)(react@18.2.0) dev: false - /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} peerDependencies: '@types/react': '*' @@ -1402,27 +1262,27 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 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.34)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.37)(react@18.2.0) dev: false - /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: '@types/react': '*' @@ -1436,23 +1296,23 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.34)(react@18.2.0) + '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.37)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: '@types/react': '*' @@ -1466,14 +1326,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -1487,15 +1347,15 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 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.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -1509,14 +1369,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 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.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -1531,21 +1391,21 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -1559,14 +1419,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-slot@1.0.2(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -1576,12 +1436,39 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} + 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.23.2 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -1596,19 +1483,19 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' @@ -1623,15 +1510,15 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} peerDependencies: '@types/react': '*' @@ -1646,19 +1533,19 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': '*' @@ -1673,24 +1560,24 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -1700,11 +1587,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -1714,12 +1601,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -1729,12 +1616,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -1744,11 +1631,25 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.37)(react@18.2.0): + resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@types/react': 18.2.37 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -1759,11 +1660,11 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.34)(react@18.2.0): + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -1773,12 +1674,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0) - '@types/react': 18.2.34 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.37)(react@18.2.0) + '@types/react': 18.2.37 react: 18.2.0 dev: false - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -1792,9 +1693,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.34 - '@types/react-dom': 18.2.14 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.15)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.37 + '@types/react-dom': 18.2.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1805,109 +1706,109 @@ packages: '@babel/runtime': 7.23.2 dev: false - /@reactflow/background@11.3.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-bgwvqWxF09chwmdkyClpYEMaewBspdwjgLbbFlLf4SpWPFMYyuvCBQrcISsvy/EDEWO9i3Uj9ktgGAhvtSQsmA==} + /@reactflow/background@11.3.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-06FPlSUOOMALEEs+2PqPAbpqmL7WDjrkbG2UsDr2d6mbcDDhHiV4tu9FYoz44SQvXo7ma9VRotlsaR4OiRcYsg==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) classcat: 5.0.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.5(@types/react@18.2.34)(immer@10.0.3)(react@18.2.0) + zustand: 4.4.6(@types/react@18.2.37)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/controls@11.2.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-x6e5p9iHjC6gd+4SoZ3DOOp0F1MefGKQ8hT6yPVdqxfo1+rV2WhrWvrX/MCoEu12Dp7457LdLfa0giy3aho8tQ==} + /@reactflow/controls@11.2.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4QHT92/ACVlZkvV+Hq44bAPV8WbMhkJl+/J0EbXcqQ1+an7cWJsF84eeelJw7R5J76RoaSSpKdsWsL2v7HAVlw==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) classcat: 5.0.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.5(@types/react@18.2.34)(immer@10.0.3)(react@18.2.0) + zustand: 4.4.6(@types/react@18.2.37)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/core@11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Ko7nKPOYalwDTTbRHi2+QXDiidSAcpUzGN3G+0B+QysLZkcaPCkpkMjjHiDC4c/Z1BJBzs1FRJg/T6BXaBnYkg==} + /@reactflow/core@11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GIh3usY1W3eVobx//OO9+Cwm+5evQBBdPGxDaeXwm25UqPMWRI240nXQA5F/5gL5Mwpf0DUC7DR2EmrKNQy+Rw==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@types/d3': 7.4.2 - '@types/d3-drag': 3.0.5 - '@types/d3-selection': 3.0.8 - '@types/d3-zoom': 3.0.6 + '@types/d3': 7.4.3 + '@types/d3-drag': 3.0.7 + '@types/d3-selection': 3.0.10 + '@types/d3-zoom': 3.0.8 classcat: 5.0.4 d3-drag: 3.0.0 d3-selection: 3.0.0 d3-zoom: 3.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.5(@types/react@18.2.34)(immer@10.0.3)(react@18.2.0) + zustand: 4.4.6(@types/react@18.2.37)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/minimap@11.7.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Jo1R+uDey9IV7O2s3m0gK2+cZpg9M8hq2EZJb3NGfOSzMAPhj3mby0fNJIgTzycreuht0TpA51c2YfjGI3YIOw==} + /@reactflow/minimap@11.7.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kJEtyeQkTZYViLGebVWHVUJROMAGcvejvT+iX4DqKnFb5yK8E8LWlXQpRx2FrL9gDy80mJJaciy7IxnnQKE1bg==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) - '@types/d3-selection': 3.0.8 - '@types/d3-zoom': 3.0.6 + '@reactflow/core': 11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@types/d3-selection': 3.0.10 + '@types/d3-zoom': 3.0.8 classcat: 5.0.4 d3-selection: 3.0.0 d3-zoom: 3.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.5(@types/react@18.2.34)(immer@10.0.3)(react@18.2.0) + zustand: 4.4.6(@types/react@18.2.37)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/node-resizer@2.2.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+p271/hAsM5M1+RQTWW/02pbNkCHeGXwxGimIlL1tMIagyuko0NX2vOz2B8jxJnPKlF09Wj18BcXBNUm3nDcSg==} + /@reactflow/node-resizer@2.2.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1Xb6q97uP7hRBLpog9sRCNfnsHdDgFRGEiU+lQqGgPEAeYwl4nRjWa/sXwH6ajniKxBhGEvrdzOgEFn6CRMcpQ==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) classcat: 5.0.4 d3-drag: 3.0.0 d3-selection: 3.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.5(@types/react@18.2.34)(immer@10.0.3)(react@18.2.0) + zustand: 4.4.6(@types/react@18.2.37)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer dev: false - /@reactflow/node-toolbar@1.3.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TfcmpXHRBb2mUfzKGjburiU6FWqRME9pPFs1OwIC1z5e9BjupQhNDEKEk8XHi7PKL/mAiDfwuGXaM1BVVFuPqw==} + /@reactflow/node-toolbar@1.3.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-JXDEuZ0wKjZ8z7qK2bIst0eZPzNyVEsiHL0e93EyuqT4fA9icoyE0fLq2ryNOOp7MXgId1h7LusnH6ta45F0yQ==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/core': 11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) classcat: 5.0.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - zustand: 4.4.5(@types/react@18.2.34)(immer@10.0.3)(react@18.2.0) + zustand: 4.4.6(@types/react@18.2.37)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer @@ -1922,8 +1823,8 @@ packages: dependencies: '@remirror/core-constants': 2.0.2 '@remirror/types': 1.0.1 - '@types/object.omit': 3.0.2 - '@types/object.pick': 1.3.3 + '@types/object.omit': 3.0.3 + '@types/object.pick': 1.3.4 '@types/throttle-debounce': 2.1.0 case-anything: 2.1.13 dash-get: 1.0.2 @@ -1941,8 +1842,8 @@ packages: type-fest: 2.19.0 dev: false - /@remix-run/router@1.11.0: - resolution: {integrity: sha512-BHdhcWgeiudl91HvVa2wxqZjSHbheSgIiDvxrF1VjFzBzpTtuDPkOdOi3Iqvc08kXtFkLjhbS+ML9aM8mJS+wQ==} + /@remix-run/router@1.12.0: + resolution: {integrity: sha512-2hXv036Bux90e1GXTWSMfNzfDDK8LA8JYEWfyHxzvwdp6GyoWEovKc9cotb3KCKmkdwsIBuFGX7ScTWyiHv7Eg==} engines: {node: '>=14.0.0'} dev: false @@ -1976,8 +1877,8 @@ packages: selderee: 0.11.0 dev: false - /@swc/core-darwin-arm64@1.3.95: - resolution: {integrity: sha512-VAuBAP3MNetO/yBIBzvorUXq7lUBwhfpJxYViSxyluMwtoQDhE/XWN598TWMwMl1ZuImb56d7eUsuFdjgY7pJw==} + /@swc/core-darwin-arm64@1.3.96: + resolution: {integrity: sha512-8hzgXYVd85hfPh6mJ9yrG26rhgzCmcLO0h1TIl8U31hwmTbfZLzRitFQ/kqMJNbIBCwmNH1RU2QcJnL3d7f69A==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -1985,8 +1886,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64@1.3.95: - resolution: {integrity: sha512-20vF2rvUsN98zGLZc+dsEdHvLoCuiYq/1B+TDeE4oolgTFDmI1jKO+m44PzWjYtKGU9QR95sZ6r/uec0QC5O4Q==} + /@swc/core-darwin-x64@1.3.96: + resolution: {integrity: sha512-mFp9GFfuPg+43vlAdQZl0WZpZSE8sEzqL7sr/7Reul5McUHP0BaLsEzwjvD035ESfkY8GBZdLpMinblIbFNljQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -1994,8 +1895,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf@1.3.95: - resolution: {integrity: sha512-oEudEM8PST1MRNGs+zu0cx5i9uP8TsLE4/L9HHrS07Ck0RJ3DCj3O2fU832nmLe2QxnAGPwBpSO9FntLfOiWEQ==} + /@swc/core-linux-arm-gnueabihf@1.3.96: + resolution: {integrity: sha512-8UEKkYJP4c8YzYIY/LlbSo8z5Obj4hqcv/fUTHiEePiGsOddgGf7AWjh56u7IoN/0uEmEro59nc1ChFXqXSGyg==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -2003,8 +1904,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu@1.3.95: - resolution: {integrity: sha512-pIhFI+cuC1aYg+0NAPxwT/VRb32f2ia8oGxUjQR6aJg65gLkUYQzdwuUmpMtFR2WVf7WVFYxUnjo4UyMuyh3ng==} + /@swc/core-linux-arm64-gnu@1.3.96: + resolution: {integrity: sha512-c/IiJ0s1y3Ymm2BTpyC/xr6gOvoqAVETrivVXHq68xgNms95luSpbYQ28rqaZC8bQC8M5zdXpSc0T8DJu8RJGw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -2012,8 +1913,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl@1.3.95: - resolution: {integrity: sha512-ZpbTr+QZDT4OPJfjPAmScqdKKaT+wGurvMU5AhxLaf85DuL8HwUwwlL0n1oLieLc47DwIJEMuKQkYhXMqmJHlg==} + /@swc/core-linux-arm64-musl@1.3.96: + resolution: {integrity: sha512-i5/UTUwmJLri7zhtF6SAo/4QDQJDH2fhYJaBIUhrICmIkRO/ltURmpejqxsM/ye9Jqv5zG7VszMC0v/GYn/7BQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -2021,8 +1922,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu@1.3.95: - resolution: {integrity: sha512-n9SuHEFtdfSJ+sHdNXNRuIOVprB8nbsz+08apKfdo4lEKq6IIPBBAk5kVhPhkjmg2dFVHVo4Tr/OHXM1tzWCCw==} + /@swc/core-linux-x64-gnu@1.3.96: + resolution: {integrity: sha512-USdaZu8lTIkm4Yf9cogct/j5eqtdZqTgcTib4I+NloUW0E/hySou3eSyp3V2UAA1qyuC72ld1otXuyKBna0YKQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -2030,8 +1931,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl@1.3.95: - resolution: {integrity: sha512-L1JrVlsXU3LC0WwmVnMK9HrOT2uhHahAoPNMJnZQpc18a0paO9fqifPG8M/HjNRffMUXR199G/phJsf326UvVg==} + /@swc/core-linux-x64-musl@1.3.96: + resolution: {integrity: sha512-QYErutd+G2SNaCinUVobfL7jWWjGTI0QEoQ6hqTp7PxCJS/dmKmj3C5ZkvxRYcq7XcZt7ovrYCTwPTHzt6lZBg==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -2039,8 +1940,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc@1.3.95: - resolution: {integrity: sha512-YaP4x/aZbUyNdqCBpC2zL8b8n58MEpOUpmOIZK6G1SxGi+2ENht7gs7+iXpWPc0sy7X3YPKmSWMAuui0h8lgAA==} + /@swc/core-win32-arm64-msvc@1.3.96: + resolution: {integrity: sha512-hjGvvAduA3Un2cZ9iNP4xvTXOO4jL3G9iakhFsgVhpkU73SGmK7+LN8ZVBEu4oq2SUcHO6caWvnZ881cxGuSpg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -2048,8 +1949,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc@1.3.95: - resolution: {integrity: sha512-w0u3HI916zT4BC/57gOd+AwAEjXeUlQbGJ9H4p/gzs1zkSHtoDQghVUNy3n/ZKp9KFod/95cA8mbVF9t1+6epQ==} + /@swc/core-win32-ia32-msvc@1.3.96: + resolution: {integrity: sha512-Far2hVFiwr+7VPCM2GxSmbh3ikTpM3pDombE+d69hkedvYHYZxtTF+2LTKl/sXtpbUnsoq7yV/32c9R/xaaWfw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -2057,8 +1958,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc@1.3.95: - resolution: {integrity: sha512-5RGnMt0S6gg4Gc6QtPUJ3Qs9Un4sKqccEzgH/tj7V/DVTJwKdnBKxFZfgQ34OR2Zpz7zGOn889xwsFVXspVWNA==} + /@swc/core-win32-x64-msvc@1.3.96: + resolution: {integrity: sha512-4VbSAniIu0ikLf5mBX81FsljnfqjoVGleEkCQv4+zRlyZtO3FHoDPkeLVoy6WRlj7tyrRcfUJ4mDdPkbfTO14g==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -2066,8 +1967,8 @@ packages: dev: true optional: true - /@swc/core@1.3.95: - resolution: {integrity: sha512-PMrNeuqIusq9DPDooV3FfNEbZuTu5jKAc04N3Hm6Uk2Fl49cqElLFQ4xvl4qDmVDz97n3n/C1RE0/f6WyGPEiA==} + /@swc/core@1.3.96: + resolution: {integrity: sha512-zwE3TLgoZwJfQygdv2SdCK9mRLYluwDOM53I+dT6Z5ZvrgVENmY3txvWDvduzkV+/8IuvrRbVezMpxcojadRdQ==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -2079,16 +1980,16 @@ packages: '@swc/counter': 0.1.2 '@swc/types': 0.1.5 optionalDependencies: - '@swc/core-darwin-arm64': 1.3.95 - '@swc/core-darwin-x64': 1.3.95 - '@swc/core-linux-arm-gnueabihf': 1.3.95 - '@swc/core-linux-arm64-gnu': 1.3.95 - '@swc/core-linux-arm64-musl': 1.3.95 - '@swc/core-linux-x64-gnu': 1.3.95 - '@swc/core-linux-x64-musl': 1.3.95 - '@swc/core-win32-arm64-msvc': 1.3.95 - '@swc/core-win32-ia32-msvc': 1.3.95 - '@swc/core-win32-x64-msvc': 1.3.95 + '@swc/core-darwin-arm64': 1.3.96 + '@swc/core-darwin-x64': 1.3.96 + '@swc/core-linux-arm-gnueabihf': 1.3.96 + '@swc/core-linux-arm64-gnu': 1.3.96 + '@swc/core-linux-arm64-musl': 1.3.96 + '@swc/core-linux-x64-gnu': 1.3.96 + '@swc/core-linux-x64-musl': 1.3.96 + '@swc/core-win32-arm64-msvc': 1.3.96 + '@swc/core-win32-ia32-msvc': 1.3.96 + '@swc/core-win32-x64-msvc': 1.3.96 dev: true /@swc/counter@0.1.2: @@ -2111,38 +2012,12 @@ packages: tailwindcss: 3.3.5 dev: true - /@tanstack/query-core@5.4.3: - resolution: {integrity: sha512-fnI9ORjcuLGm1sNrKatKIosRQUpuqcD4SV7RqRSVmj8JSicX2aoMyKryHEBpVQvf6N4PaBVgBxQomjsbsGPssQ==} + /@tanstack/query-core@5.8.3: + resolution: {integrity: sha512-SWFMFtcHfttLYif6pevnnMYnBvxKf3C+MHMH7bevyYfpXpTMsLB9O6nNGBdWSoPwnZRXFNyNeVZOw25Wmdasow==} dev: false - /@tanstack/query-persist-client-core@5.4.3: - resolution: {integrity: sha512-0MZazQMVXmmVyf/ce2ug0CoSkT02VA4ZhkT3F1/tIINxGuH2KlhKWQc9puqJzTazUpXfRdBK9+lMPqpkA16FEQ==} - dependencies: - '@tanstack/query-core': 5.4.3 - dev: false - - /@tanstack/query-sync-storage-persister@5.4.3: - resolution: {integrity: sha512-53e2O8lLaeBZ26myG6zQt5Ix16XmkcqJrsrSP2ZZzP5Ii6XwBq061djaEMTNbWYenYpmDqQIxAye/J6zQZ0QiA==} - dependencies: - '@tanstack/query-core': 5.4.3 - '@tanstack/query-persist-client-core': 5.4.3 - dev: false - - /@tanstack/react-query-persist-client@5.4.3(@tanstack/react-query@5.4.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-gpusG6IG6rnmdRT3onSjmRVG60K3BlsdUQifBVeLdi4uen1rvRAiB5a7jr4hFVMItzS9C4jBxJMWt/DmZpy6Ow==} - peerDependencies: - '@tanstack/react-query': ^5.4.3 - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@tanstack/query-persist-client-core': 5.4.3 - '@tanstack/react-query': 5.4.3(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@tanstack/react-query@5.4.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4aSOrRNa6yEmf7mws5QPTVMn8Lp7L38tFoTZ0c1ZmhIvbr8GIA0WT7X5N3yz/nuK8hUtjw9cAzBr4BPDZZ+tzA==} + /@tanstack/react-query@5.8.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CD+AkXzg8J72JrE6ocmuBEJfGzEzu/bzkD6sFXFDDB5yji9N20JofXZlN6n0+CaPJuIi+e4YLCbGsyPFKkfNQA==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -2153,7 +2028,7 @@ packages: react-native: optional: true dependencies: - '@tanstack/query-core': 5.4.3 + '@tanstack/query-core': 5.8.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -2163,16 +2038,6 @@ packages: engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/api@2.0.0-alpha.6: - resolution: {integrity: sha512-ZMOc3eu9amwvkC6M69h3hWt4/EsFaAXmtkiw4xd2LN59/lTb4ZQiVfq2QKlRcu1rj3n/Tcr7U30ZopvHwXBGIg==} - engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - dev: false - - /@tauri-apps/api@2.0.0-alpha.8: - resolution: {integrity: sha512-3hZ+7EzUA11KN+O/Y4KgmjR+ldhXLdNllkw//hv/AaNsktEopCRBuKfVRLzVK3yov+Z+GzgxqFlwgJ1v6g1iKw==} - engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - dev: false - /@tauri-apps/cli-darwin-arm64@2.0.0-alpha.17: resolution: {integrity: sha512-WDqekRiVwMu/hKsf/xBHcfi/YZ7X9o6Piy4Qolt+YYyfi4wh5ZYZnom+7kIZBlSCc32gtXGViBXEivhcKzFQ3w==} engines: {node: '>= 10'} @@ -2346,12 +2211,6 @@ packages: '@tauri-apps/api': 2.0.0-alpha.11 dev: false - /@tauri-apps/plugin-window@2.0.0-alpha.1: - resolution: {integrity: sha512-dFOAgal/3Txz3SQ+LNQq0AK1EPC+acdaFlwPVB/6KXUZYmaFleIlzgxDVoJCQ+/xOhxvYrdQaFLefh0I/Kldbg==} - dependencies: - '@tauri-apps/api': 2.0.0-alpha.6 - dev: false - /@tiptap/core@2.1.12(@tiptap/pm@2.1.12): resolution: {integrity: sha512-ZGc3xrBJA9KY8kln5AYTj8y+GDrKxi7u95xIl2eccrqTY5CQeRu6HRNM1yT4mAjuSaG9jmazyjGRlQuhyxCKxQ==} peerDependencies: @@ -2585,7 +2444,7 @@ packages: prosemirror-dropcursor: 1.8.1 prosemirror-gapcursor: 1.3.2 prosemirror-history: 1.3.2 - prosemirror-inputrules: 1.2.1 + prosemirror-inputrules: 1.3.0 prosemirror-keymap: 1.2.2 prosemirror-markdown: 1.11.2 prosemirror-menu: 1.2.4 @@ -2594,9 +2453,9 @@ packages: prosemirror-schema-list: 1.3.0 prosemirror-state: 1.4.3 prosemirror-tables: 1.3.4 - prosemirror-trailing-node: 2.0.7(prosemirror-model@1.19.3)(prosemirror-state@1.4.3)(prosemirror-view@1.32.3) + prosemirror-trailing-node: 2.0.7(prosemirror-model@1.19.3)(prosemirror-state@1.4.3)(prosemirror-view@1.32.4) prosemirror-transform: 1.8.0 - prosemirror-view: 1.32.3 + prosemirror-view: 1.32.4 dev: false /@tiptap/react@2.1.12(@tiptap/core@2.1.12)(@tiptap/pm@2.1.12)(react-dom@18.2.0)(react@18.2.0): @@ -2651,8 +2510,8 @@ packages: '@tiptap/pm': 2.1.12 dev: false - /@trivago/prettier-plugin-sort-imports@4.2.1(prettier@3.0.3): - resolution: {integrity: sha512-iuy2MPVURGdxILTchHr15VAioItuYBejKfcTmQFlxIuqA7jeaT6ngr5aUIG6S6U096d6a6lJCgaOwlRrPLlOPg==} + /@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.1.0): + resolution: {integrity: sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==} peerDependencies: '@vue/compiler-sfc': 3.x prettier: 2.x - 3.x @@ -2661,268 +2520,268 @@ packages: optional: true dependencies: '@babel/generator': 7.17.7 - '@babel/parser': 7.23.0 + '@babel/parser': 7.23.3 '@babel/traverse': 7.23.2 '@babel/types': 7.17.0 javascript-natural-sort: 0.7.1 lodash: 4.17.21 - prettier: 3.0.3 + prettier: 3.1.0 transitivePeerDependencies: - supports-color dev: true - /@types/d3-array@3.0.9: - resolution: {integrity: sha512-mZowFN3p64ajCJJ4riVYlOjNlBJv3hctgAY01pjw3qTnJePD8s9DZmYDzhHKvzfCYvdjwylkU38+Vdt7Cu2FDA==} + /@types/d3-array@3.2.1: + resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} dev: false - /@types/d3-axis@3.0.5: - resolution: {integrity: sha512-ufDAV3SQzju+uB3Jlty7SUb/jMigjpIlvDDcSGvGmmO6OT/sNO93UE0dRzwWOZeBLzrLSA0CQM4bf3iq1std3A==} + /@types/d3-axis@3.0.6: + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} dependencies: - '@types/d3-selection': 3.0.8 + '@types/d3-selection': 3.0.10 dev: false - /@types/d3-brush@3.0.5: - resolution: {integrity: sha512-JROQXZNq1X6QdWstESDUv1VilwZ2hBCQnWB91yal+5yZvYwGQvYsGCjrkHGfKK/8/AcX1JnERmpQzdDDuLRUsA==} + /@types/d3-brush@3.0.6: + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} dependencies: - '@types/d3-selection': 3.0.8 + '@types/d3-selection': 3.0.10 dev: false - /@types/d3-chord@3.0.5: - resolution: {integrity: sha512-rs26AIhJjtc+XLR4YQU8IjPTLOlDVO4PR1y+pVFYEHzKh2tE5tYz3MF4QV6iz7HboXQEaYpJQt8dH9uUkne8yA==} + /@types/d3-chord@3.0.6: + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} dev: false - /@types/d3-color@3.1.2: - resolution: {integrity: sha512-At+Ski7dL8Bs58E8g8vPcFJc8tGcaC12Z4m07+p41+DRqnZQcAlp3NfYjLrhNYv+zEyQitU1CUxXNjqUyf+c0g==} + /@types/d3-color@3.1.3: + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} dev: false - /@types/d3-contour@3.0.5: - resolution: {integrity: sha512-wLvjwdOQVd1NL1IcW90CCt1VtpeZ3V20p/OTXlkT8uAiprrJnq2PNNnRNe1QCez4U9aMU29Z14zpJQVLW1+Lcg==} + /@types/d3-contour@3.0.6: + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} dependencies: - '@types/d3-array': 3.0.9 - '@types/geojson': 7946.0.12 + '@types/d3-array': 3.2.1 + '@types/geojson': 7946.0.13 dev: false - /@types/d3-delaunay@6.0.3: - resolution: {integrity: sha512-+Lf5NPKZ4JBC9tbudVkKceQXRxU3jJs0el9aKQvinMtdnFSOG84eVXyhCNgIFuXNQO3iIcYs7sgzN359FEOZnQ==} + /@types/d3-delaunay@6.0.4: + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} dev: false - /@types/d3-dispatch@3.0.5: - resolution: {integrity: sha512-hxvq2kc+9hydVppo21JCGfcM0tLTh1DXnG3MLN0KlxsNZJH4bsdl1iXDuWtXFpWWlBrCMwSqlnoLPDxNAZU3Bg==} + /@types/d3-dispatch@3.0.6: + resolution: {integrity: sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==} dev: false - /@types/d3-drag@3.0.5: - resolution: {integrity: sha512-arHyAGvO0NEGGPCU2jTb31TlXeSxwty1bIxr5wOFOCVqVjgriXloLWXoRp39Oa0Y/qXxcAVMIonAWLrtLxUZAQ==} + /@types/d3-drag@3.0.7: + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} dependencies: - '@types/d3-selection': 3.0.8 + '@types/d3-selection': 3.0.10 dev: false - /@types/d3-dsv@3.0.5: - resolution: {integrity: sha512-73WZR3QFOaSRVz9iOrebTbTnbo7xjcgS/i0Cq5zy0jMXPO3v/JbkTD3Zqii1eYE6v4EJ78g5VP407rm+p8fdlA==} + /@types/d3-dsv@3.0.7: + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} dev: false - /@types/d3-ease@3.0.1: - resolution: {integrity: sha512-VZofjpEt8HWv3nxUAosj5o/+4JflnJ7Bbv07k17VO3T2WRuzGdZeookfaF60iVh5RdhVG49LE5w6LIshVUC6rg==} + /@types/d3-ease@3.0.2: + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} dev: false - /@types/d3-fetch@3.0.5: - resolution: {integrity: sha512-Rc8pb6H0RRLpAV2hEXduykUgcDUOhjSLTLmCIeo6ejzgs4SaITh/EteMb3p5Env3Hqjsqw0fCksyqopHHzMkMg==} + /@types/d3-fetch@3.0.7: + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} dependencies: - '@types/d3-dsv': 3.0.5 + '@types/d3-dsv': 3.0.7 dev: false - /@types/d3-force@3.0.7: - resolution: {integrity: sha512-rsok4CEvPLyVWRPsFiBhanJc3up03H/EARVz4d8soPh8drv82YMuAckYy4yv8g4/81JwCng5U5/o9aj9d0T6bQ==} + /@types/d3-force@3.0.9: + resolution: {integrity: sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA==} dev: false - /@types/d3-format@3.0.3: - resolution: {integrity: sha512-kxuLXSAEJykTeL/EI3tUiEfGqru7PRdqEy099YBnqFl+fF167UVSB4+wntlZv86ZdoYf0DHjsRHnTIm8kcH7qw==} + /@types/d3-format@3.0.4: + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} dev: false - /@types/d3-geo@3.0.6: - resolution: {integrity: sha512-wblAES3b+C3hvp4VakwECEKtHquT/xc6K4HOna95LM1j1fd7s7WmU4V+JMQZfKhNCMkV2vWD+ZUgY2Uj6gqfuA==} + /@types/d3-geo@3.1.0: + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} dependencies: - '@types/geojson': 7946.0.12 + '@types/geojson': 7946.0.13 dev: false - /@types/d3-hierarchy@3.1.5: - resolution: {integrity: sha512-DEcBUj1IL3WyPLDlh4m2nsNXnMLITXM5Vwcu4G85yJHtf2cVGPBjgky3L11WBnT+ayHKf06Tchk5mY1eGmd4WQ==} + /@types/d3-hierarchy@3.1.6: + resolution: {integrity: sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw==} dev: false - /@types/d3-interpolate@3.0.3: - resolution: {integrity: sha512-6OZ2EIB4lLj+8cUY7I/Cgn9Q+hLdA4DjJHYOQDiHL0SzqS1K9DL5xIOVBSIHgF+tiuO9MU1D36qvdIvRDRPh+Q==} + /@types/d3-interpolate@3.0.4: + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} dependencies: - '@types/d3-color': 3.1.2 + '@types/d3-color': 3.1.3 dev: false - /@types/d3-path@3.0.1: - resolution: {integrity: sha512-blRhp7ki7pVznM8k6lk5iUU9paDbVRVq+/xpf0RRgSJn5gr6SE7RcFtxooYGMBOc1RZiGyqRpVdu5AD0z0ooMA==} + /@types/d3-path@3.0.2: + resolution: {integrity: sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA==} dev: false - /@types/d3-polygon@3.0.1: - resolution: {integrity: sha512-nrcWPk7B9qs6xnpq60Cls44zm9eDmFAv65qi/N/emh/oftnG6uYz49aIS0mdFaGeJxVN8H3pHneMuZMV8EwFdw==} + /@types/d3-polygon@3.0.2: + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} dev: false - /@types/d3-quadtree@3.0.4: - resolution: {integrity: sha512-B725MopFDIOQ6njFbeOxIEf42HVO2Xv+FmcxQISdOKErvLbFqWz3Riu+OWujUYoogreqqyHBHcGGL/JzzXQYsw==} + /@types/d3-quadtree@3.0.5: + resolution: {integrity: sha512-Cb1f3jyNBnvMMkf4KBZ7IgAQVWd9yzBwYcrxGqg3aPCUgWELAS+nyeB7r76aqu1e3+CGDjhk4BrWaFBekMwigg==} dev: false - /@types/d3-random@3.0.2: - resolution: {integrity: sha512-8QhsqkKs6mymAZMrg3ZFXPxKA34rdgp3ZrtB8o6mhFsKAd1gOvR1gocWnca+kmXypQdwgnzKm9gZE2Uw8NjjKw==} + /@types/d3-random@3.0.3: + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} dev: false - /@types/d3-scale-chromatic@3.0.1: - resolution: {integrity: sha512-Ob7OrwiTeQXY/WBBbRHGZBOn6rH1h7y3jjpTSKYqDEeqFjktql6k2XSgNwLrLDmAsXhEn8P9NHDY4VTuo0ZY1w==} + /@types/d3-scale-chromatic@3.0.2: + resolution: {integrity: sha512-kpKNZMDT3OAX6b5ct5nS/mv6LULagnUy4DmS6yyNjclje1qVe7vbjPwY3q1TGz6+Wr2IUkgFatCzqYUl54fHag==} dev: false - /@types/d3-scale@4.0.6: - resolution: {integrity: sha512-lo3oMLSiqsQUovv8j15X4BNEDOsnHuGjeVg7GRbAuB2PUa1prK5BNSOu6xixgNf3nqxPl4I1BqJWrPvFGlQoGQ==} + /@types/d3-scale@4.0.8: + resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} dependencies: - '@types/d3-time': 3.0.2 + '@types/d3-time': 3.0.3 dev: false - /@types/d3-selection@3.0.8: - resolution: {integrity: sha512-pxCZUfQyedq/DIlPXIR5wE1mIH37omOdx1yxRudL3KZ4AC+156jMjOv1z5RVlGq62f8WX2kyO0hTVgEx627QFg==} + /@types/d3-selection@3.0.10: + resolution: {integrity: sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==} dev: false - /@types/d3-shape@3.1.4: - resolution: {integrity: sha512-M2/xsWPsjaZc5ifMKp1EBp0gqJG0eO/zlldJNOC85Y/5DGsBQ49gDkRJ2h5GY7ZVD6KUumvZWsylSbvTaJTqKg==} + /@types/d3-shape@3.1.5: + resolution: {integrity: sha512-dfEWpZJ1Pdg8meLlICX1M3WBIpxnaH2eQV2eY43Y5ysRJOTAV9f3/R++lgJKFstfrEOE2zdJ0sv5qwr2Bkic6Q==} dependencies: - '@types/d3-path': 3.0.1 + '@types/d3-path': 3.0.2 dev: false - /@types/d3-time-format@4.0.2: - resolution: {integrity: sha512-wr08C1Gh77qaN8JIkrn5Rz/bdt5M9bdEqFmEOcYhUSq2t2sHvLTBfb4XAtGB3D4hm0ubj50NXWWXoXyp5tPXDg==} + /@types/d3-time-format@4.0.3: + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} dev: false - /@types/d3-time@3.0.2: - resolution: {integrity: sha512-kbdRXTmUgNfw5OTE3KZnFQn6XdIc4QGroN5UixgdrXATmYsdlPQS6pEut9tVlIojtzuFD4txs/L+Rq41AHtLpg==} + /@types/d3-time@3.0.3: + resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} dev: false - /@types/d3-timer@3.0.1: - resolution: {integrity: sha512-GGTvzKccVEhxmRfJEB6zhY9ieT4UhGVUIQaBzFpUO9OXy2ycAlnPCSJLzmGGgqt3KVjqN3QCQB4g1rsZnHsWhg==} + /@types/d3-timer@3.0.2: + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} dev: false - /@types/d3-transition@3.0.6: - resolution: {integrity: sha512-K0To23B5UxNwFtKORnS5JoNYvw/DnknU5MzhHIS9czJ/lTqFFDeU6w9lArOdoTl0cZFNdNrMJSFCbRCEHccH2w==} + /@types/d3-transition@3.0.8: + resolution: {integrity: sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==} dependencies: - '@types/d3-selection': 3.0.8 + '@types/d3-selection': 3.0.10 dev: false - /@types/d3-zoom@3.0.6: - resolution: {integrity: sha512-dGZQaXEu7aNcCL71LPpjB58IjoQNM9oDPfQuMUJ7N/fbkcIWGX2PnmUWO1jPJ+RLbZBpRUggJUX8twKRvo2hKQ==} + /@types/d3-zoom@3.0.8: + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} dependencies: - '@types/d3-interpolate': 3.0.3 - '@types/d3-selection': 3.0.8 + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.10 dev: false - /@types/d3@7.4.2: - resolution: {integrity: sha512-Y4g2Yb30ZJmmtqAJTqMRaqXwRawfvpdpVmyEYEcyGNhrQI/Zvkq3k7yE1tdN07aFSmNBfvmegMQ9Fe2qy9ZMhw==} + /@types/d3@7.4.3: + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} dependencies: - '@types/d3-array': 3.0.9 - '@types/d3-axis': 3.0.5 - '@types/d3-brush': 3.0.5 - '@types/d3-chord': 3.0.5 - '@types/d3-color': 3.1.2 - '@types/d3-contour': 3.0.5 - '@types/d3-delaunay': 6.0.3 - '@types/d3-dispatch': 3.0.5 - '@types/d3-drag': 3.0.5 - '@types/d3-dsv': 3.0.5 - '@types/d3-ease': 3.0.1 - '@types/d3-fetch': 3.0.5 - '@types/d3-force': 3.0.7 - '@types/d3-format': 3.0.3 - '@types/d3-geo': 3.0.6 - '@types/d3-hierarchy': 3.1.5 - '@types/d3-interpolate': 3.0.3 - '@types/d3-path': 3.0.1 - '@types/d3-polygon': 3.0.1 - '@types/d3-quadtree': 3.0.4 - '@types/d3-random': 3.0.2 - '@types/d3-scale': 4.0.6 - '@types/d3-scale-chromatic': 3.0.1 - '@types/d3-selection': 3.0.8 - '@types/d3-shape': 3.1.4 - '@types/d3-time': 3.0.2 - '@types/d3-time-format': 4.0.2 - '@types/d3-timer': 3.0.1 - '@types/d3-transition': 3.0.6 - '@types/d3-zoom': 3.0.6 + '@types/d3-array': 3.2.1 + '@types/d3-axis': 3.0.6 + '@types/d3-brush': 3.0.6 + '@types/d3-chord': 3.0.6 + '@types/d3-color': 3.1.3 + '@types/d3-contour': 3.0.6 + '@types/d3-delaunay': 6.0.4 + '@types/d3-dispatch': 3.0.6 + '@types/d3-drag': 3.0.7 + '@types/d3-dsv': 3.0.7 + '@types/d3-ease': 3.0.2 + '@types/d3-fetch': 3.0.7 + '@types/d3-force': 3.0.9 + '@types/d3-format': 3.0.4 + '@types/d3-geo': 3.1.0 + '@types/d3-hierarchy': 3.1.6 + '@types/d3-interpolate': 3.0.4 + '@types/d3-path': 3.0.2 + '@types/d3-polygon': 3.0.2 + '@types/d3-quadtree': 3.0.5 + '@types/d3-random': 3.0.3 + '@types/d3-scale': 4.0.8 + '@types/d3-scale-chromatic': 3.0.2 + '@types/d3-selection': 3.0.10 + '@types/d3-shape': 3.1.5 + '@types/d3-time': 3.0.3 + '@types/d3-time-format': 4.0.3 + '@types/d3-timer': 3.0.2 + '@types/d3-transition': 3.0.8 + '@types/d3-zoom': 3.0.8 dev: false - /@types/geojson@7946.0.12: - resolution: {integrity: sha512-uK2z1ZHJyC0nQRbuovXFt4mzXDwf27vQeUWNhfKGwRcWW429GOhP8HxUHlM6TLH4bzmlv/HlEjpvJh3JfmGsAA==} + /@types/geojson@7946.0.13: + resolution: {integrity: sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==} dev: false - /@types/html-to-text@9.0.3: - resolution: {integrity: sha512-ImzcLdHN3+zghCoZcA+vWd/t0GhM10S7lnvSq9YA6lbo4HGK10WIJ7n+NI7mbeVZeUtgrmK5fXM66kZcws1oHA==} + /@types/html-to-text@9.0.4: + resolution: {integrity: sha512-pUY3cKH/Nm2yYrEmDlPR1mR7yszjGx4DrwPjQ702C4/D5CwHuZTgZdIdwPkRbcuhs7BAh2L5rg3CL5cbRiGTCQ==} dev: true - /@types/json-schema@7.0.14: - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/linkify-it@3.0.4: - resolution: {integrity: sha512-hPpIeeHb/2UuCw06kSNAOVWgehBLXEo0/fUs0mw3W2qhqX89PI2yvok83MnuctYGCPrabGIoi0fFso4DQ+sNUQ==} + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} dev: false /@types/markdown-it@12.2.3: resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} dependencies: - '@types/linkify-it': 3.0.4 - '@types/mdurl': 1.0.4 + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 dev: false - /@types/mdurl@1.0.4: - resolution: {integrity: sha512-ARVxjAEX5TARFRzpDRVC6cEk0hUIXCCwaMhz8y7S1/PxU6zZS1UMjyobz7q4w/D/R552r4++EhwmXK1N2rAy0A==} + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} dev: false - /@types/node@20.8.10: - resolution: {integrity: sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==} + /@types/node@20.9.1: + resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==} dependencies: undici-types: 5.26.5 dev: true - /@types/object.omit@3.0.2: - resolution: {integrity: sha512-BxWU36cMP+FKD3OLFluQaj2cBev2sx2LJaHELuphHwnleq+xnEhTmuYYYx4pOT/1U/ZoR6B+RdvxWh2FD6lGGA==} + /@types/object.omit@3.0.3: + resolution: {integrity: sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew==} dev: false - /@types/object.pick@1.3.3: - resolution: {integrity: sha512-qZqHmdGEALeSATMB1djT1S5szv6Wtpb7DKpHrt2XG4iyKlV7C2Xk8GmDXr1KXakOqUfX6ohw7ceruYt4NVmB1Q==} + /@types/object.pick@1.3.4: + resolution: {integrity: sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA==} dev: false - /@types/prop-types@15.7.9: - resolution: {integrity: sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==} + /@types/prop-types@15.7.10: + resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==} - /@types/react-dom@18.2.14: - resolution: {integrity: sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==} + /@types/react-dom@18.2.15: + resolution: {integrity: sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg==} dependencies: - '@types/react': 18.2.34 + '@types/react': 18.2.37 - /@types/react@18.2.34: - resolution: {integrity: sha512-U6eW/alrRk37FU/MS2RYMjx0Va2JGIVXELTODaTIYgvWGCV4Y4TfTUzG8DdmpDNIT0Xpj/R7GfyHOJJrDttcvg==} + /@types/react@18.2.37: + resolution: {integrity: sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==} dependencies: - '@types/prop-types': 15.7.9 - '@types/scheduler': 0.16.5 + '@types/prop-types': 15.7.10 + '@types/scheduler': 0.16.6 csstype: 3.1.2 - /@types/scheduler@0.16.5: - resolution: {integrity: sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==} + /@types/scheduler@0.16.6: + resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==} - /@types/semver@7.5.4: - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} + /@types/semver@7.5.5: + resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} dev: true /@types/throttle-debounce@2.1.0: resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} dev: false - /@types/youtube-player@5.5.9: - resolution: {integrity: sha512-l2Q7ESxMv6HK2jc6I1qwMMGbh5bpHYQVCpXs0GsFmzaXoPibX50pHzs+PGfmegDY8TvmMGKWBgGI16ytqK6iIw==} + /@types/youtube-player@5.5.10: + resolution: {integrity: sha512-A45rtI9nc4k/a1xdrSxE4tYO9MbGJg4esuCrTXNaB3v/ZqpeBQrD1OQwmKwZA9TMdg8VR8DPJY37pFOEBSuWIg==} dev: true - /@typescript-eslint/eslint-plugin@6.9.1(@typescript-eslint/parser@6.9.1)(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-w0tiiRc9I4S5XSXXrMHOWgHgxbrBn1Ro+PmiYhSg2ZVdxrAJtQgzU5o2m1BfP6UOn7Vxcc6152vFjQfmZR4xEg==} + /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -2933,15 +2792,15 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.9.1(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.9.1 - '@typescript-eslint/type-utils': 6.9.1(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.9.1(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 - eslint: 8.52.0 + eslint: 8.53.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 ts-api-utils: 1.0.3(typescript@5.2.2) @@ -2950,8 +2809,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.9.1(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==} + /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2960,27 +2819,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.9.1 - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 - eslint: 8.52.0 + eslint: 8.53.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.9.1: - resolution: {integrity: sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==} + /@typescript-eslint/scope-manager@6.11.0: + resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 dev: true - /@typescript-eslint/type-utils@6.9.1(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-eh2oHaUKCK58qIeYp19F5V5TbpM52680sB4zNSz29VBQPTWIlE/hCj5P5B1AChxECe/fmZlspAWFuRniep1Skg==} + /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2989,23 +2848,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) - '@typescript-eslint/utils': 6.9.1(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.52.0 + eslint: 8.53.0 ts-api-utils: 1.0.3(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.9.1: - resolution: {integrity: sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==} + /@typescript-eslint/types@6.11.0: + resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.9.1(typescript@5.2.2): - resolution: {integrity: sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==} + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): + resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -3013,8 +2872,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/visitor-keys': 6.9.1 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3025,30 +2884,30 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.9.1(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA==} + /@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 - '@typescript-eslint/scope-manager': 6.9.1 - '@typescript-eslint/types': 6.9.1 - '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) - eslint: 8.52.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.5 + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + eslint: 8.53.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.9.1: - resolution: {integrity: sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==} + /@typescript-eslint/visitor-keys@6.11.0: + resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.1 + '@typescript-eslint/types': 6.11.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3056,13 +2915,13 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-react-swc@3.4.1(vite@4.5.0): - resolution: {integrity: sha512-7YQOQcVV5x1luD8nkbCDdyYygFvn1hjqJk68UvNAzY2QG4o4N5EwAhLLFNOcd1HrdMwDl0VElP8VutoWf9IvJg==} + /@vitejs/plugin-react-swc@3.5.0(vite@4.5.0): + resolution: {integrity: sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==} peerDependencies: - vite: ^4 + vite: ^4 || ^5 dependencies: - '@swc/core': 1.3.95 - vite: 4.5.0(@types/node@20.8.10) + '@swc/core': 1.3.96 + vite: 4.5.0(@types/node@20.9.1) transitivePeerDependencies: - '@swc/helpers' dev: true @@ -3079,6 +2938,7 @@ packages: resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true + dev: true /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -3111,6 +2971,7 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: true /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -3237,7 +3098,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.22.1 - caniuse-lite: 1.0.30001559 + caniuse-lite: 1.0.30001562 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -3285,10 +3146,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001559 - electron-to-chromium: 1.4.574 + caniuse-lite: 1.0.30001562 + electron-to-chromium: 1.4.586 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true /bufferutil@4.0.8: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} @@ -3315,8 +3177,9 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - /caniuse-lite@1.0.30001559: - resolution: {integrity: sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==} + /caniuse-lite@1.0.30001562: + resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} + dev: true /case-anything@2.1.13: resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==} @@ -3330,6 +3193,7 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -3385,6 +3249,7 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 + dev: true /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -3395,6 +3260,7 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -3416,10 +3282,6 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: false - /crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} dev: false @@ -3596,19 +3458,10 @@ packages: engines: {node: '>=6'} dev: true - /destr@2.0.2: - resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} - dev: false - /detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: false - /dexie@3.2.4: - resolution: {integrity: sha512-VKoTQRSv7+RnffpOJ3Dh6ozknBqzWw/F3iqMdsZg958R0AS8AnY9x9d1lbwENr0gzeGJHXKcGhAMRaqys6SxqA==} - engines: {node: '>=6.0'} - dev: false - /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -3667,8 +3520,9 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium@1.4.574: - resolution: {integrity: sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==} + /electron-to-chromium@1.4.586: + resolution: {integrity: sha512-qMa+E6yf1fNQbg3G66pHLXeJUP5CCCzNat1VPczOZOqgI2w4u+8y9sQnswMdGs5m4C1rOePq37EVBr/nsPQY7w==} + dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -3836,25 +3690,27 @@ packages: /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + dev: true /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + dev: true /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-config-prettier@9.0.0(eslint@8.52.0): + /eslint-config-prettier@9.0.0(eslint@8.53.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.52.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.53.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: @@ -3870,7 +3726,7 @@ packages: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 8.52.0 + eslint: 8.53.0 hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -3879,7 +3735,7 @@ packages: object.fromentries: 2.0.7 dev: true - /eslint-plugin-react@7.33.2(eslint@8.52.0): + /eslint-plugin-react@7.33.2(eslint@8.53.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -3890,7 +3746,7 @@ packages: array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.52.0 + eslint: 8.53.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -3904,12 +3760,12 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.52.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.53.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.52.0 + eslint: 8.53.0 dev: true /eslint-scope@7.2.2: @@ -3925,15 +3781,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.52.0: - resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==} + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.52.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -3955,7 +3811,7 @@ packages: glob-parent: 6.0.2 globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -4037,8 +3893,8 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4072,7 +3928,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.1 + flat-cache: 3.2.0 dev: true /fill-range@7.0.1: @@ -4089,9 +3945,9 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.2.9 keyv: 4.5.4 @@ -4119,8 +3975,8 @@ packages: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true - /framer-motion@10.16.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-p9V9nGomS3m6/CALXqv6nFGMuFOxbWsmaOrdmhyQimMIlLl3LC7h7l86wge/Js/8cRu5ktutS/zlzgR7eBOtFA==} + /framer-motion@10.16.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GEzVjOYP2MIpV9bT/GbhcsBNoImG3/2X3O/xVNWmktkv9MdJ7P/44zELm/7Fjb+O3v39SmKFnoDQB32giThzpg==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -4164,11 +4020,6 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: false - /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: @@ -4232,6 +4083,7 @@ packages: /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + dev: true /globals@13.23.0: resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} @@ -4253,8 +4105,8 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -4280,6 +4132,7 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -4353,15 +4206,15 @@ packages: safer-buffer: 2.1.2 dev: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + dev: false + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} dev: true - /immer@10.0.3: - resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} - dev: false - /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -4628,6 +4481,7 @@ packages: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true + dev: true /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -4641,12 +4495,6 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: false - /jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -4663,11 +4511,6 @@ packages: json-buffer: 3.0.1 dev: true - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - dev: false - /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true @@ -4710,8 +4553,8 @@ packages: uc.micro: 1.0.6 dev: false - /lint-staged@15.0.2: - resolution: {integrity: sha512-vnEy7pFTHyVuDmCAIFKR5QDO8XLVlPFQQyujQ/STOxe40ICWqJ6knS2wSJ/ffX/Lw0rz83luRDh+ET7toN+rOw==} + /lint-staged@15.1.0: + resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} engines: {node: '>=18.12.0'} hasBin: true dependencies: @@ -4724,7 +4567,7 @@ packages: micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.3 + yaml: 2.3.4 transitivePeerDependencies: - supports-color dev: true @@ -4781,15 +4624,11 @@ packages: dependencies: js-tokens: 4.0.0 - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + /lru-cache@10.0.2: + resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==} engines: {node: 14 || >=16.14} - dev: false - - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: - yallist: 3.1.1 + semver: 7.5.4 dev: false /lru-cache@6.0.0: @@ -4797,7 +4636,6 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 - dev: true /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -4831,8 +4669,8 @@ packages: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} dev: false - /media-chrome@1.5.0: - resolution: {integrity: sha512-SHNADjnslaSOOETAfphH0kQyMLnkdxjPGxQ/QUlk9AeiHHBZCNSU+7y0sKWHoYBdC0fM3SIgqaS+qb99ObSVdQ==} + /media-chrome@1.5.3: + resolution: {integrity: sha512-XiE29yNa9jyCMdshDLvSgXb0e/RJauMaTXT9kL9dTJmmZXz0RK+Ol/TsE2z4uO68x+rqZauoGEANUbDEyN8NLg==} dev: false /merge-stream@2.0.0: @@ -4850,22 +4688,6 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /million@2.6.4: - resolution: {integrity: sha512-voUkdd/jHWrG+7NS+mX49Pat+POKdgGW78V7pYMSrTaOjUitR6ySEcAci8hn17Rsx1IMI3+5w41dkADM1J1ZEg==} - hasBin: true - dependencies: - '@babel/core': 7.23.2 - '@babel/generator': 7.23.0 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) - '@babel/types': 7.23.0 - kleur: 4.1.5 - rollup: 3.29.4 - unplugin: 1.5.0 - transitivePeerDependencies: - - supports-color - dev: false - /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4900,11 +4722,17 @@ packages: object-assign: 4.1.1 thenify-all: 1.6.0 - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid@5.0.3: + resolution: {integrity: sha512-I7X2b22cxA4LIHXPSqbBCEQSL+1wv8TuoefejsX4HFWyC6jc5JG7CEaxOltiKjc1M+YCS2YkrZZcj4+dytw9GA==} + engines: {node: ^18 || >=20} + hasBin: true + dev: false + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -4934,6 +4762,7 @@ packages: /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -5208,7 +5037,7 @@ packages: dependencies: lilconfig: 2.1.0 postcss: 8.4.31 - yaml: 2.3.3 + yaml: 2.3.4 /postcss-nested@6.0.1(postcss@8.4.31): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} @@ -5241,7 +5070,7 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 @@ -5250,8 +5079,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-tailwindcss@0.5.6(@trivago/prettier-plugin-sort-imports@4.2.1)(prettier@3.0.3): - resolution: {integrity: sha512-2Xgb+GQlkPAUCFi3sV+NOYcSI5XgduvDBL2Zt/hwJudeKXkyvRS65c38SB0yb9UB40+1rL83I6m0RtlOQ8eHdg==} + /prettier-plugin-tailwindcss@0.5.7(@trivago/prettier-plugin-sort-imports@4.3.0)(prettier@3.1.0): + resolution: {integrity: sha512-4v6uESAgwCni6YF6DwJlRaDjg9Z+al5zM4JfngcazMy4WEf/XkPS5TEQjbD+DZ5iNuG6RrKQLa/HuX2SYzC3kQ==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -5302,12 +5131,12 @@ packages: prettier-plugin-twig-melody: optional: true dependencies: - '@trivago/prettier-plugin-sort-imports': 4.2.1(prettier@3.0.3) - prettier: 3.0.3 + '@trivago/prettier-plugin-sort-imports': 4.3.0(prettier@3.1.0) + prettier: 3.1.0 dev: true - /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} engines: {node: '>=14'} hasBin: true dev: true @@ -5345,7 +5174,7 @@ packages: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.8.0 - prosemirror-view: 1.32.3 + prosemirror-view: 1.32.4 dev: false /prosemirror-gapcursor@1.3.2: @@ -5354,7 +5183,7 @@ packages: prosemirror-keymap: 1.2.2 prosemirror-model: 1.19.3 prosemirror-state: 1.4.3 - prosemirror-view: 1.32.3 + prosemirror-view: 1.32.4 dev: false /prosemirror-history@1.3.2: @@ -5362,12 +5191,12 @@ packages: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.8.0 - prosemirror-view: 1.32.3 + prosemirror-view: 1.32.4 rope-sequence: 1.3.4 dev: false - /prosemirror-inputrules@1.2.1: - resolution: {integrity: sha512-3LrWJX1+ULRh5SZvbIQlwZafOXqp1XuV21MGBu/i5xsztd+9VD15x6OtN6mdqSFI7/8Y77gYUbQ6vwwJ4mr6QQ==} + /prosemirror-inputrules@1.3.0: + resolution: {integrity: sha512-z1GRP2vhh5CihYMQYsJSa1cOwXb3SYxALXOIfAkX8nZserARtl9LiL+CEl+T+OFIsXc3mJIHKhbsmRzC0HDAXA==} dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.8.0 @@ -5421,7 +5250,7 @@ packages: dependencies: prosemirror-model: 1.19.3 prosemirror-transform: 1.8.0 - prosemirror-view: 1.32.3 + prosemirror-view: 1.32.4 dev: false /prosemirror-tables@1.3.4: @@ -5431,10 +5260,10 @@ packages: prosemirror-model: 1.19.3 prosemirror-state: 1.4.3 prosemirror-transform: 1.8.0 - prosemirror-view: 1.32.3 + prosemirror-view: 1.32.4 dev: false - /prosemirror-trailing-node@2.0.7(prosemirror-model@1.19.3)(prosemirror-state@1.4.3)(prosemirror-view@1.32.3): + /prosemirror-trailing-node@2.0.7(prosemirror-model@1.19.3)(prosemirror-state@1.4.3)(prosemirror-view@1.32.4): resolution: {integrity: sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q==} peerDependencies: prosemirror-model: ^1.19.0 @@ -5446,7 +5275,7 @@ packages: escape-string-regexp: 4.0.0 prosemirror-model: 1.19.3 prosemirror-state: 1.4.3 - prosemirror-view: 1.32.3 + prosemirror-view: 1.32.4 dev: false /prosemirror-transform@1.8.0: @@ -5455,8 +5284,8 @@ packages: prosemirror-model: 1.19.3 dev: false - /prosemirror-view@1.32.3: - resolution: {integrity: sha512-tP7AUTxisM0m3PDxs6vDWgTjgcbFo4fnwg2M/5NHlgMqUJgBNOqSUZETBZKmLD7AxGN3GZ5yqEzQv9r9VCZKrg==} + /prosemirror-view@1.32.4: + resolution: {integrity: sha512-WoT+ZYePp0WQvp5coABAysheZg9WttW3TSEUNgsfDQXmVOJlnjkbFbXicKPvWFLiC0ZjKt1ykbyoVKqhVnCiSQ==} dependencies: prosemirror-model: 1.19.3 prosemirror-state: 1.4.3 @@ -5489,8 +5318,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /react-currency-input-field@3.6.11(react@18.2.0): - resolution: {integrity: sha512-M9vOx1eaioSaYWirm7W2WSBi4bpLg+LK4Gf7C1kNhy6MvoSoOzd0mYZPxA78OC9UBIQ2nM080Wu9D1CwTY6n3w==} + /react-currency-input-field@3.6.12(react@18.2.0): + resolution: {integrity: sha512-92mVEo1u7tF8Lz5JeaEHpQY/p6ulmnfSk9r3dVMyykQNLoScvgQ7GczvV3uGDr81xkTF3czj7CTJ9Ekqq4+pIA==} peerDependencies: react: ^16.9.0 || ^17.0.0 || ^18.0.0 dependencies: @@ -5507,8 +5336,8 @@ packages: scheduler: 0.23.0 dev: false - /react-hook-form@7.47.0(react@18.2.0): - resolution: {integrity: sha512-F/TroLjTICipmHeFlMrLtNLceO2xr1jU3CyiNla5zdwsGUGu2UOxxR4UyJgLlhMwLW/Wzp4cpJ7CPfgJIeKdSg==} + /react-hook-form@7.48.2(react@18.2.0): + resolution: {integrity: sha512-H0T2InFQb1hX7qKtDIZmvpU1Xfn/bdahWBN1fH19gSe4bBEqTfmlr7H3XWTaVtiK4/tpPaI1F3355GPMZYge+A==} engines: {node: '>=12.22.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 @@ -5530,7 +5359,7 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /react-remove-scroll-bar@2.3.4(@types/react@18.2.34)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -5540,13 +5369,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.34)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.37)(react@18.2.0) tslib: 2.6.2 dev: false - /react-remove-scroll@2.5.5(@types/react@18.2.34)(react@18.2.0): + /react-remove-scroll@2.5.5(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -5556,39 +5385,44 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.34)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.34)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.37)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.37)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.0(@types/react@18.2.34)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.34)(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.2.37)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.37)(react@18.2.0) dev: false - /react-router-dom@6.18.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Ubrue4+Ercc/BoDkFQfc6og5zRQ4A8YxSO3Knsne+eRbZ+IepAsK249XBH/XaFuOYOYr3L3r13CXTLvYt5JDjw==} + /react-router-dom@6.19.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N6dWlcgL2w0U5HZUUqU2wlmOrSb3ighJmtQ438SWbhB1yuLTXQ8yyTBMK3BSvVjp7gBtKurT554nCtMOgxCZmQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.11.0 + '@remix-run/router': 1.12.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.18.0(react@18.2.0) + react-router: 6.19.0(react@18.2.0) dev: false - /react-router@6.18.0(react@18.2.0): - resolution: {integrity: sha512-vk2y7Dsy8wI02eRRaRmOs9g2o+aE72YCx5q9VasT1N9v+lrdB79tIqrjMfByHiY5+6aYkH2rUa5X839nwWGPDg==} + /react-router@6.19.0(react@18.2.0): + resolution: {integrity: sha512-0W63PKCZ7+OuQd7Tm+RbkI8kCLmn4GPjDbX61tWljPxWgqTKlEpeQUwPkT1DRjYhF8KSihK0hQpmhU4uxVMcdw==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.11.0 + '@remix-run/router': 1.12.0 react: 18.2.0 dev: false - /react-style-singleton@2.2.1(@types/react@18.2.34)(react@18.2.0): + /react-string-replace@1.1.1: + resolution: {integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==} + engines: {node: '>=0.12.0'} + dev: false + + /react-style-singleton@2.2.1(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -5598,7 +5432,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.34 + '@types/react': 18.2.37 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 @@ -5612,18 +5446,18 @@ packages: loose-envify: 1.4.0 dev: false - /reactflow@11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-IHAKBkJngNvU9y1vZ5Nw9rvA3Z+zc9geTgQQIi9qq9Y9knGLlDDr9KfsjbFMew9AycAAgVg8TvBEakF4IT5lqg==} + /reactflow@11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Q616fElAc5/N37tMwjuRkkgm/VgmnLLTNNCj61z5mvJxae+/VXZQMfot1K6a5LLz9G3SVKqU97PMb9Ga1PRXew==} peerDependencies: react: '>=17' react-dom: '>=17' dependencies: - '@reactflow/background': 11.3.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/controls': 11.2.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/core': 11.9.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/minimap': 11.7.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/node-resizer': 2.2.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) - '@reactflow/node-toolbar': 1.3.4(@types/react@18.2.34)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/background': 11.3.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/controls': 11.2.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/core': 11.10.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/minimap': 11.7.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/node-resizer': 2.2.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) + '@reactflow/node-toolbar': 1.3.6(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -5717,6 +5551,7 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.3 + dev: true /rope-sequence@1.3.4: resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} @@ -5764,6 +5599,7 @@ packages: /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + dev: true /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} @@ -5771,7 +5607,6 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true /set-function-length@1.1.1: resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} @@ -5834,8 +5669,8 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /sonner@1.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-pqc5yd1ekS6dBXLKljRogqatiGJSxCaX8mspnqKjLg5Rzw6eiAUgsG1SS8RuQzOjQq8/MlgFao6sIw9doqAkNg==} + /sonner@1.2.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4bIPKrhF+Z4yEC4EZvNBswcVzMrUhztOQXqyIoiZqiqN1TT39FeK+TgRsQidvvztnYgOn4+S3LdAsri61c7ATA==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -5948,6 +5783,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -5982,7 +5818,7 @@ packages: chokidar: 3.5.3 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.0 @@ -6002,25 +5838,6 @@ packages: transitivePeerDependencies: - ts-node - /tauri-controls@0.2.0(@tauri-apps/plugin-os@2.0.0-alpha.4)(@tauri-apps/plugin-window@2.0.0-alpha.1)(clsx@2.0.0)(react-dom@18.2.0)(react@18.2.0)(tailwind-merge@1.14.0): - resolution: {integrity: sha512-/IDXLhcqGRjNN7QKfzgyr2y4QfnWT9MSIdqxrjH2oElXyngSo/cQltTb8LT6h/sH/7gRiSQMvQBEmavfn9Hk0w==} - peerDependencies: - '@tauri-apps/plugin-os': 2.0.0-alpha.2 - '@tauri-apps/plugin-window': 2.0.0-alpha.1 - clsx: ^2.0.0 - react: ^18.2.0 - react-dom: ^18.2.0 - tailwind-merge: ^1.14.0 - dependencies: - '@tauri-apps/api': 2.0.0-alpha.8 - '@tauri-apps/plugin-os': 2.0.0-alpha.4 - '@tauri-apps/plugin-window': 2.0.0-alpha.1 - clsx: 2.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tailwind-merge: 1.14.0 - dev: false - /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true @@ -6047,8 +5864,8 @@ packages: '@popperjs/core': 2.11.8 dev: false - /tiptap-markdown@0.8.3(@tiptap/core@2.1.12): - resolution: {integrity: sha512-RULu1OXFTHdTJCHwdUOvDk0nDoH8YdgXulR0f+8XBd/x+SuT+EafdQuEKz2ggFlW1Mvl5niKGT5lAHTeXYFmaw==} + /tiptap-markdown@0.8.4(@tiptap/core@2.1.12): + resolution: {integrity: sha512-aCwr8cpVdZeb/2J0ffz8PvpLmQBcFE9GOxk2vB0Y9zlJEGWnSiGo1BWnwaeiyAdQqfBzV7NyNg+oz2A/MbC/Sg==} peerDependencies: '@tiptap/core': ^2.0.3 dependencies: @@ -6062,6 +5879,7 @@ packages: /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + dev: true /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -6202,15 +6020,6 @@ packages: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true - /unplugin@1.5.0: - resolution: {integrity: sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==} - dependencies: - acorn: 8.11.2 - chokidar: 3.5.3 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.5.0 - dev: false - /update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -6220,6 +6029,7 @@ packages: browserslist: 4.22.1 escalade: 3.1.1 picocolors: 1.0.0 + dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -6227,7 +6037,7 @@ packages: punycode: 2.3.1 dev: true - /use-callback-ref@1.3.0(@types/react@18.2.34)(react@18.2.0): + /use-callback-ref@1.3.0(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -6237,12 +6047,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.34 + '@types/react': 18.2.37 react: 18.2.0 tslib: 2.6.2 dev: false - /use-sidecar@1.1.2(@types/react@18.2.34)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.37)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -6252,7 +6062,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.34 + '@types/react': 18.2.37 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.6.2 @@ -6282,8 +6092,8 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /virtua@0.16.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-laq+Jpi6W73sXdXvLIxu+BLaFtUhP1Al25TJ/MwTHKTF5A9Kfs02xqHXsaLlh9WXk/eVbrwHt/+AM9U0dT6Hqg==} + /virtua@0.16.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ilp+G7fJg09IGM3DkSKI0Q+TliLo3vw+1c8A7gmxQ9eaKMBHUJD/C8PrFsjSu2lZgaBPMxHG7x3MenYS7aBy+Q==} peerDependencies: react: '>=16.14.0' react-dom: '>=16.14.0' @@ -6303,13 +6113,13 @@ packages: debug: 4.3.4 globrex: 0.1.2 tsconfck: 2.1.2(typescript@5.2.2) - vite: 4.5.0(@types/node@20.8.10) + vite: 4.5.0(@types/node@20.9.1) transitivePeerDependencies: - supports-color - typescript dev: true - /vite@4.5.0(@types/node@20.8.10): + /vite@4.5.0(@types/node@20.9.1): resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -6337,7 +6147,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.8.10 + '@types/node': 20.9.1 esbuild: 0.18.20 postcss: 8.4.31 rollup: 3.29.4 @@ -6354,15 +6164,6 @@ packages: engines: {node: '>= 8'} dev: false - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - dev: false - - /webpack-virtual-modules@0.5.0: - resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - dev: false - /websocket-polyfill@0.0.3: resolution: {integrity: sha512-pF3kR8Uaoau78MpUmFfzbIRxXj9PeQrCuPepGE6JIsfsJ/o/iXr07Q2iQNzKSSblQJ0FiGWlS64N4pVSm+O3Dg==} dependencies: @@ -6459,16 +6260,11 @@ packages: engines: {node: '>=0.10.32'} dev: false - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: false - /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - /yaml@2.3.3: - resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} /yocto-queue@0.1.0: @@ -6476,8 +6272,8 @@ packages: engines: {node: '>=10'} dev: true - /zustand@4.4.5(@types/react@18.2.34)(immer@10.0.3)(react@18.2.0): - resolution: {integrity: sha512-jgIrBBLKncQW74PA2Lclct3gwD4aPughwGE4FqlXrv3rDqQox7JCn8rwUiFK6ygJcbBAvfTf8fF+ICg7HLD2FQ==} + /zustand@4.4.6(@types/react@18.2.37)(react@18.2.0): + resolution: {integrity: sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg==} engines: {node: '>=12.7.0'} peerDependencies: '@types/react': '>=16.8' @@ -6491,8 +6287,20 @@ packages: react: optional: true dependencies: - '@types/react': 18.2.34 - immer: 10.0.3 + '@types/react': 18.2.37 react: 18.2.0 use-sync-external-store: 1.2.0(react@18.2.0) dev: false + + github.com/reyamir/tauri-controls/15e98afd9abd588144d2ac36db6833f2ca6e1405: + resolution: {tarball: https://codeload.github.com/reyamir/tauri-controls/tar.gz/15e98afd9abd588144d2ac36db6833f2ca6e1405} + name: tauri-controls + version: 0.3.0 + dependencies: + '@tauri-apps/api': 2.0.0-alpha.11 + '@tauri-apps/plugin-os': 2.0.0-alpha.4 + clsx: 2.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tailwind-merge: 1.14.0 + dev: false diff --git a/public/anime.jpg b/public/anime.jpg new file mode 100644 index 00000000..f7f8eeab Binary files /dev/null and b/public/anime.jpg differ diff --git a/public/art.jpg b/public/art.jpg new file mode 100644 index 00000000..efc36ab3 Binary files /dev/null and b/public/art.jpg differ diff --git a/public/fallback-image.jpg b/public/fallback-image.jpg new file mode 100644 index 00000000..1490c0b7 Binary files /dev/null and b/public/fallback-image.jpg differ diff --git a/public/gaming.jpg b/public/gaming.jpg new file mode 100644 index 00000000..de58aeeb Binary files /dev/null and b/public/gaming.jpg differ diff --git a/public/movie.jpg b/public/movie.jpg new file mode 100644 index 00000000..bcb36809 Binary files /dev/null and b/public/movie.jpg differ diff --git a/public/music.jpg b/public/music.jpg new file mode 100644 index 00000000..1c533c15 Binary files /dev/null and b/public/music.jpg differ diff --git a/public/nsfw.jpg b/public/nsfw.jpg new file mode 100644 index 00000000..f9e183d2 Binary files /dev/null and b/public/nsfw.jpg differ diff --git a/public/photography.jpg b/public/photography.jpg new file mode 100644 index 00000000..6f117830 Binary files /dev/null and b/public/photography.jpg differ diff --git a/public/technology.jpg b/public/technology.jpg new file mode 100644 index 00000000..cfd733f0 Binary files /dev/null and b/public/technology.jpg differ diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 8e8479f4..ca452531 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -370,9 +370,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "auto-launch" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5904a4d734f0235edf29aab320a14899f3e090446e594ff96508a6215f76f89c" +checksum = "1f012b8cc0c850f34117ec8252a44418f2e34a2cf501de89e29b241ae5f79471" dependencies = [ "dirs", "thiserror", @@ -426,6 +426,15 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -2603,7 +2612,7 @@ dependencies = [ [[package]] name = "lume" -version = "2.0.1" +version = "2.1.0" dependencies = [ "keyring", "serde", @@ -2626,6 +2635,7 @@ dependencies = [ "tauri-plugin-store", "tauri-plugin-updater", "tauri-plugin-upload", + "tauri-plugin-window-state", "webpage", ] @@ -3914,20 +3924,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "ring" -version = "0.17.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" -dependencies = [ - "cc", - "getrandom 0.2.10", - "libc", - "spin 0.9.8", - "untrusted", - "windows-sys 0.48.0", -] - [[package]] name = "rsa" version = "0.9.3" @@ -3990,36 +3986,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "rustls" -version = "0.21.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c" -dependencies = [ - "ring", - "rustls-webpki", - "sct", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" -dependencies = [ - "base64", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "rustversion" version = "1.0.14" @@ -4092,16 +4058,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "secret-service" version = "3.0.1" @@ -4532,8 +4488,6 @@ dependencies = [ "once_cell", "paste", "percent-encoding", - "rustls", - "rustls-pemfile", "serde", "serde_json", "sha2", @@ -4545,7 +4499,6 @@ dependencies = [ "tokio-stream", "tracing", "url", - "webpki-roots", ] [[package]] @@ -5034,7 +4987,7 @@ dependencies = [ [[package]] name = "tauri-plugin-autostart" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "auto-launch", "log", @@ -5047,7 +5000,7 @@ dependencies = [ [[package]] name = "tauri-plugin-cli" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "clap", "log", @@ -5060,7 +5013,7 @@ dependencies = [ [[package]] name = "tauri-plugin-clipboard-manager" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "arboard", "log", @@ -5074,7 +5027,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "glib 0.16.9", "log", @@ -5091,7 +5044,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "anyhow", "glob", @@ -5104,7 +5057,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" version = "2.0.0-alpha.5" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "data-url", "glob", @@ -5121,7 +5074,7 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" version = "2.0.0-alpha.5" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "log", "notify-rust", @@ -5139,7 +5092,7 @@ dependencies = [ [[package]] name = "tauri-plugin-os" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "gethostname 0.4.3", "log", @@ -5155,7 +5108,7 @@ dependencies = [ [[package]] name = "tauri-plugin-process" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "tauri", ] @@ -5163,7 +5116,7 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "encoding_rs", "log", @@ -5180,7 +5133,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "log", "serde", @@ -5194,7 +5147,7 @@ dependencies = [ [[package]] name = "tauri-plugin-sql" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "futures-core", "log", @@ -5210,7 +5163,7 @@ dependencies = [ [[package]] name = "tauri-plugin-store" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "log", "serde", @@ -5222,7 +5175,7 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "base64", "dirs-next", @@ -5248,7 +5201,7 @@ dependencies = [ [[package]] name = "tauri-plugin-upload" version = "2.0.0-alpha.4" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#d4d1633c4d0b63b26db987037d1ed7e57d5cefbe" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" dependencies = [ "futures-util", "log", @@ -5262,6 +5215,20 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tauri-plugin-window-state" +version = "2.0.0-alpha.4" +source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#a3ca64275adf8e4b60e8fc57a4a835fd0f71a1d5" +dependencies = [ + "bincode", + "bitflags 2.4.1", + "log", + "serde", + "serde_json", + "tauri", + "thiserror", +] + [[package]] name = "tauri-runtime" version = "1.0.0-alpha.4" @@ -5744,12 +5711,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "url" version = "2.4.1" @@ -6010,15 +5971,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "webpki-roots" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" -dependencies = [ - "rustls-webpki", -] - [[package]] name = "webview2-com" version = "0.27.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index b4ee8403..15bced4e 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lume" -version = "2.0.1" +version = "2.1.0" description = "the communication app" authors = ["Ren Amamiya"] license = "GPL-3.0" @@ -32,6 +32,7 @@ tauri-plugin-single-instance = { git = "https://github.com/tauri-apps/plugins-wo tauri-plugin-autostart = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } tauri-plugin-store = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } tauri-plugin-upload = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } +tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } tauri-plugin-sql = { git = "hhttps://github.com/tauri-apps/plugins-workspace", branch = "v2", features = [ "sqlite", ] } diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 7aa4068e..8de740b8 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -113,16 +113,6 @@ fn main() { .plugin(tauri_plugin_updater::Builder::new().build())?; Ok(()) }) - .plugin(tauri_plugin_clipboard_manager::init()) - .plugin(tauri_plugin_dialog::init()) - .plugin(tauri_plugin_fs::init()) - .plugin(tauri_plugin_http::init()) - .plugin(tauri_plugin_notification::init()) - .plugin(tauri_plugin_os::init()) - .plugin(tauri_plugin_process::init()) - .plugin(tauri_plugin_shell::init()) - .plugin(tauri_plugin_upload::init()) - .plugin(tauri_plugin_updater::Builder::new().build()) .plugin( tauri_plugin_sql::Builder::default() .add_migrations( @@ -148,8 +138,16 @@ fn main() { MacosLauncher::LaunchAgent, Some(vec!["--flag1", "--flag2"]), )) + .plugin(tauri_plugin_clipboard_manager::init()) + .plugin(tauri_plugin_dialog::init()) + .plugin(tauri_plugin_fs::init()) + .plugin(tauri_plugin_http::init()) + .plugin(tauri_plugin_notification::init()) + .plugin(tauri_plugin_os::init()) + .plugin(tauri_plugin_process::init()) + .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_upload::init()) - .plugin(tauri_plugin_store::Builder::default().build()) + .plugin(tauri_plugin_window_state::Builder::default().build()) .invoke_handler(tauri::generate_handler![ opengraph, secure_save, diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 0ac4d168..f3e042a4 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -9,7 +9,7 @@ }, "package": { "productName": "Lume", - "version": "2.0.1" + "version": "2.1.0" }, "plugins": { "fs": { @@ -36,7 +36,6 @@ "open": true }, "updater": { - "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEU4RjAzODFBREQ4MkM3RTEKUldUaHg0TGRHamp3NkI5bnhoOEVjanlHWFNzQ2Q3NDhubFFLUmJpSHJ1L2FqNnB3alF1Y2R3U3gK", "endpoints": [ "https://lus.reya3772.workers.dev/v1/{{target}}/{{arch}}/{{current_version}}", "https://lus.reya3772.workers.dev/{{target}}/{{current_version}}" @@ -46,15 +45,12 @@ "tauri": { "bundle": { "active": true, - "appimage": { - "bundleMediaFramework": true - }, "category": "SocialNetworking", - "copyright": "", "deb": { "depends": [] }, "externalBin": [], + "resources": [], "icon": [ "icons/32x32.png", "icons/128x128.png", @@ -62,8 +58,21 @@ "icons/icon.icns", "icons/icon.ico" ], + "copyright": "", "identifier": "com.lume.nu", - "longDescription": "", + "longDescription": "The communication app build on Nostr Protocol", + "shortDescription": "", + "targets": "all", + "updater": { + "active": true, + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEU3OTdCMkM3RjU5QzE2NzkKUldSNUZwejF4N0tYNTVHYjMrU0JkL090SlEyNUVLYU5TM2hTU3RXSWtEWngrZWJ4a0pydUhXZHEK", + "windows": { + "installMode": "quiet" + } + }, + "appimage": { + "bundleMediaFramework": true + }, "macOS": { "entitlements": null, "exceptionDomain": "", @@ -73,10 +82,6 @@ "providerShortName": null, "signingIdentity": null }, - "resources": [], - "shortDescription": "", - "targets": "all", - "updater": {}, "windows": { "certificateThumbprint": null, "digestAlgorithm": "sha256", diff --git a/src/app.css b/src/app.css index a22f5396..cba4eba0 100644 --- a/src/app.css +++ b/src/app.css @@ -10,6 +10,10 @@ word-wrap: break-word; overflow-wrap: break-word; } + + .prose :where(iframe):not(:where([class~="not-prose"] *)) { + @apply aspect-video w-full h-auto mx-auto; + } } html { diff --git a/src/app.tsx b/src/app.tsx index 04f75c39..d421a6cb 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -1,4 +1,5 @@ import { message } from '@tauri-apps/plugin-dialog'; +import { fetch } from '@tauri-apps/plugin-http'; import { RouterProvider, createBrowserRouter, defer, redirect } from 'react-router-dom'; import { ReactFlowProvider } from 'reactflow'; @@ -6,13 +7,13 @@ import { OnboardingScreen } from '@app/auth/onboarding'; import { ChatsScreen } from '@app/chats'; import { ErrorScreen } from '@app/error'; import { ExploreScreen } from '@app/explore'; -import { NewScreen } from '@app/new'; import { useStorage } from '@libs/storage/provider'; import { LoaderIcon } from '@shared/icons'; import { AppLayout } from '@shared/layouts/app'; import { AuthLayout } from '@shared/layouts/auth'; +import { NewLayout } from '@shared/layouts/new'; import { NoteLayout } from '@shared/layouts/note'; import { SettingsLayout } from '@shared/layouts/settings'; @@ -54,8 +55,8 @@ export default function App() { { path: '', async lazy() { - const { SpaceScreen } = await import('@app/space'); - return { Component: SpaceScreen }; + const { HomeScreen } = await import('@app/home'); + return { Component: HomeScreen }; }, }, { @@ -112,37 +113,9 @@ export default function App() { }, ], }, - { - path: '/personal', - element: , - errorElement: , - children: [ - { - path: '', - async lazy() { - const { PersonalScreen } = await import('@app/personal'); - return { Component: PersonalScreen }; - }, - }, - { - path: 'edit-profile', - async lazy() { - const { EditProfileScreen } = await import('@app/personal/editProfile'); - return { Component: EditProfileScreen }; - }, - }, - { - path: 'edit-contact', - async lazy() { - const { EditContactScreen } = await import('@app/personal/editContact'); - return { Component: EditContactScreen }; - }, - }, - ], - }, { path: '/new', - element: , + element: , errorElement: , children: [ { @@ -166,6 +139,13 @@ export default function App() { return { Component: NewFileScreen }; }, }, + { + path: 'privkey', + async lazy() { + const { NewPrivkeyScreen } = await import('@app/new/privkey'); + return { Component: NewPrivkeyScreen }; + }, + }, ], }, { @@ -259,15 +239,50 @@ export default function App() { { path: '', async lazy() { - const { GeneralSettingsScreen } = await import('@app/settings/general'); - return { Component: GeneralSettingsScreen }; + const { UserSettingScreen } = await import('@app/settings'); + return { Component: UserSettingScreen }; + }, + }, + { + path: 'edit-profile', + async lazy() { + const { EditProfileScreen } = await import('@app/settings/editProfile'); + return { Component: EditProfileScreen }; + }, + }, + { + path: 'edit-contact', + async lazy() { + const { EditContactScreen } = await import('@app/settings/editContact'); + return { Component: EditContactScreen }; + }, + }, + { + path: 'general', + async lazy() { + const { GeneralSettingScreen } = await import('@app/settings/general'); + return { Component: GeneralSettingScreen }; }, }, { path: 'backup', async lazy() { - const { AccountSettingsScreen } = await import('@app/settings/account'); - return { Component: AccountSettingsScreen }; + const { BackupSettingScreen } = await import('@app/settings/backup'); + return { Component: BackupSettingScreen }; + }, + }, + { + path: 'advanced', + async lazy() { + const { AdvancedSettingScreen } = await import('@app/settings/advanced'); + return { Component: AdvancedSettingScreen }; + }, + }, + { + path: 'about', + async lazy() { + const { AboutScreen } = await import('@app/settings/about'); + return { Component: AboutScreen }; }, }, ], diff --git a/src/app/auth/components/features/favoriteHashtag.tsx b/src/app/auth/components/features/favoriteHashtag.tsx index 92dabd67..928d3c96 100644 --- a/src/app/auth/components/features/favoriteHashtag.tsx +++ b/src/app/auth/components/features/favoriteHashtag.tsx @@ -11,10 +11,10 @@ export function FavoriteHashtag() {
-
Favorite hashtag
+
Favorite topic

- By adding favorite hashtag, Lume will display all contents related to this - hashtag as a column + By adding favorite topic, Lume will display all contents related to this topic + for you

{hashtag ? ( diff --git a/src/app/auth/create.tsx b/src/app/auth/create.tsx index d5bad9ee..2011272e 100644 --- a/src/app/auth/create.tsx +++ b/src/app/auth/create.tsx @@ -45,6 +45,8 @@ export function CreateAccountScreen() { const onSubmit = async (data: { name: string; about: string }) => { try { + if (!ndk.signer) return navigate('/new/privkey'); + setLoading(true); const profile = { diff --git a/src/app/auth/import.tsx b/src/app/auth/import.tsx index 45b31d63..a1da4b5b 100644 --- a/src/app/auth/import.tsx +++ b/src/app/auth/import.tsx @@ -165,7 +165,7 @@ export function ImportAccountScreen() { >
Account found
-
+

- Choose {tags.size}/3 your favorite hashtag + Choose your favorite topic

-
- {data.map((item: { hashtag: string }) => ( +
+ {TOPICS.map((item) => (
diff --git a/src/app/auth/onboarding/list.tsx b/src/app/auth/onboarding/list.tsx index eee68853..76287728 100644 --- a/src/app/auth/onboarding/list.tsx +++ b/src/app/auth/onboarding/list.tsx @@ -31,7 +31,7 @@ export function OnboardingListScreen() {
-

+

You're almost ready to use Lume.

diff --git a/src/app/chats/components/message.tsx b/src/app/chats/components/message.tsx index 3dedeac2..f12843c9 100644 --- a/src/app/chats/components/message.tsx +++ b/src/app/chats/components/message.tsx @@ -3,13 +3,8 @@ import { twMerge } from 'tailwind-merge'; import { useDecryptMessage } from '@app/chats/hooks/useDecryptMessage'; -import { ImagePreview, LinkPreview, MentionNote, VideoPreview } from '@shared/notes'; - -import { parser } from '@utils/parser'; - export function ChatMessage({ message, self }: { message: NDKEvent; self: boolean }) { const decryptedContent = useDecryptMessage(message); - const richContent = parser(decryptedContent) ?? null; return (
- {!richContent ? ( + {!decryptedContent ? (

Decrypting...

) : (
-

{richContent.parsed}

-
- {richContent.images.length > 0 && } - {richContent.videos.length > 0 && } - {richContent.links.length > 0 && } - {richContent.notes.length > 0 && - richContent.notes.map((note: string) => ( - - ))} -
+

{decryptedContent}

)}
diff --git a/src/app/error.tsx b/src/app/error.tsx index 8b667ec8..b3505668 100644 --- a/src/app/error.tsx +++ b/src/app/error.tsx @@ -1,85 +1,138 @@ -import { useEffect, useState } from 'react'; -import { useLocation, useRouteError } from 'react-router-dom'; +import { downloadDir } from '@tauri-apps/api/path'; +import { message, save } from '@tauri-apps/plugin-dialog'; +import { writeTextFile } from '@tauri-apps/plugin-fs'; +import { relaunch } from '@tauri-apps/plugin-process'; +import { useRouteError } from 'react-router-dom'; + +import { useStorage } from '@libs/storage/provider'; interface RouteError { statusText: string; message: string; } -interface DebugInfo { - os: null | string; - appDir: null | string; -} - export function ErrorScreen() { + const { db } = useStorage(); const error = useRouteError() as RouteError; - const location = useLocation(); - const [debugInfo, setDebugInfo] = useState({ - os: null, - appDir: null, - }); + const restart = async () => { + await relaunch(); + }; - useEffect(() => { - async function getInformation() { - const { platform, version } = await import('@tauri-apps/plugin-os'); - const { appConfigDir } = await import('@tauri-apps/api/path'); - - const platformName = await platform(); - const osVersion = await version(); - const appDir = await appConfigDir(); - - setDebugInfo({ - os: platformName + ' ' + osVersion, - appDir: appDir, + const download = async () => { + try { + const downloadPath = await downloadDir(); + const fileName = `nostr_keys_${new Date().toISOString()}.txt`; + const filePath = await save({ + defaultPath: downloadPath + '/' + fileName, }); - } + const nsec = await db.secureLoad(db.account.pubkey); - getInformation(); - }, []); + if (filePath) { + if (nsec) { + await writeTextFile( + filePath, + `Nostr account, generated by Lume (lume.nu)\nPublic key: ${db.account.id}\nPrivate key: ${nsec}` + ); + } else { + await writeTextFile( + filePath, + `Nostr account, generated by Lume (lume.nu)\nPublic key: ${db.account.id}` + ); + } + } // else { user cancel action } + } catch (e) { + await message(e, { title: 'Cannot download account keys', type: 'error' }); + } + }; return ( -
-
+
+
-

+

Sorry, an unexpected error has occurred.

-
-

- {error.statusText || error.message} -

-
-
-

- Current location: {location.pathname} -

-

- Platform: {debugInfo.os} -

-
+

+ Don't be panic, your account is safe. +
+ Here are what things you can do: +

-
- - Click here to report the issue on GitHub - - - +
+
+
+ 1. Try close and re-open app +
+ +
+
+
+ 2. Backup Nostr account +
+ +
+
+
+
+
+ 3. Report this issue to Lume's Devs +
+ + Report + +
+
+

+ {error.statusText || error.message} +

+
+
+
+
+
+
+ 4. Use other Nostr client +
+
+

+ While waiting Lume's Devs release the bug fixes, you always can use + other Nostr client with your account: +

+ +
+
+
diff --git a/src/app/explore/components/userLatestPosts.tsx b/src/app/explore/components/userLatestPosts.tsx index 62b553c2..05a0d9fb 100644 --- a/src/app/explore/components/userLatestPosts.tsx +++ b/src/app/explore/components/userLatestPosts.tsx @@ -3,14 +3,7 @@ import { useQuery } from '@tanstack/react-query'; import { useCallback } from 'react'; import { LoaderIcon } from '@shared/icons'; -import { - ArticleNote, - FileNote, - NoteWrapper, - Repost, - TextNote, - UnknownNote, -} from '@shared/notes'; +import { MemoizedRepost, MemoizedTextNote, UnknownNote } from '@shared/notes'; import { useNostr } from '@utils/hooks/useNostr'; @@ -28,31 +21,11 @@ export function UserLatestPosts({ pubkey }: { pubkey: string }) { (event: NDKEvent) => { switch (event.kind) { case NDKKind.Text: - return ( - - - - ); + return ; case NDKKind.Repost: - return ; - case 1063: - return ( - - - - ); - case NDKKind.Article: - return ( - - - - ); + return ; default: - return ( - - - - ); + return ; } }, [data] diff --git a/src/app/space/index.tsx b/src/app/home/index.tsx similarity index 57% rename from src/app/space/index.tsx rename to src/app/home/index.tsx index dd63dc9b..5ac59b77 100644 --- a/src/app/space/index.tsx +++ b/src/app/home/index.tsx @@ -2,34 +2,30 @@ import { useQuery } from '@tanstack/react-query'; import { useCallback, useRef, useState } from 'react'; import { VList, VListHandle } from 'virtua'; -import { ToggleWidgetList } from '@app/space/components/toggle'; -import { WidgetList } from '@app/space/components/widgetList'; - import { useStorage } from '@libs/storage/provider'; import { LoaderIcon } from '@shared/icons'; import { - GlobalArticlesWidget, - GlobalFilesWidget, - GlobalHashtagWidget, - LocalArticlesWidget, - LocalFeedsWidget, - LocalFilesWidget, - LocalThreadWidget, - LocalUserWidget, + ArticleWidget, + FileWidget, + GroupWidget, + HashtagWidget, NewsfeedWidget, NotificationWidget, + ThreadWidget, + ToggleWidgetList, + TopicWidget, TrendingAccountsWidget, TrendingNotesWidget, - XfeedsWidget, - XhashtagWidget, + UserWidget, + WidgetList, } from '@shared/widgets'; -import { WidgetKinds } from '@stores/constants'; +import { WIDGET_KIND } from '@stores/constants'; import { Widget } from '@utils/types'; -export function SpaceScreen() { +export function HomeScreen() { const ref = useRef(null); const [selectedIndex, setSelectedIndex] = useState(-1); @@ -43,13 +39,13 @@ export function SpaceScreen() { id: '9998', title: 'Notification', content: '', - kind: WidgetKinds.local.notification, + kind: WIDGET_KIND.notification, }, { id: '9999', title: 'Newsfeed', content: '', - kind: WidgetKinds.local.network, + kind: WIDGET_KIND.newsfeed, }, ]; @@ -63,36 +59,30 @@ export function SpaceScreen() { const renderItem = useCallback((widget: Widget) => { switch (widget.kind) { - case WidgetKinds.local.feeds: - return ; - case WidgetKinds.local.files: - return ; - case WidgetKinds.local.articles: - return ; - case WidgetKinds.local.user: - return ; - case WidgetKinds.local.thread: - return ; - case WidgetKinds.global.hashtag: - return ; - case WidgetKinds.global.articles: - return ; - case WidgetKinds.global.files: - return ; - case WidgetKinds.nostrBand.trendingAccounts: - return ; - case WidgetKinds.nostrBand.trendingNotes: - return ; - case WidgetKinds.tmp.xfeed: - return ; - case WidgetKinds.tmp.xhashtag: - return ; - case WidgetKinds.tmp.list: - return ; - case WidgetKinds.local.notification: + case WIDGET_KIND.notification: return ; - case WidgetKinds.local.network: + case WIDGET_KIND.newsfeed: return ; + case WIDGET_KIND.topic: + return ; + case WIDGET_KIND.user: + return ; + case WIDGET_KIND.thread: + return ; + case WIDGET_KIND.article: + return ; + case WIDGET_KIND.file: + return ; + case WIDGET_KIND.hashtag: + return ; + case WIDGET_KIND.group: + return ; + case WIDGET_KIND.trendingNotes: + return ; + case WIDGET_KIND.trendingAccounts: + return ; + case WIDGET_KIND.list: + return ; default: return null; } @@ -100,7 +90,7 @@ export function SpaceScreen() { if (status === 'pending') { return ( -
+
); @@ -108,14 +98,15 @@ export function SpaceScreen() { return ( { if (!ref.current) return; switch (e.code) { + case 'ArrowUp': case 'ArrowLeft': { e.preventDefault(); const prevIndex = Math.max(selectedIndex - 1, 0); @@ -126,6 +117,7 @@ export function SpaceScreen() { }); break; } + case 'ArrowDown': case 'ArrowRight': { e.preventDefault(); const nextIndex = Math.min(selectedIndex + 1, data.length - 1); @@ -136,6 +128,8 @@ export function SpaceScreen() { }); break; } + default: + break; } }} > diff --git a/src/app/new/article.tsx b/src/app/new/article.tsx index 38998e35..dad5c325 100644 --- a/src/app/new/article.tsx +++ b/src/app/new/article.tsx @@ -1,10 +1,11 @@ -import { NDKEvent, NDKKind } from '@nostr-dev-kit/ndk'; +import { NDKEvent, NDKKind, NDKTag } from '@nostr-dev-kit/ndk'; import CharacterCount from '@tiptap/extension-character-count'; import Image from '@tiptap/extension-image'; import Placeholder from '@tiptap/extension-placeholder'; import { EditorContent, FloatingMenu, useEditor } from '@tiptap/react'; import StarterKit from '@tiptap/starter-kit'; import { useMemo, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import { toast } from 'sonner'; import { twMerge } from 'tailwind-merge'; import { Markdown } from 'tiptap-markdown'; @@ -31,6 +32,7 @@ export function NewArticleScreen() { const [summary, setSummary] = useState({ open: false, content: '' }); const [cover, setCover] = useState(''); + const navigate = useNavigate(); const ident = useMemo(() => String(Date.now()), []); const editor = useEditor({ extensions: [ @@ -65,13 +67,15 @@ export function NewArticleScreen() { const submit = async () => { try { + if (!ndk.signer) return navigate('/new/privkey'); + setLoading(true); // get markdown content const content = editor.storage.markdown.getMarkdown(); // define tags - const tags: string[][] = [ + const tags: NDKTag[] = [ ['d', ident], ['title', title], ['image', cover], @@ -85,17 +89,20 @@ export function NewArticleScreen() { tags.push(['t', tag.replace('#', '')]); }); - // publish message const event = new NDKEvent(ndk); event.content = content; event.kind = NDKKind.Article; event.tags = tags; + // publish const publishedRelays = await event.publish(); + if (publishedRelays) { toast.success(`Broadcasted to ${publishedRelays.size} relays successfully.`); + // update state setLoading(false); + // reset editor editor.commands.clearContent(); localStorage.setItem('editor-article', '{}'); @@ -235,7 +242,7 @@ export function NewArticleScreen() {
- {editor?.storage?.characterCount.characters()} + {editor?.storage?.characterCount.characters()} characters - diff --git a/src/app/new/components/mentionPopupItem.tsx b/src/app/new/components/mentionPopupItem.tsx index c2fa6614..d4e8f95d 100644 --- a/src/app/new/components/mentionPopupItem.tsx +++ b/src/app/new/components/mentionPopupItem.tsx @@ -1,5 +1,3 @@ -import { Image } from '@shared/image'; - import { useProfile } from '@utils/hooks/useProfile'; import { displayNpub } from '@utils/shortenKey'; @@ -20,7 +18,7 @@ export function MentionPopupItem({ pubkey, embed }: { pubkey: string; embed?: st return (
- {pubkey} { try { + if (!ndk.signer) return navigate('/new/privkey'); + setIsPublish(true); const event = new NDKEvent(ndk); diff --git a/src/app/new/index.tsx b/src/app/new/index.tsx deleted file mode 100644 index 945689f8..00000000 --- a/src/app/new/index.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { Link, NavLink, Outlet } from 'react-router-dom'; -import { twMerge } from 'tailwind-merge'; -import { WindowTitlebar } from 'tauri-controls'; - -import { useStorage } from '@libs/storage/provider'; - -import { ArrowLeftIcon } from '@shared/icons'; - -export function NewScreen() { - const { db } = useStorage(); - - return ( -
- {db.platform !== 'macos' ? ( - - ) : ( -
- )} -
-
-
-
- - - -
-
-
-
- - twMerge( - 'inline-flex h-9 w-20 items-center justify-center rounded-lg text-sm font-medium', - isActive ? 'bg-white shadow dark:bg-black' : 'bg-transparent' - ) - } - > - Post - - - twMerge( - 'inline-flex h-9 w-20 items-center justify-center rounded-lg text-sm font-medium', - isActive ? 'bg-white shadow dark:bg-black' : 'bg-transparent' - ) - } - > - Article - - - twMerge( - 'inline-flex h-9 w-28 items-center justify-center rounded-lg text-sm font-medium', - isActive ? 'bg-white shadow dark:bg-black' : 'bg-transparent' - ) - } - > - File Sharing - -
-
-
- -
-
-
-
-
-
- ); -} diff --git a/src/app/new/post.tsx b/src/app/new/post.tsx index afb92439..532bcd65 100644 --- a/src/app/new/post.tsx +++ b/src/app/new/post.tsx @@ -6,7 +6,7 @@ import { EditorContent, useEditor } from '@tiptap/react'; import StarterKit from '@tiptap/starter-kit'; import { convert } from 'html-to-text'; import { useEffect, useState } from 'react'; -import { useSearchParams } from 'react-router-dom'; +import { useNavigate, useSearchParams } from 'react-router-dom'; import { toast } from 'sonner'; import { MediaUploader, MentionPopup } from '@app/new/components'; @@ -16,12 +16,18 @@ import { useNDK } from '@libs/ndk/provider'; import { CancelIcon, LoaderIcon } from '@shared/icons'; import { MentionNote } from '@shared/notes'; +import { WIDGET_KIND } from '@stores/constants'; + +import { useWidget } from '@utils/hooks/useWidget'; + export function NewPostScreen() { - const { ndk, relayUrls } = useNDK(); + const { ndk } = useNDK(); + const { addWidget } = useWidget(); const [loading, setLoading] = useState(false); const [searchParams, setSearchParams] = useSearchParams(); + const navigate = useNavigate(); const editor = useEditor({ extensions: [ StarterKit.configure(), @@ -49,13 +55,9 @@ export function NewPostScreen() { const submit = async () => { try { - setLoading(true); + if (!ndk.signer) return navigate('/new/privkey'); - const reply = { - id: searchParams.get('id'), - root: searchParams.get('root'), - pubkey: searchParams.get('pubkey'), - }; + setLoading(true); // get plaintext content const html = editor.getHTML(); @@ -66,47 +68,44 @@ export function NewPostScreen() { ], }); - // define tags - let tags: string[][] = []; - - // add reply to tags if present - if (reply.id && reply.pubkey) { - if (reply.root && reply.root.length > 1) { - tags = [ - ['e', reply.root, relayUrls[0], 'root'], - ['e', reply.id, relayUrls[0], 'reply'], - ['p', reply.pubkey], - ]; - } else { - tags = [ - ['e', reply.id, relayUrls[0], 'reply'], - ['p', reply.pubkey], - ]; - } - } - - // add hashtag to tags if present - const hashtags = serializedContent - .split(/\s/gm) - .filter((s: string) => s.startsWith('#')); - - hashtags?.forEach((tag: string) => { - tags.push(['t', tag.replace('#', '')]); - }); - - // publish message const event = new NDKEvent(ndk); event.content = serializedContent; event.kind = NDKKind.Text; - event.tags = tags; + // add reply to tags if present + const replyTo = searchParams.get('replyTo'); + const rootReplyTo = searchParams.get('rootReplyTo'); + + if (rootReplyTo) { + const rootEvent = await ndk.fetchEvent(rootReplyTo); + event.tag(rootEvent, 'root'); + } + + if (replyTo) { + const replyEvent = await ndk.fetchEvent(replyTo); + event.tag(replyEvent, 'reply'); + } + + // publish event const publishedRelays = await event.publish(); + if (publishedRelays) { toast.success(`Broadcasted to ${publishedRelays.size} relays successfully.`); + // update state setLoading(false); - // reset editor setSearchParams({}); + + // open new widget with this event id + if (!replyTo) { + addWidget.mutate({ + title: 'Thread', + content: event.id, + kind: WIDGET_KIND.thread, + }); + } + + // reset editor editor.commands.clearContent(); localStorage.setItem('editor-post', '{}'); } @@ -130,22 +129,22 @@ export function NewPostScreen() { autoCorrect="off" autoCapitalize="off" /> - {searchParams.get('id') && ( + {searchParams.get('replyTo') && (
- +
)}
- {editor?.storage?.characterCount.characters()} + {editor?.storage?.characterCount.characters()} characters
diff --git a/src/app/new/privkey.tsx b/src/app/new/privkey.tsx new file mode 100644 index 00000000..691d1b8a --- /dev/null +++ b/src/app/new/privkey.tsx @@ -0,0 +1,86 @@ +import { NDKPrivateKeySigner } from '@nostr-dev-kit/ndk'; +import { getPublicKey, nip19 } from 'nostr-tools'; +import { useState } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { toast } from 'sonner'; + +import { useNDK } from '@libs/ndk/provider'; +import { useStorage } from '@libs/storage/provider'; + +export function NewPrivkeyScreen() { + const { db } = useStorage(); + const { ndk } = useNDK(); + + const [nsec, setNsec] = useState(''); + const navigate = useNavigate(); + + const save = async (content: string) => { + return await db.secureSave(db.account.pubkey, content); + }; + + const submit = async (isSave?: boolean) => { + try { + if (!nsec.startsWith('nsec1')) + return toast.info('You must enter a private key starts with nsec'); + + const decoded = nip19.decode(nsec); + + if (decoded.type !== 'nsec') return toast.info('You must enter a valid nsec'); + + const privkey = decoded.data; + const pubkey = getPublicKey(privkey); + + if (pubkey !== db.account.pubkey) + return toast.info( + 'Your nsec is not match your current public key, please make sure you enter right nsec' + ); + + const signer = new NDKPrivateKeySigner(privkey); + ndk.signer = signer; + + if (isSave) await save(privkey); + + navigate(-1); + } catch (e) { + toast.error(e); + } + }; + + return ( +
+
+

+ You need to provide private key to sign nostr event. +

+ setNsec(e.target.value)} + spellCheck={false} + autoComplete="off" + autoCorrect="off" + autoCapitalize="off" + className="h-11 w-full rounded-lg bg-neutral-100 px-3 py-2 placeholder:text-neutral-500 dark:bg-neutral-900 dark:placeholder:text-neutral-400" + /> +
+ + +
+
+
+ ); +} diff --git a/src/app/notes/article.tsx b/src/app/notes/article.tsx index 1d79ab3c..d4a1ba2b 100644 --- a/src/app/notes/article.tsx +++ b/src/app/notes/article.tsx @@ -1,27 +1,44 @@ import { writeText } from '@tauri-apps/plugin-clipboard-manager'; +import Markdown from 'markdown-to-jsx'; import { nip19 } from 'nostr-tools'; -import { AddressPointer, EventPointer } from 'nostr-tools/lib/types/nip19'; -import { useRef, useState } from 'react'; +import { EventPointer } from 'nostr-tools/lib/types/nip19'; +import { useMemo, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; -import { ArrowLeftIcon, CheckCircleIcon, ReplyIcon, ShareIcon } from '@shared/icons'; -import { ArticleDetailNote, NoteActions, NoteReplyForm } from '@shared/notes'; +import { ArrowLeftIcon, CheckCircleIcon, ShareIcon } from '@shared/icons'; +import { NoteReplyForm } from '@shared/notes'; import { ReplyList } from '@shared/notes/replies/list'; -import { User } from '@shared/user'; import { useEvent } from '@utils/hooks/useEvent'; export function ArticleNoteScreen() { const { id } = useParams(); - - const navigate = useNavigate(); - const replyRef = useRef(null); - - const naddr = id.startsWith('naddr') ? (nip19.decode(id).data as AddressPointer) : null; - const { status, data } = useEvent(id, naddr); + const { status, data } = useEvent(id); const [isCopy, setIsCopy] = useState(false); + const navigate = useNavigate(); + const metadata = useMemo(() => { + if (status === 'pending') return; + + const title = data.tags.find((tag) => tag[0] === 'title')?.[1]; + const image = data.tags.find((tag) => tag[0] === 'image')?.[1]; + const summary = data.tags.find((tag) => tag[0] === 'summary')?.[1]; + + let publishedAt: Date | string | number = data.tags.find( + (tag) => tag[0] === 'published_at' + )?.[1]; + + publishedAt = new Date(parseInt(publishedAt) * 1000).toLocaleDateString('en-US'); + + return { + title, + image, + publishedAt, + summary, + }; + }, [data]); + const share = async () => { await writeText( 'https://njump.me/' + @@ -33,69 +50,72 @@ export function ArticleNoteScreen() { setTimeout(() => setIsCopy(false), 2000); }; - const scrollToReply = () => { - replyRef.current.scrollIntoView(); - }; - return ( -
-
-
- -
- - -
-
-
-
-
- {status === 'pending' ? ( -
Loading...
+
+
+ + +
+
+ {status === 'pending' ? ( +
Loading...
+ ) : ( +
+
+ {metadata.image && ( + {metadata.title} + )} +
+

{metadata.title}

+ + Published: {metadata.publishedAt.toString()} +
- )} -
-
- -
- + + {data.content} +
-
+ )} +
+
+
+ +
+
-
); } diff --git a/src/app/notes/text.tsx b/src/app/notes/text.tsx index 8d832a96..7228489f 100644 --- a/src/app/notes/text.tsx +++ b/src/app/notes/text.tsx @@ -7,25 +7,26 @@ import { useNavigate, useParams } from 'react-router-dom'; import { ArrowLeftIcon, CheckCircleIcon, ReplyIcon, ShareIcon } from '@shared/icons'; import { - ArticleNote, - FileNote, + ChildNote, + MemoizedTextKind, NoteActions, NoteReplyForm, - TextNote, UnknownNote, } from '@shared/notes'; import { ReplyList } from '@shared/notes/replies/list'; import { User } from '@shared/user'; import { useEvent } from '@utils/hooks/useEvent'; +import { useNostr } from '@utils/hooks/useNostr'; export function TextNoteScreen() { - const { id } = useParams(); - const { status, data } = useEvent(id); - const navigate = useNavigate(); const replyRef = useRef(null); + const { id } = useParams(); + const { status, data } = useEvent(id); + const { getEventThread } = useNostr(); + const [isCopy, setIsCopy] = useState(false); const share = async () => { @@ -44,13 +45,24 @@ export function TextNoteScreen() { }; const renderKind = (event: NDKEvent) => { + const thread = getEventThread(event.tags); switch (event.kind) { case NDKKind.Text: - return ; - case NDKKind.Article: - return ; - case 1063: - return ; + return ( + <> + {thread ? ( +
+
+ {thread.rootEventId ? ( + + ) : null} + {thread.replyEventId ? : null} +
+
+ ) : null} + + + ); default: return ; } @@ -99,16 +111,16 @@ export function TextNoteScreen() {
{renderKind(data)}
- +
)}
- +
- +
diff --git a/src/app/personal/editContact.tsx b/src/app/personal/editContact.tsx deleted file mode 100644 index 3cb871f1..00000000 --- a/src/app/personal/editContact.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { useQuery } from '@tanstack/react-query'; -import { Link } from 'react-router-dom'; - -import { useNDK } from '@libs/ndk/provider'; -import { useStorage } from '@libs/storage/provider'; - -import { ArrowLeftIcon, LoaderIcon } from '@shared/icons'; -import { User } from '@shared/user'; - -export function EditContactScreen() { - const { db } = useStorage(); - const { ndk } = useNDK(); - const { status, data } = useQuery({ - queryKey: ['contacts'], - queryFn: async () => { - const user = ndk.getUser({ pubkey: db.account.pubkey }); - - const follows = await user.follows(); - return [...follows]; - }, - refetchOnWindowFocus: false, - }); - - return ( -
-
- - - Back - -

Contact Manager

-
-
-
- {status === 'pending' ? ( -
- -
- ) : ( - data.map((item) => ( -
- -
- )) - )} -
-
- ); -} diff --git a/src/app/personal/editProfile.tsx b/src/app/personal/editProfile.tsx deleted file mode 100644 index 8d2d1a5d..00000000 --- a/src/app/personal/editProfile.tsx +++ /dev/null @@ -1,323 +0,0 @@ -import { NDKEvent, NDKKind, NDKUserProfile } from '@nostr-dev-kit/ndk'; -import { useQueryClient } from '@tanstack/react-query'; -import { message } from '@tauri-apps/plugin-dialog'; -import { useState } from 'react'; -import { useForm } from 'react-hook-form'; -import { Link } from 'react-router-dom'; - -import { useNDK } from '@libs/ndk/provider'; -import { useStorage } from '@libs/storage/provider'; - -import { - ArrowLeftIcon, - CheckCircleIcon, - LoaderIcon, - PlusIcon, - UnverifiedIcon, -} from '@shared/icons'; - -import { useNostr } from '@utils/hooks/useNostr'; - -export function EditProfileScreen() { - const queryClient = useQueryClient(); - - const [loading, setLoading] = useState(false); - const [picture, setPicture] = useState(''); - const [banner, setBanner] = useState(''); - const [nip05, setNIP05] = useState({ verified: true, text: '' }); - - const { db } = useStorage(); - const { ndk } = useNDK(); - const { upload } = useNostr(); - const { - register, - handleSubmit, - reset, - setError, - formState: { isValid, errors }, - } = useForm({ - defaultValues: async () => { - const res: NDKUserProfile = queryClient.getQueryData(['user', db.account.pubkey]); - if (res.image) { - setPicture(res.image); - } - if (res.banner) { - setBanner(res.banner); - } - if (res.nip05) { - setNIP05((prev) => ({ ...prev, text: res.nip05 })); - } - return res; - }, - }); - - const uploadAvatar = async () => { - try { - setLoading(true); - - const image = await upload(); - - if (image) { - setPicture(image); - setLoading(false); - } - } catch (e) { - setLoading(false); - await message(`Upload failed, error: ${e}`, { title: 'Lume', type: 'error' }); - } - }; - - const uploadBanner = async () => { - try { - setLoading(true); - - const image = await upload(); - - if (image) { - setBanner(image); - setLoading(false); - } - } catch (e) { - setLoading(false); - await message(`Upload failed, error: ${e}`, { title: 'Lume', type: 'error' }); - } - }; - - const onSubmit = async (data: NDKUserProfile) => { - // start loading - setLoading(true); - - const content = { - ...data, - username: data.name, - display_name: data.name, - bio: data.about, - image: data.picture, - }; - - const event = new NDKEvent(ndk); - event.kind = NDKKind.Metadata; - event.tags = []; - - if (data.nip05) { - const user = ndk.getUser({ pubkey: db.account.pubkey }); - const verify = await user.validateNip05(data.nip05); - if (verify) { - event.content = JSON.stringify({ ...content, nip05: data.nip05 }); - } else { - setNIP05((prev) => ({ ...prev, verified: false })); - setError('nip05', { - type: 'manual', - message: "Can't verify your Lume ID / NIP-05, please check again", - }); - } - } else { - event.content = JSON.stringify(content); - } - - const publishedRelays = await event.publish(); - - if (publishedRelays) { - // invalid cache - queryClient.invalidateQueries({ - queryKey: ['user', db.account.pubkey], - }); - // reset form - reset(); - // reset state - setLoading(false); - setPicture(null); - setBanner(null); - } else { - setLoading(false); - } - }; - - return ( -
-
- - - Back - -

Edit Profile

-
-
-
-
- - -
-
- {banner ? ( - user's banner - ) : ( -
- )} -
- -
-
-
-
- user's avatar -
- -
-
-
-
-
-
- - -
-
- - -
-
- -
- -
- {nip05.verified ? ( - - - Verified - - ) : ( - - - Unverified - - )} -
- {errors.nip05 && ( -

- {errors.nip05.message.toString()} -

- )} -
-
-
- - -
-
- - -
-
- - + )} +
+
+ ); +} diff --git a/src/app/settings/components/autoStart.tsx b/src/app/settings/components/autoStart.tsx deleted file mode 100644 index 5a71136d..00000000 --- a/src/app/settings/components/autoStart.tsx +++ /dev/null @@ -1,12 +0,0 @@ -export function AutoStartSetting() { - return ( -
-
- Auto start - - Auto start at login - -
-
- ); -} diff --git a/src/app/settings/components/cacheTime.tsx b/src/app/settings/components/cacheTime.tsx deleted file mode 100644 index 2e9b06a5..00000000 --- a/src/app/settings/components/cacheTime.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { useState } from 'react'; - -import { CheckCircleIcon } from '@shared/icons'; - -export function CacheTimeSetting() { - const [time, setTime] = useState('0'); - - const update = async () => { - // await updateSetting('cache_time', time); - }; - - return ( -
-
- - Cache time (milliseconds) - - - The length of time before inactive data gets removed from the cache - -
-
- setTime(e.currentTarget.value)} - autoCapitalize="none" - autoCorrect="none" - className="h-8 w-24 rounded-md bg-neutral-800 px-2 text-right font-medium text-neutral-300 focus:outline-none" - /> - -
-
- ); -} diff --git a/src/app/personal/components/contactCard.tsx b/src/app/settings/components/contactCard.tsx similarity index 97% rename from src/app/personal/components/contactCard.tsx rename to src/app/settings/components/contactCard.tsx index 3bc4ba75..29d3da76 100644 --- a/src/app/personal/components/contactCard.tsx +++ b/src/app/settings/components/contactCard.tsx @@ -37,7 +37,7 @@ export function ContactCard() { Contacts

diff --git a/src/app/settings/components/dataPath.tsx b/src/app/settings/components/dataPath.tsx deleted file mode 100644 index 6308a930..00000000 --- a/src/app/settings/components/dataPath.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { appConfigDir } from '@tauri-apps/api/path'; -import { useEffect, useState } from 'react'; - -export function DataPath() { - const [path, setPath] = useState(''); - - useEffect(() => { - async function getPath() { - const dir = await appConfigDir(); - setPath(dir); - } - getPath(); - }, []); - - return ( -
-
- App data path - - Where the local data is stored - -
-
- {path} -
-
- ); -} diff --git a/src/app/personal/components/postCard.tsx b/src/app/settings/components/postCard.tsx similarity index 97% rename from src/app/personal/components/postCard.tsx rename to src/app/settings/components/postCard.tsx index 2c4a7ecf..374fe14c 100644 --- a/src/app/personal/components/postCard.tsx +++ b/src/app/settings/components/postCard.tsx @@ -1,4 +1,5 @@ import { useQuery } from '@tanstack/react-query'; +import { fetch } from '@tauri-apps/plugin-http'; import { Link } from 'react-router-dom'; import { useStorage } from '@libs/storage/provider'; diff --git a/src/app/personal/components/profileCard.tsx b/src/app/settings/components/profileCard.tsx similarity index 98% rename from src/app/personal/components/profileCard.tsx rename to src/app/settings/components/profileCard.tsx index 34823d55..a4756199 100644 --- a/src/app/personal/components/profileCard.tsx +++ b/src/app/settings/components/profileCard.tsx @@ -27,7 +27,7 @@ export function ProfileCard() {
diff --git a/src/app/personal/components/relayCard.tsx b/src/app/settings/components/relayCard.tsx similarity index 89% rename from src/app/personal/components/relayCard.tsx rename to src/app/settings/components/relayCard.tsx index af088253..f5591c1c 100644 --- a/src/app/personal/components/relayCard.tsx +++ b/src/app/settings/components/relayCard.tsx @@ -15,7 +15,10 @@ export function RelayCard() { queryKey: ['relays'], queryFn: async () => { const user = ndk.getUser({ pubkey: db.account.pubkey }); - return await user.relayList(); + const relays = await user.relayList(); + + if (!relays) return Promise.reject(new Error("user's relay set not found")); + return relays; }, refetchOnWindowFocus: false, }); @@ -29,7 +32,7 @@ export function RelayCard() { ) : (

- {compactNumber.format(data?.relays?.length)} + {compactNumber.format(data?.relays?.length || 0)}

diff --git a/src/app/settings/components/version.tsx b/src/app/settings/components/version.tsx deleted file mode 100644 index ac5ac2ac..00000000 --- a/src/app/settings/components/version.tsx +++ /dev/null @@ -1,15 +0,0 @@ -export function VersionSetting() { - return ( -

-
- Version - - You're using latest version - -
-
- 2 -
-
- ); -} diff --git a/src/app/personal/components/zapCard.tsx b/src/app/settings/components/zapCard.tsx similarity index 92% rename from src/app/personal/components/zapCard.tsx rename to src/app/settings/components/zapCard.tsx index e2aa5309..d1e35a84 100644 --- a/src/app/personal/components/zapCard.tsx +++ b/src/app/settings/components/zapCard.tsx @@ -1,4 +1,5 @@ import { useQuery } from '@tanstack/react-query'; +import { fetch } from '@tauri-apps/plugin-http'; import { useStorage } from '@libs/storage/provider'; @@ -40,7 +41,7 @@ export function ZapCard() {

{compactNumber.format( - data.stats[db.account.pubkey].zaps_received.msats / 1000 + data?.stats[db.account.pubkey]?.zaps_received?.msats / 1000 || 0 )}

diff --git a/src/app/settings/editContact.tsx b/src/app/settings/editContact.tsx new file mode 100644 index 00000000..30dcd118 --- /dev/null +++ b/src/app/settings/editContact.tsx @@ -0,0 +1,41 @@ +import { useQuery } from '@tanstack/react-query'; + +import { useNDK } from '@libs/ndk/provider'; +import { useStorage } from '@libs/storage/provider'; + +import { LoaderIcon } from '@shared/icons'; +import { User } from '@shared/user'; + +export function EditContactScreen() { + const { db } = useStorage(); + const { ndk } = useNDK(); + const { status, data } = useQuery({ + queryKey: ['contacts'], + queryFn: async () => { + const user = ndk.getUser({ pubkey: db.account.pubkey }); + + const follows = await user.follows(); + return [...follows]; + }, + refetchOnWindowFocus: false, + }); + + return ( +
+ {status === 'pending' ? ( +
+ +
+ ) : ( + data.map((item) => ( +
+ +
+ )) + )} +
+ ); +} diff --git a/src/app/settings/editProfile.tsx b/src/app/settings/editProfile.tsx new file mode 100644 index 00000000..98ce4837 --- /dev/null +++ b/src/app/settings/editProfile.tsx @@ -0,0 +1,306 @@ +import { NDKEvent, NDKKind, NDKUserProfile } from '@nostr-dev-kit/ndk'; +import { useQueryClient } from '@tanstack/react-query'; +import { message } from '@tauri-apps/plugin-dialog'; +import { useState } from 'react'; +import { useForm } from 'react-hook-form'; +import { useNavigate } from 'react-router-dom'; + +import { useNDK } from '@libs/ndk/provider'; +import { useStorage } from '@libs/storage/provider'; + +import { CheckCircleIcon, LoaderIcon, PlusIcon, UnverifiedIcon } from '@shared/icons'; + +import { useNostr } from '@utils/hooks/useNostr'; + +export function EditProfileScreen() { + const queryClient = useQueryClient(); + const navigate = useNavigate(); + + const [loading, setLoading] = useState(false); + const [picture, setPicture] = useState(''); + const [banner, setBanner] = useState(''); + const [nip05, setNIP05] = useState({ verified: true, text: '' }); + + const { db } = useStorage(); + const { ndk } = useNDK(); + const { upload } = useNostr(); + const { + register, + handleSubmit, + reset, + setError, + formState: { isValid, errors }, + } = useForm({ + defaultValues: async () => { + const res: NDKUserProfile = queryClient.getQueryData(['user', db.account.pubkey]); + if (res.image) { + setPicture(res.image); + } + if (res.banner) { + setBanner(res.banner); + } + if (res.nip05) { + setNIP05((prev) => ({ ...prev, text: res.nip05 })); + } + return res; + }, + }); + + const uploadAvatar = async () => { + try { + if (!ndk.signer) return navigate('/new/privkey'); + + setLoading(true); + + const image = await upload(); + if (image) { + setPicture(image); + setLoading(false); + } + } catch (e) { + setLoading(false); + await message(`Upload failed, error: ${e}`, { title: 'Lume', type: 'error' }); + } + }; + + const uploadBanner = async () => { + try { + setLoading(true); + + const image = await upload(); + + if (image) { + setBanner(image); + setLoading(false); + } + } catch (e) { + setLoading(false); + await message(`Upload failed, error: ${e}`, { title: 'Lume', type: 'error' }); + } + }; + + const onSubmit = async (data: NDKUserProfile) => { + // start loading + setLoading(true); + + const content = { + ...data, + username: data.name, + display_name: data.name, + bio: data.about, + image: data.picture, + }; + + const event = new NDKEvent(ndk); + event.kind = NDKKind.Metadata; + event.tags = []; + + if (data.nip05) { + const user = ndk.getUser({ pubkey: db.account.pubkey }); + const verify = await user.validateNip05(data.nip05); + if (verify) { + event.content = JSON.stringify({ ...content, nip05: data.nip05 }); + } else { + setNIP05((prev) => ({ ...prev, verified: false })); + setError('nip05', { + type: 'manual', + message: "Can't verify your Lume ID / NIP-05, please check again", + }); + } + } else { + event.content = JSON.stringify(content); + } + + const publishedRelays = await event.publish(); + + if (publishedRelays) { + // invalid cache + queryClient.invalidateQueries({ + queryKey: ['user', db.account.pubkey], + }); + // reset form + reset(); + // reset state + setLoading(false); + setPicture(null); + setBanner(null); + } else { + setLoading(false); + } + }; + + return ( +
+ + + +
+
+ {banner ? ( + user's banner + ) : ( +
+ )} +
+ +
+
+
+
+ user's avatar +
+ +
+
+
+
+
+
+ + +
+
+ + +
+
+ +
+ +
+ {nip05.verified ? ( + + + Verified + + ) : ( + + + Unverified + + )} +
+ {errors.nip05 && ( +

+ {errors.nip05.message.toString()} +

+ )} +
+
+
+ + +
+
+ + +
+
+ +