diff --git a/package-lock.json b/package-lock.json index b99c6e8..4785dcd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,10 +8,6 @@ "name": "balistics-builder", "version": "0.2.0", "dependencies": { - "@chakra-ui/form-control": "^2.2.0", - "@chakra-ui/next-js": "^2.4.2", - "@chakra-ui/react": "^3.1.2", - "@chakra-ui/toast": "^7.0.2", "@emotion/react": "^11.13.5", "@emotion/styled": "^11.13.5", "@headlessui/react": "^2.2.0", @@ -66,68 +62,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ark-ui/react": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@ark-ui/react/-/react-4.4.3.tgz", - "integrity": "sha512-Prd5EWcyL5PIigl8H70acVacL+Abl0l9gFw0sRNAZ9+3cGaXPhL4ol3s3AW9MU811ZAESU1xifsrwMyhpmcgmg==", - "license": "MIT", - "dependencies": { - "@internationalized/date": "3.5.6", - "@zag-js/accordion": "0.77.1", - "@zag-js/anatomy": "0.77.1", - "@zag-js/auto-resize": "0.77.1", - "@zag-js/avatar": "0.77.1", - "@zag-js/carousel": "0.77.1", - "@zag-js/checkbox": "0.77.1", - "@zag-js/clipboard": "0.77.1", - "@zag-js/collapsible": "0.77.1", - "@zag-js/collection": "0.77.1", - "@zag-js/color-picker": "0.77.1", - "@zag-js/color-utils": "0.77.1", - "@zag-js/combobox": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/date-picker": "0.77.1", - "@zag-js/date-utils": "0.77.1", - "@zag-js/dialog": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/editable": "0.77.1", - "@zag-js/file-upload": "0.77.1", - "@zag-js/file-utils": "0.77.1", - "@zag-js/highlight-word": "0.77.1", - "@zag-js/hover-card": "0.77.1", - "@zag-js/i18n-utils": "0.77.1", - "@zag-js/menu": "0.77.1", - "@zag-js/number-input": "0.77.1", - "@zag-js/pagination": "0.77.1", - "@zag-js/pin-input": "0.77.1", - "@zag-js/popover": "0.77.1", - "@zag-js/presence": "0.77.1", - "@zag-js/progress": "0.77.1", - "@zag-js/qr-code": "0.77.1", - "@zag-js/radio-group": "0.77.1", - "@zag-js/rating-group": "0.77.1", - "@zag-js/react": "0.77.1", - "@zag-js/select": "0.77.1", - "@zag-js/signature-pad": "0.77.1", - "@zag-js/slider": "0.77.1", - "@zag-js/splitter": "0.77.1", - "@zag-js/steps": "0.77.1", - "@zag-js/switch": "0.77.1", - "@zag-js/tabs": "0.77.1", - "@zag-js/tags-input": "0.77.1", - "@zag-js/time-picker": "0.77.1", - "@zag-js/timer": "0.77.1", - "@zag-js/toast": "0.77.1", - "@zag-js/toggle-group": "0.77.1", - "@zag-js/tooltip": "0.77.1", - "@zag-js/tree-view": "0.77.1", - "@zag-js/types": "0.77.1" - }, - "peerDependencies": { - "react": ">=18.0.0", - "react-dom": ">=18.0.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", @@ -259,345 +193,6 @@ "node": ">=6.9.0" } }, - "node_modules/@chakra-ui/alert": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.2.2.tgz", - "integrity": "sha512-jHg4LYMRNOJH830ViLuicjb3F+v6iriE/2G5T+Sd0Hna04nukNJ1MxUmBPE+vI22me2dIflfelu2v9wdB6Pojw==", - "license": "MIT", - "dependencies": { - "@chakra-ui/icon": "3.2.0", - "@chakra-ui/react-context": "2.1.0", - "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/spinner": "2.1.0" - }, - "peerDependencies": { - "@chakra-ui/system": ">=2.0.0", - "react": ">=18" - } - }, - "node_modules/@chakra-ui/anatomy": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.2.2.tgz", - "integrity": "sha512-MV6D4VLRIHr4PkW4zMyqfrNS1mPlCTiCXwvYGtDFQYr+xHFfonhAuf9WjsSc0nyp2m0OdkSLnzmVKkZFLo25Tg==", - "license": "MIT" - }, - "node_modules/@chakra-ui/close-button": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-2.1.1.tgz", - "integrity": "sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==", - "license": "MIT", - "dependencies": { - "@chakra-ui/icon": "3.2.0" - }, - "peerDependencies": { - "@chakra-ui/system": ">=2.0.0", - "react": ">=18" - } - }, - "node_modules/@chakra-ui/color-mode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-2.2.0.tgz", - "integrity": "sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@chakra-ui/react-use-safe-layout-effect": "2.1.0" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/form-control": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.2.0.tgz", - "integrity": "sha512-wehLC1t4fafCVJ2RvJQT2jyqsAwX7KymmiGqBu7nQoQz8ApTkGABWpo/QwDh3F/dBLrouHDoOvGmYTqft3Mirw==", - "license": "MIT", - "dependencies": { - "@chakra-ui/icon": "3.2.0", - "@chakra-ui/react-context": "2.1.0", - "@chakra-ui/react-types": "2.0.7", - "@chakra-ui/react-use-merge-refs": "2.1.0", - "@chakra-ui/shared-utils": "2.0.5" - }, - "peerDependencies": { - "@chakra-ui/system": ">=2.0.0", - "react": ">=18" - } - }, - "node_modules/@chakra-ui/icon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-3.2.0.tgz", - "integrity": "sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==", - "license": "MIT", - "dependencies": { - "@chakra-ui/shared-utils": "2.0.5" - }, - "peerDependencies": { - "@chakra-ui/system": ">=2.0.0", - "react": ">=18" - } - }, - "node_modules/@chakra-ui/next-js": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/next-js/-/next-js-2.4.2.tgz", - "integrity": "sha512-loo82RyPbMyvJwRhhZVZovut9v2hFBSkqd1vQoNXgMrCRApLwrrttu5Iuodns15gLE3mqI+it5oEhxTtO5DrxA==", - "dependencies": { - "@emotion/cache": "^11.11.0" - }, - "peerDependencies": { - "@chakra-ui/react": ">=2.4.0", - "@emotion/react": ">=11", - "next": ">=13", - "react": ">=18" - } - }, - "node_modules/@chakra-ui/object-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", - "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@chakra-ui/portal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.1.0.tgz", - "integrity": "sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==", - "license": "MIT", - "dependencies": { - "@chakra-ui/react-context": "2.1.0", - "@chakra-ui/react-use-safe-layout-effect": "2.1.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@chakra-ui/react": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-3.1.2.tgz", - "integrity": "sha512-lf3XxbP8frId1r6VZwQjEXrMY8S/FdkD/cBr3udWHXHDxy6oDDT6clSU7/BTjl2HP3eitXNUrcNdBm+X4gXTAg==", - "dependencies": { - "@ark-ui/react": "4.4.3", - "@emotion/is-prop-valid": "1.3.1", - "@emotion/serialize": "1.3.2", - "@emotion/use-insertion-effect-with-fallbacks": "1.1.0", - "@emotion/utils": "1.4.1", - "@pandacss/is-valid-prop": "0.41.0", - "csstype": "3.1.3" - }, - "peerDependencies": { - "@emotion/react": ">=11", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@chakra-ui/react-context": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.1.0.tgz", - "integrity": "sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==", - "license": "MIT", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/react-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-types/-/react-types-2.0.7.tgz", - "integrity": "sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==", - "license": "MIT", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/react-use-callback-ref": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.1.0.tgz", - "integrity": "sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==", - "license": "MIT", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/react-use-merge-refs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.1.0.tgz", - "integrity": "sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==", - "license": "MIT", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/react-use-safe-layout-effect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.1.0.tgz", - "integrity": "sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==", - "license": "MIT", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/react-use-timeout": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-timeout/-/react-use-timeout-2.1.0.tgz", - "integrity": "sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==", - "license": "MIT", - "dependencies": { - "@chakra-ui/react-use-callback-ref": "2.1.0" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/react-use-update-effect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.1.0.tgz", - "integrity": "sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==", - "license": "MIT", - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/react-utils": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-2.0.12.tgz", - "integrity": "sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@chakra-ui/utils": "2.0.15" - }, - "peerDependencies": { - "react": ">=18" - } - }, - "node_modules/@chakra-ui/shared-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@chakra-ui/shared-utils/-/shared-utils-2.0.5.tgz", - "integrity": "sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==", - "license": "MIT" - }, - "node_modules/@chakra-ui/spinner": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-2.1.0.tgz", - "integrity": "sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==", - "license": "MIT", - "dependencies": { - "@chakra-ui/shared-utils": "2.0.5" - }, - "peerDependencies": { - "@chakra-ui/system": ">=2.0.0", - "react": ">=18" - } - }, - "node_modules/@chakra-ui/styled-system": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.2.tgz", - "integrity": "sha512-To/Z92oHpIE+4nk11uVMWqo2GGRS86coeMmjxtpnErmWRdLcp1WVCVRAvn+ZwpLiNR+reWFr2FFqJRsREuZdAg==", - "license": "MIT", - "dependencies": { - "@chakra-ui/shared-utils": "2.0.5", - "csstype": "^3.1.2", - "lodash.mergewith": "4.6.2" - } - }, - "node_modules/@chakra-ui/system": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.6.2.tgz", - "integrity": "sha512-EGtpoEjLrUu4W1fHD+a62XR+hzC5YfsWm+6lO0Kybcga3yYEij9beegO0jZgug27V+Rf7vns95VPVP6mFd/DEQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@chakra-ui/color-mode": "2.2.0", - "@chakra-ui/object-utils": "2.1.0", - "@chakra-ui/react-utils": "2.0.12", - "@chakra-ui/styled-system": "2.9.2", - "@chakra-ui/theme-utils": "2.0.21", - "@chakra-ui/utils": "2.0.15", - "react-fast-compare": "3.2.2" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0", - "@emotion/styled": "^11.0.0", - "react": ">=18" - } - }, - "node_modules/@chakra-ui/theme": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.3.1.tgz", - "integrity": "sha512-Hft/VaT8GYnItGCBbgWd75ICrIrIFrR7lVOhV/dQnqtfGqsVDlrztbSErvMkoPKt0UgAkd9/o44jmZ6X4U2nZQ==", - "license": "MIT", - "dependencies": { - "@chakra-ui/anatomy": "2.2.2", - "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/theme-tools": "2.1.2" - }, - "peerDependencies": { - "@chakra-ui/styled-system": ">=2.8.0" - } - }, - "node_modules/@chakra-ui/theme-tools": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.1.2.tgz", - "integrity": "sha512-Qdj8ajF9kxY4gLrq7gA+Azp8CtFHGO9tWMN2wfF9aQNgG9AuMhPrUzMq9AMQ0MXiYcgNq/FD3eegB43nHVmXVA==", - "license": "MIT", - "dependencies": { - "@chakra-ui/anatomy": "2.2.2", - "@chakra-ui/shared-utils": "2.0.5", - "color2k": "^2.0.2" - }, - "peerDependencies": { - "@chakra-ui/styled-system": ">=2.0.0" - } - }, - "node_modules/@chakra-ui/theme-utils": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.21.tgz", - "integrity": "sha512-FjH5LJbT794r0+VSCXB3lT4aubI24bLLRWB+CuRKHijRvsOg717bRdUN/N1fEmEpFnRVrbewttWh/OQs0EWpWw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/styled-system": "2.9.2", - "@chakra-ui/theme": "3.3.1", - "lodash.mergewith": "4.6.2" - } - }, - "node_modules/@chakra-ui/toast": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-7.0.2.tgz", - "integrity": "sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==", - "license": "MIT", - "dependencies": { - "@chakra-ui/alert": "2.2.2", - "@chakra-ui/close-button": "2.1.1", - "@chakra-ui/portal": "2.1.0", - "@chakra-ui/react-context": "2.1.0", - "@chakra-ui/react-use-timeout": "2.1.0", - "@chakra-ui/react-use-update-effect": "2.1.0", - "@chakra-ui/shared-utils": "2.0.5", - "@chakra-ui/styled-system": "2.9.2", - "@chakra-ui/theme": "3.3.1" - }, - "peerDependencies": { - "@chakra-ui/system": "2.6.2", - "framer-motion": ">=4.0.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@chakra-ui/utils": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.0.15.tgz", - "integrity": "sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/lodash.mergewith": "4.6.7", - "css-box-model": "1.2.1", - "framesync": "6.1.2", - "lodash.mergewith": "4.6.2" - } - }, "node_modules/@drizzle-team/brocli": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/@drizzle-team/brocli/-/brocli-0.10.2.tgz", @@ -2117,24 +1712,6 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@internationalized/date": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.6.tgz", - "integrity": "sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==", - "license": "Apache-2.0", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/number": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.4.tgz", - "integrity": "sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==", - "license": "Apache-2.0", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2965,11 +2542,6 @@ "node": ">=12.4.0" } }, - "node_modules/@pandacss/is-valid-prop": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@pandacss/is-valid-prop/-/is-valid-prop-0.41.0.tgz", - "integrity": "sha512-BE6h6CsJk14ugIRrsazJtN3fcg+KDFRat1Bs93YFKH6jd4DOb1yUyVvC70jKqPVvg70zEcV8acZ7VdcU5TLu+w==" - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -3240,23 +2812,6 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/lodash": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", - "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/lodash.mergewith": { - "version": "4.6.7", - "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz", - "integrity": "sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/node": { "version": "20.17.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", @@ -3619,825 +3174,6 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@zag-js/accordion": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/accordion/-/accordion-0.77.1.tgz", - "integrity": "sha512-KEXFPZB+Z2NfdQLNDOZ5fbRzv++mIDmZdpOPjP0kur7asVhLEyhLtpBEfXKMdF1fZoYOeXT4R6loZ5fRXPfK+Q==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/anatomy": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/anatomy/-/anatomy-0.77.1.tgz", - "integrity": "sha512-VMj+z4kco9zVKDEsabQDy8IYCqXdMqdZ2Z+n4IeEOV93oX7iG86vNHgZ7NXykN2jSR/Bka+LcGtAstaUvVw2dA==", - "license": "MIT" - }, - "node_modules/@zag-js/aria-hidden": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/aria-hidden/-/aria-hidden-0.77.1.tgz", - "integrity": "sha512-Nx8hYDXMsOfGxxLQcfL2pAo4UutE7IGdbYbacsnqbfJhg/vDyTkf4Uhy7HXvZAccGxtj5kb2WeCbtzh9lklwsQ==", - "license": "MIT", - "dependencies": { - "aria-hidden": "1.2.4" - } - }, - "node_modules/@zag-js/auto-resize": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/auto-resize/-/auto-resize-0.77.1.tgz", - "integrity": "sha512-CIvUaxhwuqkpS/+Q816C531deN+RT8SRzDy3YfuvKRfGtEfRRTNuwk9P2dlo6MoinfORcjvX1y4EAaBjA/lsxw==", - "license": "MIT", - "dependencies": { - "@zag-js/dom-query": "0.77.1" - } - }, - "node_modules/@zag-js/avatar": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/avatar/-/avatar-0.77.1.tgz", - "integrity": "sha512-wERKUzjLCElAKk6CNsBe6U4tKZNQTr9AZKOQqbONWJr6wISy7Ftu5el0Yp0SbUxmwacfB9ghdHslTbaThz190g==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/carousel": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/carousel/-/carousel-0.77.1.tgz", - "integrity": "sha512-sSVzQ/ZUAmJrArvkwCz1z/er9zLg3HDsyFDPvIJIqDAqZNatmKAth0Gia8wuWnz5YV1YGsLS8OeHr1lXYWvLQQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/checkbox": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/checkbox/-/checkbox-0.77.1.tgz", - "integrity": "sha512-PbG/IU80tN1F5V+tGzyAN54p37kS4cQ8U/MUrtBxFOGMy3kGVeVMQCX/xo9fz6H49L+2+4XVzfkTHBDyNVuSxg==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/focus-visible": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/clipboard": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/clipboard/-/clipboard-0.77.1.tgz", - "integrity": "sha512-1eLgL3dxEIMTZhe+0fkv05PX8i2LZprLf71hLqHPcjt/DDa/g4tDpoDG9HBgEM68s8mFLB3niwbfbpVgepcR6g==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/collapsible": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/collapsible/-/collapsible-0.77.1.tgz", - "integrity": "sha512-Wh/PJCEHdt0nzpo/HqwLXHN/nC6aYZXKlV7tztTPYzUOOF5/g1QiGE0ecQEX1tpKEHME+Ro3lwwI0vAh3L6Evg==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/collection": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/collection/-/collection-0.77.1.tgz", - "integrity": "sha512-YwdpSRy3yqFRLqOqNpkQJ6cVH3JS9MLhW+f4FKypfvz1tLLTpt/uMnKAOwoIVy+EjCuzeMwUtR7MQF/kK5y56A==", - "license": "MIT", - "dependencies": { - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/color-picker": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/color-picker/-/color-picker-0.77.1.tgz", - "integrity": "sha512-NV3g5J2zQmnv4jMMkKFlzhX8vvX7W6etQX0ZfaxUGKBFaGf/Vfdow0EEyurf+QqGkxGTWRI4rZncy5/K02n9Cg==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/color-utils": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/text-selection": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/color-utils": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/color-utils/-/color-utils-0.77.1.tgz", - "integrity": "sha512-6Z7zoAOQr3LprL6POV1gzA9tzzz4FHLtfo9ZqgN3SxbhFXj0xw1hhEB6COwJxqsNL9jqN2yhXBj3RBY89WsWzQ==", - "license": "MIT", - "dependencies": { - "@zag-js/numeric-range": "0.77.1" - } - }, - "node_modules/@zag-js/combobox": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/combobox/-/combobox-0.77.1.tgz", - "integrity": "sha512-uAT/ByipNCm0eNdPZJzBqqbSjtSeSHSAdSyki2puyLtl779G6vRZv44aKey+0LKxmTZYKD1neMl06dWwtdnA9w==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/aria-hidden": "0.77.1", - "@zag-js/collection": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/core": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/core/-/core-0.77.1.tgz", - "integrity": "sha512-tY5A/XayGdtiSutjQl4jBzoj2xdka8JD4JuzffsAT7aWJklbfiuIKc0R7dbAviRQ1vFe0Jvmrd3FZz85aJJfdg==", - "license": "MIT", - "dependencies": { - "@zag-js/store": "0.77.1", - "@zag-js/utils": "0.77.1", - "klona": "2.0.6" - } - }, - "node_modules/@zag-js/date-picker": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/date-picker/-/date-picker-0.77.1.tgz", - "integrity": "sha512-Rci3u5YvpObAVbYKp5lUmWyvS0VFambjhZYc0avFp7MTHhRZErXKviq/q1wqvWWtfrAZKRuQrG5Rex7+E9zDMg==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/date-utils": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/live-region": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/text-selection": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - }, - "peerDependencies": { - "@internationalized/date": ">=3.0.0" - } - }, - "node_modules/@zag-js/date-utils": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/date-utils/-/date-utils-0.77.1.tgz", - "integrity": "sha512-lPYI76n/PO2LZ+PVqgKqLZfYvpNTwOdGdbBFSkwBS7eUvleEd2/oi7AE1jJaKMZ3+Bf/zy1lM5e4dlY09xRFQw==", - "license": "MIT", - "peerDependencies": { - "@internationalized/date": ">=3.0.0" - } - }, - "node_modules/@zag-js/dialog": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/dialog/-/dialog-0.77.1.tgz", - "integrity": "sha512-RaJInIhlihpPUpWheweZPfcHgDv35xvsAG75JLQgGI9NU7seTrxL6I8ADugASPr4l77dBmdu6nhC5o9AeJNEYw==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/aria-hidden": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/remove-scroll": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1", - "focus-trap": "7.6.0" - } - }, - "node_modules/@zag-js/dismissable": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/dismissable/-/dismissable-0.77.1.tgz", - "integrity": "sha512-S0u3NAyVuO2DQH+B1v+e/35BHw2jgnQ+2X+RfzpunNd5Iu1mZA3dekbxPbP8U24jguRuqQiI2WFvw3YMbno9vg==", - "license": "MIT", - "dependencies": { - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/interact-outside": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/dom-event": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/dom-event/-/dom-event-0.77.1.tgz", - "integrity": "sha512-W5LYu/arBgHCGh3UYkkPclEYlDlZXbST+QPvma5pXv4pzkrFS0P189sLNEedE4hkIgkbIRwdaL6YJITbKD03cA==", - "license": "MIT", - "dependencies": { - "@zag-js/dom-query": "0.77.1", - "@zag-js/text-selection": "0.77.1", - "@zag-js/types": "0.77.1" - } - }, - "node_modules/@zag-js/dom-query": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.77.1.tgz", - "integrity": "sha512-hr+4lzx4wHqhunjMzAmNp7sma5K58o0ti1h5gXpei1puoeGs8epZfzjW/ZTsKyuVgH3+0f80YOC+oTK6rDAhcw==", - "license": "MIT" - }, - "node_modules/@zag-js/editable": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/editable/-/editable-0.77.1.tgz", - "integrity": "sha512-iSnamhmODF5LdcGkgnqQBkRP7AyfYL7mCjRY/69kQFcXtsK8psWJxQQZLDJTzylMxMHRM1EwS452NDIG0P3/6w==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/interact-outside": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/element-rect": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/element-rect/-/element-rect-0.77.1.tgz", - "integrity": "sha512-cHCzdtp30wrM+trYdv0kN9wqUqYc743/muob0gHanDvvbQv8TVZ/tABA6bksL/bWCXk50bm6jiAKV/7dPYdtCQ==", - "license": "MIT" - }, - "node_modules/@zag-js/element-size": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.77.1.tgz", - "integrity": "sha512-USzS/Q10TW02vHmWKUQ1Fizy8cQ6Aco0IWVHaKkEdzmyCJPL+XZnm5Xe9B8nDpsLt9qgR5TblB0zqqr2EqmQkw==", - "license": "MIT" - }, - "node_modules/@zag-js/file-upload": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/file-upload/-/file-upload-0.77.1.tgz", - "integrity": "sha512-0MaVDnAuzsL4NO1gssRutuCacFqLql76uF4qaXt6GWygmGpLP24gVfcBeXaBD2HHRB3IZ70MQx8oBq91sNaYMQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/file-utils": "0.77.1", - "@zag-js/i18n-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/file-utils": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/file-utils/-/file-utils-0.77.1.tgz", - "integrity": "sha512-lBGdjIdoETUdDlL5NxFtKdl5aSd9JvkokuNHTj1VJjBaW1KHQjzDNMJMgPabDyekQWcIOxNok33MhtiW3y3rNA==", - "license": "MIT", - "dependencies": { - "@zag-js/i18n-utils": "0.77.1" - } - }, - "node_modules/@zag-js/focus-visible": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.77.1.tgz", - "integrity": "sha512-hQgkYDxbFuiHvV/bFQGQ278s/WXX/M+7qwr9o4If3lSsIz1U5tfUl7vg7K8cNgr9l5tWpWlb7SeGZ0bqrZWNwA==", - "license": "MIT", - "dependencies": { - "@zag-js/dom-query": "0.77.1" - } - }, - "node_modules/@zag-js/form-utils": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/form-utils/-/form-utils-0.77.1.tgz", - "integrity": "sha512-1AVpIBtAelR4i6V8yJuhVGGAT9MeTbC86ckOH23GsH73QlvK+U55G2PckF0ClWeJ1AHw/vfy4OwibAULvv6cIg==", - "license": "MIT" - }, - "node_modules/@zag-js/highlight-word": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/highlight-word/-/highlight-word-0.77.1.tgz", - "integrity": "sha512-71Ykri3NHAXUE689pPpAoQOxYhHGZAx0eGjpMH3ZAlmXlG5QXCAeGG3EiDY+REPY5egIkGz6woCWj0E4iKta9Q==", - "license": "MIT" - }, - "node_modules/@zag-js/hover-card": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/hover-card/-/hover-card-0.77.1.tgz", - "integrity": "sha512-3/pA79VSF4Z+57FD4hQt6UiSMNPL9OO1I0LryM7FhgHqgQ5HA+ICFYdgpoEwQXdYKkyhZ/LetfpXS5gw038+QQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/i18n-utils": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/i18n-utils/-/i18n-utils-0.77.1.tgz", - "integrity": "sha512-HJAaCXf6r8b72JajIEQmnekRX/7Dz2sBMrAqpvIV6dpMDjCVcyow8WgfDqE46ipdNLi2XL1lgwaW3h5ckYEL+Q==", - "license": "MIT", - "dependencies": { - "@zag-js/dom-query": "0.77.1" - } - }, - "node_modules/@zag-js/interact-outside": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/interact-outside/-/interact-outside-0.77.1.tgz", - "integrity": "sha512-q5GhN4CPtYy/YXh8Fv8VCofuYpQ0D2X6r+/gscf4C/5QhXka8q4RwhJXjXnv+7b3jvTTjtXovZ9RqWdNw5rEcg==", - "license": "MIT", - "dependencies": { - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/live-region": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/live-region/-/live-region-0.77.1.tgz", - "integrity": "sha512-NqTJWRfolf343X7NeDbaFDeC96lSlAAI1BO3ALV8cRIcEO+XF7iW1/8Cdyi2mEXaCvENv7OoBR8pRxD72RqN1g==", - "license": "MIT" - }, - "node_modules/@zag-js/menu": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/menu/-/menu-0.77.1.tgz", - "integrity": "sha512-NZ4YfiBWpByF98IaSOwASRZHCRIyj/Xbut3F2bTtoIsG+qQYEbQ4g3qXbmkjJC1GM7AmyiI54ZlKqoNn9wGZ7w==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/rect-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/number-input": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/number-input/-/number-input-0.77.1.tgz", - "integrity": "sha512-/1fUh0Jrg/Lzc5ilRIsNo2/k7LUm8nXfxogef6yVADPxROUImrRfS1wQaf79L+8vibDyKGRxyPBgEcVjHX1Gaw==", - "license": "MIT", - "dependencies": { - "@internationalized/number": "3.5.4", - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/number-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/number-utils": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/number-utils/-/number-utils-0.77.1.tgz", - "integrity": "sha512-liP+TsEWP4GtjaaNihYe4MmLkFfI8I2TpDDnPlyo0tnCZLd1/+rNvcuU7lwVck7OOL4NX8uuRnSBP58toRKv6A==", - "license": "MIT" - }, - "node_modules/@zag-js/numeric-range": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/numeric-range/-/numeric-range-0.77.1.tgz", - "integrity": "sha512-ny75qTNaebomkeWUI7X86MSE7c77/Ek8Oi6wNY6Til6YugaLCm2I5P9BO25sGcYj1w3FeUz2uCxRkPMtnxamrg==", - "license": "MIT" - }, - "node_modules/@zag-js/pagination": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/pagination/-/pagination-0.77.1.tgz", - "integrity": "sha512-/Ud7kzamnp1F0w2ImerFjH3N9JOSS1JzPfd9BgvyfqkYXQCaUGMNBjiRidOFMTOBUW/ftwuPLZfW6f5FGLEjkQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/pin-input": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/pin-input/-/pin-input-0.77.1.tgz", - "integrity": "sha512-PhSfQg72lx0dzIWwqcCNZ0nHJ0QgknzE2qL/wDcOQ/J/MYReRx2lX1+RzOmFheNLV+LrAIenXOTL4xCF+8Gfig==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/popover": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/popover/-/popover-0.77.1.tgz", - "integrity": "sha512-9LVuyY8LjZf6v26Uvc3+uINy740cPgkcRWaiBiW8SunsyaLzcZIA6PSOIbE14XE2lEENIeBIOYbafuahM45gBQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/aria-hidden": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/remove-scroll": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1", - "focus-trap": "7.6.0" - } - }, - "node_modules/@zag-js/popper": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/popper/-/popper-0.77.1.tgz", - "integrity": "sha512-+DlFlRwuLyUiKl8i+efBYzC6UutcSt1ROHRgmGeB9zwSPvtn1pKlaUqSkxAY2lUDHU56RX8entF5RAeZ8mGwOg==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "1.6.12", - "@zag-js/dom-query": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/presence": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/presence/-/presence-0.77.1.tgz", - "integrity": "sha512-bVgkleWPZxO3FZCBeXHSL2lTJN8ZaIwRbH2MAwdk70VxNYVtWvo3KsbiNNGR/R5PwAPf45T0x99S+sOrByqMgA==", - "license": "MIT", - "dependencies": { - "@zag-js/core": "0.77.1", - "@zag-js/types": "0.77.1" - } - }, - "node_modules/@zag-js/progress": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/progress/-/progress-0.77.1.tgz", - "integrity": "sha512-wX7isF+6ExNm/ci9gMowtZa7cVMW7ss6VAqnwIpzTu8KBCo6fArD/e1EOpeUilrs1qiiDCLhDbZ07OKG0tRVSQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/qr-code": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/qr-code/-/qr-code-0.77.1.tgz", - "integrity": "sha512-LY5GwSprGhB6wfY/3XFeENiSj+AKUmzSqR3k2KixAeE0H7amPFr27kbeEX33nCvzBE1ZAXFHPtTa3/rvneXk4A==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1", - "proxy-memoize": "3.0.1", - "uqr": "0.1.2" - } - }, - "node_modules/@zag-js/radio-group": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/radio-group/-/radio-group-0.77.1.tgz", - "integrity": "sha512-d4KF4qaVSWO+OqdnZ4DWTNywdgRSaRENTE02nBIGwSwOVPFIP8kQCtd0W+0nVFcXR9e7BIncj1ckOzxZM/+BUA==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/element-rect": "0.77.1", - "@zag-js/focus-visible": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/rating-group": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/rating-group/-/rating-group-0.77.1.tgz", - "integrity": "sha512-cBkwCHxOJyCVHDUmKqKRcwDsoYL3kGtZ0WEviUAOVFHR2ZUm24lm7+1geuPrQcEXpSBmIXNbke/jyM0+haxSDQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/react": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/react/-/react-0.77.1.tgz", - "integrity": "sha512-clP04/bKty4FUh5oTCoQydEiMQt1TO1W7tZ+rq+H9eqstzpaHYbl/FScsioHXecl43jROdd3EPquI8TK3snlZw==", - "license": "MIT", - "dependencies": { - "@zag-js/core": "0.77.1", - "@zag-js/store": "0.77.1", - "@zag-js/types": "0.77.1", - "proxy-compare": "3.0.0" - }, - "peerDependencies": { - "react": ">=18.0.0", - "react-dom": ">=18.0.0" - } - }, - "node_modules/@zag-js/rect-utils": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/rect-utils/-/rect-utils-0.77.1.tgz", - "integrity": "sha512-AIT90ALk7yrpWu4dJTDOfWOxQNLeGDqbINt+3wz50nwVLMmF3KFG34RMPFwt1mwAYEhON4QD1JjedbL+dXfd7g==", - "license": "MIT" - }, - "node_modules/@zag-js/remove-scroll": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/remove-scroll/-/remove-scroll-0.77.1.tgz", - "integrity": "sha512-dqRl2sbghzyjQY/xngrllcq4/KvhDYKpP3OV13rFjHEJJnQNYfyRrRF5b2n6W6qZmsNr+xTL+OHk2qWl+BCMvA==", - "license": "MIT", - "dependencies": { - "@zag-js/dom-query": "0.77.1" - } - }, - "node_modules/@zag-js/select": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/select/-/select-0.77.1.tgz", - "integrity": "sha512-aE+g4xDegGrsdlqDLALh84stwRJwQakNXSw2Rk+gP7BtFvrZ6cHizYvaZVHoVwSn/oNAozYk/eUQMYK1HOdNuw==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/collection": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/signature-pad": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/signature-pad/-/signature-pad-0.77.1.tgz", - "integrity": "sha512-B2muP6rhevuV27Y4A5hZt/5GR7WpaUSq7B7a/jAiYZmp8Tutmz1zRFsS9Zc9husESAhJyrtA1AkNDGQiYVau8g==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1", - "perfect-freehand": "^1.2.2" - } - }, - "node_modules/@zag-js/slider": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/slider/-/slider-0.77.1.tgz", - "integrity": "sha512-AYcWiQquLyxOKsHreuw+KVf6MEOmBGYuq9qlXm62ZoI5OZIgxKUEw69P8IhP3afowXnrrhq8gnqgEj7W//dDSQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/element-size": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/numeric-range": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/splitter": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/splitter/-/splitter-0.77.1.tgz", - "integrity": "sha512-KaNM/3vHAdl2otVzu2G+Y24tqvAy0r3n1yLvU5lNIkDwlr+gwNWJy0cMOXf3DFokhI5ijMbtuux8dFT7Wmib+g==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/number-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/steps": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/steps/-/steps-0.77.1.tgz", - "integrity": "sha512-CbVlWNQkHy+SRzTWTKd0sWvKXfg112ped6/I6ei/tSC4vqJdFSm9/QRXGvFiSy06wOoN3Oqlw93KlwbdpEhH+g==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/store": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/store/-/store-0.77.1.tgz", - "integrity": "sha512-qk9uuXehAiq9BG0Rhd6nGwYI1WiXa3KcFydxbiMnlGiET8/zAeNTw5biYW5riptAmZ6xiwVUNtzg0T58+3YIag==", - "license": "MIT", - "dependencies": { - "proxy-compare": "3.0.0" - } - }, - "node_modules/@zag-js/switch": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/switch/-/switch-0.77.1.tgz", - "integrity": "sha512-GbIdY+Ph3XZWISOCQ3/MM+tbq/EnyEGGs1falAlVmuaVfS1gGsa9p8NKjy2mlrE+Ho8aScZgSYZfzoZfFVcWDw==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/focus-visible": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/tabs": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/tabs/-/tabs-0.77.1.tgz", - "integrity": "sha512-YEL+Vyx2c6sp3qj3rgb9X81gBPOrCGke1OshZMkv6nUhmzVvajfAwKdwbTKSZ4PwLTPAkfyjd8t1MFdWdutCKg==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/element-rect": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/tags-input": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/tags-input/-/tags-input-0.77.1.tgz", - "integrity": "sha512-+N+vtfRDNzAngqT+zk5PwoXJafaIQWioEAEMvIJYn77DNZU+Vi0Du9T1O9/hDcI75/cPtdXCIE0oor+fWDHneA==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/auto-resize": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/form-utils": "0.77.1", - "@zag-js/interact-outside": "0.77.1", - "@zag-js/live-region": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/text-selection": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/text-selection/-/text-selection-0.77.1.tgz", - "integrity": "sha512-5bg4qvEQCQBTW7Ow4yuzumgt0fWWRSqRXaOr/27xDuyTgq7pCQzH5Yfg0pWoQGBMop9djrxN3Z1XrESbXJyZEA==", - "license": "MIT", - "dependencies": { - "@zag-js/dom-query": "0.77.1" - } - }, - "node_modules/@zag-js/time-picker": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/time-picker/-/time-picker-0.77.1.tgz", - "integrity": "sha512-Dq7SD/CBv5qrknxx3t5b/cotmS6eZx5BCPkXQfKIC8jajdpSSLsWq891RSrEk7zTAGjx5iY1q3VSGT5EyPEIOQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-event": "^0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - }, - "peerDependencies": { - "@internationalized/date": ">=3.0.0" - } - }, - "node_modules/@zag-js/timer": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/timer/-/timer-0.77.1.tgz", - "integrity": "sha512-INSMVQYJCkvEgy4bvr0g+PUPvtetm0Zrh9wC29UqgbQKpdcsvFKI8yDu3Sm4Mk9dp0AkMhS2GhT92r+TeHLomg==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/toast": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/toast/-/toast-0.77.1.tgz", - "integrity": "sha512-ohaoox2TXf0NpC4W3mNKgjyZGg+Zz/+QeQBtglcIBLyr39o/pkrK3wHc27+twKciu4ZcWC5jucsR6lo9A12wbQ==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dismissable": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/toggle-group": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/toggle-group/-/toggle-group-0.77.1.tgz", - "integrity": "sha512-wQXUBClzBmPHL0jqTOXD78mmlIABObxgqHG3jMgutl/7TqPMk65jatR0piWxkAF8dn+Oav5HLIOaHFKR/m+RCw==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/tooltip": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/tooltip/-/tooltip-0.77.1.tgz", - "integrity": "sha512-0Vu9rC9StV+QrXMsGiOOvGY3NIVqKQt1oh5AaFyIo/SglnJ2UvYB7c/ERMSyW/YoTi/Pv7+7kaZzitR2JGQ+Cw==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/focus-visible": "0.77.1", - "@zag-js/popper": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/tree-view": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/tree-view/-/tree-view-0.77.1.tgz", - "integrity": "sha512-3Otb+pVB7KFbCs4Xi4w6mU0sYz3z/+CaTQp3jN6VRNzUMSCVKRar/NuZbnmCExj+4iLUEvANrOlkneBr6stFpA==", - "license": "MIT", - "dependencies": { - "@zag-js/anatomy": "0.77.1", - "@zag-js/collection": "0.77.1", - "@zag-js/core": "0.77.1", - "@zag-js/dom-event": "0.77.1", - "@zag-js/dom-query": "0.77.1", - "@zag-js/types": "0.77.1", - "@zag-js/utils": "0.77.1" - } - }, - "node_modules/@zag-js/types": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/types/-/types-0.77.1.tgz", - "integrity": "sha512-GtZKdiltPDxp19qmXa/L+a1ffL67bmSxAPlT/wVv2G7uLtL82GKKT86m2yaUqKq+VUE47kXjarj9pTcTrwTSVQ==", - "license": "MIT", - "dependencies": { - "csstype": "3.1.3" - } - }, - "node_modules/@zag-js/utils": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@zag-js/utils/-/utils-0.77.1.tgz", - "integrity": "sha512-sYCRwWQlQeYuRUvuDX0ji6Dnt/Ld6bIbVXV7NtbHCpz/G0sOnVaHJLTOoIFt1KEIrm9QvDtj/JFJGNi9Jc1Bew==", - "license": "MIT" - }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -4525,18 +3261,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/aria-hidden": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", @@ -5075,12 +3799,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/color2k": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", - "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==", - "license": "MIT" - }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -5136,16 +3854,6 @@ "node": ">= 8" } }, - "node_modules/css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "license": "MIT", - "peer": true, - "dependencies": { - "tiny-invariant": "^1.0.6" - } - }, "node_modules/css-vendor": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", @@ -6724,15 +5432,6 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "node_modules/focus-trap": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.0.tgz", - "integrity": "sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==", - "license": "MIT", - "dependencies": { - "tabbable": "^6.2.0" - } - }, "node_modules/fontsource-roboto": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fontsource-roboto/-/fontsource-roboto-4.0.0.tgz", @@ -6800,23 +5499,6 @@ } } }, - "node_modules/framesync": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", - "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", - "license": "MIT", - "peer": true, - "dependencies": { - "tslib": "2.4.0" - } - }, - "node_modules/framesync/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "license": "0BSD", - "peer": true - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -7765,15 +6447,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/language-subtag-registry": { "version": "0.3.23", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", @@ -7839,12 +6512,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "license": "MIT" - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -8337,12 +7004,6 @@ "node": ">=8" } }, - "node_modules/perfect-freehand": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.2.2.tgz", - "integrity": "sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==", - "license": "MIT" - }, "node_modules/pg": { "version": "8.13.1", "resolved": "https://registry.npmjs.org/pg/-/pg-8.13.1.tgz", @@ -8701,21 +7362,6 @@ "react-is": "^16.13.1" } }, - "node_modules/proxy-compare": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.0.tgz", - "integrity": "sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==", - "license": "MIT" - }, - "node_modules/proxy-memoize": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/proxy-memoize/-/proxy-memoize-3.0.1.tgz", - "integrity": "sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==", - "license": "MIT", - "dependencies": { - "proxy-compare": "^3.0.0" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -8767,13 +7413,6 @@ "react": "^18.2.0" } }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT", - "peer": true - }, "node_modules/react-icons": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", @@ -9621,13 +8260,6 @@ "node": ">=0.8" } }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT", - "peer": true - }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", @@ -9858,12 +8490,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uqr": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz", - "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==", - "license": "MIT" - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 2c581b1..73ab22a 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,6 @@ "lint": "next lint" }, "dependencies": { - "@chakra-ui/form-control": "^2.2.0", - "@chakra-ui/next-js": "^2.4.2", - "@chakra-ui/react": "^3.1.2", - "@chakra-ui/toast": "^7.0.2", "@emotion/react": "^11.13.5", "@emotion/styled": "^11.13.5", "@headlessui/react": "^2.2.0", diff --git a/src/app/Products/triggers/page.tsx b/src/app/Products/triggers/page.tsx index 95207b6..66a724e 100644 --- a/src/app/Products/triggers/page.tsx +++ b/src/app/Products/triggers/page.tsx @@ -1,4 +1,3 @@ -import { Button } from "@components/ui/button"; import { getARTriggers} from "@queries/PSA"; import { psa } from '@db/schema/Psa'; import partTypes from 'src/data/parts_cats.json'; @@ -29,7 +28,7 @@ export default async function TriggersPage() { {psa.modelnumber} ${Number(psa.salePrice).toFixed(2)} - + ))} diff --git a/src/app/Products/uppers/page.tsx b/src/app/Products/uppers/page.tsx index 2b351d7..399a8b1 100644 --- a/src/app/Products/uppers/page.tsx +++ b/src/app/Products/uppers/page.tsx @@ -1,4 +1,3 @@ -import { Button } from "@components/ui/button"; import { getPSA, getUpperReciever } from "@queries/PSA"; import { psa } from '@db/schema/Psa'; import styles from '../styles.module.css'; @@ -28,7 +27,7 @@ export default async function UpperReceiverPage() { {psa.modelnumber} ${Number(psa.salePrice).toFixed(2)} - + ))} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index aef6217..053fa98 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,4 +1,4 @@ -import { Provider } from "../components/ui/provider" +//import { Provider } from "../components/ui/provider" import "../styles/globals.css"; import Navbar from "../components/Navbar"; import PopNav from "@src/components/PopNav/page"; @@ -13,10 +13,10 @@ export default function RootLayout(props: { children: React.ReactNode }) { return ( - + - {children} + {children} ) diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx deleted file mode 100644 index d8763da..0000000 --- a/src/components/ui/accordion.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { Accordion, HStack } from "@chakra-ui/react" -import * as React from "react" -import { LuChevronDown } from "react-icons/lu" - -interface AccordionItemTriggerProps extends Accordion.ItemTriggerProps { - indicatorPlacement?: "start" | "end" -} - -export const AccordionItemTrigger = React.forwardRef< - HTMLButtonElement, - AccordionItemTriggerProps ->(function AccordionItemTrigger(props, ref) { - const { children, indicatorPlacement = "end", ...rest } = props - return ( - - {indicatorPlacement === "start" && ( - - - - )} - - {children} - - {indicatorPlacement === "end" && ( - - - - )} - - ) -}) - -interface AccordionItemContentProps extends Accordion.ItemContentProps {} - -export const AccordionItemContent = React.forwardRef< - HTMLDivElement, - AccordionItemContentProps ->(function AccordionItemContent(props, ref) { - return ( - - - - ) -}) - -export const AccordionRoot = Accordion.Root -export const AccordionItem = Accordion.Item diff --git a/src/components/ui/action-bar.tsx b/src/components/ui/action-bar.tsx deleted file mode 100644 index 98f798a..0000000 --- a/src/components/ui/action-bar.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { ActionBar, Portal } from "@chakra-ui/react" -import { CloseButton } from "./close-button" -import * as React from "react" - -interface ActionBarContentProps extends ActionBar.ContentProps { - portalled?: boolean - portalRef?: React.RefObject -} - -export const ActionBarContent = React.forwardRef< - HTMLDivElement, - ActionBarContentProps ->(function ActionBarContent(props, ref) { - const { children, portalled = true, portalRef, ...rest } = props - - return ( - - - - {children} - - - - ) -}) - -export const ActionBarCloseTrigger = React.forwardRef< - HTMLButtonElement, - ActionBar.CloseTriggerProps ->(function ActionBarCloseTrigger(props, ref) { - return ( - - - - ) -}) - -export const ActionBarRoot = ActionBar.Root -export const ActionBarSelectionTrigger = ActionBar.SelectionTrigger -export const ActionBarSeparator = ActionBar.Separator diff --git a/src/components/ui/alert.tsx b/src/components/ui/alert.tsx deleted file mode 100644 index 5c1cd6f..0000000 --- a/src/components/ui/alert.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { Alert as ChakraAlert } from "@chakra-ui/react" -import { CloseButton } from "./close-button" -import * as React from "react" - -export interface AlertProps extends Omit { - startElement?: React.ReactNode - endElement?: React.ReactNode - title?: React.ReactNode - icon?: React.ReactElement - closable?: boolean - onClose?: () => void -} - -export const Alert = React.forwardRef( - function Alert(props, ref) { - const { - title, - children, - icon, - closable, - onClose, - startElement, - endElement, - ...rest - } = props - return ( - - {startElement || {icon}} - {children ? ( - - {title} - {children} - - ) : ( - {title} - )} - {endElement} - {closable && ( - - )} - - ) - }, -) diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx deleted file mode 100644 index cd84664..0000000 --- a/src/components/ui/avatar.tsx +++ /dev/null @@ -1,74 +0,0 @@ -"use client" - -import type { GroupProps, SlotRecipeProps } from "@chakra-ui/react" -import { Avatar as ChakraAvatar, Group } from "@chakra-ui/react" -import * as React from "react" - -type ImageProps = React.ImgHTMLAttributes - -export interface AvatarProps extends ChakraAvatar.RootProps { - name?: string - src?: string - srcSet?: string - loading?: ImageProps["loading"] - icon?: React.ReactElement - fallback?: React.ReactNode -} - -export const Avatar = React.forwardRef( - function Avatar(props, ref) { - const { name, src, srcSet, loading, icon, fallback, children, ...rest } = - props - return ( - - - {fallback} - - - {children} - - ) - }, -) - -interface AvatarFallbackProps extends ChakraAvatar.FallbackProps { - name?: string - icon?: React.ReactElement -} - -const AvatarFallback = React.forwardRef( - function AvatarFallback(props, ref) { - const { name, icon, children, ...rest } = props - return ( - - {children} - {name != null && children == null && <>{getInitials(name)}} - {name == null && children == null && ( - {icon} - )} - - ) - }, -) - -function getInitials(name: string) { - const names = name.trim().split(" ") - const firstName = names[0] != null ? names[0] : "" - const lastName = names.length > 1 ? names[names.length - 1] : "" - return firstName && lastName - ? `${firstName.charAt(0)}${lastName.charAt(0)}` - : firstName.charAt(0) -} - -interface AvatarGroupProps extends GroupProps, SlotRecipeProps<"avatar"> {} - -export const AvatarGroup = React.forwardRef( - function AvatarGroup(props, ref) { - const { size, variant, borderless, ...rest } = props - return ( - - - - ) - }, -) diff --git a/src/components/ui/blockquote.tsx b/src/components/ui/blockquote.tsx deleted file mode 100644 index 166446b..0000000 --- a/src/components/ui/blockquote.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { Blockquote as ChakraBlockquote } from "@chakra-ui/react" -import * as React from "react" - -export interface BlockquoteProps extends ChakraBlockquote.RootProps { - cite?: React.ReactNode - citeUrl?: string - icon?: React.ReactNode - showDash?: boolean -} - -export const Blockquote = React.forwardRef( - function Blockquote(props, ref) { - const { children, cite, citeUrl, showDash, icon, ...rest } = props - - return ( - - {icon} - - {children} - - {cite && ( - - {showDash ? <>— : null} {cite} - - )} - - ) - }, -) - -export const BlockquoteIcon = ChakraBlockquote.Icon diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx deleted file mode 100644 index 960e769..0000000 --- a/src/components/ui/breadcrumb.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { Breadcrumb, type SystemStyleObject } from "@chakra-ui/react" -import * as React from "react" - -export interface BreadcrumbRootProps extends Breadcrumb.RootProps { - separator?: React.ReactNode - separatorGap?: SystemStyleObject["gap"] -} - -export const BreadcrumbRoot = React.forwardRef< - HTMLDivElement, - BreadcrumbRootProps ->(function BreadcrumbRoot(props, ref) { - const { separator, separatorGap, children, ...rest } = props - - const validChildren = React.Children.toArray(children).filter( - React.isValidElement, - ) - - return ( - - - {validChildren.map((child, index) => { - const last = index === validChildren.length - 1 - return ( - - {child} - {!last && ( - {separator} - )} - - ) - })} - - - ) -}) - -export const BreadcrumbLink = Breadcrumb.Link -export const BreadcrumbCurrentLink = Breadcrumb.CurrentLink -export const BreadcrumbEllipsis = Breadcrumb.Ellipsis diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx deleted file mode 100644 index 32e6b65..0000000 --- a/src/components/ui/button.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import * as React from "react" -import { Slot } from "@radix-ui/react-slot" -import { cva, type VariantProps, } from "class-variance-authority" -import { cn } from "src/lib/utils" - - -const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", - { - variants: { - variant: { - default: - "bg-primary text-primary-foreground shadow hover:bg-primary/90", - destructive: - "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", - outline: - "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", - secondary: - "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", - ghost: "hover:bg-accent hover:text-accent-foreground", - link: "text-primary underline-offset-4 hover:underline", - }, - size: { - default: "h-9 px-4 py-2", - sm: "h-8 rounded-md px-3 text-xs", - lg: "h-10 rounded-md px-8", - icon: "h-9 w-9", - }, - }, - defaultVariants: { - variant: "default", - size: "default", - }, - } -) - -export interface ButtonProps - extends React.ButtonHTMLAttributes, - VariantProps { - asChild?: boolean -} - -const Button = React.forwardRef( - ({ className, variant, size, asChild = false, ...props }, ref) => { - const Comp = asChild ? Slot : "button" - return ( - - ) - } -) -Button.displayName = "Button" - -export { Button, buttonVariants } diff --git a/src/components/ui/checkbox-card.tsx b/src/components/ui/checkbox-card.tsx deleted file mode 100644 index 063925b..0000000 --- a/src/components/ui/checkbox-card.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { CheckboxCard as ChakraCheckboxCard } from "@chakra-ui/react" -import * as React from "react" - -export interface CheckboxCardProps extends ChakraCheckboxCard.RootProps { - icon?: React.ReactElement - label?: React.ReactNode - description?: React.ReactNode - addon?: React.ReactNode - indicator?: React.ReactNode | null - indicatorPlacement?: "start" | "end" | "inside" - inputProps?: React.InputHTMLAttributes -} - -export const CheckboxCard = React.forwardRef< - HTMLInputElement, - CheckboxCardProps ->(function CheckboxCard(props, ref) { - const { - inputProps, - label, - description, - icon, - addon, - indicator = , - indicatorPlacement = "end", - ...rest - } = props - - const hasContent = label || description || icon - const ContentWrapper = indicator ? ChakraCheckboxCard.Content : React.Fragment - - return ( - - - - {indicatorPlacement === "start" && indicator} - {hasContent && ( - - {icon} - {label && ( - {label} - )} - {description && ( - - {description} - - )} - {indicatorPlacement === "inside" && indicator} - - )} - {indicatorPlacement === "end" && indicator} - - {addon && {addon}} - - ) -}) - -export const CheckboxCardIndicator = ChakraCheckboxCard.Indicator diff --git a/src/components/ui/checkbox.tsx b/src/components/ui/checkbox.tsx deleted file mode 100644 index 2a27c2f..0000000 --- a/src/components/ui/checkbox.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { Checkbox as ChakraCheckbox } from "@chakra-ui/react" -import * as React from "react" - -export interface CheckboxProps extends ChakraCheckbox.RootProps { - icon?: React.ReactNode - inputProps?: React.InputHTMLAttributes - rootRef?: React.Ref -} - -export const Checkbox = React.forwardRef( - function Checkbox(props, ref) { - const { icon, children, inputProps, rootRef, ...rest } = props - return ( - - - - {icon || } - - {children != null && ( - {children} - )} - - ) - }, -) diff --git a/src/components/ui/clipboard.tsx b/src/components/ui/clipboard.tsx deleted file mode 100644 index 958cb59..0000000 --- a/src/components/ui/clipboard.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import type { ButtonProps, InputProps } from "@chakra-ui/react" -import { - Button, - Clipboard as ChakraClipboard, - IconButton, - Input, -} from "@chakra-ui/react" -import * as React from "react" -import { LuCheck, LuClipboard, LuLink } from "react-icons/lu" - -const ClipboardIcon = React.forwardRef< - HTMLDivElement, - ChakraClipboard.IndicatorProps ->(function ClipboardIcon(props, ref) { - return ( - } {...props} ref={ref}> - - - ) -}) - -const ClipboardCopyText = React.forwardRef< - HTMLDivElement, - ChakraClipboard.IndicatorProps ->(function ClipboardCopyText(props, ref) { - return ( - - Copy - - ) -}) - -export const ClipboardLabel = React.forwardRef< - HTMLLabelElement, - ChakraClipboard.LabelProps ->(function ClipboardLabel(props, ref) { - return ( - - ) -}) - -export const ClipboardButton = React.forwardRef( - function ClipboardButton(props, ref) { - return ( - - - - ) - }, -) - -export const ClipboardLink = React.forwardRef( - function ClipboardLink(props, ref) { - return ( - - - - ) - }, -) - -export const ClipboardIconButton = React.forwardRef< - HTMLButtonElement, - ButtonProps ->(function ClipboardIconButton(props, ref) { - return ( - - - - - - - ) -}) - -export const ClipboardInput = React.forwardRef( - function ClipboardInputElement(props, ref) { - return ( - - - - ) - }, -) - -export const ClipboardRoot = ChakraClipboard.Root diff --git a/src/components/ui/close-button.tsx b/src/components/ui/close-button.tsx deleted file mode 100644 index 8a99007..0000000 --- a/src/components/ui/close-button.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import type { ButtonProps as ChakraCloseButtonProps } from "@chakra-ui/react" -import { IconButton as ChakraIconButton } from "@chakra-ui/react" -import * as React from "react" -import { LuX } from "react-icons/lu" - -export interface CloseButtonProps extends ChakraCloseButtonProps {} - -export const CloseButton = React.forwardRef< - HTMLButtonElement, - CloseButtonProps ->(function CloseButton(props, ref) { - return ( - - {props.children ?? } - - ) -}) diff --git a/src/components/ui/color-mode.tsx b/src/components/ui/color-mode.tsx deleted file mode 100644 index a34b968..0000000 --- a/src/components/ui/color-mode.tsx +++ /dev/null @@ -1,67 +0,0 @@ -"use client" - -import type { IconButtonProps } from "@chakra-ui/react" -import { ClientOnly, IconButton, Skeleton } from "@chakra-ui/react" -import { ThemeProvider, useTheme } from "next-themes" -import type { ThemeProviderProps } from "next-themes" -import * as React from "react" -import { LuMoon, LuSun } from "react-icons/lu" - -export interface ColorModeProviderProps extends ThemeProviderProps {} - -export function ColorModeProvider(props: ColorModeProviderProps) { - return ( - - ) -} - -export function useColorMode() { - const { resolvedTheme, setTheme } = useTheme() - const toggleColorMode = () => { - setTheme(resolvedTheme === "light" ? "dark" : "light") - } - return { - colorMode: resolvedTheme, - setColorMode: setTheme, - toggleColorMode, - } -} - -export function useColorModeValue(light: T, dark: T) { - const { colorMode } = useColorMode() - return colorMode === "light" ? light : dark -} - -export function ColorModeIcon() { - const { colorMode } = useColorMode() - return colorMode === "light" ? : -} - -interface ColorModeButtonProps extends Omit {} - -export const ColorModeButton = React.forwardRef< - HTMLButtonElement, - ColorModeButtonProps ->(function ColorModeButton(props, ref) { - const { toggleColorMode } = useColorMode() - return ( - }> - - - - - ) -}) diff --git a/src/components/ui/data-list.tsx b/src/components/ui/data-list.tsx deleted file mode 100644 index ef7cae8..0000000 --- a/src/components/ui/data-list.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { DataList as ChakraDataList } from "@chakra-ui/react" -import { InfoTip } from "./toggle-tip" -import * as React from "react" - -export const DataListRoot = ChakraDataList.Root - -interface ItemProps extends ChakraDataList.ItemProps { - label: React.ReactNode - value: React.ReactNode - info?: React.ReactNode - grow?: boolean -} - -export const DataListItem = React.forwardRef( - function DataListItem(props, ref) { - const { label, info, value, children, grow, ...rest } = props - return ( - - - {label} - {info && {info}} - - - {value} - - {children} - - ) - }, -) diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx deleted file mode 100644 index 89d68a5..0000000 --- a/src/components/ui/dialog.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { Dialog as ChakraDialog, Portal } from "@chakra-ui/react" -import { CloseButton } from "./close-button" -import * as React from "react" - -interface DialogContentProps extends ChakraDialog.ContentProps { - portalled?: boolean - portalRef?: React.RefObject - backdrop?: boolean -} - -export const DialogContent = React.forwardRef< - HTMLDivElement, - DialogContentProps ->(function DialogContent(props, ref) { - const { - children, - portalled = true, - portalRef, - backdrop = true, - ...rest - } = props - - return ( - - {backdrop && } - - - {children} - - - - ) -}) - -export const DialogCloseTrigger = React.forwardRef< - HTMLButtonElement, - ChakraDialog.CloseTriggerProps ->(function DialogCloseTrigger(props, ref) { - return ( - - - {props.children} - - - ) -}) - -export const DialogRoot = ChakraDialog.Root -export const DialogFooter = ChakraDialog.Footer -export const DialogHeader = ChakraDialog.Header -export const DialogBody = ChakraDialog.Body -export const DialogBackdrop = ChakraDialog.Backdrop -export const DialogTitle = ChakraDialog.Title -export const DialogDescription = ChakraDialog.Description -export const DialogTrigger = ChakraDialog.Trigger -export const DialogActionTrigger = ChakraDialog.ActionTrigger diff --git a/src/components/ui/drawer.tsx b/src/components/ui/drawer.tsx deleted file mode 100644 index ccb96c8..0000000 --- a/src/components/ui/drawer.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { Drawer as ChakraDrawer, Portal } from "@chakra-ui/react" -import { CloseButton } from "./close-button" -import * as React from "react" - -interface DrawerContentProps extends ChakraDrawer.ContentProps { - portalled?: boolean - portalRef?: React.RefObject - offset?: ChakraDrawer.ContentProps["padding"] -} - -export const DrawerContent = React.forwardRef< - HTMLDivElement, - DrawerContentProps ->(function DrawerContent(props, ref) { - const { children, portalled = true, portalRef, offset, ...rest } = props - return ( - - - - {children} - - - - ) -}) - -export const DrawerCloseTrigger = React.forwardRef< - HTMLButtonElement, - ChakraDrawer.CloseTriggerProps ->(function DrawerCloseTrigger(props, ref) { - return ( - - - - ) -}) - -export const DrawerTrigger = ChakraDrawer.Trigger -export const DrawerRoot = ChakraDrawer.Root -export const DrawerFooter = ChakraDrawer.Footer -export const DrawerHeader = ChakraDrawer.Header -export const DrawerBody = ChakraDrawer.Body -export const DrawerBackdrop = ChakraDrawer.Backdrop -export const DrawerDescription = ChakraDrawer.Description -export const DrawerTitle = ChakraDrawer.Title -export const DrawerActionTrigger = ChakraDrawer.ActionTrigger diff --git a/src/components/ui/empty-state.tsx b/src/components/ui/empty-state.tsx deleted file mode 100644 index d643e53..0000000 --- a/src/components/ui/empty-state.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { EmptyState as ChakraEmptyState, VStack } from "@chakra-ui/react" -import * as React from "react" - -export interface EmptyStateProps extends ChakraEmptyState.RootProps { - title: string - description?: string - icon?: React.ReactNode -} - -export const EmptyState = React.forwardRef( - function EmptyState(props, ref) { - const { title, description, icon, children, ...rest } = props - return ( - - - {icon && ( - {icon} - )} - {description ? ( - - {title} - - {description} - - - ) : ( - {title} - )} - {children} - - - ) - }, -) diff --git a/src/components/ui/field.tsx b/src/components/ui/field.tsx deleted file mode 100644 index dd3b66f..0000000 --- a/src/components/ui/field.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { Field as ChakraField } from "@chakra-ui/react" -import * as React from "react" - -export interface FieldProps extends Omit { - label?: React.ReactNode - helperText?: React.ReactNode - errorText?: React.ReactNode - optionalText?: React.ReactNode -} - -export const Field = React.forwardRef( - function Field(props, ref) { - const { label, children, helperText, errorText, optionalText, ...rest } = - props - return ( - - {label && ( - - {label} - - - )} - {children} - {helperText && ( - {helperText} - )} - {errorText && ( - {errorText} - )} - - ) - }, -) diff --git a/src/components/ui/file-button.tsx b/src/components/ui/file-button.tsx deleted file mode 100644 index 29e5220..0000000 --- a/src/components/ui/file-button.tsx +++ /dev/null @@ -1,170 +0,0 @@ -"use client" - -import type { ButtonProps, RecipeProps } from "@chakra-ui/react" -import { - Button, - FileUpload as ChakraFileUpload, - Icon, - IconButton, - Span, - Text, - useFileUploadContext, - useRecipe, -} from "@chakra-ui/react" -import * as React from "react" -import { LuFile, LuUpload, LuX } from "react-icons/lu" - -export interface FileUploadRootProps extends ChakraFileUpload.RootProps { - inputProps?: React.InputHTMLAttributes -} - -export const FileUploadRoot = React.forwardRef< - HTMLInputElement, - FileUploadRootProps ->(function FileUploadRoot(props, ref) { - const { children, inputProps, ...rest } = props - return ( - - - {children} - - ) -}) - -export interface FileUploadDropzoneProps - extends ChakraFileUpload.DropzoneProps { - label: React.ReactNode - description?: React.ReactNode -} - -export const FileUploadDropzone = React.forwardRef< - HTMLInputElement, - FileUploadDropzoneProps ->(function FileUploadDropzone(props, ref) { - const { children, label, description, ...rest } = props - return ( - - - - - -
{label}
- {description && {description}} -
- {children} -
- ) -}) - -interface VisibilityProps { - showSize?: boolean - clearable?: boolean -} - -interface FileUploadItemProps extends VisibilityProps { - file: File -} - -const FileUploadItem = React.forwardRef( - function FileUploadItem(props, ref) { - const { file, showSize, clearable } = props - return ( - - - - - - - - {showSize ? ( - - - - - ) : ( - - )} - - {clearable && ( - - - - - - )} - - ) - }, -) - -interface FileUploadListProps - extends VisibilityProps, - ChakraFileUpload.ItemGroupProps { - files?: File[] -} - -export const FileUploadList = React.forwardRef< - HTMLUListElement, - FileUploadListProps ->(function FileUploadList(props, ref) { - const { showSize, clearable, files, ...rest } = props - - const fileUpload = useFileUploadContext() - const acceptedFiles = files ?? fileUpload.acceptedFiles - - if (acceptedFiles.length === 0) return null - - return ( - - {acceptedFiles.map((file) => ( - - ))} - - ) -}) - -type Assign = Omit & U - -interface FileInputProps extends Assign> { - placeholder?: React.ReactNode -} - -export const FileInput = React.forwardRef( - function FileInput(props, ref) { - const inputRecipe = useRecipe({ key: "input" }) - const [recipeProps, restProps] = inputRecipe.splitVariantProps(props) - const { placeholder = "Select file(s)", ...rest } = restProps - return ( - - - - ) - }, -) - -export const FileUploadLabel = ChakraFileUpload.Label -export const FileUploadClearTrigger = ChakraFileUpload.ClearTrigger -export const FileUploadTrigger = ChakraFileUpload.Trigger diff --git a/src/components/ui/hover-card.tsx b/src/components/ui/hover-card.tsx deleted file mode 100644 index 36299c1..0000000 --- a/src/components/ui/hover-card.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { HoverCard, Portal } from "@chakra-ui/react" -import * as React from "react" - -interface HoverCardContentProps extends HoverCard.ContentProps { - portalled?: boolean - portalRef?: React.RefObject -} - -export const HoverCardContent = React.forwardRef< - HTMLDivElement, - HoverCardContentProps ->(function HoverCardContent(props, ref) { - const { portalled = true, portalRef, ...rest } = props - - return ( - - - - - - ) -}) - -export const HoverCardArrow = React.forwardRef< - HTMLDivElement, - HoverCard.ArrowProps ->(function HoverCardArrow(props, ref) { - return ( - - - - ) -}) - -export const HoverCardRoot = HoverCard.Root -export const HoverCardTrigger = HoverCard.Trigger diff --git a/src/components/ui/input-group.tsx b/src/components/ui/input-group.tsx deleted file mode 100644 index 1124a61..0000000 --- a/src/components/ui/input-group.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import type { BoxProps, InputElementProps } from "@chakra-ui/react" -import { Group, InputElement } from "@chakra-ui/react" -import * as React from "react" - -export interface InputGroupProps extends BoxProps { - startElementProps?: InputElementProps - endElementProps?: InputElementProps - startElement?: React.ReactNode - endElement?: React.ReactNode - children: React.ReactElement - startOffset?: InputElementProps["paddingStart"] - endOffset?: InputElementProps["paddingEnd"] -} - -export const InputGroup = React.forwardRef( - function InputGroup(props, ref) { - const { - startElement, - startElementProps, - endElement, - endElementProps, - children, - startOffset = "6px", - endOffset = "6px", - ...rest - } = props - - return ( - - {startElement && ( - - {startElement} - - )} - {React.cloneElement(children, { - ...(startElement && { - ps: `calc(var(--input-height) - ${startOffset})`, - }), - ...(endElement && { pe: `calc(var(--input-height) - ${endOffset})` }), - ...children.props, - })} - {endElement && ( - - {endElement} - - )} - - ) - }, -) diff --git a/src/components/ui/link-button.tsx b/src/components/ui/link-button.tsx deleted file mode 100644 index defa1c3..0000000 --- a/src/components/ui/link-button.tsx +++ /dev/null @@ -1,12 +0,0 @@ -"use client" - -import type { HTMLChakraProps, RecipeProps } from "@chakra-ui/react" -import { createRecipeContext } from "@chakra-ui/react" - -export interface LinkButtonProps - extends HTMLChakraProps<"a", RecipeProps<"button">> {} - -const { withContext } = createRecipeContext({ key: "button" }) - -// Replace "a" with your framework's link component -export const LinkButton = withContext("a") diff --git a/src/components/ui/menu.tsx b/src/components/ui/menu.tsx deleted file mode 100644 index 763005b..0000000 --- a/src/components/ui/menu.tsx +++ /dev/null @@ -1,110 +0,0 @@ -"use client" - -import { AbsoluteCenter, Menu as ChakraMenu, Portal } from "@chakra-ui/react" -import * as React from "react" -import { LuCheck, LuChevronRight } from "react-icons/lu" - -interface MenuContentProps extends ChakraMenu.ContentProps { - portalled?: boolean - portalRef?: React.RefObject -} - -export const MenuContent = React.forwardRef( - function MenuContent(props, ref) { - const { portalled = true, portalRef, ...rest } = props - return ( - - - - - - ) - }, -) - -export const MenuArrow = React.forwardRef< - HTMLDivElement, - ChakraMenu.ArrowProps ->(function MenuArrow(props, ref) { - return ( - - - - ) -}) - -export const MenuCheckboxItem = React.forwardRef< - HTMLDivElement, - ChakraMenu.CheckboxItemProps ->(function MenuCheckboxItem(props, ref) { - return ( - - - {props.children} - - ) -}) - -export const MenuRadioItem = React.forwardRef< - HTMLDivElement, - ChakraMenu.RadioItemProps ->(function MenuRadioItem(props, ref) { - const { children, ...rest } = props - return ( - - - - - - - {children} - - ) -}) - -export const MenuItemGroup = React.forwardRef< - HTMLDivElement, - ChakraMenu.ItemGroupProps ->(function MenuItemGroup(props, ref) { - const { title, children, ...rest } = props - return ( - - {title && ( - - {title} - - )} - {children} - - ) -}) - -export interface MenuTriggerItemProps extends ChakraMenu.ItemProps { - startIcon?: React.ReactNode -} - -export const MenuTriggerItem = React.forwardRef< - HTMLDivElement, - MenuTriggerItemProps ->(function MenuTriggerItem(props, ref) { - const { startIcon, children, ...rest } = props - return ( - - {startIcon} - {children} - - - ) -}) - -export const MenuRadioItemGroup = ChakraMenu.RadioItemGroup -export const MenuContextTrigger = ChakraMenu.ContextTrigger -export const MenuRoot = ChakraMenu.Root -export const MenuSeparator = ChakraMenu.Separator - -export const MenuItem = ChakraMenu.Item -export const MenuItemText = ChakraMenu.ItemText -export const MenuItemCommand = ChakraMenu.ItemCommand -export const MenuTrigger = ChakraMenu.Trigger diff --git a/src/components/ui/native-select.tsx b/src/components/ui/native-select.tsx deleted file mode 100644 index 9e6ebf5..0000000 --- a/src/components/ui/native-select.tsx +++ /dev/null @@ -1,57 +0,0 @@ -"use client" - -import { NativeSelect as Select } from "@chakra-ui/react" -import * as React from "react" - -interface NativeSelectRootProps extends Select.RootProps { - icon?: React.ReactNode -} - -export const NativeSelectRoot = React.forwardRef< - HTMLDivElement, - NativeSelectRootProps ->(function NativeSelect(props, ref) { - const { icon, children, ...rest } = props - return ( - - {children} - {icon} - - ) -}) - -interface NativeSelectItem { - value: string - label: string - disabled?: boolean -} - -interface NativeSelectField extends Select.FieldProps { - items?: Array -} - -export const NativeSelectField = React.forwardRef< - HTMLSelectElement, - NativeSelectField ->(function NativeSelectField(props, ref) { - const { items: itemsProp, children, ...rest } = props - - const items = React.useMemo( - () => - itemsProp?.map((item) => - typeof item === "string" ? { label: item, value: item } : item, - ), - [itemsProp], - ) - - return ( - - {children} - {items?.map((item) => ( - - ))} - - ) -}) diff --git a/src/components/ui/number-input.tsx b/src/components/ui/number-input.tsx deleted file mode 100644 index 7ddab85..0000000 --- a/src/components/ui/number-input.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { NumberInput as ChakraNumberInput } from "@chakra-ui/react" -import * as React from "react" - -export interface NumberInputProps extends ChakraNumberInput.RootProps {} - -export const NumberInputRoot = React.forwardRef< - HTMLDivElement, - NumberInputProps ->(function NumberInput(props, ref) { - const { children, ...rest } = props - return ( - - {children} - - - - - - ) -}) - -export const NumberInputField = ChakraNumberInput.Input -export const NumberInputScruber = ChakraNumberInput.Scrubber -export const NumberInputLabel = ChakraNumberInput.Label diff --git a/src/components/ui/pagination.tsx b/src/components/ui/pagination.tsx deleted file mode 100644 index 8201ed8..0000000 --- a/src/components/ui/pagination.tsx +++ /dev/null @@ -1,208 +0,0 @@ -"use client" - -import type { ButtonProps, TextProps } from "@chakra-ui/react" -import { - Button, - Pagination as ChakraPagination, - IconButton, - Text, - createContext, - usePaginationContext, -} from "@chakra-ui/react" -import * as React from "react" -import { - HiChevronLeft, - HiChevronRight, - HiMiniEllipsisHorizontal, -} from "react-icons/hi2" -import { LinkButton } from "./link-button" - -interface ButtonVariantMap { - current: ButtonProps["variant"] - default: ButtonProps["variant"] - ellipsis: ButtonProps["variant"] -} - -type PaginationVariant = "outline" | "solid" | "subtle" - -interface ButtonVariantContext { - size: ButtonProps["size"] - variantMap: ButtonVariantMap - getHref?: (page: number) => string -} - -const [RootPropsProvider, useRootProps] = createContext({ - name: "RootPropsProvider", -}) - -export interface PaginationRootProps - extends Omit { - size?: ButtonProps["size"] - variant?: PaginationVariant - getHref?: (page: number) => string -} - -const variantMap: Record = { - outline: { default: "ghost", ellipsis: "plain", current: "outline" }, - solid: { default: "outline", ellipsis: "outline", current: "solid" }, - subtle: { default: "ghost", ellipsis: "plain", current: "subtle" }, -} - -export const PaginationRoot = React.forwardRef< - HTMLDivElement, - PaginationRootProps ->(function PaginationRoot(props, ref) { - const { size = "sm", variant = "outline", getHref, ...rest } = props - return ( - - - - ) -}) - -export const PaginationEllipsis = React.forwardRef< - HTMLDivElement, - ChakraPagination.EllipsisProps ->(function PaginationEllipsis(props, ref) { - const { size, variantMap } = useRootProps() - return ( - - - - ) -}) - -export const PaginationItem = React.forwardRef< - HTMLButtonElement, - ChakraPagination.ItemProps ->(function PaginationItem(props, ref) { - const { page } = usePaginationContext() - const { size, variantMap, getHref } = useRootProps() - - const current = page === props.value - const variant = current ? variantMap.current : variantMap.default - - if (getHref) { - return ( - - {props.value} - - ) - } - - return ( - - - - ) -}) - -export const PaginationPrevTrigger = React.forwardRef< - HTMLButtonElement, - ChakraPagination.PrevTriggerProps ->(function PaginationPrevTrigger(props, ref) { - const { size, variantMap, getHref } = useRootProps() - const { previousPage } = usePaginationContext() - - if (getHref) { - return ( - - - - ) - } - - return ( - - - - - - ) -}) - -export const PaginationNextTrigger = React.forwardRef< - HTMLButtonElement, - ChakraPagination.NextTriggerProps ->(function PaginationNextTrigger(props, ref) { - const { size, variantMap, getHref } = useRootProps() - const { nextPage } = usePaginationContext() - - if (getHref) { - return ( - - - - ) - } - - return ( - - - - - - ) -}) - -export const PaginationItems = (props: React.HTMLAttributes) => { - return ( - - {({ pages }) => - pages.map((page, index) => { - return page.type === "ellipsis" ? ( - - ) : ( - - ) - }) - } - - ) -} - -interface PageTextProps extends TextProps { - format?: "short" | "compact" | "long" -} - -export const PaginationPageText = React.forwardRef< - HTMLParagraphElement, - PageTextProps ->(function PaginationPageText(props, ref) { - const { format = "compact", ...rest } = props - const { page, totalPages, pageRange, count } = usePaginationContext() - const content = React.useMemo(() => { - if (format === "short") return `${page} / ${totalPages}` - if (format === "compact") return `${page} of ${totalPages}` - return `${pageRange.start + 1} - ${pageRange.end} of ${count}` - }, [format, page, totalPages, pageRange, count]) - - return ( - - {content} - - ) -}) diff --git a/src/components/ui/password-input.tsx b/src/components/ui/password-input.tsx deleted file mode 100644 index 0c608a9..0000000 --- a/src/components/ui/password-input.tsx +++ /dev/null @@ -1,148 +0,0 @@ -"use client" - -import type { - ButtonProps, - GroupProps, - InputProps, - StackProps, -} from "@chakra-ui/react" -import { - Box, - HStack, - IconButton, - Input, - Stack, - mergeRefs, - useControllableState, -} from "@chakra-ui/react" -import * as React from "react" -import { LuEye, LuEyeOff } from "react-icons/lu" -import { InputGroup } from "./input-group" - -export interface PasswordVisibilityProps { - defaultVisible?: boolean - visible?: boolean - onVisibleChange?: (visible: boolean) => void - visibilityIcon?: { on: React.ReactNode; off: React.ReactNode } -} - -export interface PasswordInputProps - extends InputProps, - PasswordVisibilityProps { - rootProps?: GroupProps -} - -export const PasswordInput = React.forwardRef< - HTMLInputElement, - PasswordInputProps ->(function PasswordInput(props, ref) { - const { - rootProps, - defaultVisible, - visible: visibleProp, - onVisibleChange, - visibilityIcon = { on: , off: }, - ...rest - } = props - - const [visible, setVisible] = useControllableState({ - value: visibleProp, - defaultValue: defaultVisible || false, - onChange: onVisibleChange, - }) - - const inputRef = React.useRef(null) - - return ( - { - if (rest.disabled) return - if (e.button !== 0) return - e.preventDefault() - setVisible(!visible) - }} - > - {visible ? visibilityIcon.off : visibilityIcon.on} - - } - {...rootProps} - > - - - ) -}) - -const VisibilityTrigger = React.forwardRef( - function VisibilityTrigger(props, ref) { - return ( - - ) - }, -) - -interface PasswordStrengthMeterProps extends StackProps { - max?: number - value: number -} - -export const PasswordStrengthMeter = React.forwardRef< - HTMLDivElement, - PasswordStrengthMeterProps ->(function PasswordStrengthMeter(props, ref) { - const { max = 4, value, ...rest } = props - - const percent = (value / max) * 100 - const { label, colorPalette } = getColorPalette(percent) - - return ( - - - {Array.from({ length: max }).map((_, index) => ( - - ))} - - {label && {label}} - - ) -}) - -function getColorPalette(percent: number) { - switch (true) { - case percent < 33: - return { label: "Low", colorPalette: "red" } - case percent < 66: - return { label: "Medium", colorPalette: "orange" } - default: - return { label: "High", colorPalette: "green" } - } -} diff --git a/src/components/ui/pin-input.tsx b/src/components/ui/pin-input.tsx deleted file mode 100644 index c969c80..0000000 --- a/src/components/ui/pin-input.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { PinInput as ChakraPinInput, Group } from "@chakra-ui/react" -import * as React from "react" - -export interface PinInputProps extends ChakraPinInput.RootProps { - rootRef?: React.Ref - count?: number - inputProps?: React.InputHTMLAttributes - attached?: boolean -} - -export const PinInput = React.forwardRef( - function PinInput(props, ref) { - const { count = 4, inputProps, rootRef, attached, ...rest } = props - return ( - - - - - {Array.from({ length: count }).map((_, index) => ( - - ))} - - - - ) - }, -) diff --git a/src/components/ui/popover.tsx b/src/components/ui/popover.tsx deleted file mode 100644 index 3320659..0000000 --- a/src/components/ui/popover.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { Popover as ChakraPopover, Portal } from "@chakra-ui/react" -import { CloseButton } from "./close-button" -import * as React from "react" - -interface PopoverContentProps extends ChakraPopover.ContentProps { - portalled?: boolean - portalRef?: React.RefObject -} - -export const PopoverContent = React.forwardRef< - HTMLDivElement, - PopoverContentProps ->(function PopoverContent(props, ref) { - const { portalled = true, portalRef, ...rest } = props - return ( - - - - - - ) -}) - -export const PopoverArrow = React.forwardRef< - HTMLDivElement, - ChakraPopover.ArrowProps ->(function PopoverArrow(props, ref) { - return ( - - - - ) -}) - -export const PopoverCloseTrigger = React.forwardRef< - HTMLButtonElement, - ChakraPopover.CloseTriggerProps ->(function PopoverCloseTrigger(props, ref) { - return ( - - - - ) -}) - -export const PopoverTitle = ChakraPopover.Title -export const PopoverDescription = ChakraPopover.Description -export const PopoverFooter = ChakraPopover.Footer -export const PopoverHeader = ChakraPopover.Header -export const PopoverRoot = ChakraPopover.Root -export const PopoverBody = ChakraPopover.Body -export const PopoverTrigger = ChakraPopover.Trigger diff --git a/src/components/ui/progress-circle.tsx b/src/components/ui/progress-circle.tsx deleted file mode 100644 index 2d430cb..0000000 --- a/src/components/ui/progress-circle.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import type { SystemStyleObject } from "@chakra-ui/react" -import { - AbsoluteCenter, - ProgressCircle as ChakraProgressCircle, -} from "@chakra-ui/react" -import * as React from "react" - -interface ProgressCircleRingProps extends ChakraProgressCircle.CircleProps { - trackColor?: SystemStyleObject["stroke"] - cap?: SystemStyleObject["strokeLinecap"] -} - -export const ProgressCircleRing = React.forwardRef< - SVGSVGElement, - ProgressCircleRingProps ->(function ProgressCircleRing(props, ref) { - const { trackColor, cap, color, ...rest } = props - return ( - - - - - ) -}) - -export const ProgressCircleValueText = React.forwardRef< - HTMLDivElement, - ChakraProgressCircle.ValueTextProps ->(function ProgressCircleValueText(props, ref) { - return ( - - - - ) -}) - -export const ProgressCircleRoot = ChakraProgressCircle.Root diff --git a/src/components/ui/progress.tsx b/src/components/ui/progress.tsx deleted file mode 100644 index 9ab22d8..0000000 --- a/src/components/ui/progress.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Progress as ChakraProgress } from "@chakra-ui/react" -import { InfoTip } from "./toggle-tip" -import * as React from "react" - -export const ProgressBar = React.forwardRef< - HTMLDivElement, - ChakraProgress.TrackProps ->(function ProgressBar(props, ref) { - return ( - - - - ) -}) - -export interface ProgressLabelProps extends ChakraProgress.LabelProps { - info?: React.ReactNode -} - -export const ProgressLabel = React.forwardRef< - HTMLDivElement, - ProgressLabelProps ->(function ProgressLabel(props, ref) { - const { children, info, ...rest } = props - return ( - - {children} - {info && {info}} - - ) -}) - -export const ProgressRoot = ChakraProgress.Root -export const ProgressValueText = ChakraProgress.ValueText diff --git a/src/components/ui/prose.tsx b/src/components/ui/prose.tsx deleted file mode 100644 index e34a37b..0000000 --- a/src/components/ui/prose.tsx +++ /dev/null @@ -1,264 +0,0 @@ -"use client" - -import { chakra } from "@chakra-ui/react" - -export const Prose = chakra("div", { - base: { - color: "fg.muted", - maxWidth: "65ch", - fontSize: "sm", - lineHeight: "1.7em", - "& p": { - marginTop: "1em", - marginBottom: "1em", - }, - "& blockquote": { - marginTop: "1.285em", - marginBottom: "1.285em", - paddingInline: "1.285em", - borderInlineStartWidth: "0.25em", - }, - "& a": { - color: "fg", - textDecoration: "underline", - textUnderlineOffset: "3px", - textDecorationThickness: "2px", - textDecorationColor: "border.muted", - fontWeight: "500", - }, - "& strong": { - fontWeight: "600", - }, - "& a strong": { - color: "inherit", - }, - "& h1": { - fontSize: "2.15em", - letterSpacing: "-0.02em", - marginTop: "0", - marginBottom: "0.8em", - lineHeight: "1.2em", - }, - "& h2": { - fontSize: "1.4em", - letterSpacing: "-0.02em", - marginTop: "1.6em", - marginBottom: "0.8em", - lineHeight: "1.4em", - }, - "& h3": { - fontSize: "1.285em", - letterSpacing: "-0.01em", - marginTop: "1.5em", - marginBottom: "0.4em", - lineHeight: "1.5em", - }, - "& h4": { - marginTop: "1.4em", - marginBottom: "0.5em", - letterSpacing: "-0.01em", - lineHeight: "1.5em", - }, - "& img": { - marginTop: "1.7em", - marginBottom: "1.7em", - borderRadius: "lg", - boxShadow: "inset", - }, - "& picture": { - marginTop: "1.7em", - marginBottom: "1.7em", - }, - "& picture > img": { - marginTop: "0", - marginBottom: "0", - }, - "& video": { - marginTop: "1.7em", - marginBottom: "1.7em", - }, - "& kbd": { - fontSize: "0.85em", - borderRadius: "xs", - paddingTop: "0.15em", - paddingBottom: "0.15em", - paddingInlineEnd: "0.35em", - paddingInlineStart: "0.35em", - fontFamily: "inherit", - color: "fg.muted", - "--shadow": "colors.border", - boxShadow: "0 0 0 1px var(--shadow),0 1px 0 1px var(--shadow)", - }, - "& code": { - fontSize: "0.925em", - letterSpacing: "-0.01em", - borderRadius: "md", - borderWidth: "1px", - padding: "0.25em", - }, - "& pre code": { - fontSize: "inherit", - letterSpacing: "inherit", - borderWidth: "inherit", - padding: "0", - }, - "& h2 code": { - fontSize: "0.9em", - }, - "& h3 code": { - fontSize: "0.8em", - }, - "& pre": { - backgroundColor: "bg.subtle", - marginTop: "1.6em", - marginBottom: "1.6em", - borderRadius: "md", - fontSize: "0.9em", - paddingTop: "0.65em", - paddingBottom: "0.65em", - paddingInlineEnd: "1em", - paddingInlineStart: "1em", - overflowX: "auto", - fontWeight: "400", - }, - "& ol": { - marginTop: "1em", - marginBottom: "1em", - paddingInlineStart: "1.5em", - }, - "& ul": { - marginTop: "1em", - marginBottom: "1em", - paddingInlineStart: "1.5em", - }, - "& li": { - marginTop: "0.285em", - marginBottom: "0.285em", - }, - "& ol > li": { - paddingInlineStart: "0.4em", - listStyleType: "decimal", - "&::marker": { - color: "fg.muted", - }, - }, - "& ul > li": { - paddingInlineStart: "0.4em", - listStyleType: "disc", - "&::marker": { - color: "fg.muted", - }, - }, - "& > ul > li p": { - marginTop: "0.5em", - marginBottom: "0.5em", - }, - "& > ul > li > p:first-of-type": { - marginTop: "1em", - }, - "& > ul > li > p:last-of-type": { - marginBottom: "1em", - }, - "& > ol > li > p:first-of-type": { - marginTop: "1em", - }, - "& > ol > li > p:last-of-type": { - marginBottom: "1em", - }, - "& ul ul, ul ol, ol ul, ol ol": { - marginTop: "0.5em", - marginBottom: "0.5em", - }, - "& dl": { - marginTop: "1em", - marginBottom: "1em", - }, - "& dt": { - fontWeight: "600", - marginTop: "1em", - }, - "& dd": { - marginTop: "0.285em", - paddingInlineStart: "1.5em", - }, - "& hr": { - marginTop: "2.25em", - marginBottom: "2.25em", - }, - "& :is(h1,h2,h3,h4,h5,hr) + *": { - marginTop: "0", - }, - "& table": { - width: "100%", - tableLayout: "auto", - textAlign: "start", - lineHeight: "1.5em", - marginTop: "2em", - marginBottom: "2em", - }, - "& thead": { - borderBottomWidth: "1px", - color: "fg", - }, - "& tbody tr": { - borderBottomWidth: "1px", - borderBottomColor: "border", - }, - "& thead th": { - paddingInlineEnd: "1em", - paddingBottom: "0.65em", - paddingInlineStart: "1em", - fontWeight: "medium", - textAlign: "start", - }, - "& thead th:first-of-type": { - paddingInlineStart: "0", - }, - "& thead th:last-of-type": { - paddingInlineEnd: "0", - }, - "& tbody td, tfoot td": { - paddingTop: "0.65em", - paddingInlineEnd: "1em", - paddingBottom: "0.65em", - paddingInlineStart: "1em", - }, - "& tbody td:first-of-type, tfoot td:first-of-type": { - paddingInlineStart: "0", - }, - "& tbody td:last-of-type, tfoot td:last-of-type": { - paddingInlineEnd: "0", - }, - "& figure": { - marginTop: "1.625em", - marginBottom: "1.625em", - }, - "& figure > *": { - marginTop: "0", - marginBottom: "0", - }, - "& figcaption": { - fontSize: "0.85em", - lineHeight: "1.25em", - marginTop: "0.85em", - color: "fg.muted", - }, - "& h1, h2, h3, h4": { - color: "fg", - fontWeight: "600", - }, - }, - variants: { - size: { - md: { - fontSize: "sm", - }, - lg: { - fontSize: "md", - }, - }, - }, - defaultVariants: { - size: "md", - }, -}) diff --git a/src/components/ui/provider.tsx b/src/components/ui/provider.tsx deleted file mode 100644 index fd0331b..0000000 --- a/src/components/ui/provider.tsx +++ /dev/null @@ -1,15 +0,0 @@ -"use client" - -import { ChakraProvider, defaultSystem } from "@chakra-ui/react" -import { - ColorModeProvider, - type ColorModeProviderProps, -} from "./color-mode" - -export function Provider(props: ColorModeProviderProps) { - return ( - - - - ) -} diff --git a/src/components/ui/radio-card.tsx b/src/components/ui/radio-card.tsx deleted file mode 100644 index d2fef42..0000000 --- a/src/components/ui/radio-card.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { RadioCard } from "@chakra-ui/react" -import * as React from "react" - -interface RadioCardItemProps extends RadioCard.ItemProps { - icon?: React.ReactElement - label?: React.ReactNode - description?: React.ReactNode - addon?: React.ReactNode - indicator?: React.ReactNode | null - indicatorPlacement?: "start" | "end" | "inside" - inputProps?: React.InputHTMLAttributes -} - -export const RadioCardItem = React.forwardRef< - HTMLInputElement, - RadioCardItemProps ->(function RadioCardItem(props, ref) { - const { - inputProps, - label, - description, - addon, - icon, - indicator = , - indicatorPlacement = "end", - ...rest - } = props - - const hasContent = label || description || icon - const ContentWrapper = indicator ? RadioCard.ItemContent : React.Fragment - - return ( - - - - {indicatorPlacement === "start" && indicator} - {hasContent && ( - - {icon} - {label && {label}} - {description && ( - - {description} - - )} - {indicatorPlacement === "inside" && indicator} - - )} - {indicatorPlacement === "end" && indicator} - - {addon && {addon}} - - ) -}) - -export const RadioCardRoot = RadioCard.Root -export const RadioCardLabel = RadioCard.Label -export const RadioCardItemIndicator = RadioCard.ItemIndicator diff --git a/src/components/ui/radio.tsx b/src/components/ui/radio.tsx deleted file mode 100644 index b3919d0..0000000 --- a/src/components/ui/radio.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { RadioGroup as ChakraRadioGroup } from "@chakra-ui/react" -import * as React from "react" - -export interface RadioProps extends ChakraRadioGroup.ItemProps { - rootRef?: React.Ref - inputProps?: React.InputHTMLAttributes -} - -export const Radio = React.forwardRef( - function Radio(props, ref) { - const { children, inputProps, rootRef, ...rest } = props - return ( - - - - {children && ( - {children} - )} - - ) - }, -) - -export const RadioGroup = ChakraRadioGroup.Root diff --git a/src/components/ui/rating.tsx b/src/components/ui/rating.tsx deleted file mode 100644 index 5609f26..0000000 --- a/src/components/ui/rating.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { RatingGroup } from "@chakra-ui/react" -import * as React from "react" - -export interface RatingProps extends RatingGroup.RootProps { - icon?: React.ReactElement - count?: number - label?: React.ReactNode -} - -export const Rating = React.forwardRef( - function Rating(props, ref) { - const { icon, count = 5, label, ...rest } = props - return ( - - {label && {label}} - - - {Array.from({ length: count }).map((_, index) => ( - - - - ))} - - - ) - }, -) diff --git a/src/components/ui/segmented-control.tsx b/src/components/ui/segmented-control.tsx deleted file mode 100644 index aa38adf..0000000 --- a/src/components/ui/segmented-control.tsx +++ /dev/null @@ -1,47 +0,0 @@ -"use client" - -import { For, SegmentGroup } from "@chakra-ui/react" -import * as React from "react" - -interface Item { - value: string - label: React.ReactNode - disabled?: boolean -} - -export interface SegmentedControlProps extends SegmentGroup.RootProps { - items: Array -} - -function normalize(items: Array): Item[] { - return items.map((item) => { - if (typeof item === "string") return { value: item, label: item } - return item - }) -} - -export const SegmentedControl = React.forwardRef< - HTMLDivElement, - SegmentedControlProps ->(function SegmentedControl(props, ref) { - const { items, ...rest } = props - const data = React.useMemo(() => normalize(items), [items]) - - return ( - - - - {(item) => ( - - {item.label} - - - )} - - - ) -}) diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx deleted file mode 100644 index 99d84e6..0000000 --- a/src/components/ui/select.tsx +++ /dev/null @@ -1,143 +0,0 @@ -"use client" - -import type { CollectionItem } from "@chakra-ui/react" -import { Select as ChakraSelect, Portal } from "@chakra-ui/react" -import { CloseButton } from "./close-button" -import * as React from "react" - -interface SelectTriggerProps extends ChakraSelect.ControlProps { - clearable?: boolean -} - -export const SelectTrigger = React.forwardRef< - HTMLButtonElement, - SelectTriggerProps ->(function SelectTrigger(props, ref) { - const { children, clearable, ...rest } = props - return ( - - {children} - - {clearable && } - - - - ) -}) - -const SelectClearTrigger = React.forwardRef< - HTMLButtonElement, - ChakraSelect.ClearTriggerProps ->(function SelectClearTrigger(props, ref) { - return ( - - - - ) -}) - -interface SelectContentProps extends ChakraSelect.ContentProps { - portalled?: boolean - portalRef?: React.RefObject -} - -export const SelectContent = React.forwardRef< - HTMLDivElement, - SelectContentProps ->(function SelectContent(props, ref) { - const { portalled = true, portalRef, ...rest } = props - return ( - - - - - - ) -}) - -export const SelectItem = React.forwardRef< - HTMLDivElement, - ChakraSelect.ItemProps ->(function SelectItem(props, ref) { - const { item, children, ...rest } = props - return ( - - {children} - - - ) -}) - -interface SelectValueTextProps - extends Omit { - children?(items: CollectionItem[]): React.ReactNode -} - -export const SelectValueText = React.forwardRef< - HTMLSpanElement, - SelectValueTextProps ->(function SelectValueText(props, ref) { - const { children, ...rest } = props - return ( - - - {(select) => { - const items = select.selectedItems - if (items.length === 0) return props.placeholder - if (children) return children(items) - if (items.length === 1) - return select.collection.stringifyItem(items[0]) - return `${items.length} selected` - }} - - - ) -}) - -export const SelectRoot = React.forwardRef< - HTMLDivElement, - ChakraSelect.RootProps ->(function SelectRoot(props, ref) { - return ( - - {props.asChild ? ( - props.children - ) : ( - <> - - {props.children} - - )} - - ) -}) as ChakraSelect.RootComponent - -interface SelectItemGroupProps extends ChakraSelect.ItemGroupProps { - label: React.ReactNode -} - -export const SelectItemGroup = React.forwardRef< - HTMLDivElement, - SelectItemGroupProps ->(function SelectItemGroup(props, ref) { - const { children, label, ...rest } = props - return ( - - {label} - {children} - - ) -}) - -export const SelectLabel = ChakraSelect.Label -export const SelectItemText = ChakraSelect.ItemText diff --git a/src/components/ui/skeleton.tsx b/src/components/ui/skeleton.tsx deleted file mode 100644 index 4f2c25b..0000000 --- a/src/components/ui/skeleton.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import type { - SkeletonProps as ChakraSkeletonProps, - CircleProps, -} from "@chakra-ui/react" -import { Skeleton as ChakraSkeleton, Circle, Stack } from "@chakra-ui/react" -import * as React from "react" - -export interface SkeletonCircleProps extends ChakraSkeletonProps { - size?: CircleProps["size"] -} - -export const SkeletonCircle = React.forwardRef< - HTMLDivElement, - SkeletonCircleProps ->(function SkeletonCircle(props, ref) { - const { size, ...rest } = props - return ( - - - - ) -}) - -export interface SkeletonTextProps extends ChakraSkeletonProps { - noOfLines?: number -} - -export const SkeletonText = React.forwardRef( - function SkeletonText(props, ref) { - const { noOfLines = 3, gap, ...rest } = props - return ( - - {Array.from({ length: noOfLines }).map((_, index) => ( - - ))} - - ) - }, -) - -export const Skeleton = ChakraSkeleton diff --git a/src/components/ui/slider.tsx b/src/components/ui/slider.tsx deleted file mode 100644 index 37a6dc9..0000000 --- a/src/components/ui/slider.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { Slider as ChakraSlider, HStack } from "@chakra-ui/react" -import * as React from "react" - -export interface SliderProps extends ChakraSlider.RootProps { - marks?: Array - label?: React.ReactNode - showValue?: boolean -} - -export const Slider = React.forwardRef( - function Slider(props, ref) { - const { marks: marksProp, label, showValue, ...rest } = props - const value = props.defaultValue ?? props.value - - const marks = marksProp?.map((mark) => { - if (typeof mark === "number") return { value: mark, label: undefined } - return mark - }) - - const hasMarkLabel = !!marks?.some((mark) => mark.label) - - return ( - - {label && !showValue && ( - {label} - )} - {label && showValue && ( - - {label} - - - )} - - - - - {value?.map((_, index) => ( - - - - ))} - - {marks?.length && ( - - {marks.map((mark, index) => { - const value = typeof mark === "number" ? mark : mark.value - const label = typeof mark === "number" ? undefined : mark.label - return ( - - - {label} - - ) - })} - - )} - - ) - }, -) diff --git a/src/components/ui/stat.tsx b/src/components/ui/stat.tsx deleted file mode 100644 index a1e60ad..0000000 --- a/src/components/ui/stat.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { - Badge, - type BadgeProps, - Stat as ChakraStat, - FormatNumber, -} from "@chakra-ui/react" -import { InfoTip } from "./toggle-tip" -import * as React from "react" - -interface StatLabelProps extends ChakraStat.LabelProps { - info?: React.ReactNode -} - -export const StatLabel = React.forwardRef( - function StatLabel(props, ref) { - const { info, children, ...rest } = props - return ( - - {children} - {info && {info}} - - ) - }, -) - -interface StatValueTextProps extends ChakraStat.ValueTextProps { - value?: number - formatOptions?: Intl.NumberFormatOptions -} - -export const StatValueText = React.forwardRef< - HTMLDivElement, - StatValueTextProps ->(function StatValueText(props, ref) { - const { value, formatOptions, children, ...rest } = props - return ( - - {children || - (value != null && )} - - ) -}) - -export const StatUpTrend = React.forwardRef( - function StatUpTrend(props, ref) { - return ( - - - {props.children} - - ) - }, -) - -export const StatDownTrend = React.forwardRef( - function StatDownTrend(props, ref) { - return ( - - - {props.children} - - ) - }, -) - -export const StatRoot = ChakraStat.Root -export const StatHelpText = ChakraStat.HelpText -export const StatValueUnit = ChakraStat.ValueUnit diff --git a/src/components/ui/status.tsx b/src/components/ui/status.tsx deleted file mode 100644 index 5055463..0000000 --- a/src/components/ui/status.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import type { ColorPalette } from "@chakra-ui/react" -import { Status as ChakraStatus } from "@chakra-ui/react" -import * as React from "react" - -type StatusValue = "success" | "error" | "warning" | "info" - -export interface StatusProps extends ChakraStatus.RootProps { - value?: StatusValue -} - -const statusMap: Record = { - success: "green", - error: "red", - warning: "orange", - info: "blue", -} - -export const Status = React.forwardRef( - function Status(props, ref) { - const { children, value = "info", ...rest } = props - const colorPalette = rest.colorPalette ?? statusMap[value] - return ( - - - {children} - - ) - }, -) diff --git a/src/components/ui/stepper-input.tsx b/src/components/ui/stepper-input.tsx deleted file mode 100644 index 22d158d..0000000 --- a/src/components/ui/stepper-input.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { HStack, IconButton, NumberInput } from "@chakra-ui/react" -import * as React from "react" -import { LuMinus, LuPlus } from "react-icons/lu" - -export interface StepperInputProps extends NumberInput.RootProps { - label?: React.ReactNode -} - -export const StepperInput = React.forwardRef( - function StepperInput(props, ref) { - const { label, ...rest } = props - return ( - - {label && {label}} - - - - - - - ) - }, -) - -const DecrementTrigger = React.forwardRef< - HTMLButtonElement, - NumberInput.DecrementTriggerProps ->(function DecrementTrigger(props, ref) { - return ( - - - - - - ) -}) - -const IncrementTrigger = React.forwardRef< - HTMLButtonElement, - NumberInput.IncrementTriggerProps ->(function IncrementTrigger(props, ref) { - return ( - - - - - - ) -}) diff --git a/src/components/ui/steps.tsx b/src/components/ui/steps.tsx deleted file mode 100644 index 677c4c7..0000000 --- a/src/components/ui/steps.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { Box, Steps as ChakraSteps } from "@chakra-ui/react" -import * as React from "react" -import { LuCheck } from "react-icons/lu" - -interface StepInfoProps { - title?: React.ReactNode - description?: React.ReactNode -} - -export interface StepsItemProps - extends Omit, - StepInfoProps { - completedIcon?: React.ReactNode - icon?: React.ReactNode -} - -export const StepsItem = React.forwardRef( - function StepsItem(props, ref) { - const { title, description, completedIcon, icon, ...rest } = props - return ( - - - - } - incomplete={icon || } - /> - - - - - - ) - }, -) - -const StepInfo = (props: StepInfoProps) => { - const { title, description } = props - - if (title && description) { - return ( - - {title} - {description} - - ) - } - - return ( - <> - {title && {title}} - {description && ( - {description} - )} - - ) -} - -interface StepsIndicatorProps { - completedIcon: React.ReactNode - icon?: React.ReactNode -} - -export const StepsIndicator = React.forwardRef< - HTMLDivElement, - StepsIndicatorProps ->(function StepsIndicator(props, ref) { - const { icon = , completedIcon } = props - return ( - - - - ) -}) - -export const StepsList = ChakraSteps.List -export const StepsRoot = ChakraSteps.Root -export const StepsContent = ChakraSteps.Content -export const StepsCompletedContent = ChakraSteps.CompletedContent - -export const StepsNextTrigger = ChakraSteps.NextTrigger -export const StepsPrevTrigger = ChakraSteps.PrevTrigger diff --git a/src/components/ui/switch.tsx b/src/components/ui/switch.tsx deleted file mode 100644 index a677ca2..0000000 --- a/src/components/ui/switch.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { Switch as ChakraSwitch } from "@chakra-ui/react" -import * as React from "react" - -export interface SwitchProps extends ChakraSwitch.RootProps { - inputProps?: React.InputHTMLAttributes - rootRef?: React.Ref - trackLabel?: { on: React.ReactNode; off: React.ReactNode } - thumbLabel?: { on: React.ReactNode; off: React.ReactNode } -} - -export const Switch = React.forwardRef( - function Switch(props, ref) { - const { inputProps, children, rootRef, trackLabel, thumbLabel, ...rest } = - props - - return ( - - - - - {thumbLabel && ( - - {thumbLabel?.on} - - )} - - {trackLabel && ( - - {trackLabel.on} - - )} - - {children != null && ( - {children} - )} - - ) - }, -) diff --git a/src/components/ui/tag.tsx b/src/components/ui/tag.tsx deleted file mode 100644 index 728250f..0000000 --- a/src/components/ui/tag.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { Tag as ChakraTag } from "@chakra-ui/react" -import * as React from "react" - -export interface TagProps extends ChakraTag.RootProps { - startElement?: React.ReactNode - endElement?: React.ReactNode - onClose?: VoidFunction - closable?: boolean -} - -export const Tag = React.forwardRef( - function Tag(props, ref) { - const { - startElement, - endElement, - onClose, - closable = !!onClose, - children, - ...rest - } = props - - return ( - - {startElement && ( - {startElement} - )} - {children} - {endElement && ( - {endElement} - )} - {closable && ( - - - - )} - - ) - }, -) diff --git a/src/components/ui/timeline.tsx b/src/components/ui/timeline.tsx deleted file mode 100644 index 678c1f6..0000000 --- a/src/components/ui/timeline.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Timeline as ChakraTimeline } from "@chakra-ui/react" -import * as React from "react" - -export const TimelineConnector = React.forwardRef< - HTMLDivElement, - ChakraTimeline.IndicatorProps ->(function TimelineConnector(props, ref) { - return ( - - - - - ) -}) - -export const TimelineRoot = ChakraTimeline.Root -export const TimelineContent = ChakraTimeline.Content -export const TimelineItem = ChakraTimeline.Item -export const TimelineIndicator = ChakraTimeline.Indicator -export const TimelineTitle = ChakraTimeline.Title -export const TimelineDescription = ChakraTimeline.Description diff --git a/src/components/ui/toaster.tsx b/src/components/ui/toaster.tsx deleted file mode 100644 index df6c2c3..0000000 --- a/src/components/ui/toaster.tsx +++ /dev/null @@ -1,43 +0,0 @@ -"use client" - -import { - Toaster as ChakraToaster, - Portal, - Spinner, - Stack, - Toast, - createToaster, -} from "@chakra-ui/react" - -export const toaster = createToaster({ - placement: "bottom-end", - pauseOnPageIdle: true, -}) - -export const Toaster = () => { - return ( - - - {(toast) => ( - - {toast.type === "loading" ? ( - - ) : ( - - )} - - {toast.title && {toast.title}} - {toast.description && ( - {toast.description} - )} - - {toast.action && ( - {toast.action.label} - )} - {toast.meta?.closable && } - - )} - - - ) -} diff --git a/src/components/ui/toggle-tip.tsx b/src/components/ui/toggle-tip.tsx deleted file mode 100644 index 7dc7eae..0000000 --- a/src/components/ui/toggle-tip.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { Popover as ChakraPopover, IconButton, Portal } from "@chakra-ui/react" -import * as React from "react" -import { HiOutlineInformationCircle } from "react-icons/hi" - -export interface ToggleTipProps extends ChakraPopover.RootProps { - showArrow?: boolean - portalled?: boolean - portalRef?: React.RefObject - content?: React.ReactNode -} - -export const ToggleTip = React.forwardRef( - function ToggleTip(props, ref) { - const { - showArrow, - children, - portalled = true, - content, - portalRef, - ...rest - } = props - - return ( - - {children} - - - - {showArrow && ( - - - - )} - {content} - - - - - ) - }, -) - -export const InfoTip = React.forwardRef< - HTMLDivElement, - Partial ->(function InfoTip(props, ref) { - const { children, ...rest } = props - return ( - - - - - - ) -}) diff --git a/src/components/ui/toggle.tsx b/src/components/ui/toggle.tsx deleted file mode 100644 index 8b95973..0000000 --- a/src/components/ui/toggle.tsx +++ /dev/null @@ -1,57 +0,0 @@ -"use client" - -import type { ButtonProps } from "@chakra-ui/react" -import { - Button, - Toggle as ChakraToggle, - useToggleContext, -} from "@chakra-ui/react" -import * as React from "react" - -interface ToggleProps extends ChakraToggle.RootProps { - variant?: keyof typeof variantMap - size?: ButtonProps["size"] -} - -const variantMap = { - solid: { on: "solid", off: "outline" }, - surface: { on: "surface", off: "outline" }, - subtle: { on: "subtle", off: "ghost" }, - ghost: { on: "subtle", off: "ghost" }, -} as const - -export const Toggle = React.forwardRef( - function Toggle(props, ref) { - const { variant = "subtle", size, children, ...rest } = props - const variantConfig = variantMap[variant] - - return ( - - - {children} - - - ) - }, -) - -interface ToggleBaseButtonProps extends Omit { - variant: Record<"on" | "off", ButtonProps["variant"]> -} - -const ToggleBaseButton = React.forwardRef< - HTMLButtonElement, - ToggleBaseButtonProps ->(function ToggleBaseButton(props, ref) { - const toggle = useToggleContext() - const { variant, ...rest } = props - return ( -