From 2a2a17fe3a054597cd5e2345867ae2ca8002c4ac Mon Sep 17 00:00:00 2001 From: kmotso434 Date: Fri, 30 Oct 2026 17:08:38 +0900 Subject: [PATCH 1/7] fix: Delete deps and unused files --- package.json | 6 - pnpm-lock.yaml | 930 +---------------------- src/components/Connect/ConnectButton.tsx | 231 ------ src/components/Customize/Select.tsx | 46 -- src/components/FileMenu.tsx | 149 ---- src/components/PortMenu.tsx | 113 --- 6 files changed, 30 insertions(+), 1445 deletions(-) delete mode 100644 src/components/Connect/ConnectButton.tsx delete mode 100644 src/components/Customize/Select.tsx delete mode 100644 src/components/FileMenu.tsx delete mode 100644 src/components/PortMenu.tsx diff --git a/package.json b/package.json index 44da0a12..d1400478 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "@bufbuild/protobuf": "^2.13.0", "@bufbuild/protoc-gen-es": "^2.13.0", "@dschz/solid-uplot": "^0.2.0", - "@kuyoonjo/tauri-plugin-tcp": "^0.1.2", "@leeoniya/ufuzzy": "^1.0.19", "@neodrag/solid": "^2.3.1", "@solid-primitives/deep": "^0.3.7", @@ -34,10 +33,8 @@ "@tauri-apps/api": "^2.11.1", "@tauri-apps/plugin-dialog": "^2.7.2", "@tauri-apps/plugin-fs": "~2.5.1", - "@tauri-apps/plugin-os": "~2.3.2", "@tauri-apps/plugin-shell": "^2.3.5", "@tauri-apps/plugin-store": "~2.4.4", - "@thisbeyond/solid-dnd": "^0.7.5", "json5": "^2.2.3", "latest": "^0.2.0", "lucide-solid": "^0.525.0", @@ -47,7 +44,6 @@ "tauri-pty": "^0.2.1", "udsv": "^0.7.3", "uplot": "^1.6.32", - "xterm": "^5.3.0", "zod": "^4.4.3" }, "devDependencies": { @@ -55,8 +51,6 @@ "@eslint/js": "^9.39.5", "@eslint/json": "^0.12.0", "@pandacss/dev": "^1.11.5", - "@park-ui/panda-preset": "^0.43.1", - "@types/bun": "^1.3.14", "eslint": "^9.39.5", "eslint-config-prettier": "^10.1.8", "globals": "^16.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 343b08a5..5251e608 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,9 +23,6 @@ importers: '@dschz/solid-uplot': specifier: ^0.2.0 version: 0.2.0(solid-js@1.9.14)(uplot@1.6.32) - '@kuyoonjo/tauri-plugin-tcp': - specifier: ^0.1.2 - version: 0.1.2 '@leeoniya/ufuzzy': specifier: ^1.0.19 version: 1.0.19 @@ -53,18 +50,12 @@ importers: '@tauri-apps/plugin-fs': specifier: ~2.5.1 version: 2.5.1 - '@tauri-apps/plugin-os': - specifier: ~2.3.2 - version: 2.3.2 '@tauri-apps/plugin-shell': specifier: ^2.3.5 version: 2.3.5 '@tauri-apps/plugin-store': specifier: ~2.4.4 version: 2.4.4 - '@thisbeyond/solid-dnd': - specifier: ^0.7.5 - version: 0.7.5(solid-js@1.9.14) json5: specifier: ^2.2.3 version: 2.2.3 @@ -100,10 +91,7 @@ importers: version: 6.3.5(@types/node@26.1.2)(lightningcss@1.31.1) vite-plugin-solid: specifier: ^2.11.7 - version: 2.11.14(solid-js@1.9.14)(vite@6.3.5(@types/node@26.1.2)(lightningcss@1.31.1)) - xterm: - specifier: ^5.3.0 - version: 5.3.0 + version: 2.11.14(solid-js@1.9.14)(supports-color@7.2.0)(vite@6.3.5(@types/node@26.1.2)(lightningcss@1.31.1)) zod: specifier: ^4.4.3 version: 4.4.3 @@ -120,12 +108,6 @@ importers: '@pandacss/dev': specifier: ^1.11.5 version: 1.11.5(jsdom@28.1.0(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - '@park-ui/panda-preset': - specifier: ^0.43.1 - version: 0.43.1(@internationalized/date@3.12.2)(@pandacss/dev@1.11.5(jsdom@28.1.0(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)) - '@types/bun': - specifier: ^1.3.14 - version: 1.3.14 eslint: specifier: ^9.39.5 version: 9.39.5(supports-color@7.2.0) @@ -162,10 +144,6 @@ packages: '@acemir/cssom@0.9.31': resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==} - '@ark-ui/anatomy@3.5.0': - resolution: {integrity: sha512-KoROLVVT23BvFHcye/GYhG8NJ2CH0C+CaoJhXrkEjvk8pbEx80Xk5NIUy5gL7xmX+LDD7kY5t3NotBqCu+2L2w==} - deprecated: This package is deprecated. Please import directly from @ark-ui/ - '@ark-ui/solid@5.37.1': resolution: {integrity: sha512-0/X+mcQyFbbfICmd4LMUR/bR45f1WOmlXFzYCBNU8AQLidCu8Sd6UFdjSOuXwjgenkYRYHOqxXW2vvzNQxg7XQ==} peerDependencies: @@ -650,9 +628,6 @@ packages: '@floating-ui/dom@0.5.4': resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} - '@floating-ui/dom@1.6.8': - resolution: {integrity: sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==} - '@floating-ui/dom@1.8.0': resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==} @@ -692,12 +667,6 @@ packages: '@internationalized/date@3.12.2': resolution: {integrity: sha512-FY1Y+H64NDs+HAF6omlnWxm3mEpfgaCSWtL5l551ZZfImA+kGjPFgrnJrGjH6lfmLL0g8Z/mBu1R3kufeCp6Jw==} - '@internationalized/date@3.5.5': - resolution: {integrity: sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==} - - '@internationalized/number@3.5.3': - resolution: {integrity: sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==} - '@internationalized/number@3.6.6': resolution: {integrity: sha512-iFgmQaXHE0vytNfpLZWOC2mEJCBRzcUxt53Xf/yCXG93lRvqas237i3r7X4RKMwO3txiyZD4mQjKAByFv6UGSQ==} @@ -717,9 +686,6 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@kuyoonjo/tauri-plugin-tcp@0.1.2': - resolution: {integrity: sha512-HFekFjvfUmH5lzEaALNyuQ3U6FxgdsvKR1W/foFH3z2a60jDF+4bHQ5Hq1bBKAzUa8FGoDVUkVfMQc2MoIsEGg==} - '@leeoniya/ufuzzy@1.0.19': resolution: {integrity: sha512-0pikDeYt0IHEUPza5RTCDXc/17S1pTrYnReEMp8Aa6k1ovzw5QdZLwicW8TjljwEZRb6oYag0xmALohrcq/yOQ==} @@ -831,11 +797,6 @@ packages: resolution: {integrity: sha512-R5rIsjzELuOd0SNAk8Ox2b0pgSAwWnc6aJvKA4sEA5qqQtC+VuUbMK6JakvjDyTDyJ5hwfidwg1QqOebbdIaQQ==} engines: {node: '>=20'} - '@park-ui/panda-preset@0.43.1': - resolution: {integrity: sha512-kcO1ewx8zU9wHuTjZ/nqPCqjzL9AXkpzDnDrpcZ2unKR/UE3hHpP+Y1F0grTBaluPHLomjfZz3GebczJvoShBQ==} - peerDependencies: - '@pandacss/dev': '>0.22.0' - '@rollup/rollup-android-arm-eabi@4.62.3': resolution: {integrity: sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==} cpu: [arm] @@ -1026,10 +987,6 @@ packages: '@tabler/icons@3.46.0': resolution: {integrity: sha512-f2RYFl3fzPwj5WO82x6en0dmkjefxEfOm16D1ByM6cj/McNiwOkL4VaPUoP9VVIrXAD9WnTSVFr70px703b//A==} - '@tauri-apps/api@2.0.0-beta.12': - resolution: {integrity: sha512-77OvAnsExtiprnjQcvmDyZGfnIvMF/zVL5+8Vkl1R8o8E3iDtvEJZpbbH1F4dPtNa3gr4byp/5dm8hAa1+r3AA==} - engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - '@tauri-apps/api@2.11.1': resolution: {integrity: sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA==} @@ -1115,21 +1072,12 @@ packages: '@tauri-apps/plugin-fs@2.5.1': resolution: {integrity: sha512-9Lz+Jopp6QyeEWhlpkMx4R/+P9HgR+AVAI4vOZhlT8Xaymtz8iVI/Ov984/XTqgJz/5gz5NretqPB/XEMS3NhQ==} - '@tauri-apps/plugin-os@2.3.2': - resolution: {integrity: sha512-n+nXWeuSeF9wcEsSPmRnBEGrRgOy6jjkSU+UVCOV8YUGKb2erhDOxis7IqRXiRVHhY8XMKks00BJ0OAdkpf6+A==} - '@tauri-apps/plugin-shell@2.3.5': resolution: {integrity: sha512-jewtULhiQ7lI7+owCKAjc8tYLJr92U16bPOeAa472LHJdgaibLP83NcfAF2e+wkEcA53FxKQAZ7byDzs2eeizg==} '@tauri-apps/plugin-store@2.4.4': resolution: {integrity: sha512-oxSMaj/QpVfJcBMYX5aOQV94fWvga0MwQMfD6TLlbK2dh+ShPWAzefd8HWXhvOKjPRJdGVAkW7ZGO76JzzjaDA==} - '@thisbeyond/solid-dnd@0.7.5': - resolution: {integrity: sha512-DfI5ff+yYGpK9M21LhYwIPlbP2msKxN2ARwuu6GF8tT1GgNVDTI8VCQvH4TJFoVApP9d44izmAcTh/iTCH2UUw==} - engines: {node: '>=18.0.0', pnpm: '>=8.6.0'} - peerDependencies: - solid-js: ^1.5 - '@ts-morph/common@0.29.0': resolution: {integrity: sha512-35oUmphHbJvQ/+UTwFNme/t2p3FoKiGJ5auTjjpNTop2dyREspirjMy82PLSC1pnDJ8ah1GU98hwpVt64YXQsg==} @@ -1145,9 +1093,6 @@ packages: '@types/babel__traverse@7.28.0': resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - '@types/bun@1.3.14': - resolution: {integrity: sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1335,96 +1280,54 @@ packages: vue: optional: true - '@zag-js/accordion@0.62.1': - resolution: {integrity: sha512-1lMKuD1GbiMuemOHOu+24BSAAG8iTD6l/4zYrQRBCTsxXzHhWqTtLF7okGgmSAs8iyNfOuWefCfaJJ3BJNSh5A==} - '@zag-js/accordion@1.41.2': resolution: {integrity: sha512-7G//V7svGGT8k5avw7bbQvbRC0Q/9QtX51b4iyAB1alR9E5mFd6Ch8q4njwcXClMQ7xePS3jUfVnzVGiRInEiQ==} - '@zag-js/anatomy@0.62.1': - resolution: {integrity: sha512-1JiPQOyVlO1jHwLTSNJpyfy1R1UYoaVU1mKSUww5+htAuT/1txjs04pr+8vTF/L/UVzNEZZYepB1tTabyb9LYg==} - '@zag-js/anatomy@1.41.2': resolution: {integrity: sha512-Fm9hqdrvaCzCsdcf19G8WZxYtHElKltkGHdhqMEt4XU+ULTr1DK7KbOtDDv9J27CuzqSLALUz5QfRjPftoKHwg==} '@zag-js/angle-slider@1.41.2': resolution: {integrity: sha512-+7bZHAZx0MEbjTMr2tD+meFJ0EJwFfUEcTqmdLzFGr/ySAMCWlcadDBz+ZmrSn03aKLps8FxliVLzsFJNgUqIQ==} - '@zag-js/aria-hidden@0.62.1': - resolution: {integrity: sha512-vVV8bwZhNU+AOOf/USEGV/n9zuTID+spHeC9ZAj29ibWAMmaiq2bx4t1kO4v9eKqKXULUBPPrZQ7CX7oiU616A==} - '@zag-js/aria-hidden@1.41.2': resolution: {integrity: sha512-qEcYmwlQr3qjA0T/IZ5a/o7fRUxfQ14tXjAFhR3GXCtxBKaqS+wnq/LN09Xw4bin3QWTINU+Z0oXFs9spWtNwA==} '@zag-js/async-list@1.41.2': resolution: {integrity: sha512-NZZEIGFdeDp2uHjsLVegLAGJOYGwI9HPJI1V2c/P1TQmfmrfWyWELAvnnW4kWYVUKYD9TxKQkm6LvqpHrQzgfQ==} - '@zag-js/auto-resize@0.62.1': - resolution: {integrity: sha512-nznVkAsZGS+L+VhNO8hPnEyvagNhTezkb64SSPa8E49hJHS2DEN3T5hKCx86tDuiCMd0EdjwUCCQq3pnbzbnCQ==} - '@zag-js/auto-resize@1.41.2': resolution: {integrity: sha512-CYq+JQ1TTkEiK7OcNcMTS0f4wFvtmManvUltije5o50gDQ7vFYA81oQh4A9pAB1keUi9Zv06CNefFARaTcne5w==} - '@zag-js/avatar@0.62.1': - resolution: {integrity: sha512-J+IRqJlpL4S9ikCQle/FHj6p8uT8Ee/D88u4k7m/An4Ot1FcrfKqfC3INB5YOI+d8hkIQVtEIAC8Yt/s4OzAMg==} - '@zag-js/avatar@1.41.2': resolution: {integrity: sha512-+4K0tRtIQysMGuERh5JRmn46uq7gJ6IjJd5DKj74VBtVVY8T6HGk0D0DZxmOIgADHP1qSvowLDoOX8kUyBHarQ==} - '@zag-js/carousel@0.62.1': - resolution: {integrity: sha512-0YQ2jJjzaS1zFLVnPBslVKI8/fY2Z6aOrcJbBjxozG27iSS6zEqmbsz3OOtcYJRlB8jLboZutpMBs3PGh5zg5Q==} - '@zag-js/carousel@1.41.2': resolution: {integrity: sha512-H6sDxyWIzkvtHN4M/BYvFy7pi8j+kLEtfPZvgNl2+gRnfAHVK9/XqpoUsjw1DAo5Fh25pPuaTnh52Kml9OK0iA==} '@zag-js/cascade-select@1.41.2': resolution: {integrity: sha512-dBByZmIAJU/B+YIAzczng05lCJXEwEm4df6GmUZtioKHZdeN+WEKUP4qzFDFZdytXympGfJCIBvtgf87gACYVQ==} - '@zag-js/checkbox@0.62.1': - resolution: {integrity: sha512-xiubQLhRXedlZe4Vc6zxaDFWLSpRdGEG0jTrF3OXovYZLN7bmq0iXiYcWqsLa012+2dYN9w5B1zfQQlzf4sk2w==} - '@zag-js/checkbox@1.41.2': resolution: {integrity: sha512-aQ5dZWHUHRIw4cbLtzrR+dc8M0N6wSiiCml/zbU3ciHOTBXSrs2rKnp/L99xhi97Lj2uCEhpIZ704Ou/MjGuCg==} - '@zag-js/clipboard@0.62.1': - resolution: {integrity: sha512-gEhCGLkAlrgNWkd7ZqF4p4yNKsR54+0YQPevEv7iX9oio8T/F8OWaDmDjA4NsXxqRe6hr5KLJbVp8dYRop30TQ==} - '@zag-js/clipboard@1.41.2': resolution: {integrity: sha512-FM+PNGEeY+YpF1dVr9d8kg3DQM66LRnkR4Mva1oprqnrCXTYWj+k7uig893ubSG2xw1GO5b/WJd27kSmNoKnmw==} - '@zag-js/collapsible@0.62.1': - resolution: {integrity: sha512-M4hsuqf6dVra6RvKaxQjgQjZ+iYj3XH84w6QOnt/SXbJauQoE6nfy77RI/A8O2pPuP6uLq0h2E9Eo3ftcbGBoQ==} - '@zag-js/collapsible@1.41.2': resolution: {integrity: sha512-uMIp4rqd3iI6VFPMAOcbu9dh9WV4l85nNPYQiBtMKRHgbkfaZdfzF+E+NX3KquIeHW6JiBFUiIyCU0Sf2Cscdw==} - '@zag-js/collection@0.62.1': - resolution: {integrity: sha512-Qg3OvGCvcoeV4u8IcQmNCu4dChRttVyQ9DF8Ab0qlyrjRDF+w8vMAcNcgNqn10/xX4A7B743cz023LooVsW6VA==} - '@zag-js/collection@1.41.2': resolution: {integrity: sha512-ZZWuvfPZI8ccWd4aLpuU47k1jSc9eO+F3FM3iBJuvgegCH6g3+HDEwGN6wdePHnYfv7zyIKCGKr816zXcIWQbw==} - '@zag-js/color-picker@0.62.1': - resolution: {integrity: sha512-GLeADGcoMLcVS+UM6rn/c1BmBgSB2uTc5AWBkuKoH7TktsKo6+T/v3/QZIU7/b69qBAp3/vWZti99Flw42IDdw==} - '@zag-js/color-picker@1.41.2': resolution: {integrity: sha512-UynyJ/bTBeSlq6ziHr9GVrFycDjVxfLFIb8Aivu/XvihrAAvkhXUxwy+1ax+hj7peGlTY590xoQAvQixV+McBA==} - '@zag-js/color-utils@0.62.1': - resolution: {integrity: sha512-uXsEA0xsI4NT7YFwWZldy7LXsk32Ta+41MrckhzbSA766v+bW4sFDUYmJxwLkN4nl1QzlLAlGghhauXmW9Fs8g==} - '@zag-js/color-utils@1.41.2': resolution: {integrity: sha512-Lsi5c2ztGZqud0oeDtAn3xFhgrYMaeaz1zi4p+mr0zXOuQNuZzfsrJ0stQ45s8L/xT8UJtGhYyEVy1+xjE4ARA==} - '@zag-js/combobox@0.62.1': - resolution: {integrity: sha512-EovqyFqD61YmYJYc42qKH2OE7GxMm3gamWLU/lvZe/3eyZt6TsxFe2xeP7WSsvq2v90myMajAnUb0DOpvYaCKw==} - '@zag-js/combobox@1.41.2': resolution: {integrity: sha512-V9jQteyQHs8ZNQx/FcA98P1NVZas/yjiW1V7s4L+h8MnRS3AK97+FAHAT83KCiZ34/vkpLF6ZEHI2zkcQpNXcg==} - '@zag-js/core@0.62.1': - resolution: {integrity: sha512-ZSjqnV5vcGDassjmZ/lxWbG244A0i+IHImVZ/a4/0JkjkH126ly+At4FC+HI571pNKiNlrqYmGzRRSBMqm37yQ==} - '@zag-js/core@1.41.2': resolution: {integrity: sha512-xXTN3zKwOtMI4+5dG2cG+T1B4WR3X9alXiYaPJKaGd4N2eYRj9JEPte3Hv9gtFm+RM0b9VIwksHEg25rqE4apw==} @@ -1433,69 +1336,34 @@ packages: peerDependencies: '@internationalized/date': '>=3.0.0' - '@zag-js/date-picker@0.62.1': - resolution: {integrity: sha512-Wl6yzMtrTy7XgDFbYJaRO8M5dkxLPBvAo3ilDvFBicbJViJCZ9pg1AJYh+xGaK/gfAd7O9wBdYJdHxfESlmlDg==} - '@zag-js/date-picker@1.41.2': resolution: {integrity: sha512-j9LaznCV4QCfrq/y/mNAN9XgIRFFg+414TxGT4TK8mfWouIaFvxEoKdGP0l/LL4DFv1NRDaRdSBBcw3eXtMVnA==} peerDependencies: '@internationalized/date': '>=3.0.0' - '@zag-js/date-utils@0.62.1': - resolution: {integrity: sha512-YBqT5YRtHOCDS2IcCZtrq7BfzBkU5c+Sc2pVTncf06/3jxjE6l6YbBncMPu5a3uWKjNld1wOTFszhSoPKZfrJA==} - peerDependencies: - '@internationalized/date': '>=3.0.0' - '@zag-js/date-utils@1.41.2': resolution: {integrity: sha512-jdcWLa5fYLTsvGWJkx4v/9Hzqf6UHdvJDeP6NxHpwoEmzYy7+AghYKBNSnRrJIBCQJgl1vM9OkpMvYrLNHr9jw==} peerDependencies: '@internationalized/date': '>=3.0.0' - '@zag-js/dialog@0.62.1': - resolution: {integrity: sha512-7YRvWZ9UMUjFz0q537/uaTMBljLimWISfVHkUSa2ngbXB8LPYYbqYv5Vio2rvRFqy3nJR3HTO4cGZJGDjO655g==} - '@zag-js/dialog@1.41.2': resolution: {integrity: sha512-t1N72snpFGiKj7cg2PivPdsy+X1YdgXPv7bzovpqjMLy0kN+gYTPoV1Iy/hQA+g021dz9XGgXzkDuU45sJqsFA==} - '@zag-js/dismissable@0.62.1': - resolution: {integrity: sha512-muGTBISpjQEWLCrsYa9wAFaGXlVxYtyMaDgpcPpQdQPwZF86b445y4d8h9FjwkESdJ6Zcdjn21pu5CWD28T3uQ==} - '@zag-js/dismissable@1.41.2': resolution: {integrity: sha512-hO/tFhRZ7S+LOOljGOQJIubbc3MXg41+iWR1yUXKl76cAenbxaCit1LZmUCwQPvRN0GndK6bDQo5ETjHZz/k7A==} - '@zag-js/dom-event@0.62.1': - resolution: {integrity: sha512-/+okVW69Xdoot7dutJVMz0iciwWM6DvAeLWr7LB5DZsUQMu93oqV/8BE2JArDxEcg5C208HNThGStcWlTaddgA==} - - '@zag-js/dom-query@0.62.1': - resolution: {integrity: sha512-sI/urNd3QX/WI7Sii+X1Z/OTWNisn7EaW3T0X9Rbn41u79DC4KeUnP+wpIq1igSJNH2zQWIWBLJ1OGhAjuSl5g==} - '@zag-js/dom-query@1.41.2': resolution: {integrity: sha512-+eBk1nlJA312mNmY/GSThLRwcCRqMIL+A1pLsWvTlQLQjmH1/UxoAuv6l2yvRCT33XmC8FBlBIKnXhOCpDvIZA==} '@zag-js/drawer@1.41.2': resolution: {integrity: sha512-aJql6L0cfHd1wXbemfLcNnjqTA/CbwVgQdWEVn5Qci6zhy4UJXPQeBBfxfgPgEOAbW60gL/gaaXG3d9Vx6+6oA==} - '@zag-js/editable@0.62.1': - resolution: {integrity: sha512-BkPLV8T9ixdhz3IxvseV24a1pBNmYhR1np+JUKap0C8thtFbDoF361haEQjCqTCfHDv+j5l1rtq/+H/TF3eEIg==} - '@zag-js/editable@1.41.2': resolution: {integrity: sha512-loTM1lrHBBqYfR8SJZrYayVdWHMpXCLVir+aDTQ8/d4bb/Gfl/L8CJNs3BRj3yt9zvLoWTLO+4LOY3hLyQSR2w==} - '@zag-js/element-rect@0.62.1': - resolution: {integrity: sha512-SefRp1IeiENoUkl7yxGzUIdxtQqgKlI+G1qlgx9MZgchH2VZCpqi+EuZgLEKzz7REMabOYqbgs6EEIxGIyNueg==} - - '@zag-js/element-size@0.62.1': - resolution: {integrity: sha512-QCtVeIJ611hJPorKEkdfrWWcMohadplZoW8xQW/2PLSmKUhTNLfHsZLyeoYKyj5Jk4X8OAN4onnMVETFw232EA==} - - '@zag-js/file-upload@0.62.1': - resolution: {integrity: sha512-Wh33acYMJLNRIV2y0GdSZqoN3aX/t/uzIBWh3rVsN7tpjDYWXLYIsXQttkGLFf0sgICK+3PVD+LLaIpiGDh4+Q==} - '@zag-js/file-upload@1.41.2': resolution: {integrity: sha512-WFwIaKvHpCUjyYMvp42VoydT1WIP5DhDlpmG/nrF4i0ro7pLGb1A4dvyBrAfGcozCB88yR1y1iZKPDY1I9/uUw==} - '@zag-js/file-utils@0.62.1': - resolution: {integrity: sha512-p363S2pqz29wf1shcSfoY2GI9wWrJkKamNiwuehqoYFh2b8isrcWFVL3VYxm937N1/m5+rtMATQbn0a9j9sggA==} - '@zag-js/file-utils@1.41.2': resolution: {integrity: sha512-Ih+8ULbId0M+CFR4IsqG5y/0VLCk2l+1rgPH+21L40dlSB6z6qKSP2tG7W69Cj2/3vryZsn67ibn26iCPG/vOw==} @@ -1508,30 +1376,18 @@ packages: '@zag-js/focus-visible@1.41.2': resolution: {integrity: sha512-oRjwtgafUdGVwLJUN6mKsnBQbez/CHYAPkPg1FxOnr5GFpEpr8oMTOZJ3wdPM2U1ynS9QnUUu/sXc3KQv/jX0Q==} - '@zag-js/form-utils@0.62.1': - resolution: {integrity: sha512-GJWRRtEpro8TNEUuEWMhIOWmVFXqiHNTTrrRLxijxUIWbsPrPdPiKL7qwBAESYoZQCmN0hU99S0w2Xmm7Q05Zg==} - '@zag-js/highlight-word@1.41.2': resolution: {integrity: sha512-95zcZKqNrL7JlqAckfzHa+LRbnfoz1lj6skUhq/uHSnni1vH6+8fNWT8ruo9G7vpGopbyRmmcie5p41SbAwQjQ==} - '@zag-js/hover-card@0.62.1': - resolution: {integrity: sha512-ryiNHQmmHpiDiZ5nuk9nvGUgnT017q8hYf+wLSI5OJ+klHPjrHObb7I7v/fUmKzWNtIOhaL0uw9afzjRt3bLEw==} - '@zag-js/hover-card@1.41.2': resolution: {integrity: sha512-Xn9RVzgTkKaVzyJTDdBJiXmCleNi1/hmW8z73tC0vOiQvSSvPejg/JkzqTOLFODvQHK3NOw54QHZvmjYp9Mubw==} - '@zag-js/i18n-utils@0.62.1': - resolution: {integrity: sha512-ipzx0W6VK5x+w/PnUrN8z5SULJuLqvdzsPVBJ2iGHrMcTPC/y9JDt82nJV9fUYmG898pOZUx7vysfLLPNEAFTQ==} - '@zag-js/i18n-utils@1.41.2': resolution: {integrity: sha512-f1xqaEY79awBxgUyjFso0UEpIoEHZq+zRvB0nUVFHJRW7Ds/QhaFHKSRnf2QBTlP/ObvCT225R+piNAAc17Aaw==} '@zag-js/image-cropper@1.41.2': resolution: {integrity: sha512-750aT4U+J/TJw/Z1QVoLU9JG0luCtf9CyvShtJFIxeS+i25aUoBI9pOKgSFABsOutIqNJTPq4gYpqtuxFjSxRw==} - '@zag-js/interact-outside@0.62.1': - resolution: {integrity: sha512-V5N+kr2Uv97HWYL0U5ZVS//NMQu87XGLtI7Ae5EtHrdAEKxO2NpPwf50Gzza4zc1VEVYYFqobTlkNQ3hrrL6VQ==} - '@zag-js/interact-outside@1.41.2': resolution: {integrity: sha512-dM4Fn9iyqQeqkCMRYZP+bAgWEPKRVQRqMmcPsN0OXBhhFKC31Em15LTIZXaOtVKAjH+iwx+UvSYFRiWwEjkOEA==} @@ -1541,102 +1397,54 @@ packages: '@zag-js/listbox@1.41.2': resolution: {integrity: sha512-iDGrZleP3ui2Q6Jgmr9RYlbd7njdJHs8Qb3IJrSIZBIeYyYmFvVUfAFjk0g/z/amjTx6uYxRASWSPy/RETd4ug==} - '@zag-js/live-region@0.62.1': - resolution: {integrity: sha512-Giu7d5UWc2Sqb3/T0tSzqSwxJ4mVrNN+MTu06J7EaD4khK5RgX4GRpQ9rpwOS/GJT+8nc6YBhWTi7tqKN/+iHQ==} - '@zag-js/live-region@1.41.2': resolution: {integrity: sha512-7ubIW5AQt1wx9S/gFN+rU4TyvuFWJrL/DhnDWPNlH5g3luDVHSNeYGeeqf4d4tkcibtpYZa0pg9CbXxRxrfwVA==} '@zag-js/marquee@1.41.2': resolution: {integrity: sha512-cT77aMhrtAK3oe2O6+X3TLtQs8wupdPUtZgHMWVxCcQOwagrk7RUBEQwU3Cx7cTswpBdTKSuDYgUggfgCs96wg==} - '@zag-js/menu@0.62.1': - resolution: {integrity: sha512-l/PartHj6//NMlENYNBmUmeYG9K0SbjbnnIudv+rK+oyrUoX/MDCJ7bdy7ZMYxWTR127WdZlLHBxsgMe86lBqQ==} - '@zag-js/menu@1.41.2': resolution: {integrity: sha512-wwix8hcAUSi0scpWXCiDppfdZV01Za8nN0gqLt9GdhCiVSlr0rs9pK1ROgPKJTyc43UZfyFPqtTWVHvEHMM70w==} '@zag-js/navigation-menu@1.41.2': resolution: {integrity: sha512-aROB9CHzskZpnoFuGFkp7dbkZdsXvp2nxQgsgld02I1sDqiwcQd+YMdB0/6Ik0oz6X8I70RKdUuQM9WQFQfDnA==} - '@zag-js/number-input@0.62.1': - resolution: {integrity: sha512-THizFB4Qwq4erMk6mI82voIo/PbbrAOSQXyPF8NPyGupSzqYntS1XPEdyqFH677PhHweelxQnvtZEm5alm1HLw==} - '@zag-js/number-input@1.41.2': resolution: {integrity: sha512-QoQWCiVHO+ciUbq8uL8Kxhtk4o3UpwzYpJkfsOfitzsZoYpPc7V/A6+n5yABV2SOwpqBODwNASZdxiEa60kfow==} - '@zag-js/number-utils@0.62.1': - resolution: {integrity: sha512-ktnGSYKKLG9No14ivlboEzq4+jiOIWU+8yeoRrZmfdCG58g4s9JF0lBDRf3ts9vhUdofJ+vUFMPqkk2eCWyQlA==} - - '@zag-js/numeric-range@0.62.1': - resolution: {integrity: sha512-R4/II5MvS+eJ880srPuIlexqRH7kVsGomcsDlB5yyhHsradm7OJfC5L6osvKj1DNAitfFh8901BZFaWmQe8O1w==} - - '@zag-js/pagination@0.62.1': - resolution: {integrity: sha512-fyDXNnAGyRsQEugvNR1kfEO8hGeesOV6l2rEACdvNN6G9Cqktqd52aaWVIf805G3Ig72igW2SybI9md/rDflzQ==} - '@zag-js/pagination@1.41.2': resolution: {integrity: sha512-vZTxz4DrIDfedMcTjDeEkOc1iXD9wkP8eKuEcDieHOodnjSnNNwtmoFw5DCWv+yEa/TByIamXBZ8ZxHY144JgA==} '@zag-js/password-input@1.41.2': resolution: {integrity: sha512-OWKFl0S12Qnlf4R4WbMCJ/YU0kGfezm5tP0UiyubMO/Fixv6H0twDFaJSPg2F6POv5uomCcGubc1H7gO+fIhsQ==} - '@zag-js/pin-input@0.62.1': - resolution: {integrity: sha512-CTAOyQCLaNSWH29bhc4XruEkvnYFJN1QF/x5axtHV+cir05zcdB3L7Sna4D6nUBSwd0tOGnUmPlviyP7zkpgBA==} - '@zag-js/pin-input@1.41.2': resolution: {integrity: sha512-Wrn3YDbmWL3qvUIzN4QyLO7PzEhunX7z8DwBpmrK04p7HxR9pniTLVIPk27xk2MzyAPYcl4mwd9/Mc88tBxHsg==} - '@zag-js/popover@0.62.1': - resolution: {integrity: sha512-cT6okb5Yq69YWx6G1vonNEnEg4MlBXRbXLflLBqOP1PTwhk6RwlndXGV2uCdlnR0mUJa/RKldzdUcwOQesJaag==} - '@zag-js/popover@1.41.2': resolution: {integrity: sha512-h/LlVMIERM+NWzYV0ZHURlJuaqkT8XxwyEV96XfVzjknDRFNoPSl5IttVYtoaPoUqC0p/Y4oTSiee4mUZKOLHw==} - '@zag-js/popper@0.62.1': - resolution: {integrity: sha512-tyLEdYIsv3cgnWCWzPPv9f72hzmQDQcObDIczIZt+OQr89qgyhGHt5jR1f0Qxsz9zZlSPsEftccyXRQYInQtxQ==} - '@zag-js/popper@1.41.2': resolution: {integrity: sha512-Iz4D5YAIiIPn4IHGjhX3QatR/RyGaDt43lBSZv0RYcPQYtFg9sUuek3wizjW9qXgdvItevvNMqRdpl7f3es09g==} - '@zag-js/presence@0.62.1': - resolution: {integrity: sha512-qjnr1WpW5yetRp2j2V0ocRvr6X6TuWNxjL2DyJAusodcsSElF2V0UuFOLT/xIZA8BVIbgcyCvcPB01PHugC5Ww==} - '@zag-js/presence@1.41.2': resolution: {integrity: sha512-OhOLPAf/DYPmgoEntrlrf3LOrkwA+Y0J3K03NXHXPnkRB7h8jyIbHqzHS0jRTb1pvsO2P/yowRyoYtptY2Zmog==} - '@zag-js/progress@0.62.1': - resolution: {integrity: sha512-7FyeP/wCiJ2dao1y/4RzhrLeIse305YtRMTDaVE5EnOJK3nit2Rrl+z8kGx5aqrGQcGsLH/rh5QYFp689Nx57Q==} - '@zag-js/progress@1.41.2': resolution: {integrity: sha512-SnzrqN+Z568NoO4rrgjrIc/S4EXMEne5CDgWwt2kQ8yq9VysdH8TtHAjyciFRIio7cdgEZNHKw9jSccpMWgRwA==} - '@zag-js/qr-code@0.62.1': - resolution: {integrity: sha512-648qXQduIqq4CZWN07D1UOcczZrdp3UjBSHFEi4PQHTz1Vg08pH0BIZDqiqpupG9niYJEB/GPLGofRQQYoIoDw==} - '@zag-js/qr-code@1.41.2': resolution: {integrity: sha512-+JLswCNnzf58aQTaX0SMUA9wRC8Hb/a/ZveJIXTz6853Siemay2HqOqB2WQIeF33HNldUFD/a4+4Q8ugg93ubA==} - '@zag-js/radio-group@0.62.1': - resolution: {integrity: sha512-VVGTUkHgD27vBTYeP7hPYi+eDRXkq7xtlv6Ml062t3gcTWBhc/2eaI6iZ7awlxTl9052sflzbawrrDysPREuAQ==} - '@zag-js/radio-group@1.41.2': resolution: {integrity: sha512-EZjos61jKHZlNw8ez80vG2T9gUwpooxcVpYOKS2hyhuEXn3wEoefS5v1WFbmpoA/8TUpUQnYxisAeNuQfEQCuQ==} - '@zag-js/rating-group@0.62.1': - resolution: {integrity: sha512-gXvHofr3gfZcaMh7Y3FU+wyj7ge1R0BgsuPJWFUShlAlxjnnE7e3AqjSGlzuvpkWMkc6KKDyKRJlMVWLCv94OA==} - '@zag-js/rating-group@1.41.2': resolution: {integrity: sha512-SbJP4HiK5XRy/oC3xRowjZOCThq1n/QA2Z/XAkvKLJArVQCYjrH3MoWwWvMVNfNC5+ZJluborR2AGF7tlVLzxA==} - '@zag-js/rect-utils@0.62.1': - resolution: {integrity: sha512-6w56LuRD382Oa2FXi4AfKQqgtUPS/nc/mZzXiaqKz9b5aFA1CXtmEwNC2GaiXhkqJp5DyxHwujDfQP1WXACnRQ==} - '@zag-js/rect-utils@1.41.2': resolution: {integrity: sha512-GWBTamaMLMG1p7Fe6V0dsXeTEmk+tqG3ciovzmjxURCJ3Yq2EkAMRhS0v5DG0oo+PyrPEIzEWukGBQkh/XRgYQ==} - '@zag-js/remove-scroll@0.62.1': - resolution: {integrity: sha512-7xpX6HUrOEq/TNLIWojYnQf7kj20bk8ueOKpu7cTZmoN0LSL6cS09uil+NOqb+SzZsiRmQKvzd3fQBNwbdab5Q==} - '@zag-js/remove-scroll@1.41.2': resolution: {integrity: sha512-ieIrOgPKlCikAGEBIboQJoU7oxrL5BEY670tDOu7Eg7rNOdAwGXLEKPX2A/q+lREhOiVYjx0D3//vHTvdte80Q==} @@ -1646,21 +1454,12 @@ packages: '@zag-js/scroll-snap@1.41.2': resolution: {integrity: sha512-+70Al6LSASyEZtFyyffUJlDbE88KgYJDud05z8oZTqyEOLlTqnlSNkXq/P3siO7r3sNykg9H+TmAKn+/dVSKuw==} - '@zag-js/select@0.62.1': - resolution: {integrity: sha512-dgU65imBSeB8+QfHkN68j7Xqd/d6wsF42itJ0AeRSdgnCHgTWdN9rRCK5EDbNkJue51oMkdsnJ7XG1k+oCgiAg==} - '@zag-js/select@1.41.2': resolution: {integrity: sha512-3wGaKABILexoNBJ1bJiHqLLTctR/VMZaNA4cyKiqZeBEWtAkdMhgyY2xKobrP6KtUTqAeUFNVSTu4yCDrAQnUw==} - '@zag-js/signature-pad@0.62.1': - resolution: {integrity: sha512-hWZSWT9J9V1kbImkj8qXHCqS0TYm7nms9oAhcQ2QNIiGO38wqW8Yswos8sqAj8VtzHxkSMIeL1by7Zgy3Xjq9g==} - '@zag-js/signature-pad@1.41.2': resolution: {integrity: sha512-iNrOxY4gtqhsZdXYvlhF7s+LiOvwV7/kBpNnq8tJ1oYhgTs8wvKtJHrP86/CR05irEXQTaLfmeAJZuBEys9iRA==} - '@zag-js/slider@0.62.1': - resolution: {integrity: sha512-v5rgPJF3fh7bBPu0wzEGpN4EcXpK5cSw4OAwxatmbtkYsg2Udwv6WL26CB5Q2zVwYIR6R532b/bjFqicfVs+SA==} - '@zag-js/slider@1.41.2': resolution: {integrity: sha512-mKK2BwoDbIGxAdkdKkPZJA1SHtEQt3lS9hJ6WghefYU2vyd0BXoIKvcDV3xJOzly5LXYhH5cJITn6JtGK8353A==} @@ -1669,87 +1468,48 @@ packages: peerDependencies: solid-js: '>=1.1.3' - '@zag-js/splitter@0.62.1': - resolution: {integrity: sha512-Ni93ZaprnbctAsbuot8sEw9DDfNMgkelnd5xQfAiwpgjwUgnY8733LRbWydC5OUPoJ/cCs3XiNKa0CHwclcq6Q==} - '@zag-js/splitter@1.41.2': resolution: {integrity: sha512-Ubp4hkmzvVysU31jCINYbBXVqruu7rEPGqugWMzeXC5Hwda648aHpbg4Jix/wRtaGLjsyh6KOVEwAmoJU9NwhQ==} '@zag-js/steps@1.41.2': resolution: {integrity: sha512-m0t2r8+FWwa2b2aU5JiNrHVdYHyNZYHK0G3Tq9lCOSQoDeoJIkyta+sIVehLVSY+0Ba9kOlkRUmYLbsnfXaW+Q==} - '@zag-js/store@0.62.1': - resolution: {integrity: sha512-0xkz7b/Rs9cHeI5CB3UH4yMlVzys3l+IsJU3KRWZwqWohDjTEqRyzcuFD6AH28WAcJPjIgOQYnRYzYSoMGZtDQ==} - '@zag-js/store@1.41.2': resolution: {integrity: sha512-dVZF7E1ezXzynrKhMH3rfSr2rBbCfvTjvXbXz7//1PNULuq58UU5dG93V+9l834npCZxI2+PrpY45wZLJPTsIA==} - '@zag-js/switch@0.62.1': - resolution: {integrity: sha512-uh0yy3NuZqHF+jPVZ2oMcAtPx32eTnBebiROBGBDgj1A5yZBirfQm8j/vZLSILhDq9TdktHS9/gITJ7TvgV4cQ==} - '@zag-js/switch@1.41.2': resolution: {integrity: sha512-qHbQK95UUHN0tj+bf9LLphLcMo/uTg2Pvs0c1Gs03Zh4g3NtHf0uYIhMZKYlCH0hNVlKrmdzLKWgeoDxv9gySw==} - '@zag-js/tabs@0.62.1': - resolution: {integrity: sha512-BpY6oA2nmZLpYu8nQrpi+zTF4txTiMYIMB31CmbFmbJ3hMVkEqk8sgNzNQY3LrzkkSemDRBHxPZ5H+YKaQrEdg==} - '@zag-js/tabs@1.41.2': resolution: {integrity: sha512-7YVj2mCcxRbn1wMXP9anaTOVf+J0fa5uaPScr8e4+e2xc+/1WKzqN6V8IDeKS5wV/xzi1r3Ny307sX7Xz4ZJVQ==} - '@zag-js/tags-input@0.62.1': - resolution: {integrity: sha512-8gJ4ckQQ0BB3oUGgIEGkmB6wIKSf7xx0q6e3tqTbfZnPhmWP4hpli38XAOYjsBQyNXmQW89H/Rp8/8W1A/Vpow==} - '@zag-js/tags-input@1.41.2': resolution: {integrity: sha512-aIPEndSO+9LHxyoXLUr0Uttxw2cYMyDuii5w50wn/N7lFJD49U3Sj+6XaB/oJSbDAwn10WrsRDtb7Gs2kmU+Qw==} - '@zag-js/text-selection@0.62.1': - resolution: {integrity: sha512-0b049CnWN/Nyp/F/nbeU6G8BI/fzwlSQTTDWK81yRFADDFTZ2mWpVAWJF/fY0rKjsn4ucDykCS7GXMIo5rYILQ==} - - '@zag-js/time-picker@0.62.1': - resolution: {integrity: sha512-THNASHp9Fu5f4/LC3t3qJfsYD6FqjhbP7HrjIDDFOcdNGRzOTfbEpKF3JtJgmM6F+/fuQKhe6FUbcluMd9zo8Q==} - '@zag-js/timer@1.41.2': resolution: {integrity: sha512-PRYLWaip0+1FeVGEMNk5wMGAAIYgBIWwulZ4U5I+2Ayjohzp2NUAfwJ3sqoYvRrfjNYUNAPdU4eGu1zetC+oVQ==} - '@zag-js/toast@0.62.1': - resolution: {integrity: sha512-Kb+OiFx7KUG0fAExIL06xWEfhxeMRJACvP6q4B4FNuFX+6N06RbV/PZtLbPbffOodd7VhSk1W37T7t6Np32mvg==} - '@zag-js/toast@1.41.2': resolution: {integrity: sha512-+F3PsAo6EIz4rh73IOMCb/+FOUp7e3VjUY2q5sdU4IbfOzJBIbVSJxn0PQmHkuxkzWdCom0Lv0qSPFg/UTplnQ==} - '@zag-js/toggle-group@0.62.1': - resolution: {integrity: sha512-h7jQtWJt11uws6IYBd3kQzOyOemtZ5CqR7lt4XZdni3J1EtymKRJNha2JIukIETZS9/0VU1fPcuDkQeCXcGHgQ==} - '@zag-js/toggle-group@1.41.2': resolution: {integrity: sha512-C6wn3A89h24hTs0BN9ryEuKatfR493u7QqxS06TeK9oI/KZBvm5Rwm8FPHSUJvsUTkAkow4PsXC0Ra19duzEdQ==} '@zag-js/toggle@1.41.2': resolution: {integrity: sha512-EFB9pb3pEtwXt7RSivVLWXV64dKUF8gsn75tt8TbYBgfy+zW85MsRLu8U48TXZN5teQWAKKNujr9bxQsW/CWvQ==} - '@zag-js/tooltip@0.62.1': - resolution: {integrity: sha512-318EJU6B4FR0nMNU79qMAgdOiVM6vbDiRWBHjGLDBK3z5No3lKfo4TZb/NqBmmi2W7ZFPiPwvLFsTql+H0xDbA==} - '@zag-js/tooltip@1.41.2': resolution: {integrity: sha512-68okWJCFXfW8r0h97kEcU2yKPkq6e0S6QkiYh09ifMXoYjrQw/shPol8PgrS1poqKJigUWtsKm+bw73abhMn3w==} '@zag-js/tour@1.41.2': resolution: {integrity: sha512-Q7UsvuHYYBo1Cs4b4OS0e/D8lxd2GpSRII93s5BQPi5HTcBjaWhVysAykmCFbat6Z56z0NBmFHNdhZ8oVPls1A==} - '@zag-js/tree-view@0.62.1': - resolution: {integrity: sha512-Y7qj16X18uElsD5jA9l03+rKEg1/5JIGRutO+NlEbs9Ffb7y34vqcEWquA+YgDfqXVWk2b5v9xcU1iKuKhOagQ==} - '@zag-js/tree-view@1.41.2': resolution: {integrity: sha512-QNi0VpV+RyzF4NP72+kSleUpauF9SMAzOAe59nxvs8jAUHqV5diDCInnbQos4+cyFDXFzGq3lElot26A1yI+7Q==} - '@zag-js/types@0.62.1': - resolution: {integrity: sha512-wjJvasoxg/rsFhMTaGLJEjYnSGaXz7DymtO+wWOIfa+O6y44flHc8wRQ1l6ZRRetCz4RALTuwhZI+0ESZ1Bpwg==} - '@zag-js/types@1.41.2': resolution: {integrity: sha512-L6CNvK06lIVpy0X8eG3kbDIx8Uuv+3KHElxXYSzRXSJ7/OLCv1sTRgEvnxNtdIWOrksGgxF4JtT7PXtoClGqNQ==} - '@zag-js/utils@0.62.1': - resolution: {integrity: sha512-90sk7Li2mqoMCAfZbns1xrySEg4PIFPwLpiRO/T2kvKpc9z/qsq2WqDFpS8eqHfYRmkLnmQa0Bw1LzItYYsGVQ==} - '@zag-js/utils@1.41.2': resolution: {integrity: sha512-Yj8FSrR7vGA6ahUhjrThfHAF+PM2Y1Yv2lkXkqZZd60mPBhixcot1+SHOfEMV63JimQcWrmQ8QbeYYMmF+ZpLQ==} @@ -1832,9 +1592,6 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.11.6: resolution: {integrity: sha512-69D/imtToCsIcAl8WBS2YaRwA4jO/j0HhU+hELqMEu9f54MoUtI6+XH5mrKU8rEFNEk/Ui1I2MK4/JkWacclGw==} engines: {node: '>=6.0.0'} @@ -1871,12 +1628,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - bun-types@1.3.14: - resolution: {integrity: sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ==} - bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -1983,9 +1734,6 @@ packages: resolution: {integrity: sha512-Fm5NvhYathRnXNVndkUsCCuR63DCLVVwGOOwQw782coXFi5HhkXdu289l59HlXZBawsyNccXfWRYvLzcDCdDig==} engines: {node: '>=20'} - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -2029,9 +1777,6 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.10.15: - resolution: {integrity: sha512-LdczPAFbtij3xGr9i+8PyDtuWdlXjSY5UJ8PKrYrr0DClKfR/OW3j8sxtambWYljzJAYD865KFhv7LdbWdG7VQ==} - electron-to-chromium@1.5.398: resolution: {integrity: sha512-AsvhAxopJGh6museTDMIjn6JpDYOfgu4RLlygomt87MUwBUqTfd/1EiPtx10/LZE8xpTvkP2E9Gafq7lkLtodQ==} @@ -2184,10 +1929,6 @@ packages: exsolve@1.1.1: resolution: {integrity: sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g==} - fast-check@3.23.2: - resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} - engines: {node: '>=8.0.0'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2239,9 +1980,6 @@ packages: flatted@3.4.3: resolution: {integrity: sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ==} - focus-trap@7.5.4: - resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} - forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -2350,9 +2088,6 @@ packages: resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} engines: {node: '>=0.10.0'} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -2481,10 +2216,6 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - latest@0.2.0: resolution: {integrity: sha512-nsIM/FjwLcsKZ1KDAw5CivnM26zzMs3zGBL4SdjYXHI5tMcOWjGhFDMBKIum4WNAkZmeVw7zU1jR2H2UiKoQVA==} hasBin: true @@ -2963,9 +2694,6 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - proxy-compare@3.0.0: - resolution: {integrity: sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==} - proxy-compare@3.0.1: resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==} @@ -2979,9 +2707,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - qs@6.15.3: resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} engines: {node: '>=0.6'} @@ -3191,9 +2916,6 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tabbable@6.5.0: - resolution: {integrity: sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==} - table@6.9.0: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} @@ -3335,9 +3057,6 @@ packages: uplot@1.6.32: resolution: {integrity: sha512-KIMVnG68zvu5XXUbC4LQEPnhwOxBuLyW1AHtpm6IKTXImkbLgkMy+jabjLgSLMasNuGGzQm/ep3tOkyTxpiQIw==} - uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - uqr@0.1.3: resolution: {integrity: sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA==} @@ -3525,10 +3244,6 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - xterm@5.3.0: - resolution: {integrity: sha512-8QqjlekLUFTrU6x7xck1MsPzPA571K5zNqWm0M0oroYEWVOptZ0+ubQSkQ3uxIEhcIHRujJy6emDWX4A7qyFzg==} - deprecated: This package is now deprecated. Move to @xterm/xterm instead. - yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -3552,49 +3267,6 @@ snapshots: '@acemir/cssom@0.9.31': {} - '@ark-ui/anatomy@3.5.0(@internationalized/date@3.12.2)': - dependencies: - '@zag-js/accordion': 0.62.1 - '@zag-js/anatomy': 0.62.1 - '@zag-js/avatar': 0.62.1 - '@zag-js/carousel': 0.62.1 - '@zag-js/checkbox': 0.62.1 - '@zag-js/clipboard': 0.62.1 - '@zag-js/collapsible': 0.62.1 - '@zag-js/color-picker': 0.62.1 - '@zag-js/color-utils': 0.62.1 - '@zag-js/combobox': 0.62.1 - '@zag-js/date-picker': 0.62.1 - '@zag-js/date-utils': 0.62.1(@internationalized/date@3.12.2) - '@zag-js/dialog': 0.62.1 - '@zag-js/editable': 0.62.1 - '@zag-js/file-upload': 0.62.1 - '@zag-js/hover-card': 0.62.1 - '@zag-js/menu': 0.62.1 - '@zag-js/number-input': 0.62.1 - '@zag-js/pagination': 0.62.1 - '@zag-js/pin-input': 0.62.1 - '@zag-js/popover': 0.62.1 - '@zag-js/presence': 0.62.1 - '@zag-js/progress': 0.62.1 - '@zag-js/qr-code': 0.62.1 - '@zag-js/radio-group': 0.62.1 - '@zag-js/rating-group': 0.62.1 - '@zag-js/select': 0.62.1 - '@zag-js/signature-pad': 0.62.1 - '@zag-js/slider': 0.62.1 - '@zag-js/splitter': 0.62.1 - '@zag-js/switch': 0.62.1 - '@zag-js/tabs': 0.62.1 - '@zag-js/tags-input': 0.62.1 - '@zag-js/time-picker': 0.62.1 - '@zag-js/toast': 0.62.1 - '@zag-js/toggle-group': 0.62.1 - '@zag-js/tooltip': 0.62.1 - '@zag-js/tree-view': 0.62.1 - transitivePeerDependencies: - - '@internationalized/date' - '@ark-ui/solid@5.37.1(solid-js@1.9.14)': dependencies: '@internationalized/date': 3.12.2 @@ -3694,20 +3366,20 @@ snapshots: '@babel/compat-data@7.29.7': {} - '@babel/core@7.29.7': + '@babel/core@7.29.7(supports-color@7.2.0)': dependencies: '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0) '@babel/helpers': 7.29.7 '@babel/parser': 7.29.7 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@7.2.0) '@babel/types': 7.29.7 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@7.2.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3736,19 +3408,19 @@ snapshots: dependencies: '@babel/types': 7.29.7 - '@babel/helper-module-imports@7.29.7': + '@babel/helper-module-imports@7.29.7(supports-color@7.2.0)': dependencies: - '@babel/traverse': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@7.2.0) '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7 + '@babel/core': 7.29.7(supports-color@7.2.0) + '@babel/helper-module-imports': 7.29.7(supports-color@7.2.0) '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@7.2.0) transitivePeerDependencies: - supports-color @@ -3769,9 +3441,9 @@ snapshots: dependencies: '@babel/types': 7.29.7 - '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-plugin-utils': 7.29.7 '@babel/template@7.29.7': @@ -3780,7 +3452,7 @@ snapshots: '@babel/parser': 7.29.7 '@babel/types': 7.29.7 - '@babel/traverse@7.29.7': + '@babel/traverse@7.29.7(supports-color@7.2.0)': dependencies: '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.7 @@ -3788,7 +3460,7 @@ snapshots: '@babel/parser': 7.29.7 '@babel/template': 7.29.7 '@babel/types': 7.29.7 - debug: 4.4.3 + debug: 4.4.3(supports-color@7.2.0) transitivePeerDependencies: - supports-color @@ -4087,11 +3759,6 @@ snapshots: dependencies: '@floating-ui/core': 0.7.3 - '@floating-ui/dom@1.6.8': - dependencies: - '@floating-ui/core': 1.8.0 - '@floating-ui/utils': 0.2.12 - '@floating-ui/dom@1.8.0': dependencies: '@floating-ui/core': 1.8.0 @@ -4125,14 +3792,6 @@ snapshots: dependencies: '@swc/helpers': 0.5.23 - '@internationalized/date@3.5.5': - dependencies: - '@swc/helpers': 0.5.23 - - '@internationalized/number@3.5.3': - dependencies: - '@swc/helpers': 0.5.23 - '@internationalized/number@3.6.6': dependencies: '@swc/helpers': 0.5.23 @@ -4156,11 +3815,6 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@kuyoonjo/tauri-plugin-tcp@0.1.2': - dependencies: - '@tauri-apps/api': 2.0.0-beta.12 - buffer: 6.0.3 - '@leeoniya/ufuzzy@1.0.19': {} '@modelcontextprotocol/sdk@1.30.0(supports-color@7.2.0)(zod@4.4.3)': @@ -4407,14 +4061,6 @@ snapshots: '@pandacss/types@1.11.5': {} - '@park-ui/panda-preset@0.43.1(@internationalized/date@3.12.2)(@pandacss/dev@1.11.5(jsdom@28.1.0(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))': - dependencies: - '@ark-ui/anatomy': 3.5.0(@internationalized/date@3.12.2) - '@pandacss/dev': 1.11.5(jsdom@28.1.0(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3) - effect: 3.10.15 - transitivePeerDependencies: - - '@internationalized/date' - '@rollup/rollup-android-arm-eabi@4.62.3': optional: true @@ -4537,8 +4183,6 @@ snapshots: '@tabler/icons@3.46.0': {} - '@tauri-apps/api@2.0.0-beta.12': {} - '@tauri-apps/api@2.11.1': {} '@tauri-apps/cli-darwin-arm64@2.11.4': @@ -4596,10 +4240,6 @@ snapshots: dependencies: '@tauri-apps/api': 2.11.1 - '@tauri-apps/plugin-os@2.3.2': - dependencies: - '@tauri-apps/api': 2.11.1 - '@tauri-apps/plugin-shell@2.3.5': dependencies: '@tauri-apps/api': 2.11.1 @@ -4608,10 +4248,6 @@ snapshots: dependencies: '@tauri-apps/api': 2.11.1 - '@thisbeyond/solid-dnd@0.7.5(solid-js@1.9.14)': - dependencies: - solid-js: 1.9.14 - '@ts-morph/common@0.29.0': dependencies: minimatch: 10.2.6 @@ -4639,10 +4275,6 @@ snapshots: dependencies: '@babel/types': 7.29.7 - '@types/bun@1.3.14': - dependencies: - bun-types: 1.3.14 - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -4665,6 +4297,7 @@ snapshots: '@types/node@26.1.2': dependencies: undici-types: 8.3.0 + optional: true '@types/web-bluetooth@0.0.14': {} @@ -4910,15 +4543,6 @@ snapshots: optionalDependencies: vue: 3.5.40(typescript@5.9.3) - '@zag-js/accordion@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/accordion@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -4927,8 +4551,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/anatomy@0.62.1': {} - '@zag-js/anatomy@1.41.2': {} '@zag-js/angle-slider@1.41.2': @@ -4940,10 +4562,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/aria-hidden@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/aria-hidden@1.41.2': dependencies: '@zag-js/dom-query': 1.41.2 @@ -4953,22 +4571,10 @@ snapshots: '@zag-js/core': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/auto-resize@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/auto-resize@1.41.2': dependencies: '@zag-js/dom-query': 1.41.2 - '@zag-js/avatar@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/avatar@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -4977,14 +4583,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/carousel@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/carousel@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5007,16 +4605,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/checkbox@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/checkbox@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5026,14 +4614,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/clipboard@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/clipboard@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5042,14 +4622,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/collapsible@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/collapsible@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5058,28 +4630,10 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/collection@0.62.1': - dependencies: - '@zag-js/utils': 0.62.1 - '@zag-js/collection@1.41.2': dependencies: '@zag-js/utils': 1.41.2 - '@zag-js/color-picker@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/color-utils': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/color-picker@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5091,27 +4645,10 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/color-utils@0.62.1': - dependencies: - '@zag-js/numeric-range': 0.62.1 - '@zag-js/color-utils@1.41.2': dependencies: '@zag-js/utils': 1.41.2 - '@zag-js/combobox@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/collection': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/combobox@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5125,11 +4662,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/core@0.62.1': - dependencies: - '@zag-js/store': 0.62.1 - klona: 2.0.6 - '@zag-js/core@1.41.2': dependencies: '@zag-js/dom-query': 1.41.2 @@ -5146,22 +4678,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/date-picker@0.62.1': - dependencies: - '@internationalized/date': 3.5.5 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/date-utils': 0.62.1(@internationalized/date@3.5.5) - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/live-region': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/date-picker@1.41.2(@internationalized/date@3.12.2)': dependencies: '@internationalized/date': 3.12.2 @@ -5175,30 +4691,10 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/date-utils@0.62.1(@internationalized/date@3.12.2)': - dependencies: - '@internationalized/date': 3.12.2 - - '@zag-js/date-utils@0.62.1(@internationalized/date@3.5.5)': - dependencies: - '@internationalized/date': 3.5.5 - '@zag-js/date-utils@1.41.2(@internationalized/date@3.12.2)': dependencies: '@internationalized/date': 3.12.2 - '@zag-js/dialog@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/remove-scroll': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - focus-trap: 7.5.4 - '@zag-js/dialog@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5211,27 +4707,12 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/dismissable@0.62.1': - dependencies: - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/dismissable@1.41.2': dependencies: '@zag-js/dom-query': 1.41.2 '@zag-js/interact-outside': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/dom-event@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/text-selection': 0.62.1 - '@zag-js/types': 0.62.1 - - '@zag-js/dom-query@0.62.1': {} - '@zag-js/dom-query@1.41.2': dependencies: '@zag-js/types': 1.41.2 @@ -5248,17 +4729,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/editable@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/editable@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5268,20 +4738,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/element-rect@0.62.1': {} - - '@zag-js/element-size@0.62.1': {} - - '@zag-js/file-upload@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/file-utils': 0.62.1 - '@zag-js/i18n-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/file-upload@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5292,10 +4748,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/file-utils@0.62.1': - dependencies: - '@zag-js/i18n-utils': 0.62.1 - '@zag-js/file-utils@1.41.2': dependencies: '@zag-js/i18n-utils': 1.41.2 @@ -5319,20 +4771,8 @@ snapshots: dependencies: '@zag-js/dom-query': 1.41.2 - '@zag-js/form-utils@0.62.1': {} - '@zag-js/highlight-word@1.41.2': {} - '@zag-js/hover-card@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/hover-card@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5343,10 +4783,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/i18n-utils@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/i18n-utils@1.41.2': dependencies: '@zag-js/dom-query': 1.41.2 @@ -5359,12 +4795,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/interact-outside@0.62.1': - dependencies: - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/interact-outside@1.41.2': dependencies: '@zag-js/dom-query': 1.41.2 @@ -5382,8 +4812,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/live-region@0.62.1': {} - '@zag-js/live-region@1.41.2': {} '@zag-js/marquee@1.41.2': @@ -5394,18 +4822,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/menu@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/rect-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/menu@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5427,18 +4843,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/number-input@0.62.1': - dependencies: - '@internationalized/number': 3.5.3 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/number-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/number-input@1.41.2': dependencies: '@internationalized/number': 3.6.6 @@ -5448,18 +4852,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/number-utils@0.62.1': {} - - '@zag-js/numeric-range@0.62.1': {} - - '@zag-js/pagination@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/pagination@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5476,16 +4868,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/pin-input@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/pin-input@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5494,19 +4876,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/popover@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/aria-hidden': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/remove-scroll': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - focus-trap: 7.5.4 - '@zag-js/popover@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5520,37 +4889,18 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/popper@0.62.1': - dependencies: - '@floating-ui/dom': 1.6.8 - '@zag-js/dom-query': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/popper@1.41.2': dependencies: '@floating-ui/dom': 1.8.0 '@zag-js/dom-query': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/presence@0.62.1': - dependencies: - '@zag-js/core': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/presence@1.41.2': dependencies: '@zag-js/core': 1.41.2 '@zag-js/dom-query': 1.41.2 '@zag-js/types': 1.41.2 - '@zag-js/progress@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/progress@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5559,16 +4909,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/qr-code@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - proxy-memoize: 3.0.1 - uqr: 0.1.2 - '@zag-js/qr-code@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5579,16 +4919,6 @@ snapshots: proxy-memoize: 3.0.1 uqr: 0.1.3 - '@zag-js/radio-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-rect': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/radio-group@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5598,16 +4928,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/rating-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/rating-group@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5616,14 +4936,8 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/rect-utils@0.62.1': {} - '@zag-js/rect-utils@1.41.2': {} - '@zag-js/remove-scroll@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - '@zag-js/remove-scroll@1.41.2': dependencies: '@zag-js/dom-query': 1.41.2 @@ -5640,19 +4954,6 @@ snapshots: dependencies: '@zag-js/dom-query': 1.41.2 - '@zag-js/select@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/collection': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/select@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5665,16 +4966,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/signature-pad@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - perfect-freehand: 1.2.3 - '@zag-js/signature-pad@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5684,18 +4975,6 @@ snapshots: '@zag-js/utils': 1.41.2 perfect-freehand: 1.2.3 - '@zag-js/slider@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-size': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/numeric-range': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/slider@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5713,16 +4992,6 @@ snapshots: '@zag-js/utils': 1.41.2 solid-js: 1.9.14 - '@zag-js/splitter@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/number-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/splitter@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5739,24 +5008,10 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/store@0.62.1': - dependencies: - proxy-compare: 3.0.0 - '@zag-js/store@1.41.2': dependencies: proxy-compare: 3.0.1 - '@zag-js/switch@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/switch@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5766,16 +5021,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/tabs@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/element-rect': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/tabs@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5784,19 +5029,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/tags-input@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/auto-resize': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/form-utils': 0.62.1 - '@zag-js/interact-outside': 0.62.1 - '@zag-js/live-region': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/tags-input@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5808,22 +5040,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/text-selection@0.62.1': - dependencies: - '@zag-js/dom-query': 0.62.1 - - '@zag-js/time-picker@0.62.1': - dependencies: - '@internationalized/date': 3.5.5 - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/timer@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5832,16 +5048,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/toast@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dismissable': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/toast@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5851,15 +5057,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/toggle-group@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/toggle-group@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5876,16 +5073,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/tooltip@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/popper': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/tooltip@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5908,15 +5095,6 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/tree-view@0.62.1': - dependencies: - '@zag-js/anatomy': 0.62.1 - '@zag-js/core': 0.62.1 - '@zag-js/dom-event': 0.62.1 - '@zag-js/dom-query': 0.62.1 - '@zag-js/types': 0.62.1 - '@zag-js/utils': 0.62.1 - '@zag-js/tree-view@1.41.2': dependencies: '@zag-js/anatomy': 1.41.2 @@ -5926,16 +5104,10 @@ snapshots: '@zag-js/types': 1.41.2 '@zag-js/utils': 1.41.2 - '@zag-js/types@0.62.1': - dependencies: - csstype: 3.1.3 - '@zag-js/types@1.41.2': dependencies: csstype: 3.2.3 - '@zag-js/utils@0.62.1': {} - '@zag-js/utils@1.41.2': {} accepts@2.0.0: @@ -5985,19 +5157,19 @@ snapshots: async-validator@4.2.5: {} - babel-plugin-jsx-dom-expressions@0.40.7(@babel/core@7.29.7): + babel-plugin-jsx-dom-expressions@0.40.7(@babel/core@7.29.7(supports-color@7.2.0)): dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.7(supports-color@7.2.0) '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0)) '@babel/types': 7.29.7 html-entities: 2.3.3 parse5: 7.3.0 - babel-preset-solid@1.9.12(@babel/core@7.29.7)(solid-js@1.9.14): + babel-preset-solid@1.9.12(@babel/core@7.29.7(supports-color@7.2.0))(solid-js@1.9.14): dependencies: - '@babel/core': 7.29.7 - babel-plugin-jsx-dom-expressions: 0.40.7(@babel/core@7.29.7) + '@babel/core': 7.29.7(supports-color@7.2.0) + babel-plugin-jsx-dom-expressions: 0.40.7(@babel/core@7.29.7(supports-color@7.2.0)) optionalDependencies: solid-js: 1.9.14 @@ -6005,8 +5177,6 @@ snapshots: balanced-match@4.0.4: {} - base64-js@1.5.1: {} - baseline-browser-mapping@2.11.6: {} bidi-js@1.0.3: @@ -6058,15 +5228,6 @@ snapshots: node-releases: 2.0.51 update-browserslist-db: 1.2.3(browserslist@4.28.5) - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bun-types@1.3.14: - dependencies: - '@types/node': 26.1.2 - bytes@3.1.2: {} cac@6.7.14: {} @@ -6159,8 +5320,6 @@ snapshots: css-tree: 3.2.1 lru-cache: 11.5.2 - csstype@3.1.3: {} - csstype@3.2.3: {} data-urls@7.0.0: @@ -6172,10 +5331,6 @@ snapshots: dayjs@1.11.21: {} - debug@4.4.3: - dependencies: - ms: 2.1.3 - debug@4.4.3(supports-color@7.2.0): dependencies: ms: 2.1.3 @@ -6202,10 +5357,6 @@ snapshots: ee-first@1.1.1: {} - effect@3.10.15: - dependencies: - fast-check: 3.23.2 - electron-to-chromium@1.5.398: {} emoji-regex@8.0.0: {} @@ -6410,10 +5561,6 @@ snapshots: exsolve@1.1.1: {} - fast-check@3.23.2: - dependencies: - pure-rand: 6.1.0 - fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -6469,10 +5616,6 @@ snapshots: flatted@3.4.3: {} - focus-trap@7.5.4: - dependencies: - tabbable: 6.5.0 - forwarded@0.2.0: {} fresh@2.0.0: {} @@ -6584,8 +5727,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ieee754@1.2.1: {} - ignore@5.3.2: {} ignore@7.0.6: {} @@ -6694,8 +5835,6 @@ snapshots: kleur@4.1.5: {} - klona@2.0.6: {} - latest@0.2.0: dependencies: npm: 2.15.12 @@ -7023,8 +6162,6 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-compare@3.0.0: {} - proxy-compare@3.0.1: {} proxy-memoize@3.0.1: @@ -7038,8 +6175,6 @@ snapshots: punycode@2.3.1: {} - pure-rand@6.1.0: {} - qs@6.15.3: dependencies: es-define-property: 1.0.1 @@ -7249,10 +6384,10 @@ snapshots: seroval: 1.5.6 seroval-plugins: 1.5.6(seroval@1.5.6) - solid-refresh@0.6.3(solid-js@1.9.14): + solid-refresh@0.6.3(solid-js@1.9.14)(supports-color@7.2.0): dependencies: '@babel/generator': 7.29.7 - '@babel/helper-module-imports': 7.29.7 + '@babel/helper-module-imports': 7.29.7(supports-color@7.2.0) '@babel/types': 7.29.7 solid-js: 1.9.14 transitivePeerDependencies: @@ -7292,8 +6427,6 @@ snapshots: symbol-tree@3.2.4: {} - tabbable@6.5.0: {} - table@6.9.0: dependencies: ajv: 8.20.0 @@ -7392,7 +6525,8 @@ snapshots: udsv@0.7.3: {} - undici-types@8.3.0: {} + undici-types@8.3.0: + optional: true undici@7.29.0: {} @@ -7422,8 +6556,6 @@ snapshots: uplot@1.6.32: {} - uqr@0.1.2: {} - uqr@0.1.3: {} uri-js@4.4.1: @@ -7434,14 +6566,14 @@ snapshots: vary@1.1.2: {} - vite-plugin-solid@2.11.14(solid-js@1.9.14)(vite@6.3.5(@types/node@26.1.2)(lightningcss@1.31.1)): + vite-plugin-solid@2.11.14(solid-js@1.9.14)(supports-color@7.2.0)(vite@6.3.5(@types/node@26.1.2)(lightningcss@1.31.1)): dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.7(supports-color@7.2.0) '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.12(@babel/core@7.29.7)(solid-js@1.9.14) + babel-preset-solid: 1.9.12(@babel/core@7.29.7(supports-color@7.2.0))(solid-js@1.9.14) merge-anything: 5.1.7 solid-js: 1.9.14 - solid-refresh: 0.6.3(solid-js@1.9.14) + solid-refresh: 0.6.3(solid-js@1.9.14)(supports-color@7.2.0) vite: 6.3.5(@types/node@26.1.2)(lightningcss@1.31.1) vitefu: 1.1.3(vite@6.3.5(@types/node@26.1.2)(lightningcss@1.31.1)) transitivePeerDependencies: @@ -7556,8 +6688,6 @@ snapshots: xmlchars@2.2.0: {} - xterm@5.3.0: {} - yallist@3.1.1: {} yocto-queue@0.1.0: {} diff --git a/src/components/Connect/ConnectButton.tsx b/src/components/Connect/ConnectButton.tsx deleted file mode 100644 index 28f8a959..00000000 --- a/src/components/Connect/ConnectButton.tsx +++ /dev/null @@ -1,231 +0,0 @@ -import { IconButton } from "~/components/ui/icon-button.tsx"; -import { IconX } from "@tabler/icons-solidjs"; -import * as Popover from "~/components/ui/popover.tsx"; -import { createSignal, Show } from "solid-js"; -import { portList, setPortList } from "../../store/GlobalState.ts"; -//@ts-ignore Implicitly has an 'any' type. -import { Stack } from "styled-system/jsx/stack.mjs"; -import { Text } from "../../components/ui/text.tsx"; -import { Command } from "@tauri-apps/plugin-shell"; -import { For } from "solid-js"; -import { Tooltip } from "~/components/ui/tooltip.tsx"; -import { Button } from "~/components/ui/button.tsx"; -import { csvFileDownloads } from "../../store/GlobalState.ts"; -import { DownloadStatus } from "~/components/DownloadList.tsx"; -import { toaster } from "~/components/ui/toast.tsx"; -import type { ComponentProps } from "solid-js"; -import { css } from "styled-system/css/css"; - -export type ConnectButtonProps = { - portId: string; - onPortIdChange?: (portId: string) => void; - buttonProps?: ComponentProps; -}; - -export function ConnectButton(props: ConnectButtonProps) { - const [isDetecting, setIsDetecting] = createSignal(false); - - async function detectPort() { - const drivercom = Command.sidecar("binaries/drivercom", ["port.detect"]); - const output = await drivercom.execute(); - - const portNames = output.stdout - .split("\n") - .map((portName) => { - const matched = portName.match(/\(([^)]+)\)/); - return matched; - }) - .filter((e) => e !== null) - .map((e) => e[1]); - const ports = await Promise.all( - portNames.map(async (id) => { - const version = await detectFirmwareVersion(id); - if (version !== null) { - return { - id: id, - version: version, - }; - } else { - return { - id: id, - version: "", - }; - } - }), - ); - setPortList(ports); - - if (portNames.length == 0) { - toaster.create({ - title: "No Ports Found", - description: "No driver serial ports were detected.", - type: "error", - }); - return; - } - props.onPortIdChange?.(""); - } - - async function detectFirmwareVersion(portId: string): Promise { - const drivercom = Command.sidecar("binaries/drivercom", [ - "--port", - portId, - "firmware", - ]); - const output = await drivercom.execute(); - const splits = output.stdout.split(":"); - if (splits.length < 2) return null; - - const version_string = splits[1].trimStart().trimEnd(); - return version_string; - } - - return ( - - - 0}>{props.portId}} - > - - - - - - - - Driver Ports - - - - - 0}> -
- - {(port) => ( - - )} - -
-
-
-
-
- ); -} diff --git a/src/components/Customize/Select.tsx b/src/components/Customize/Select.tsx deleted file mode 100644 index 6b6fdc6c..00000000 --- a/src/components/Customize/Select.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { ListCollection } from "@ark-ui/solid"; -import { For, JSX } from "solid-js"; -import { Portal } from "solid-js/web"; -import * as ParkUiSelect from "~/components/ui/select"; - -export function Select(props: { - listCollection: ListCollection<{ label: string; value: string }>; - style?: JSX.CSSProperties; - value?: string; - onValueChange?: (value: string) => void; -}) { - return ( - { - props.onValueChange?.(e.value.toString()); - }} - > - - - - - - - - - - - - - - {(item) => ( - - {item.label} - - - )} - - - - - - ); -} diff --git a/src/components/FileMenu.tsx b/src/components/FileMenu.tsx deleted file mode 100644 index bf6f7bff..00000000 --- a/src/components/FileMenu.tsx +++ /dev/null @@ -1,149 +0,0 @@ -import { JSX } from "solid-js"; -import * as Menu from "./ui/menu.tsx"; -import { Button } from "./ui/button.tsx"; -import { IconChevronRight, IconX } from "@tabler/icons-solidjs"; -import { For } from "solid-js/web"; -import { Text } from "./ui/text.tsx"; -import { IconButton } from "./ui/icon-button.tsx"; - -export type FileMenuProps = JSX.HTMLAttributes & { - filePath: string; - onNewFile?: () => void; - onOpenFile?: () => void; - recentFiles: string[]; - onOpenRecentFile?: (path: string) => void; - onDeleteRecentPath?: (index: number) => void; - onReloadFile?: () => void; - onSaveFile?: () => void; -}; - -// A Menu button that lets the user choose to open or save a file. -export function FileMenu(props: FileMenuProps) { - return ( - - - {props.children ? ( - props.children - ) : ( - - )} - - - - { - props.onNewFile?.(); - }} - userSelect="none" - > - New - - - props.onOpenFile?.()} - > - Open - - {props.recentFiles.length === 0 ? ( - - Open recent - - ) : ( - - - Open recent - - - - - - - {(filePath, index) => ( - -
{ - props.onOpenRecentFile?.(filePath); - }} - > - - {filePath.match(/[^//]+$/)!.toString()} - - - {filePath.replace( - filePath.match(/[^?!//]+$/)!.toString(), - "", - )} - -
- { - props.onDeleteRecentPath?.(index()); - }} - > - - -
- )} -
-
-
-
- )} - - props.onReloadFile?.()} - disabled={props.filePath.length === 0} - > - Reload file - - - props.onSaveFile?.()} - > - Save as file - -
-
-
- ); -} diff --git a/src/components/PortMenu.tsx b/src/components/PortMenu.tsx deleted file mode 100644 index 665242db..00000000 --- a/src/components/PortMenu.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { createSignal } from "solid-js"; -import * as Menu from "./ui/menu.tsx"; -import { Button } from "./ui/button.tsx"; -import { csvFileDownloads } from "~/store/GlobalState.ts"; -import { DownloadStatus } from "./DownloadList.tsx"; -import { ButtonProps } from "./ui/button.tsx"; - -export type PortMenuProps = ButtonProps & { - portId: string; - onGetFromPort?: () => void; - onSaveToPort?: () => void; -}; - -// A Menu button that lets the user choose to connect or disconnect a port. -export function PortMenu(props: PortMenuProps) { - const [openMenu, setOpenMenu] = createSignal(false); - const { onGetFromPort, onSaveToPort, ...buttonProps } = props; - - return ( - { - if (props.portId.length < 1) return; - setOpenMenu(details.open); - }} - > - - file.status === DownloadStatus.Progressing && - file.port === props.portId, - ) - } - > - - - - - - file.status === DownloadStatus.Progressing && - file.port === props.portId, - ) - } - userSelect="none" - onClick={async () => { - if ( - props.portId.length < 1 || - csvFileDownloads.some( - (file) => - file.status === DownloadStatus.Progressing && - file.port === props.portId, - ) - ) - return; - - onGetFromPort?.(); - }} - > - Get from port - - - - file.status === DownloadStatus.Progressing && - file.port === props.portId, - ) - } - userSelect="none" - onClick={async () => { - if ( - props.portId.length < 1 || - csvFileDownloads.some( - (file) => - file.status === DownloadStatus.Progressing && - file.port === props.portId, - ) - ) - return; - - onSaveToPort?.(); - }} - > - Save to port - - - - - ); -} From bbb6a114f7cba90ec4fe706dbc06d96c4a53905e Mon Sep 17 00:00:00 2001 From: kmotso434 Date: Tue, 3 Nov 2026 15:01:46 +0900 Subject: [PATCH 2/7] fix: Move Port function to port service --- src/App.tsx | 117 ++---------------------------------- src/services/PortService.ts | 93 +++++++++++++++++++++++++++- 2 files changed, 98 insertions(+), 112 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index b376a0b4..a833c1c1 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -35,13 +35,8 @@ import { setDriverComVersion, setGlobalState, setLogFormFileFormat, - setLogStartConditionList, - setLogStartCombinatorList, setPage, Theme, - setConfigDescription, - setConfigTabForm, - setLogConfigDescription, setRecentConfigFilePaths, setRecentLogFilePaths, panelStore, @@ -49,7 +44,6 @@ import { tabStore, configFormFileFormat, logFormFileFormat, - setCclinkSpeed, } from "./store/GlobalState.ts"; import { Text } from "~/components/ui/text.tsx"; @@ -58,9 +52,6 @@ import { Command } from "@tauri-apps/plugin-shell"; import { DownloadList } from "./components/DownloadList.tsx"; import JSON5 from "json5"; import { load } from "@tauri-apps/plugin-store"; -import { ConfigTuneType } from "src-tauri/generated/config/ConfigTune.tsx"; -import { ConfigCalibrationType } from "src-tauri/generated/config/ConfigCalibration.tsx"; -import { ConfigSystemType } from "src-tauri/generated/config/ConfigSystem.tsx"; import { logConfigDefaultValues, LogConfigType, @@ -88,6 +79,12 @@ import * as Popover from "./components/ui/popover.tsx"; import { IconButton } from "./components/ui/icon-button.tsx"; import { Portal } from "solid-js/web"; import { Button } from "./components/ui/button.tsx"; +import { + getCclinkSpeenEnum, + getConfigDescription, + getLogConfigDescription, + prepareConfigTabFormat, +} from "./services/PortService.ts"; type PageMeta = { icon: ValidComponent; @@ -115,8 +112,6 @@ function App(props: RouteSectionProps) { const prebuildFunctions = [ detectCliVersion(), - getLogStartCombinator(), - getLogStartCondition(), getCclinkSpeenEnum(), getLogConfigDescription(), prepareConfigTabFormat(), @@ -148,106 +143,6 @@ function App(props: RouteSectionProps) { setConfigFormFileFormat(configDefaultValues); } - // Get log start options from the drivercom-CLI Command - async function getLogStartCondition() { - const logStartCondition = Command.sidecar("binaries/drivercom", [ - `log.config.start.condition.list`, - ]); - const output = await logStartCondition.execute(); - const parseOutput = output.stdout - .replaceAll("[", "") - .replaceAll("]", "") - .split(":"); - const startConditionList = parseOutput[1] - .split(",") - .filter((value) => value !== "\n"); - setLogStartConditionList(startConditionList); - } - - // Get log start combinator options from the drivercom-CLI Command - async function getLogStartCombinator() { - const logStartCombinator = Command.sidecar("binaries/drivercom", [ - `log.config.start.combinator.list`, - ]); - const output = await logStartCombinator.execute(); - const parseOutput = output.stdout - .replaceAll("[", "") - .replaceAll("]", "") - .split(":"); - const startCombinatorList = parseOutput[1] - .split(",") - .filter((value) => value !== "\n"); - setLogStartCombinatorList(startCombinatorList); - } - - async function getCclinkSpeenEnum() { - const cclinkSpeedList = Command.sidecar("binaries/drivercom", [ - `config.cc_link_speed.list`, - ]); - const output = await cclinkSpeedList.execute(); - const parseOutput = output.stdout - .replaceAll("[", "") - .replaceAll("]", "") - .split(":"); - const cclinkSpeed = parseOutput[1] - .split(",") - .filter((value) => value !== "\n"); - setCclinkSpeed(cclinkSpeed); - } - - async function getConfigDescription() { - const configDesc = Command.sidecar("binaries/drivercom", [`config.info`]); - const output = await configDesc.execute(); - const desc = JSON5.parse(output.stdout); - setConfigDescription(desc); - } - - async function getLogConfigDescription() { - const configDesc = Command.sidecar("binaries/drivercom", [`log.info`]); - const output = await configDesc.execute(); - const desc = JSON5.parse(output.stdout); - setLogConfigDescription(desc); - } - - async function getTuneConfig(): Promise { - const getTuneConfig = Command.sidecar("binaries/drivercom", [ - `config.empty.tune`, - ]); - const output = await getTuneConfig.execute(); - const tuneConfig: ConfigTuneType = JSON5.parse(output.stdout); - return tuneConfig; - } - - async function getCalibrationConfig(): Promise { - const getCalibrationConfig = Command.sidecar("binaries/drivercom", [ - `config.empty.calibration`, - ]); - const output = await getCalibrationConfig.execute(); - const calConfig: ConfigCalibrationType = JSON5.parse(output.stdout); - return calConfig; - } - - async function getSystemConfig(): Promise { - const getSystemConfig = Command.sidecar("binaries/drivercom", [ - `config.empty.system`, - ]); - const output = await getSystemConfig.execute(); - const systemConfig: ConfigSystemType = JSON5.parse(output.stdout); - return systemConfig; - } - - async function prepareConfigTabFormat() { - const tuneConfig = await getTuneConfig(); - const calConfig = await getCalibrationConfig(); - const systemConfig = await getSystemConfig(); - const config = { - system: systemConfig, - tune: tuneConfig, - calibration: calConfig, - }; - setConfigTabForm(config); - } - // Get local storage values using the Tauri store API. async function getStoreValues() { const store = await load("store.json", { diff --git a/src/services/PortService.ts b/src/services/PortService.ts index 5c1cc35d..6865d08a 100644 --- a/src/services/PortService.ts +++ b/src/services/PortService.ts @@ -1,9 +1,18 @@ import { Command } from "@tauri-apps/plugin-shell"; -import { portCommands } from "~/store/GlobalState"; +import { + portCommands, + setCclinkSpeed, + setConfigDescription, + setConfigTabForm, + setLogConfigDescription, +} from "~/store/GlobalState"; import { toaster } from "~/components/ui/toast.tsx"; import JSON5 from "json5"; import { ConfigType } from "src-tauri/generated/config/ConfigType"; import { LogConfigType } from "src-tauri/generated/config/LogConfigType"; +import { ConfigTuneType } from "src-tauri/generated/config/ConfigTune"; +import { ConfigCalibrationType } from "src-tauri/generated/config/ConfigCalibration"; +import { ConfigSystemType } from "src-tauri/generated/config/ConfigSystem"; export type Port = { id: string; @@ -144,3 +153,85 @@ export async function startLogging( stringifyLogConfig, ]); } + +export async function getCclinkSpeenEnum() { + try { + const output = await sendDrivercomCommand([`config.cc_link_speed.list`]); + const parseOutput = output + .replaceAll("[", "") + .replaceAll("]", "") + .split(":"); + const cclinkSpeed = parseOutput[1] + .split(",") + .filter((value) => value !== "\n"); + setCclinkSpeed(cclinkSpeed); + } catch (e) { + throw e as string; + } +} + +export async function getConfigDescription() { + try { + const output = await sendDrivercomCommand([`config.info`]); + const desc = JSON5.parse(output); + setConfigDescription(desc); + } catch (e) { + throw e as string; + } +} + +export async function getLogConfigDescription() { + try { + const output = await sendDrivercomCommand([`log.info`]); + const desc = JSON5.parse(output); + setLogConfigDescription(desc); + } catch (e) { + throw e as string; + } +} + +async function getTuneConfig(): Promise { + try { + const output = await sendDrivercomCommand([`config.empty.tune`]); + const tuneConfig: ConfigTuneType = JSON5.parse(output); + return tuneConfig; + } catch (e) { + throw e as string; + } +} + +async function getCalibrationConfig(): Promise { + try { + const output = await sendDrivercomCommand([`config.empty.calibration`]); + const calConfig: ConfigCalibrationType = JSON5.parse(output); + return calConfig; + } catch (e) { + throw e as string; + } +} + +async function getSystemConfig(): Promise { + try { + const output = await sendDrivercomCommand([`config.empty.system`]); + const systemConfig: ConfigSystemType = JSON5.parse(output); + return systemConfig; + } catch (e) { + throw e as string; + } +} + +export async function prepareConfigTabFormat() { + try { + const tuneConfig = await getTuneConfig(); + const calConfig = await getCalibrationConfig(); + const systemConfig = await getSystemConfig(); + const config = { + system: systemConfig, + tune: tuneConfig, + calibration: calConfig, + }; + setConfigTabForm(config); + } catch (e) { + throw e as string; + } +} From 5fc9c48d459e0986c8842d538dd57343193c9601 Mon Sep 17 00:00:00 2001 From: kmotso434 Date: Tue, 3 Nov 2026 15:14:09 +0900 Subject: [PATCH 3/7] fix: Remove log start condition and combinator list --- src/components/Form.tsx | 91 ------------------- src/components/Form/FormCollapsibleObject.tsx | 2 - src/pages/Logging/LoggingForm.tsx | 24 ----- src/store/GlobalState.ts | 7 -- 4 files changed, 124 deletions(-) diff --git a/src/components/Form.tsx b/src/components/Form.tsx index f133f6cc..dbfda646 100644 --- a/src/components/Form.tsx +++ b/src/components/Form.tsx @@ -1,13 +1,8 @@ import { For, createSignal, JSX, Show } from "solid-js"; -import { Text } from "./ui/text.tsx"; import { FormCheckBox } from "./Form/FormCheckBox.tsx"; import { FormNumberInput } from "./Form/FormNumberInput.tsx"; import { FormCollapsibleObject } from "./Form/FormCollapsibleObject.tsx"; -import { ListCollection } from "@ark-ui/solid"; -import * as Select from "./ui/select.tsx"; import { createStore } from "solid-js/store"; -import { Tooltip } from "./ui/tooltip.tsx"; -import { IconHelp } from "@tabler/icons-solidjs"; import { AccordionStates } from "~/pages/Configuration/ConfigForm/ConfigForm.tsx"; export type FormProps = JSX.HTMLAttributes & { @@ -20,8 +15,6 @@ export type FormProps = JSX.HTMLAttributes & { changeUnits?: boolean; onItemChange?: () => void; accordionStates: AccordionStates; - logStartConditions?: ListCollection; - logStartCombinators?: ListCollection; }; // A generic form component that can adapt to any object shape. @@ -188,88 +181,6 @@ export function Form(props: FormProps) { /> ); } - - if ( - typeof format == "string" && - props.logStartConditions && - props.logStartCombinators - ) { - const description = props.description - ? props.description[ - `__${key}` as keyof typeof props.description - ] - : undefined; - return ( - <> -
- - {`${key[0].toUpperCase()}${key.slice(1, key.length)}`} - - - - - - -
- - { - setObject(key as keyof typeof object, v.items[0].label); - }} - > - - - - - - - - - {(item) => ( - - {item.label} - - - )} - - - - - - ); - } }} @@ -359,8 +270,6 @@ export function Form(props: FormProps) { format={props.format ? format : undefined} value={object[key as keyof typeof object]} accordionStates={props.accordionStates} - logStartCombinators={props.logStartCombinators} - logStartConditions={props.logStartConditions} /> ); } diff --git a/src/components/Form/FormCollapsibleObject.tsx b/src/components/Form/FormCollapsibleObject.tsx index 7ce44c35..2c049a65 100644 --- a/src/components/Form/FormCollapsibleObject.tsx +++ b/src/components/Form/FormCollapsibleObject.tsx @@ -95,8 +95,6 @@ export const FormCollapsibleObject = (props: FormCollapsibleObjectProps) => { props.onItemChange?.(); }} accordionStates={props.accordionStates} - logStartCombinators={props.logStartCombinators} - logStartConditions={props.logStartConditions} /> diff --git a/src/pages/Logging/LoggingForm.tsx b/src/pages/Logging/LoggingForm.tsx index 467720f8..957977dd 100644 --- a/src/pages/Logging/LoggingForm.tsx +++ b/src/pages/Logging/LoggingForm.tsx @@ -1,10 +1,4 @@ import { JSX } from "solid-js"; -import { - logStartCombinatorList, - logStartConditionList, -} from "~/store/GlobalState"; -import { createListCollection } from "@ark-ui/solid/collection"; -import { ListCollection } from "@ark-ui/solid/collection"; import { Form } from "~/components/Form"; import { AccordionStates } from "../Configuration/ConfigForm/ConfigForm"; @@ -20,22 +14,6 @@ export type LoggingFormProps = JSX.HTMLAttributes & { export function LoggingForm(props: LoggingFormProps) { const logForm = props.formData; - // Log config start condition list for select component - const parseStartConditionList = logStartConditionList().map((condition) => { - return { label: condition, value: condition }; - }); - const logStartConditions: ListCollection = createListCollection({ - items: parseStartConditionList, - }); - - // Log config start combinator list for select component - const parseCombinatorList = logStartCombinatorList().map((condition) => { - return { label: condition, value: condition }; - }); - const logStartCombinators = createListCollection({ - items: parseCombinatorList, - }); - return (
([]); -export const [logStartConditionList, setLogStartConditionList] = createSignal< - string[] ->([]); -export const [logStartCombinatorList, setLogStartCombinatorList] = createSignal< - string[] ->([]); - type PageKeys = Map; export const pageKeys: PageKeys = new Map(); From 98b35562aaf2237353b1c18dd1ccd5f984e4c6c0 Mon Sep 17 00:00:00 2001 From: kmotso434 Date: Tue, 3 Nov 2026 15:29:05 +0900 Subject: [PATCH 4/7] fix: Remove unused cargo library --- src-tauri/Cargo.lock | 256 +--------------------------- src-tauri/Cargo.toml | 3 - src-tauri/capabilities/default.json | 2 - src-tauri/src/lib.rs | 3 - 4 files changed, 8 insertions(+), 256 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index e8116f05..e4c86d0a 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -309,18 +309,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - -[[package]] -name = "cfg_aliases" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" - [[package]] name = "chrono" version = "0.4.45" @@ -555,12 +543,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "debug_print" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f215f9b7224f49fb73256115331f677d868b34d18b65dbe4db392e6021eea90" - [[package]] name = "deranged" version = "0.5.8" @@ -714,12 +696,6 @@ dependencies = [ "tendril", ] -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - [[package]] name = "dpi" version = "0.1.2" @@ -741,11 +717,8 @@ dependencies = [ "tauri-build", "tauri-plugin-dialog", "tauri-plugin-fs", - "tauri-plugin-os", - "tauri-plugin-pty", "tauri-plugin-shell", "tauri-plugin-store", - "tauri-plugin-tcp", "tauri-plugin-window-state", "tokio", ] @@ -794,9 +767,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" [[package]] name = "embed-resource" @@ -809,7 +782,7 @@ dependencies = [ "rustc_version", "toml 1.1.3+spec-1.1.0", "vswhom", - "winreg 0.55.0", + "winreg", ] [[package]] @@ -879,17 +852,6 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "filedescriptor" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" -dependencies = [ - "libc", - "thiserror 1.0.69", - "winapi", -] - [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -1134,16 +1096,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix", - "windows-link 0.2.1", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -1453,7 +1405,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.5", + "socket2", "tokio", "tower-service", "tracing", @@ -1776,12 +1728,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - [[package]] name = "libappindicator" version = "0.9.0" @@ -1978,15 +1924,16 @@ dependencies = [ [[package]] name = "neli" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f9786d56d972959e1408b6a93be6af13b9c1392036c5c1fafa08a1b0c6ee87" +checksum = "6b152f4f18819e638ea350a740b16de75099302b5ec3a58f4f8766ef2fcf695d" dependencies = [ "bitflags 2.13.1", "byteorder", "derive_builder", "getset", "libc", + "linux-raw-sys", "log", "neli-proc-macros", "parking_lot", @@ -2011,30 +1958,6 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" -[[package]] -name = "nix" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" -dependencies = [ - "bitflags 2.13.1", - "cfg-if", - "cfg_aliases 0.1.1", - "libc", -] - -[[package]] -name = "nix" -version = "0.31.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" -dependencies = [ - "bitflags 2.13.1", - "cfg-if", - "cfg_aliases 0.2.2", - "libc", -] - [[package]] name = "num-conv" version = "0.2.2" @@ -2291,22 +2214,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "os_info" -version = "3.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf20a545b305cf1da722b236b5155c9bb35f1d5ceb28c048bd96ca842f41b5b" -dependencies = [ - "android_system_properties", - "log", - "nix 0.31.3", - "objc2", - "objc2-foundation", - "objc2-ui-kit", - "serde", - "windows-sys 0.61.2", -] - [[package]] name = "os_pipe" version = "1.2.3" @@ -2475,29 +2382,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "portable-pty" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a596a2b3d2752d94f51fac2d4a96737b8705dddd311a32b9af47211f08671e" -dependencies = [ - "anyhow", - "bitflags 1.3.2", - "downcast-rs", - "filedescriptor", - "lazy_static", - "libc", - "log", - "nix 0.28.0", - "serde", - "serde_derive", - "serial2", - "shared_library", - "shell-words", - "winapi", - "winreg 0.10.1", -] - [[package]] name = "potential_utf" version = "0.1.5" @@ -2759,19 +2643,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustix" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" -dependencies = [ - "bitflags 2.13.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.61.2", -] - [[package]] name = "rustversion" version = "1.0.23" @@ -3000,17 +2871,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "serial2" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eb6ea5562eeaed6936b8b54e086aa0f88b9e5b1bef45beb038e2519fa1185b1" -dependencies = [ - "cfg-if", - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "serialize-to-javascript" version = "0.1.2" @@ -3064,22 +2924,6 @@ dependencies = [ "windows-sys 0.60.2", ] -[[package]] -name = "shared_library" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" -dependencies = [ - "lazy_static", - "libc", -] - -[[package]] -name = "shell-words" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" - [[package]] name = "shlex" version = "2.0.1" @@ -3141,16 +2985,6 @@ version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.5" @@ -3308,15 +3142,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "sys-locale" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" -dependencies = [ - "libc", -] - [[package]] name = "system-deps" version = "6.2.2" @@ -3558,37 +3383,6 @@ dependencies = [ "url", ] -[[package]] -name = "tauri-plugin-os" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8f08346c8deb39e96f86973da0e2d76cbb933d7ac9b750f6dc4daf955a6f997" -dependencies = [ - "gethostname", - "log", - "os_info", - "serde", - "serde_json", - "serialize-to-javascript", - "sys-locale", - "tauri", - "tauri-plugin", - "thiserror 2.0.19", -] - -[[package]] -name = "tauri-plugin-pty" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da8233d3c7b3581ff7da274d32b9145396da9d68bd16cedbbcb9a6908438be6" -dependencies = [ - "portable-pty", - "serde", - "serde_json", - "tauri", - "tauri-plugin", -] - [[package]] name = "tauri-plugin-shell" version = "2.3.5" @@ -3626,22 +3420,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tauri-plugin-tcp" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e732ea5ae6cbd8bfba66febef9aee6049312b98616fe0d4888c6467c36deb55a" -dependencies = [ - "debug_print", - "lazy_static", - "serde", - "socket2 0.5.10", - "tauri", - "tauri-plugin", - "thiserror 1.0.69", - "tokio", -] - [[package]] name = "tauri-plugin-window-state" version = "2.4.1" @@ -3873,7 +3651,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.5", + "socket2", "tokio-macros", "windows-sys 0.61.2", ] @@ -4664,15 +4442,6 @@ dependencies = [ "windows-targets 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.59.0" @@ -4928,15 +4697,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - [[package]] name = "winreg" version = "0.55.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 32684847..3d13f554 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -24,13 +24,10 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" tauri-plugin-dialog = "2" tauri-plugin-fs = "2" -tauri-plugin-tcp = "0.1.1" tokio = { version = "1.45.1", features = ["full"] } tauri-plugin-store = "2" local-ip-address = "0.6.5" ipnet = "2.11.0" -tauri-plugin-pty = "0.2.0" -tauri-plugin-os = "2" [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] tauri-plugin-window-state = "2" diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index b09dc982..859c5cb9 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -50,13 +50,11 @@ } ] }, - "pty:allow-spawn", "pty:default", "shell:allow-stdin-write", "shell:allow-open", "dialog:default", "fs:default", "fs:write-all", - "tcp:default", "store:default", "fs:allow-read-dir", "fs:allow-write", diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 434d72d6..1114352f 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -33,14 +33,11 @@ async fn get_server_addrs() -> Vec { #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() - .plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_store::Builder::new().build()) .plugin(tauri_plugin_window_state::Builder::new().build()) .plugin(tauri_plugin_fs::init()) .plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_shell::init()) - .plugin(tauri_plugin_tcp::init()) - .plugin(tauri_plugin_pty::init()) .invoke_handler(tauri::generate_handler![version, get_server_addrs]) .run(tauri::generate_context!()) .expect("error while running tauri application"); From d3b13cf22c46c0f0d123720872d1bdca9b3df0c2 Mon Sep 17 00:00:00 2001 From: kmotso434 Date: Tue, 3 Nov 2026 16:16:49 +0900 Subject: [PATCH 5/7] fix: Remove unneccessary try catch in port service function --- src/services/PortService.ts | 105 ++++++++++++------------------------ 1 file changed, 35 insertions(+), 70 deletions(-) diff --git a/src/services/PortService.ts b/src/services/PortService.ts index 6865d08a..ac0a7a37 100644 --- a/src/services/PortService.ts +++ b/src/services/PortService.ts @@ -20,16 +20,12 @@ export type Port = { }; async function sendDrivercomCommand(args: string[]): Promise { - try { - const drivercom = Command.sidecar("binaries/drivercom", args); - const output = await drivercom.execute(); - if (output.stderr.length > 0) { - throw output.stderr; - } - return output.stdout; - } catch (e) { - throw e as string; + const drivercom = Command.sidecar("binaries/drivercom", args); + const output = await drivercom.execute(); + if (output.stderr.length > 0) { + throw output.stderr; } + return output.stdout; } export async function detectPort(): Promise { @@ -155,83 +151,52 @@ export async function startLogging( } export async function getCclinkSpeenEnum() { - try { - const output = await sendDrivercomCommand([`config.cc_link_speed.list`]); - const parseOutput = output - .replaceAll("[", "") - .replaceAll("]", "") - .split(":"); - const cclinkSpeed = parseOutput[1] - .split(",") - .filter((value) => value !== "\n"); - setCclinkSpeed(cclinkSpeed); - } catch (e) { - throw e as string; - } + const output = await sendDrivercomCommand([`config.cc_link_speed.list`]); + const parseOutput = output.replaceAll("[", "").replaceAll("]", "").split(":"); + const cclinkSpeed = parseOutput[1] + .split(",") + .filter((value) => value !== "\n"); + setCclinkSpeed(cclinkSpeed); } export async function getConfigDescription() { - try { - const output = await sendDrivercomCommand([`config.info`]); - const desc = JSON5.parse(output); - setConfigDescription(desc); - } catch (e) { - throw e as string; - } + const output = await sendDrivercomCommand([`config.info`]); + const desc = JSON5.parse(output); + setConfigDescription(desc); } export async function getLogConfigDescription() { - try { - const output = await sendDrivercomCommand([`log.info`]); - const desc = JSON5.parse(output); - setLogConfigDescription(desc); - } catch (e) { - throw e as string; - } + const output = await sendDrivercomCommand([`log.info`]); + const desc = JSON5.parse(output); + setLogConfigDescription(desc); } async function getTuneConfig(): Promise { - try { - const output = await sendDrivercomCommand([`config.empty.tune`]); - const tuneConfig: ConfigTuneType = JSON5.parse(output); - return tuneConfig; - } catch (e) { - throw e as string; - } + const output = await sendDrivercomCommand([`config.empty.tune`]); + const tuneConfig: ConfigTuneType = JSON5.parse(output); + return tuneConfig; } async function getCalibrationConfig(): Promise { - try { - const output = await sendDrivercomCommand([`config.empty.calibration`]); - const calConfig: ConfigCalibrationType = JSON5.parse(output); - return calConfig; - } catch (e) { - throw e as string; - } + const output = await sendDrivercomCommand([`config.empty.calibration`]); + const calConfig: ConfigCalibrationType = JSON5.parse(output); + return calConfig; } async function getSystemConfig(): Promise { - try { - const output = await sendDrivercomCommand([`config.empty.system`]); - const systemConfig: ConfigSystemType = JSON5.parse(output); - return systemConfig; - } catch (e) { - throw e as string; - } + const output = await sendDrivercomCommand([`config.empty.system`]); + const systemConfig: ConfigSystemType = JSON5.parse(output); + return systemConfig; } export async function prepareConfigTabFormat() { - try { - const tuneConfig = await getTuneConfig(); - const calConfig = await getCalibrationConfig(); - const systemConfig = await getSystemConfig(); - const config = { - system: systemConfig, - tune: tuneConfig, - calibration: calConfig, - }; - setConfigTabForm(config); - } catch (e) { - throw e as string; - } + const tuneConfig = await getTuneConfig(); + const calConfig = await getCalibrationConfig(); + const systemConfig = await getSystemConfig(); + const config = { + system: systemConfig, + tune: tuneConfig, + calibration: calConfig, + }; + setConfigTabForm(config); } From ee4e1c1fb3eb9a0623669b7dd40dc4b6a78d3072 Mon Sep 17 00:00:00 2001 From: kmotso434 Date: Tue, 3 Nov 2026 17:44:50 +0900 Subject: [PATCH 6/7] fix: Seperate create tab function in tab factory --- src/App.tsx | 397 +++++++++------------- src/pages/Configuration/Configuration.tsx | 69 +--- src/pages/LogViewer/LogViewer.tsx | 77 +---- src/pages/Logging/Logging.tsx | 39 +-- src/services/TabFactory.ts | 132 +++++++ 5 files changed, 318 insertions(+), 396 deletions(-) create mode 100644 src/services/TabFactory.ts diff --git a/src/App.tsx b/src/App.tsx index a833c1c1..4cf89da3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -61,11 +61,6 @@ import { ConfigType, } from "src-tauri/generated/config/ConfigType.tsx"; import { getCurrentWebview } from "@tauri-apps/api/webview"; -import { - AccordionStates, - GainLockStates, - LinkStates, -} from "~/pages/Configuration/ConfigForm/ConfigForm.tsx"; import { TabContext } from "~/components/Tab/TabList.tsx"; import { FileHandler } from "./services/FileHandler.ts"; import { Toaster } from "./components/ui/toast.tsx"; @@ -85,6 +80,12 @@ import { getLogConfigDescription, prepareConfigTabFormat, } from "./services/PortService.ts"; +import { + createNewTab, + generateNewConfigTab, + generateNewLoggingTab, + generateNewLogViewerTab, +} from "./services/TabFactory.ts"; type PageMeta = { icon: ValidComponent; @@ -269,251 +270,169 @@ function App(props: RouteSectionProps) { } const file = new FileHandler(); - if (page() !== Pages.Monitoring) { - if (pageKeys.has(page())) { - const panelKey = pageKeys.get(page()); - const clientPosition = event.payload.position; - const logicalX = clientPosition.x / scaleFactor; - const logicalY = clientPosition.y / scaleFactor; - - if (panelKey && panelStore.has(panelKey)) { - const panels = panelStore.get(panelKey)![0](); - let tabStoreKey = ""; - let fileDropPanel = ""; - let panelIndex: number | null = null; - for (let i = 0; i < panels.length; i++) { - const currentPanelId = panels[i].id; - const element = document.getElementById( - `tabs:${currentPanelId}`, - ); - - if (element) { - const clientRect = element.getBoundingClientRect(); - const top = clientRect.top; - const bottom = clientRect.bottom; - const left = clientRect.left; - const right = clientRect.right; - const widthQuarter = clientRect.width * 0.25; - const leftArea = left + widthQuarter; - const rightArea = right - widthQuarter; - - if (top < logicalY && logicalY < bottom) { - const currentTabLength = - tabStore.get(currentPanelId)![0].tabContext.length; - - if (left < logicalX && logicalX < leftArea) { - if (currentTabLength < 1 && panels.length === 1) { - tabStoreKey = currentPanelId; - } else { - panelIndex = i; - tabStoreKey = crypto.randomUUID(); - } - fileDropPanel = currentPanelId; - break; - } else if ( - leftArea <= logicalX && - logicalX <= rightArea - ) { + if (pageKeys.has(page())) { + const panelKey = pageKeys.get(page()); + const clientPosition = event.payload.position; + const logicalX = clientPosition.x / scaleFactor; + const logicalY = clientPosition.y / scaleFactor; + + if (panelKey && panelStore.has(panelKey)) { + const panels = panelStore.get(panelKey)![0](); + let tabStoreKey = ""; + let fileDropPanel = ""; + let panelIndex: number | null = null; + for (let i = 0; i < panels.length; i++) { + const currentPanelId = panels[i].id; + const element = document.getElementById( + `tabs:${currentPanelId}`, + ); + + if (element) { + const clientRect = element.getBoundingClientRect(); + const top = clientRect.top; + const bottom = clientRect.bottom; + const left = clientRect.left; + const right = clientRect.right; + const widthQuarter = clientRect.width * 0.25; + const leftArea = left + widthQuarter; + const rightArea = right - widthQuarter; + + if (top < logicalY && logicalY < bottom) { + const currentTabLength = + tabStore.get(currentPanelId)![0].tabContext.length; + + if (left < logicalX && logicalX < leftArea) { + if (currentTabLength < 1 && panels.length === 1) { + tabStoreKey = currentPanelId; + } else { + panelIndex = i; + tabStoreKey = crypto.randomUUID(); + } + fileDropPanel = currentPanelId; + break; + } else if (leftArea <= logicalX && logicalX <= rightArea) { + tabStoreKey = currentPanelId; + fileDropPanel = currentPanelId; + break; + } else if (rightArea < logicalX && logicalX < right) { + if (currentTabLength < 1 && panels.length === 1) { tabStoreKey = currentPanelId; - fileDropPanel = currentPanelId; - break; - } else if (rightArea < logicalX && logicalX < right) { - if (currentTabLength < 1 && panels.length === 1) { - tabStoreKey = currentPanelId; - } else { - panelIndex = i + 1; - tabStoreKey = crypto.randomUUID(); - } - fileDropPanel = currentPanelId; - break; + } else { + panelIndex = i + 1; + tabStoreKey = crypto.randomUUID(); } + fileDropPanel = currentPanelId; + break; } } } + } - panelStore.get(panelKey)![1]((prev) => - prev.map((panel) => { - if (panel.id === fileDropPanel) { - return { ...panel, isDragLeave: true }; - } else { - return panel; - } - }), - ); - - if (tabStoreKey.length > 0) { - const id = crypto.randomUUID(); - const filePath = event.payload.paths[0].replaceAll("\\", "/"); - const parseFileName = filePath.split("/").pop()!; - const fileExtentionStartIndex = - parseFileName.lastIndexOf("."); - const tabName = parseFileName.slice( - 0, - fileExtentionStartIndex, - ); - - let newTab: TabContext | null = null; - if (page() === Pages.Configuration) { - if (!event.payload.paths[0].endsWith("json5")) { - toaster.create({ - title: "Invalid File", - description: "Invalid file extension.", - type: "error", - }); - return; - } - const accordionStatuses: AccordionStates = new Map(); - const linkedStatuses: LinkStates = new Map(); - const gainLockStatuses: GainLockStates = new Map(); - const formOverflowY: Map = new Map(); - - try { - const newForm = await file.readFile( - event.payload.paths[0], - JSON5.parse(JSON5.stringify(configFormFileFormat())), - ); - - newTab = { - tab: { - id: id, - tabName: tabName!, - }, - tabPage: { - configTabPage: { - filePath: filePath, - portId: "", - configForm: newForm as ConfigType, - configAccordionStatuses: accordionStatuses, - configLinkedStatuses: linkedStatuses, - configGainLockStatuses: gainLockStatuses, - formName: tabName, - originalFile: JSON5.parse(JSON5.stringify(newForm)), - formOverflowY: formOverflowY, - }, - logViewerTabPage: null, - loggingTabPage: null, - }, - }; - } catch { - toaster.create({ - title: "Invalid File", - description: "Invalid file format.", - type: "error", - }); - return; - } - } else if (page() === Pages.LogViewer) { - if (!event.payload.paths[0].endsWith("csv")) { - toaster.create({ - title: "Invalid File", - description: "Invalid file extension.", - type: "error", - }); - return; - } - newTab = { - tab: { - id: id, - tabName: tabName!, - }, - tabPage: { - logViewerTabPage: { - filePath: filePath, - plotSplitIndex: [], - plotContext: [], - plotXScale: [0, 0], - }, - configTabPage: null, - loggingTabPage: null, - }, - }; - } else if (page() === Pages.Logging) { - if (!event.payload.paths[0].endsWith("json5")) { - toaster.create({ - title: "Invalid File", - description: "Invalid file extension.", - type: "error", - }); - return; - } - try { - const logConfig = await file.readFile( - event.payload.paths[0], - logFormFileFormat(), - ); - const accordionStatuses: AccordionStates = new Map(); - - newTab = { - tab: { - id: id, - tabName: tabName!, - }, - tabPage: { - loggingTabPage: { - title: event.payload.paths[0] - .replaceAll("\\", "/") - .match(/[^?!//]+$/!)! - .toString() - .split(".") - .shift()!, - filePath: event.payload.paths[0].replaceAll( - "\\", - "/", - ), - logConfig: logConfig as LogConfigType, - originalFile: JSON5.parse( - JSON5.stringify(logConfig), - ), - portId: "", - accordionStates: accordionStatuses, - }, - configTabPage: null, - logViewerTabPage: null, - }, - }; - } catch { - toaster.create({ - title: "Invalid File", - description: "Invalid file format.", - type: "error", - }); - } + panelStore.get(panelKey)![1]((prev) => + prev.map((panel) => { + if (panel.id === fileDropPanel) { + return { ...panel, isDragLeave: true }; + } else { + return panel; } + }), + ); + + if (tabStoreKey.length > 0) { + const filePath = event.payload.paths[0].replaceAll("\\", "/"); + let newTab: TabContext | null = null; + if (page() === Pages.Configuration) { + if (!event.payload.paths[0].endsWith("json5")) { + toaster.create({ + title: "Invalid File", + description: "Invalid file extension.", + type: "error", + }); + return; + } + try { + const newForm = await file.readFile( + event.payload.paths[0], + JSON5.parse(JSON5.stringify(configFormFileFormat())), + ); + newTab = generateNewConfigTab( + filePath, + newForm as ConfigType, + ); + } catch { + toaster.create({ + title: "Invalid File", + description: "Invalid file format.", + type: "error", + }); + return; + } + } else if (page() === Pages.LogViewer) { + if (!event.payload.paths[0].endsWith("csv")) { + toaster.create({ + title: "Invalid File", + description: "Invalid file extension.", + type: "error", + }); + return; + } + newTab = generateNewLogViewerTab(filePath); + } else if (page() === Pages.Logging) { + if (!event.payload.paths[0].endsWith("json5")) { + toaster.create({ + title: "Invalid File", + description: "Invalid file extension.", + type: "error", + }); + return; + } + try { + const logConfig = await file.readFile( + event.payload.paths[0], + logFormFileFormat(), + ); + newTab = generateNewLoggingTab( + filePath, + logConfig as LogConfigType, + ); + } catch { + toaster.create({ + title: "Invalid File", + description: "Invalid file format.", + type: "error", + }); + } + } - if (tabStore.has(tabStoreKey)) { - if (newTab) { - const tabCtx = tabStore.get(tabStoreKey)!; - tabCtx[1]({ - tabContext: [...tabCtx[0].tabContext, newTab], + if (tabStore.has(tabStoreKey)) { + if (newTab) { + createNewTab(tabStoreKey, newTab); + } + } else { + if (newTab) { + tabStore.set( + tabStoreKey, + createStore({ focusedTab: newTab.tab.id, - }); - } - } else { - if (newTab) { - tabStore.set( - tabStoreKey, - createStore({ - focusedTab: newTab.tab.id, - tabContext: [newTab], - }), - ); - } + tabContext: [newTab], + }), + ); + } - if (panelIndex !== null) { - panelStore.get(panelKey)![1]((prev) => { - const newSize = 100 / (prev.length + 1); - const changeSize = prev.map((panel) => { - return { ...panel, size: newSize }; - }); - const newPanel = { id: tabStoreKey, size: newSize }; - const updatePanels = [ - ...changeSize.slice(0, panelIndex), - newPanel, - ...changeSize.slice(panelIndex), - ]; - return updatePanels; + if (panelIndex !== null) { + panelStore.get(panelKey)![1]((prev) => { + const newSize = 100 / (prev.length + 1); + const changeSize = prev.map((panel) => { + return { ...panel, size: newSize }; }); - } + const newPanel = { id: tabStoreKey, size: newSize }; + const updatePanels = [ + ...changeSize.slice(0, panelIndex), + newPanel, + ...changeSize.slice(panelIndex), + ]; + return updatePanels; + }); } } } diff --git a/src/pages/Configuration/Configuration.tsx b/src/pages/Configuration/Configuration.tsx index c13c5f75..3f788cc8 100644 --- a/src/pages/Configuration/Configuration.tsx +++ b/src/pages/Configuration/Configuration.tsx @@ -1,5 +1,4 @@ import { - configFormFileFormat, Pages, pageKeys, tabStore, @@ -11,22 +10,12 @@ import { PanelLayout, PanelSizeContext, } from "~/components/Panel/PanelLayout.tsx"; -import { - TabContext, - TabList, - TabListContext, -} from "~/components/Tab/TabList.tsx"; +import { TabList, TabListContext } from "~/components/Tab/TabList.tsx"; import { ConfigTabContent } from "./ConfigTabContent.tsx"; -import { - AccordionStates, - GainLockStates, - LinkStates, -} from "~/pages/Configuration/ConfigForm/ConfigForm.tsx"; import { createEffect, createSignal, on, onMount, Show } from "solid-js"; import { createStore } from "solid-js/store"; import { load } from "@tauri-apps/plugin-store"; -import { ConfigType } from "src-tauri/generated/config/ConfigType.tsx"; -import JSON5 from "json5"; +import { createNewTab, generateNewConfigTab } from "~/services/TabFactory.ts"; function Configuration() { const [render, setRender] = createSignal(false); @@ -46,53 +35,15 @@ function Configuration() { panelStoreKey, createStore({ tabContext: [], focusedTab: "" }), ); - createNewTab(panelStoreKey, configFormFileFormat(), "New File"); + createNewConfigTab(panelStoreKey); } setRender(true); }); - const createNewTab = ( - key: string, - form: ConfigType, - formName: string, - portId?: string, - filePath?: string, - ) => { + const createNewConfigTab = (key: string) => { setRender(false); - const id = crypto.randomUUID(); - const accordionStatuses: AccordionStates = new Map(); - const linkedStatuses: LinkStates = new Map(); - const gainLockStatuses: GainLockStates = new Map(); - const formOverflowY: Map = new Map(); - const newForm = JSON.parse(JSON.stringify(form)); - const newTab = { - tab: { - id: id, - tabName: formName, - }, - tabPage: { - configTabPage: { - filePath: filePath ? filePath : "", - portId: portId ? portId : "", - configForm: newForm, - configAccordionStatuses: accordionStatuses, - configLinkedStatuses: linkedStatuses, - configGainLockStatuses: gainLockStatuses, - originalFile: JSON.parse(JSON.stringify(form)), - formOverflowY: formOverflowY, - focusedTab: `system`, - showTreeView: true, - treeViewExpandedValue: [] as string[], - showDriverStatus: true, - }, - }, - } as TabContext; - - if (tabStore.has(key)) { - const tabCtx = tabStore.get(key)!; - tabCtx[1]("tabContext", tabCtx[0].tabContext.length, newTab); - tabCtx[1]("focusedTab", newTab.tab.id); - } + const newConfigTab = generateNewConfigTab(); + createNewTab(key, newConfigTab); setRender(true); }; @@ -127,13 +78,7 @@ function Configuration() { { - createNewTab( - tabStoreKey, - JSON5.parse( - JSON5.stringify(configFormFileFormat()), - ) as ConfigType, - "New File", - ); + createNewConfigTab(tabStoreKey); }} > diff --git a/src/pages/LogViewer/LogViewer.tsx b/src/pages/LogViewer/LogViewer.tsx index bc8b2ec4..ac52f9bd 100644 --- a/src/pages/LogViewer/LogViewer.tsx +++ b/src/pages/LogViewer/LogViewer.tsx @@ -1,32 +1,26 @@ import { Panel } from "~/components/Panel/Panel"; import { PanelLayout } from "~/components/Panel/PanelLayout"; -import { TabContext, TabList } from "~/components/Tab/TabList"; -import { Pages, tabStore } from "~/store/GlobalState"; +import { TabList } from "~/components/Tab/TabList"; +import { Pages } from "~/store/GlobalState"; import { LogViewerTabPageContent } from "./LogViewerTabPageContent"; -import { open } from "@tauri-apps/plugin-dialog"; import { toaster } from "~/components/ui/toast.tsx"; +import { FileHandler } from "~/services/FileHandler"; +import { createNewTab, generateNewLogViewerTab } from "~/services/TabFactory"; function LogViewer() { - async function openFileDialog(): Promise<{ - id: string; - filePath: string; - } | null> { - const path = await open({ - multiple: false, - filters: [{ name: "CSV", extensions: ["csv"] }], - }); - - if (!path) { - return null; - } - - const extensions = path.slice(path.length - 4, path.length); - if (extensions !== ".csv") { - return null; + const fileHandler = new FileHandler(); + async function createLogViewerTab(key: string) { + try { + const filePath = await fileHandler.openFileDialog("csv"); + const newTab = generateNewLogViewerTab(filePath); + createNewTab(key, newTab); + } catch (e) { + toaster.create({ + title: "Log viewer tab failed", + description: e as string, + type: "error", + }); } - - const tabId = crypto.randomUUID(); - return { id: tabId, filePath: path.replaceAll("\\", "/") }; } return ( @@ -35,44 +29,7 @@ function LogViewer() { { - const newTabInfo = await openFileDialog(); - if (!newTabInfo) { - toaster.create({ - title: "Invalid File", - description: "The file is invalid.", - type: "error", - }); - return; - } - - const newTab: TabContext = { - tab: { - id: newTabInfo.id, - tabName: newTabInfo.filePath - .replaceAll("\\", "/") - .match(/[^?!//]+$/!)! - .toString() - .slice(0, -4) as string, - }, - tabPage: { - logViewerTabPage: { - filePath: newTabInfo.filePath.replaceAll("\\", "/"), - plotSplitIndex: [], - plotContext: [], - plotXScale: [0, 0], - }, - configTabPage: null, - loggingTabPage: null, - }, - }; - - if (tabStore.has(key)) { - const tabCtx = tabStore.get(key)!; - tabCtx[1]({ - tabContext: [...tabCtx[0].tabContext, newTab], - focusedTab: newTab.tab.id, - }); - } + await createLogViewerTab(key); }} > diff --git a/src/pages/Logging/Logging.tsx b/src/pages/Logging/Logging.tsx index 01b79000..bde0333b 100644 --- a/src/pages/Logging/Logging.tsx +++ b/src/pages/Logging/Logging.tsx @@ -1,5 +1,4 @@ import { - logFormFileFormat, Pages, pageKeys, panelStore, @@ -14,17 +13,13 @@ import { PanelSizeContext, } from "~/components/Panel/PanelLayout.tsx"; import { createStore } from "solid-js/store"; -import { - TabContext, - TabList, - TabListContext, -} from "~/components/Tab/TabList.tsx"; +import { TabList, TabListContext } from "~/components/Tab/TabList.tsx"; import { Panel } from "~/components/Panel/Panel.tsx"; import { LoggingTabContent } from "./LoggingTabContent.tsx"; -import JSON5 from "json5"; import { load } from "@tauri-apps/plugin-store"; import { LogConfigType } from "src-tauri/generated/config/LogConfigType.tsx"; import { AccordionStates } from "../Configuration/ConfigForm/ConfigForm.tsx"; +import { createNewTab, generateNewLoggingTab } from "~/services/TabFactory.ts"; export type LoggingFormType = { title: string; @@ -61,34 +56,8 @@ export function Logging() { }); const createLoggingTab = (key: string) => { - const id = crypto.randomUUID(); - const accordionStates: AccordionStates = new Map(); - const newTab: TabContext = { - tab: { - id: id, - tabName: "New file", - }, - tabPage: { - loggingTabPage: { - title: "No port", - portId: "", - logConfig: JSON5.parse(JSON5.stringify(logFormFileFormat())), - originalFile: JSON5.parse(JSON5.stringify(logFormFileFormat())), - filePath: "", - accordionStates: accordionStates, - }, - configTabPage: null, - logViewerTabPage: null, - }, - }; - - if (tabStore.has(key)) { - const tabCtx = tabStore.get(key)!; - tabCtx[1]("tabContext", tabCtx[0].tabContext.length, newTab); - setTimeout(() => { - tabCtx[1]("focusedTab", newTab.tab.id); - }); - } + const newLoggingTab = generateNewLoggingTab(); + createNewTab(key, newLoggingTab); setRender(true); }; diff --git a/src/services/TabFactory.ts b/src/services/TabFactory.ts new file mode 100644 index 00000000..8e6a28eb --- /dev/null +++ b/src/services/TabFactory.ts @@ -0,0 +1,132 @@ +import { TabContext } from "~/components/Tab/TabList"; +import { + AccordionStates, + GainLockStates, + LinkStates, +} from "~/pages/Configuration/ConfigForm/ConfigForm"; +import { configFormFileFormat, tabStore } from "~/store/GlobalState"; +import JSON5 from "json5"; +import { logFormFileFormat } from "~/store/GlobalState"; +import { ConfigType } from "src-tauri/generated/config/ConfigType"; +import { LogConfigType } from "src-tauri/generated/config/LogConfigType"; + +export function createNewTab(key: string, newTab: TabContext) { + if (tabStore.has(key)) { + const tabCtx = tabStore.get(key)!; + tabCtx[1]("tabContext", tabCtx[0].tabContext.length, newTab); + setTimeout(() => { + tabCtx[1]("focusedTab", newTab.tab.id); + }); + } +} + +export function generateNewLoggingTab( + filePath?: string, + newLogConfigFormat?: LogConfigType, +) { + const id = crypto.randomUUID(); + const accordionStates: AccordionStates = new Map(); + const newTab: TabContext = { + tab: { + id: id, + tabName: filePath + ? filePath + .replaceAll("\\", "/") + .match(/[^?!//]+$/!)! + .toString() + .split(".") + .slice(0, -1) + .join(".") + : "New File", + }, + tabPage: { + loggingTabPage: { + title: "No port", + portId: "", + logConfig: JSON5.parse( + JSON5.stringify(newLogConfigFormat ?? logFormFileFormat()), + ), + originalFile: JSON5.parse( + JSON5.stringify(newLogConfigFormat ?? logFormFileFormat()), + ), + filePath: filePath ?? "", + accordionStates: accordionStates, + }, + configTabPage: null, + logViewerTabPage: null, + }, + }; + return newTab; +} + +export function generateNewLogViewerTab(filePath: string) { + const id = crypto.randomUUID(); + const newTab: TabContext = { + tab: { + id: id, + tabName: filePath + .replaceAll("\\", "/") + .match(/[^?!//]+$/!)! + .toString() + .slice(0, -4) as string, + }, + tabPage: { + logViewerTabPage: { + filePath: filePath.replaceAll("\\", "/"), + plotSplitIndex: [], + plotContext: [], + plotXScale: [0, 0], + }, + configTabPage: null, + loggingTabPage: null, + }, + }; + return newTab; +} + +export function generateNewConfigTab( + filePath?: string, + configFormat?: ConfigType, +) { + const id = crypto.randomUUID(); + const accordionStatuses: AccordionStates = new Map(); + const linkedStatuses: LinkStates = new Map(); + const gainLockStatuses: GainLockStates = new Map(); + const formOverflowY: Map = new Map(); + const newForm = JSON5.parse( + JSON5.stringify(configFormat ?? configFormFileFormat()), + ) as ConfigType; + const newTab = { + tab: { + id: id, + tabName: filePath + ? filePath + .replaceAll("\\", "/") + .match(/[^?!//]+$/!)! + .toString() + .split(".") + .slice(0, -1) + .join(".") + : "New File", + }, + tabPage: { + configTabPage: { + filePath: filePath ?? "", + portId: "", + configForm: newForm, + configAccordionStatuses: accordionStatuses, + configLinkedStatuses: linkedStatuses, + configGainLockStatuses: gainLockStatuses, + originalFile: JSON5.parse( + JSON5.stringify(configFormat ?? configFormFileFormat()), + ) as ConfigType, + formOverflowY: formOverflowY, + focusedTab: `system`, + showTreeView: true, + treeViewExpandedValue: [] as string[], + showDriverStatus: true, + }, + }, + } as TabContext; + return newTab; +} From 02310b55655501f7506e6f79c227e6b773ad0909 Mon Sep 17 00:00:00 2001 From: kmotso434 Date: Tue, 3 Nov 2026 17:53:42 +0900 Subject: [PATCH 7/7] refactor: createTab -> addNewTab --- src/App.tsx | 4 ++-- src/pages/Configuration/Configuration.tsx | 4 ++-- src/pages/LogViewer/LogViewer.tsx | 4 ++-- src/pages/Logging/Logging.tsx | 4 ++-- src/services/TabFactory.ts | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 4cf89da3..1e5429cc 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -81,7 +81,7 @@ import { prepareConfigTabFormat, } from "./services/PortService.ts"; import { - createNewTab, + addNewTab, generateNewConfigTab, generateNewLoggingTab, generateNewLogViewerTab, @@ -406,7 +406,7 @@ function App(props: RouteSectionProps) { if (tabStore.has(tabStoreKey)) { if (newTab) { - createNewTab(tabStoreKey, newTab); + addNewTab(tabStoreKey, newTab); } } else { if (newTab) { diff --git a/src/pages/Configuration/Configuration.tsx b/src/pages/Configuration/Configuration.tsx index 3f788cc8..e5914237 100644 --- a/src/pages/Configuration/Configuration.tsx +++ b/src/pages/Configuration/Configuration.tsx @@ -15,7 +15,7 @@ import { ConfigTabContent } from "./ConfigTabContent.tsx"; import { createEffect, createSignal, on, onMount, Show } from "solid-js"; import { createStore } from "solid-js/store"; import { load } from "@tauri-apps/plugin-store"; -import { createNewTab, generateNewConfigTab } from "~/services/TabFactory.ts"; +import { addNewTab, generateNewConfigTab } from "~/services/TabFactory.ts"; function Configuration() { const [render, setRender] = createSignal(false); @@ -43,7 +43,7 @@ function Configuration() { const createNewConfigTab = (key: string) => { setRender(false); const newConfigTab = generateNewConfigTab(); - createNewTab(key, newConfigTab); + addNewTab(key, newConfigTab); setRender(true); }; diff --git a/src/pages/LogViewer/LogViewer.tsx b/src/pages/LogViewer/LogViewer.tsx index ac52f9bd..bbc809b0 100644 --- a/src/pages/LogViewer/LogViewer.tsx +++ b/src/pages/LogViewer/LogViewer.tsx @@ -5,7 +5,7 @@ import { Pages } from "~/store/GlobalState"; import { LogViewerTabPageContent } from "./LogViewerTabPageContent"; import { toaster } from "~/components/ui/toast.tsx"; import { FileHandler } from "~/services/FileHandler"; -import { createNewTab, generateNewLogViewerTab } from "~/services/TabFactory"; +import { addNewTab, generateNewLogViewerTab } from "~/services/TabFactory"; function LogViewer() { const fileHandler = new FileHandler(); @@ -13,7 +13,7 @@ function LogViewer() { try { const filePath = await fileHandler.openFileDialog("csv"); const newTab = generateNewLogViewerTab(filePath); - createNewTab(key, newTab); + addNewTab(key, newTab); } catch (e) { toaster.create({ title: "Log viewer tab failed", diff --git a/src/pages/Logging/Logging.tsx b/src/pages/Logging/Logging.tsx index bde0333b..f69f6e05 100644 --- a/src/pages/Logging/Logging.tsx +++ b/src/pages/Logging/Logging.tsx @@ -19,7 +19,7 @@ import { LoggingTabContent } from "./LoggingTabContent.tsx"; import { load } from "@tauri-apps/plugin-store"; import { LogConfigType } from "src-tauri/generated/config/LogConfigType.tsx"; import { AccordionStates } from "../Configuration/ConfigForm/ConfigForm.tsx"; -import { createNewTab, generateNewLoggingTab } from "~/services/TabFactory.ts"; +import { addNewTab, generateNewLoggingTab } from "~/services/TabFactory.ts"; export type LoggingFormType = { title: string; @@ -57,7 +57,7 @@ export function Logging() { const createLoggingTab = (key: string) => { const newLoggingTab = generateNewLoggingTab(); - createNewTab(key, newLoggingTab); + addNewTab(key, newLoggingTab); setRender(true); }; diff --git a/src/services/TabFactory.ts b/src/services/TabFactory.ts index 8e6a28eb..8b150be7 100644 --- a/src/services/TabFactory.ts +++ b/src/services/TabFactory.ts @@ -10,7 +10,7 @@ import { logFormFileFormat } from "~/store/GlobalState"; import { ConfigType } from "src-tauri/generated/config/ConfigType"; import { LogConfigType } from "src-tauri/generated/config/LogConfigType"; -export function createNewTab(key: string, newTab: TabContext) { +export function addNewTab(key: string, newTab: TabContext) { if (tabStore.has(key)) { const tabCtx = tabStore.get(key)!; tabCtx[1]("tabContext", tabCtx[0].tabContext.length, newTab);