diff --git a/package.json b/package.json index 2eb282c..b301ca2 100644 --- a/package.json +++ b/package.json @@ -68,9 +68,24 @@ "@electron-toolkit/preload": "^3.0.2", "@electron-toolkit/utils": "^4.0.0", "@koromix/koffi-win32-x64": "3.1.0", + "@radix-ui/react-alert-dialog": "^1.1.23", + "@radix-ui/react-checkbox": "^1.3.11", + "@radix-ui/react-dialog": "^1.1.23", + "@radix-ui/react-dropdown-menu": "^2.1.24", "@radix-ui/react-popover": "^1.1.23", + "@radix-ui/react-progress": "^1.1.16", + "@radix-ui/react-radio-group": "^1.4.7", + "@radix-ui/react-scroll-area": "^1.2.18", + "@radix-ui/react-select": "^2.3.7", + "@radix-ui/react-separator": "^1.1.15", + "@radix-ui/react-switch": "^1.3.7", + "@radix-ui/react-tabs": "^1.1.21", + "@radix-ui/react-toast": "^1.2.23", + "@radix-ui/react-tooltip": "^1.2.16", "@tanstack/react-virtual": "^3.14.6", "archiver": "^8.0.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", "cross-env": "^10.1.0", "electron-updater": "^6.6.2", "ffmpeg-static": "5.3.0", @@ -82,6 +97,7 @@ "qrcode": "^1.5.4", "sherpa-onnx-node": "1.13.3", "silk-wasm": "^3.7.1", + "tailwind-merge": "^3.6.0", "wechat-emojis": "^1.0.2" }, "devDependencies": { @@ -102,6 +118,7 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.1", "@vitest/coverage-v8": "^4.1.10", + "autoprefixer": "^10.5.4", "electron": "^43.0.0", "electron-builder": "^26.0.12", "electron-vite": "^5.0.0", @@ -110,10 +127,13 @@ "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.24", "jsdom": "^30.0.1", + "postcss": "^8.5.26", "prettier": "^3.7.4", "react": "^19.2.1", "react-dom": "^19.2.1", "sass": "^1.102.0", + "tailwindcss": "3.4.17", + "tailwindcss-animate": "^1.0.7", "typescript": "^5.9.3", "vite": "^7.2.6", "vitest": "^4.1.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6870344..9a9db81 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,20 @@ specifiers: '@electron-toolkit/utils': ^4.0.0 '@koromix/koffi-win32-x64': 3.1.0 '@playwright/test': ^1.62.1 + '@radix-ui/react-alert-dialog': ^1.1.23 + '@radix-ui/react-checkbox': ^1.3.11 + '@radix-ui/react-dialog': ^1.1.23 + '@radix-ui/react-dropdown-menu': ^2.1.24 '@radix-ui/react-popover': ^1.1.23 + '@radix-ui/react-progress': ^1.1.16 + '@radix-ui/react-radio-group': ^1.4.7 + '@radix-ui/react-scroll-area': ^1.2.18 + '@radix-ui/react-select': ^2.3.7 + '@radix-ui/react-separator': ^1.1.15 + '@radix-ui/react-switch': ^1.3.7 + '@radix-ui/react-tabs': ^1.1.21 + '@radix-ui/react-toast': ^1.2.23 + '@radix-ui/react-tooltip': ^1.2.16 '@rollup/rollup-darwin-arm64': ^4.62.2 '@tanstack/react-virtual': ^3.14.6 '@testing-library/dom': ^10.4.1 @@ -29,6 +42,9 @@ specifiers: '@vitejs/plugin-react': ^5.1.1 '@vitest/coverage-v8': ^4.1.10 archiver: ^8.0.0 + autoprefixer: ^10.5.4 + class-variance-authority: ^0.7.1 + clsx: ^2.1.1 cross-env: ^10.1.0 electron: ^43.0.0 electron-builder: ^26.0.12 @@ -45,6 +61,7 @@ specifiers: jsonrepair: ^3.15.0 koffi: ^3.1.0 openai: ^6.10.0 + postcss: ^8.5.26 prettier: ^3.7.4 qrcode: ^1.5.4 react: ^19.2.1 @@ -52,6 +69,9 @@ specifiers: sass: ^1.102.0 sherpa-onnx-node: 1.13.3 silk-wasm: ^3.7.1 + tailwind-merge: ^3.6.0 + tailwindcss: 3.4.17 + tailwindcss-animate: ^1.0.7 typescript: ^5.9.3 vite: ^7.2.6 vitest: ^4.1.10 @@ -62,9 +82,24 @@ dependencies: '@electron-toolkit/preload': 3.0.2_electron@43.1.0 '@electron-toolkit/utils': 4.0.0_electron@43.1.0 '@koromix/koffi-win32-x64': 3.1.0 + '@radix-ui/react-alert-dialog': 1.1.23_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-checkbox': 1.3.11_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-dialog': 1.1.23_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-dropdown-menu': 2.1.24_eijghdl4n2x4hz6j4cg7ctgbuu '@radix-ui/react-popover': 1.1.23_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-progress': 1.1.16_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-radio-group': 1.4.7_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-scroll-area': 1.2.18_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-select': 2.3.7_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-separator': 1.1.15_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-switch': 1.3.7_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-tabs': 1.1.21_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-toast': 1.2.23_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-tooltip': 1.2.16_eijghdl4n2x4hz6j4cg7ctgbuu '@tanstack/react-virtual': 3.14.6_bokjwhiew3ov3ffvbmafuwoalq archiver: 8.0.0 + class-variance-authority: 0.7.1 + clsx: 2.1.1 cross-env: 10.1.0 electron-updater: 6.8.9 ffmpeg-static: 5.3.0 @@ -76,6 +111,7 @@ dependencies: qrcode: 1.5.4 sherpa-onnx-node: 1.13.3 silk-wasm: 3.7.1 + tailwind-merge: 3.6.0 wechat-emojis: 1.0.2 devDependencies: @@ -96,6 +132,7 @@ devDependencies: '@types/react-dom': 19.2.3_@types+react@19.2.7 '@vitejs/plugin-react': 5.1.2_vite@7.2.7 '@vitest/coverage-v8': 4.1.10_vitest@4.1.10 + autoprefixer: 10.5.4_postcss@8.5.26 electron: 43.1.0 electron-builder: 26.0.12 electron-vite: 5.0.0_vite@7.2.7 @@ -104,10 +141,13 @@ devDependencies: eslint-plugin-react-hooks: 7.0.1_eslint@9.39.1 eslint-plugin-react-refresh: 0.4.24_eslint@9.39.1 jsdom: 30.0.1 + postcss: 8.5.26 prettier: 3.7.4 react: 19.2.1 react-dom: 19.2.1_react@19.2.1 sass: 1.102.0 + tailwindcss: 3.4.17 + tailwindcss-animate: 1.0.7_tailwindcss@3.4.17 typescript: 5.9.3 vite: 7.2.7_kx7yyowhop237vgn7dp2p54shq vitest: 4.1.10_vx7uwpt5cwqrhusdpoa262p5gm @@ -123,6 +163,11 @@ packages: resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} dev: true + /@alloc/quick-lru/5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true + /@asamuzakjp/css-color/6.0.5: resolution: {integrity: sha512-mbhpPMmnw/kwW19aRNmSUl1QzLbdGo1SCuE49BT98MNwqF6zaHb3o2owssFc/PEO/4t2UjqtCNwocuDtJornzA==} engines: {node: ^22.13.0 || >=24.0.0} @@ -1632,6 +1677,27 @@ packages: - supports-color dev: true + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + dev: true + /@npmcli/fs/2.1.2: resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -1812,10 +1878,38 @@ packages: resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} dev: true + /@radix-ui/number/1.1.3: + resolution: {integrity: sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA==} + dev: false + /@radix-ui/primitive/1.1.7: resolution: {integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==} dev: false + /@radix-ui/react-alert-dialog/1.1.23_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-VAYOiQRqj3GPpYJE0I9J+X8Ip05cyVlNdKOFeiGS2Ou1HHGfpl0BxOyZm6nmVDyU+W+NF3/XLzmjHmVGydhwgA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-dialog': 1.1.23_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + /@radix-ui/react-arrow/1.1.15_eijghdl4n2x4hz6j4cg7ctgbuu: resolution: {integrity: sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==} peerDependencies: @@ -1836,6 +1930,55 @@ packages: react-dom: 19.2.1_react@19.2.1 dev: false + /@radix-ui/react-checkbox/1.3.11_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-Gnptr9pDDQxD3hgq2dtPbtrp/c2qH1mBwIzw3X/ivrMb2e1t0jMTi606fVEqFPaQR1ggXIVQWKj3P2WW9v7zGQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-size': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + + /@radix-ui/react-collection/1.1.15_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-slot': 1.3.3_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + /@radix-ui/react-compose-refs/1.1.5_2lt27s3vun674ldqoia6newrwa: resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==} peerDependencies: @@ -1862,6 +2005,53 @@ packages: react: 19.2.1 dev: false + /@radix-ui/react-dialog/1.1.23_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-dismissable-layer': 1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-focus-guards': 1.1.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-focus-scope': 1.1.16_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-id': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-portal': 1.1.17_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-slot': 1.3.3_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-layout-effect': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + aria-hidden: 1.2.6 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + react-remove-scroll: 2.7.2_2lt27s3vun674ldqoia6newrwa + dev: false + + /@radix-ui/react-direction/1.1.4_2lt27s3vun674ldqoia6newrwa: + resolution: {integrity: sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 19.2.7 + react: 19.2.1 + dev: false + /@radix-ui/react-dismissable-layer/1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu: resolution: {integrity: sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==} peerDependencies: @@ -1886,6 +2076,32 @@ packages: react-dom: 19.2.1_react@19.2.1 dev: false + /@radix-ui/react-dropdown-menu/2.1.24_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-geq8l2rJkxvkXsT9RMgtUE3P8pITFpTsvYpbySi1IH4fZEABD/Gp85myayFgxk0ktljGMJnCbeFkyTusvSvv7g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-id': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-menu': 2.1.24_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + /@radix-ui/react-focus-guards/1.1.6_2lt27s3vun674ldqoia6newrwa: resolution: {integrity: sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==} peerDependencies: @@ -1935,6 +2151,43 @@ packages: react: 19.2.1 dev: false + /@radix-ui/react-menu/2.1.24_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-uW7RVuU6Lp/ZtfeY4b3kL32zccgEWvPv1+cf17ubYzHa9cL8AHokmk36cG/XEiH/smbQvumnieXX9j/e9RqJWA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-direction': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-dismissable-layer': 1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-focus-guards': 1.1.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-focus-scope': 1.1.16_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-id': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-popper': 1.3.7_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-portal': 1.1.17_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-roving-focus': 1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-slot': 1.3.3_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-callback-ref': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + aria-hidden: 1.2.6 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + react-remove-scroll: 2.7.2_2lt27s3vun674ldqoia6newrwa + dev: false + /@radix-ui/react-popover/1.1.23_eijghdl4n2x4hz6j4cg7ctgbuu: resolution: {integrity: sha512-mw58MrBlyHWFisTOYignD0vf/3gdcgAR+9of1s9G/38CbFiUwH1nCDkc0AUM9IrXFgN5Ue8n45j9WCgyM1sbiQ==} peerDependencies: @@ -2059,6 +2312,174 @@ packages: react-dom: 19.2.1_react@19.2.1 dev: false + /@radix-ui/react-progress/1.1.16_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-5XnomAsoZZCY+KNTxbIghpGqPruZvKFNlvcAljVAOdDRDsH4/OZQxhtwo5wdtoDM5R6MhJBb2sPnDuRFep3lzg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + + /@radix-ui/react-radio-group/1.4.7_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-cgYFEkntCxppHZgtSZ+7vh0wbZQ+IC7PPMw8DSnRG27B6kDd32/Zw0OJt7dGDigCoprMuWHjg2PvUn3PYvPFoQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-direction': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-roving-focus': 1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-size': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + + /@radix-ui/react-roving-focus/1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-direction': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-id': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-use-callback-ref': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-is-hydrated': 0.1.3_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-layout-effect': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + + /@radix-ui/react-scroll-area/1.2.18_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-Zn5Cd171wxsO3Dfg8HaW6RifTb9CYTKQJHs/G4+LN1GfmJpaQMZQyQxMprVPHpaz7QY4l9BxK2JwQuzHsXC8nA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/number': 1.1.3 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-direction': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-use-callback-ref': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-layout-effect': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + + /@radix-ui/react-select/2.3.7_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-WFGImkmbzcfxeIwq/+4HvRN0pizBwbwQUED4I13ezQsDdfl38ZntN6TmR8XaSzPBqoCToe8rF75j6NPNDSzhbg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/number': 1.1.3 + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-direction': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-dismissable-layer': 1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-focus-guards': 1.1.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-focus-scope': 1.1.16_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-id': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-popper': 1.3.7_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-portal': 1.1.17_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-slot': 1.3.3_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-callback-ref': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-layout-effect': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-previous': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-visually-hidden': 1.2.11_eijghdl4n2x4hz6j4cg7ctgbuu + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + aria-hidden: 1.2.6 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + react-remove-scroll: 2.7.2_2lt27s3vun674ldqoia6newrwa + dev: false + + /@radix-ui/react-separator/1.1.15_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-jOLO4lssEzWpoDu7G+Ze4VjwMRUBt291pnZD0gmalREZipnTX3wadQo7Fy48GCTfe14/YRN6rw/rOJqrE85Wxw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + /@radix-ui/react-slot/1.3.3_2lt27s3vun674ldqoia6newrwa: resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==} peerDependencies: @@ -2073,6 +2494,121 @@ packages: react: 19.2.1 dev: false + /@radix-ui/react-switch/1.3.7_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-48tB/4dn2UVLBCYhTu9AuR63IHl73l/qLbLgxd86noTUor4/K4LFDAcYjK+isP5313qxaFpjPVogE7+Y0/V3Kw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-size': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + + /@radix-ui/react-tabs/1.1.21_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-direction': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-id': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-roving-focus': 1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + + /@radix-ui/react-toast/1.2.23_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-ofhyAsYaocRGOs/n0XWdUOSVzEAG6BfrMVM8z0c0kLEWY38w/0WuMFPTJP/HVaZPYkMvHZoKIIhNcjbTCBILPg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-collection': 1.1.15_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-dismissable-layer': 1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-portal': 1.1.17_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-use-callback-ref': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-layout-effect': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-visually-hidden': 1.2.11_eijghdl4n2x4hz6j4cg7ctgbuu + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + + /@radix-ui/react-tooltip/1.2.16_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-6EamKFRRnlpdadndbZ6LMwycfwkwPte1B42hs6QA0gYhjaOKqW4PZ4pjaW9UrlDX5eVt/OjncE7BFTPL5nmZhg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.7 + '@radix-ui/react-compose-refs': 1.1.5_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-context': 1.2.2_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-dismissable-layer': 1.1.19_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-id': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-popper': 1.3.7_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-portal': 1.1.17_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-presence': 1.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@radix-ui/react-slot': 1.3.3_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-controllable-state': 1.2.6_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-use-layout-effect': 1.1.4_2lt27s3vun674ldqoia6newrwa + '@radix-ui/react-visually-hidden': 1.2.11_eijghdl4n2x4hz6j4cg7ctgbuu + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + /@radix-ui/react-use-callback-ref/1.1.4_2lt27s3vun674ldqoia6newrwa: resolution: {integrity: sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==} peerDependencies: @@ -2116,6 +2652,19 @@ packages: react: 19.2.1 dev: false + /@radix-ui/react-use-is-hydrated/0.1.3_2lt27s3vun674ldqoia6newrwa: + resolution: {integrity: sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 19.2.7 + react: 19.2.1 + dev: false + /@radix-ui/react-use-layout-effect/1.1.4_2lt27s3vun674ldqoia6newrwa: resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==} peerDependencies: @@ -2129,6 +2678,19 @@ packages: react: 19.2.1 dev: false + /@radix-ui/react-use-previous/1.1.4_2lt27s3vun674ldqoia6newrwa: + resolution: {integrity: sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 19.2.7 + react: 19.2.1 + dev: false + /@radix-ui/react-use-rect/1.1.4_2lt27s3vun674ldqoia6newrwa: resolution: {integrity: sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==} peerDependencies: @@ -2157,6 +2719,26 @@ packages: react: 19.2.1 dev: false + /@radix-ui/react-visually-hidden/1.2.11_eijghdl4n2x4hz6j4cg7ctgbuu: + resolution: {integrity: sha512-NFS86RYYZb4/exihaESBGOpMJFz8MGLAfu3mOBSGByVnVPC9JPASfYubxd/8KbkQK0sYAv8lVQDEQukDX/qXvQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.1.10_eijghdl4n2x4hz6j4cg7ctgbuu + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3_@types+react@19.2.7 + react: 19.2.1 + react-dom: 19.2.1_react@19.2.1 + dev: false + /@radix-ui/rect/1.1.3: resolution: {integrity: sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==} dev: false @@ -2948,6 +3530,18 @@ packages: engines: {node: '>=12'} dev: true + /any-promise/1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + + /anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + dev: true + /app-builder-bin/5.0.0-alpha.12: resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} dev: true @@ -3017,6 +3611,10 @@ packages: - react-native-b4a dev: false + /arg/5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -3163,6 +3761,21 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /autoprefixer/10.5.4_postcss@8.5.26: + resolution: {integrity: sha512-MaU0U/za7N3r6brxD4YB/l4NSrFzLPlANv6wEuQVaIPlD3L4W9rFcQPbL/EilY9BHhHvhfcz3gInDLrEtWT4EA==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.28.8 + caniuse-lite: 1.0.30001809 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + dev: true + /available-typed-arrays/1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -3251,6 +3864,12 @@ packages: /base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + /baseline-browser-mapping/2.11.15: + resolution: {integrity: sha512-FwMjJJ7HnyZpWe+oWxegG0fezZyBZUagI5LZEoO3GCbtbKNwRfMH9Ue5d5v01PNePBy1QSfPSDTTeVL0Hb9EzA==} + engines: {node: '>=6.0.0'} + hasBin: true + dev: true + /baseline-browser-mapping/2.9.5: resolution: {integrity: sha512-D5vIoztZOq1XM54LUdttJVc96ggEsIfju2JBvht06pSzpckp3C7HReun67Bghzrtdsq9XdMGbSSB3v3GhMNmAA==} hasBin: true @@ -3262,6 +3881,11 @@ packages: require-from-string: 2.0.2 dev: true + /binary-extensions/2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + dev: true + /bl/4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -3294,6 +3918,13 @@ packages: balanced-match: 4.0.4 dev: false + /braces/3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + dev: true + /browserslist/4.28.1: resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -3306,6 +3937,18 @@ packages: update-browserslist-db: 1.2.2_browserslist@4.28.1 dev: true + /browserslist/4.28.8: + resolution: {integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + baseline-browser-mapping: 2.11.15 + caniuse-lite: 1.0.30001809 + electron-to-chromium: 1.5.409 + node-releases: 2.0.53 + update-browserslist-db: 1.3.1_browserslist@4.28.8 + dev: true + /buffer-crc32/1.0.0: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} @@ -3452,6 +4095,11 @@ packages: engines: {node: '>=6'} dev: true + /camelcase-css/2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -3461,6 +4109,10 @@ packages: resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} dev: true + /caniuse-lite/1.0.30001809: + resolution: {integrity: sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==} + dev: true + /caseless/0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: false @@ -3478,6 +4130,21 @@ packages: supports-color: 7.2.0 dev: true + /chokidar/3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /chokidar/5.0.0: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} @@ -3499,6 +4166,12 @@ packages: engines: {node: '>=8'} dev: true + /class-variance-authority/0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + dependencies: + clsx: 2.1.1 + dev: false + /clean-stack/2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -3553,6 +4226,11 @@ packages: engines: {node: '>=0.8'} dev: true + /clsx/2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + dev: false + /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -3569,6 +4247,11 @@ packages: delayed-stream: 1.0.0 dev: true + /commander/4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /commander/5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -3673,6 +4356,12 @@ packages: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} dev: true + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + /csstype/3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -3792,6 +4481,10 @@ packages: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: false + /didyoumean/1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + /dijkstrajs/1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} dev: false @@ -3803,6 +4496,10 @@ packages: p-limit: 3.1.0 dev: true + /dlv/1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /dmg-builder/26.0.12: resolution: {integrity: sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==} dependencies: @@ -3925,6 +4622,10 @@ packages: resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} dev: true + /electron-to-chromium/1.5.409: + resolution: {integrity: sha512-ChI4N44d0B4A6C8prnNjMOaGgE59fUyEVYcRYm2XEXIjMbbvF5i9UL1cblDbpGqiU0uS8FE8UcKxqZqTXdmzbQ==} + dev: true + /electron-updater/6.8.9: resolution: {integrity: sha512-ZhVxM9iGONUpZGI1FxdMRgJjUFXi7AYGVa5PwKlO1tV1/4zDxQmfKpXOHVztKrd6L9rLcFjERvi1Mf2vxyTkig==} dependencies: @@ -4452,6 +5153,17 @@ packages: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} dev: false + /fast-glob/3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + dev: true + /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true @@ -4460,6 +5172,12 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fastq/1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + dependencies: + reusify: 1.1.0 + dev: true + /fdir/6.5.0_picomatch@4.0.3: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -4510,6 +5228,13 @@ packages: minimatch: 5.1.6 dev: true + /fill-range/7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -4564,6 +5289,10 @@ packages: mime-types: 2.1.35 dev: true + /fraction.js/5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + dev: true + /fs-extra/10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -4698,6 +5427,13 @@ packages: get-intrinsic: 1.3.0 dev: true + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + /glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} @@ -5028,6 +5764,13 @@ packages: has-bigints: 1.1.0 dev: true + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.3.0 + dev: true + /is-boolean-object/1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} @@ -5133,6 +5876,11 @@ packages: has-tostringtag: 1.0.2 dev: true + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + /is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true @@ -5286,6 +6034,11 @@ packages: picocolors: 1.1.1 dev: true + /jiti/1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + dev: true + /js-tokens/10.0.0: resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} dev: true @@ -5428,6 +6181,15 @@ packages: type-check: 0.4.0 dev: true + /lilconfig/3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + dev: true + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + /locate-path/5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -5566,6 +6328,19 @@ packages: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} dev: true + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + dev: true + /mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -5731,8 +6506,16 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /nanoid/3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid/3.3.18: + resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true @@ -5773,6 +6556,11 @@ packages: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} dev: true + /node-releases/2.0.53: + resolution: {integrity: sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==} + engines: {node: '>=18'} + dev: true + /nopt/6.0.0: resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -5784,7 +6572,6 @@ packages: /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: false /normalize-url/6.1.0: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} @@ -5796,6 +6583,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /object-hash/3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + /object-inspect/1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -6023,6 +6815,11 @@ packages: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} dev: true + /picomatch/2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + dev: true + /picomatch/4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -6033,6 +6830,16 @@ packages: engines: {node: '>=12'} dev: true + /pify/2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pirates/4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + dev: true + /playwright-core/1.62.1: resolution: {integrity: sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==} engines: {node: '>=20'} @@ -6068,11 +6875,72 @@ packages: engines: {node: '>= 0.4'} dev: true - /postcss/8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + /postcss-import/15.1.0_postcss@8.5.26: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.12 + dev: true + + /postcss-js/4.1.0_postcss@8.5.26: + resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.26 + dev: true + + /postcss-load-config/4.0.2_postcss@8.5.26: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.3 + postcss: 8.5.26 + yaml: 2.9.0 + dev: true + + /postcss-nested/6.2.0_postcss@8.5.26: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.5.26 + postcss-selector-parser: 6.1.4 + dev: true + + /postcss-selector-parser/6.1.4: + resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss/8.5.26: + resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.11 + nanoid: 3.3.18 picocolors: 1.1.1 source-map-js: 1.2.1 dev: true @@ -6169,6 +7037,10 @@ packages: yargs: 15.4.1 dev: false + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -6259,6 +7131,12 @@ packages: - supports-color dev: true + /read-cache/1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + /readable-stream/2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: @@ -6297,6 +7175,13 @@ packages: minimatch: 10.2.6 dev: false + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.2 + dev: true + /readdirp/5.0.0: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} @@ -6365,6 +7250,17 @@ packages: engines: {node: '>=4'} dev: true + /resolve/1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + /resolve/2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true @@ -6393,6 +7289,11 @@ packages: engines: {node: '>= 4'} dev: true + /reusify/1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -6433,6 +7334,12 @@ packages: fsevents: 2.3.3 dev: true + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + /safe-array-concat/1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -6916,6 +7823,20 @@ packages: engines: {node: '>=8'} dev: true + /sucrase/3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.15 + ts-interface-checker: 0.1.13 + dev: true + /sumchecker/3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -6952,6 +7873,49 @@ packages: '@pkgr/core': 0.2.9 dev: true + /tailwind-merge/3.6.0: + resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} + dev: false + + /tailwindcss-animate/1.0.7_tailwindcss@3.4.17: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + dependencies: + tailwindcss: 3.4.17 + dev: true + + /tailwindcss/3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.26 + postcss-import: 15.1.0_postcss@8.5.26 + postcss-js: 4.1.0_postcss@8.5.26 + postcss-load-config: 4.0.2_postcss@8.5.26 + postcss-nested: 6.2.0_postcss@8.5.26 + postcss-selector-parser: 6.1.4 + resolve: 1.22.12 + sucrase: 3.35.1 + transitivePeerDependencies: + - ts-node + dev: true + /tar-stream/3.2.0: resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} dependencies: @@ -7001,6 +7965,19 @@ packages: - react-native-b4a dev: false + /thenify-all/1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /tiny-async-pool/1.3.0: resolution: {integrity: sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==} dependencies: @@ -7055,6 +8032,13 @@ packages: engines: {node: '>=14.14'} dev: true + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + /tough-cookie/6.0.2: resolution: {integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==} engines: {node: '>=16'} @@ -7084,6 +8068,10 @@ packages: typescript: 5.9.3 dev: true + /ts-interface-checker/0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + /tslib/2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -7227,6 +8215,17 @@ packages: picocolors: 1.1.1 dev: true + /update-browserslist-db/1.3.1_browserslist@4.28.8: + resolution: {integrity: sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.28.8 + escalade: 3.2.0 + picocolors: 1.1.1 + dev: true + /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -7325,7 +8324,7 @@ packages: esbuild: 0.25.12 fdir: 6.5.0_picomatch@4.0.3 picomatch: 4.0.3 - postcss: 8.5.6 + postcss: 8.5.26 rollup: 4.53.3 sass: 1.102.0 tinyglobby: 0.2.15 @@ -7641,6 +8640,12 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true + /yaml/2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + dev: true + /yargs-parser/18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..85f717c --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {} + } +} diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index f96691f..2f568d5 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -38,6 +38,7 @@ import { enrichQuotedMessages } from './utils/quoted-messages' import type { SelectableReportTemplateId } from '../../shared/report-templates' import { switchGeneratedReportTemplate } from './utils/report-template-switch' import { runtimePlatform } from './utils/runtime-environment' +import { useToast } from './components/ui' const SIDEBAR_MIN_WIDTH = 260 const SIDEBAR_MAX_WIDTH = 380 @@ -214,6 +215,7 @@ const buildSyntheticGroupMessages = ( void buildSyntheticGroupMessages function App(): React.ReactElement { + const { toast } = useToast() const [isAuthenticated, setIsAuthenticated] = useState(false) const [isDatabaseConnected, setIsDatabaseConnected] = useState(false) const [isDatabaseConnecting, setIsDatabaseConnecting] = useState(false) @@ -328,9 +330,9 @@ function App(): React.ReactElement { messagesRef.current = messages React.useEffect(() => { if (!reportNotice) return - const timer = window.setTimeout(() => setReportNotice(''), 3200) - return () => window.clearTimeout(timer) - }, [reportNotice]) + toast({ description: reportNotice, duration: 3200 }) + setReportNotice('') + }, [reportNotice, toast]) React.useEffect(() => { const openVoiceRecognitionSettings = (): void => { setSettingsCategory('voice-recognition') @@ -2111,7 +2113,6 @@ function App(): React.ReactElement { appearanceTheme={appearanceSettings.theme} compactMode={appearanceSettings.compactMode} > - {reportNotice &&
{description}
+ ) : null} +管理账号、数据连接和本地能力