erp-pro-ui 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +544 -188
- package/dist/accordion.cjs +3 -0
- package/dist/accordion.d.ts +2 -0
- package/dist/accordion.mjs +2 -0
- package/dist/alert.cjs +3 -0
- package/dist/alert.d.ts +2 -0
- package/dist/alert.mjs +2 -0
- package/dist/animated-content.cjs +3 -0
- package/dist/animated-content.d.ts +2 -0
- package/dist/animated-content.mjs +2 -0
- package/dist/animations.css +91 -0
- package/dist/ascii-text.cjs +3 -0
- package/dist/ascii-text.d.ts +2 -0
- package/dist/ascii-text.mjs +2 -0
- package/dist/background-gradient-animation.cjs +4 -0
- package/dist/background-gradient-animation.d.ts +2 -0
- package/dist/background-gradient-animation.mjs +2 -0
- package/dist/button-hover-border-gradient.cjs +3 -0
- package/dist/button-hover-border-gradient.d.ts +2 -0
- package/dist/button-hover-border-gradient.mjs +2 -0
- package/dist/button.cjs +3 -0
- package/dist/button.d.ts +2 -0
- package/dist/button.mjs +2 -0
- package/dist/calendar.cjs +3 -0
- package/dist/calendar.d.ts +2 -0
- package/dist/calendar.mjs +2 -0
- package/dist/card.cjs +3 -0
- package/dist/card.d.ts +2 -0
- package/dist/card.mjs +2 -0
- package/dist/carousel.cjs +3 -0
- package/dist/carousel.d.ts +2 -0
- package/dist/carousel.mjs +2 -0
- package/dist/catalog.cjs +308 -0
- package/dist/catalog.cjs.map +1 -0
- package/dist/catalog.d.ts +496 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.mjs +304 -0
- package/dist/catalog.mjs.map +1 -0
- package/dist/charts.cjs +11 -0
- package/dist/charts.d.ts +2 -0
- package/dist/charts.mjs +2 -0
- package/dist/checkbox.cjs +3 -0
- package/dist/checkbox.d.ts +2 -0
- package/dist/checkbox.mjs +2 -0
- package/dist/chip.cjs +3 -0
- package/dist/chip.d.ts +2 -0
- package/dist/chip.mjs +2 -0
- package/dist/chroma-grid.cjs +3 -0
- package/dist/chroma-grid.d.ts +2 -0
- package/dist/chroma-grid.mjs +2 -0
- package/dist/chunks/HoverBorderGradient-DVFEIXFQ.mjs +69 -0
- package/dist/chunks/HoverBorderGradient-DVFEIXFQ.mjs.map +1 -0
- package/dist/chunks/HoverBorderGradient-Df3PKpw6.cjs +75 -0
- package/dist/chunks/HoverBorderGradient-Df3PKpw6.cjs.map +1 -0
- package/dist/chunks/accordion-Cbt-SJhj.mjs +66 -0
- package/dist/chunks/accordion-Cbt-SJhj.mjs.map +1 -0
- package/dist/chunks/accordion-pfJR8YYA.cjs +72 -0
- package/dist/chunks/accordion-pfJR8YYA.cjs.map +1 -0
- package/dist/chunks/alert-CtdLy4Hv.mjs +40 -0
- package/dist/chunks/alert-CtdLy4Hv.mjs.map +1 -0
- package/dist/chunks/alert-Dvz1GoL5.cjs +46 -0
- package/dist/chunks/alert-Dvz1GoL5.cjs.map +1 -0
- package/dist/chunks/animated-content-C1uNg1xO.mjs +292 -0
- package/dist/chunks/animated-content-C1uNg1xO.mjs.map +1 -0
- package/dist/chunks/animated-content-CttSmLWV.cjs +298 -0
- package/dist/chunks/animated-content-CttSmLWV.cjs.map +1 -0
- package/dist/chunks/ascii-text-C5tyNsR3.mjs +511 -0
- package/dist/chunks/ascii-text-C5tyNsR3.mjs.map +1 -0
- package/dist/chunks/ascii-text-DlmArZXh.cjs +519 -0
- package/dist/chunks/ascii-text-DlmArZXh.cjs.map +1 -0
- package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs +144 -0
- package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs.map +1 -0
- package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs +156 -0
- package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs.map +1 -0
- package/dist/chunks/button-B0Lhj0AS.mjs +42 -0
- package/dist/chunks/button-B0Lhj0AS.mjs.map +1 -0
- package/dist/chunks/button-CZL6kFzT.cjs +48 -0
- package/dist/chunks/button-CZL6kFzT.cjs.map +1 -0
- package/dist/chunks/button-hover-border-gradient-CSHXM5Cm.cjs +24 -0
- package/dist/chunks/button-hover-border-gradient-CSHXM5Cm.cjs.map +1 -0
- package/dist/chunks/button-hover-border-gradient-CvoM60wz.mjs +18 -0
- package/dist/chunks/button-hover-border-gradient-CvoM60wz.mjs.map +1 -0
- package/dist/chunks/calendar-BarcG6x_.mjs +137 -0
- package/dist/chunks/calendar-BarcG6x_.mjs.map +1 -0
- package/dist/chunks/calendar-xrGmvukr.cjs +143 -0
- package/dist/chunks/calendar-xrGmvukr.cjs.map +1 -0
- package/dist/chunks/card-CcIF6z2H.mjs +24 -0
- package/dist/chunks/card-CcIF6z2H.mjs.map +1 -0
- package/dist/chunks/card-gt-HZh0h.cjs +30 -0
- package/dist/chunks/card-gt-HZh0h.cjs.map +1 -0
- package/dist/chunks/carousel-Cq5uwqQt.cjs +313 -0
- package/dist/chunks/carousel-Cq5uwqQt.cjs.map +1 -0
- package/dist/chunks/carousel-DJdqBVRK.mjs +307 -0
- package/dist/chunks/carousel-DJdqBVRK.mjs.map +1 -0
- package/dist/chunks/charts-BpElnsoR.cjs +687 -0
- package/dist/chunks/charts-BpElnsoR.cjs.map +1 -0
- package/dist/chunks/charts-DugYWvEf.mjs +632 -0
- package/dist/chunks/charts-DugYWvEf.mjs.map +1 -0
- package/dist/chunks/checkbox-DvwlGwWe.mjs +53 -0
- package/dist/chunks/checkbox-DvwlGwWe.mjs.map +1 -0
- package/dist/chunks/checkbox-yHuSw-hV.cjs +59 -0
- package/dist/chunks/checkbox-yHuSw-hV.cjs.map +1 -0
- package/dist/chunks/chip-BGSUmnlO.mjs +139 -0
- package/dist/chunks/chip-BGSUmnlO.mjs.map +1 -0
- package/dist/chunks/chip-DcBji__g.cjs +145 -0
- package/dist/chunks/chip-DcBji__g.cjs.map +1 -0
- package/dist/chunks/chroma-grid-9E9j1s9I.cjs +221 -0
- package/dist/chunks/chroma-grid-9E9j1s9I.cjs.map +1 -0
- package/dist/chunks/chroma-grid-Cdeql_2C.mjs +215 -0
- package/dist/chunks/chroma-grid-Cdeql_2C.mjs.map +1 -0
- package/dist/chunks/chunk-B_GkZjkl.cjs +28 -0
- package/dist/chunks/color-palette-BLvDnCOD.cjs +754 -0
- package/dist/chunks/color-palette-BLvDnCOD.cjs.map +1 -0
- package/dist/chunks/color-palette-CXlCDiZz.mjs +748 -0
- package/dist/chunks/color-palette-CXlCDiZz.mjs.map +1 -0
- package/dist/chunks/combobox-BXu3s0dt.cjs +139 -0
- package/dist/chunks/combobox-BXu3s0dt.cjs.map +1 -0
- package/dist/chunks/combobox-CjK-qG4k.mjs +132 -0
- package/dist/chunks/combobox-CjK-qG4k.mjs.map +1 -0
- package/dist/chunks/data-table-9HELVsYR.cjs +1154 -0
- package/dist/chunks/data-table-9HELVsYR.cjs.map +1 -0
- package/dist/chunks/data-table-DyEQn9Yj.mjs +1123 -0
- package/dist/chunks/data-table-DyEQn9Yj.mjs.map +1 -0
- package/dist/chunks/date-picker-D8gaaMlJ.mjs +135 -0
- package/dist/chunks/date-picker-D8gaaMlJ.mjs.map +1 -0
- package/dist/chunks/date-picker-W9om1j7A.cjs +141 -0
- package/dist/chunks/date-picker-W9om1j7A.cjs.map +1 -0
- package/dist/chunks/dialog-CYFiWN8M.cjs +396 -0
- package/dist/chunks/dialog-CYFiWN8M.cjs.map +1 -0
- package/dist/chunks/dialog-DUWnV9tN.mjs +390 -0
- package/dist/chunks/dialog-DUWnV9tN.mjs.map +1 -0
- package/dist/chunks/drawer-CLjsYdxN.cjs +128 -0
- package/dist/chunks/drawer-CLjsYdxN.cjs.map +1 -0
- package/dist/chunks/drawer-D82Jz6KO.mjs +122 -0
- package/dist/chunks/drawer-D82Jz6KO.mjs.map +1 -0
- package/dist/chunks/form-B2vcaHwh.mjs +161 -0
- package/dist/chunks/form-B2vcaHwh.mjs.map +1 -0
- package/dist/chunks/form-CzH9GQc6.cjs +203 -0
- package/dist/chunks/form-CzH9GQc6.cjs.map +1 -0
- package/dist/chunks/gradual-blur-B9GoY8o1.cjs +65 -0
- package/dist/chunks/gradual-blur-B9GoY8o1.cjs.map +1 -0
- package/dist/chunks/gradual-blur-Bl3dOMEz.mjs +59 -0
- package/dist/chunks/gradual-blur-Bl3dOMEz.mjs.map +1 -0
- package/dist/chunks/hover-card-v0QwmVBU.cjs +191 -0
- package/dist/chunks/hover-card-v0QwmVBU.cjs.map +1 -0
- package/dist/chunks/hover-card-xqwpmZNm.mjs +185 -0
- package/dist/chunks/hover-card-xqwpmZNm.mjs.map +1 -0
- package/dist/chunks/icons-BxIzP2jd.cjs +1717 -0
- package/dist/chunks/icons-BxIzP2jd.cjs.map +1 -0
- package/dist/chunks/icons-DuumN7z-.mjs +1429 -0
- package/dist/chunks/icons-DuumN7z-.mjs.map +1 -0
- package/dist/chunks/input-D9qZNqXV.cjs +99 -0
- package/dist/chunks/input-D9qZNqXV.cjs.map +1 -0
- package/dist/chunks/input-wNqevfQ4.mjs +87 -0
- package/dist/chunks/input-wNqevfQ4.mjs.map +1 -0
- package/dist/chunks/label-BWPEGVam.cjs +32 -0
- package/dist/chunks/label-BWPEGVam.cjs.map +1 -0
- package/dist/chunks/label-KPA-yYOF.mjs +26 -0
- package/dist/chunks/label-KPA-yYOF.mjs.map +1 -0
- package/dist/chunks/loading-S1TdIrbB.mjs +259 -0
- package/dist/chunks/loading-S1TdIrbB.mjs.map +1 -0
- package/dist/chunks/loading-q7IEg56I.cjs +313 -0
- package/dist/chunks/loading-q7IEg56I.cjs.map +1 -0
- package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs +132 -0
- package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs.map +1 -0
- package/dist/chunks/multi-select-combobox-UW0X15W7.cjs +139 -0
- package/dist/chunks/multi-select-combobox-UW0X15W7.cjs.map +1 -0
- package/dist/chunks/otp-input-B6zzOEqw.cjs +186 -0
- package/dist/chunks/otp-input-B6zzOEqw.cjs.map +1 -0
- package/dist/chunks/otp-input-Bg4nQG6x.mjs +180 -0
- package/dist/chunks/otp-input-Bg4nQG6x.mjs.map +1 -0
- package/dist/chunks/overlay-DWNTyQzK.cjs +60 -0
- package/dist/chunks/overlay-DWNTyQzK.cjs.map +1 -0
- package/dist/chunks/overlay-TycCIFOu.mjs +54 -0
- package/dist/chunks/overlay-TycCIFOu.mjs.map +1 -0
- package/dist/chunks/password-strength-meter-CbNSBuh_.mjs +99 -0
- package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +1 -0
- package/dist/chunks/password-strength-meter-DxMV6GAs.cjs +105 -0
- package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +1 -0
- package/dist/chunks/progress-bar-C1OvQ-NI.cjs +96 -0
- package/dist/chunks/progress-bar-C1OvQ-NI.cjs.map +1 -0
- package/dist/chunks/progress-bar-C9FZDrju.mjs +89 -0
- package/dist/chunks/progress-bar-C9FZDrju.mjs.map +1 -0
- package/dist/chunks/radio-C9w_CoiY.mjs +44 -0
- package/dist/chunks/radio-C9w_CoiY.mjs.map +1 -0
- package/dist/chunks/radio-jMHDvaMY.cjs +50 -0
- package/dist/chunks/radio-jMHDvaMY.cjs.map +1 -0
- package/dist/chunks/select-D71tk6-I.mjs +152 -0
- package/dist/chunks/select-D71tk6-I.mjs.map +1 -0
- package/dist/chunks/select-WC_kPqUP.cjs +158 -0
- package/dist/chunks/select-WC_kPqUP.cjs.map +1 -0
- package/dist/chunks/skeleton-BhYWOp0Q.mjs +215 -0
- package/dist/chunks/skeleton-BhYWOp0Q.mjs.map +1 -0
- package/dist/chunks/skeleton-DTXpHYYB.cjs +221 -0
- package/dist/chunks/skeleton-DTXpHYYB.cjs.map +1 -0
- package/dist/chunks/spinners-BBCWD2gw.mjs +11 -0
- package/dist/chunks/spinners-BBCWD2gw.mjs.map +1 -0
- package/dist/chunks/spinners-BL4ERCCw.cjs +17 -0
- package/dist/chunks/spinners-BL4ERCCw.cjs.map +1 -0
- package/dist/chunks/splash-cursor-BVSmbcIX.cjs +279 -0
- package/dist/chunks/splash-cursor-BVSmbcIX.cjs.map +1 -0
- package/dist/chunks/splash-cursor-rSrTnawZ.mjs +273 -0
- package/dist/chunks/splash-cursor-rSrTnawZ.mjs.map +1 -0
- package/dist/chunks/spotlight-card-BpZLMOp6.mjs +104 -0
- package/dist/chunks/spotlight-card-BpZLMOp6.mjs.map +1 -0
- package/dist/chunks/spotlight-card-DS1dy1W3.cjs +110 -0
- package/dist/chunks/spotlight-card-DS1dy1W3.cjs.map +1 -0
- package/dist/chunks/stepper-D4yQsQB0.mjs +261 -0
- package/dist/chunks/stepper-D4yQsQB0.mjs.map +1 -0
- package/dist/chunks/stepper-fY-Sx72k.cjs +267 -0
- package/dist/chunks/stepper-fY-Sx72k.cjs.map +1 -0
- package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs +186 -0
- package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs.map +1 -0
- package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs +192 -0
- package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs.map +1 -0
- package/dist/chunks/switch-C5otDb4c.cjs +64 -0
- package/dist/chunks/switch-C5otDb4c.cjs.map +1 -0
- package/dist/chunks/switch-DOVl_i_s.mjs +58 -0
- package/dist/chunks/switch-DOVl_i_s.mjs.map +1 -0
- package/dist/chunks/textarea-CAUsyu4-.cjs +63 -0
- package/dist/chunks/textarea-CAUsyu4-.cjs.map +1 -0
- package/dist/chunks/textarea-CU5C-Zw9.mjs +57 -0
- package/dist/chunks/textarea-CU5C-Zw9.mjs.map +1 -0
- package/dist/chunks/theme-7DWLxJK_.cjs +68 -0
- package/dist/chunks/theme-7DWLxJK_.cjs.map +1 -0
- package/dist/chunks/theme-BceKeYhw.mjs +56 -0
- package/dist/chunks/theme-BceKeYhw.mjs.map +1 -0
- package/dist/chunks/toast-CvfP7PUP.mjs +339 -0
- package/dist/chunks/toast-CvfP7PUP.mjs.map +1 -0
- package/dist/chunks/toast-Ds7_19Ap.cjs +369 -0
- package/dist/chunks/toast-Ds7_19Ap.cjs.map +1 -0
- package/dist/chunks/tooltip-efHETBo1.mjs +199 -0
- package/dist/chunks/tooltip-efHETBo1.mjs.map +1 -0
- package/dist/chunks/tooltip-nkIqViGk.cjs +205 -0
- package/dist/chunks/tooltip-nkIqViGk.cjs.map +1 -0
- package/dist/chunks/typography-CLu6Hx9j.mjs +83 -0
- package/dist/chunks/typography-CLu6Hx9j.mjs.map +1 -0
- package/dist/chunks/typography-DaLu9tty.cjs +90 -0
- package/dist/chunks/typography-DaLu9tty.cjs.map +1 -0
- package/dist/chunks/utils-B4SmmY4J.cjs +2019 -0
- package/dist/chunks/utils-B4SmmY4J.cjs.map +1 -0
- package/dist/chunks/utils-ati1KkDb.mjs +2002 -0
- package/dist/chunks/utils-ati1KkDb.mjs.map +1 -0
- package/dist/color-palette.cjs +3 -0
- package/dist/color-palette.d.ts +2 -0
- package/dist/color-palette.mjs +2 -0
- package/dist/colors.css +153 -0
- package/dist/combobox.cjs +3 -0
- package/dist/combobox.d.ts +2 -0
- package/dist/combobox.mjs +2 -0
- package/dist/components/data-display/card/Card.d.ts.map +1 -0
- package/dist/components/data-display/card/index.d.ts.map +1 -0
- package/dist/components/data-display/card/types.d.ts +5 -0
- package/dist/components/data-display/card/types.d.ts.map +1 -0
- package/dist/components/data-display/charts/AreaChart.d.ts.map +1 -0
- package/dist/components/data-display/charts/BarChart.d.ts.map +1 -0
- package/dist/components/data-display/charts/NeonLineChart.d.ts.map +1 -0
- package/dist/components/data-display/charts/PieChart.d.ts.map +1 -0
- package/dist/components/data-display/charts/StackedBarChart.d.ts.map +1 -0
- package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -0
- package/dist/components/data-display/charts/chartPalette.d.ts +10 -0
- package/dist/components/data-display/charts/chartPalette.d.ts.map +1 -0
- package/dist/components/data-display/charts/index.d.ts +14 -0
- package/dist/components/data-display/charts/index.d.ts.map +1 -0
- package/dist/components/data-display/chip/Chip.d.ts.map +1 -0
- package/dist/components/data-display/chip/index.d.ts.map +1 -0
- package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -0
- package/dist/components/data-display/color-palette/index.d.ts.map +1 -0
- package/dist/components/data-display/color-palette/types.d.ts +14 -0
- package/dist/components/data-display/color-palette/types.d.ts.map +1 -0
- package/dist/components/{basics → data-display}/data-table/DataTable.d.ts +27 -11
- package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -0
- package/dist/components/data-display/data-table/index.d.ts +4 -0
- package/dist/components/data-display/data-table/index.d.ts.map +1 -0
- package/dist/components/data-display/index.d.ts +10 -0
- package/dist/components/data-display/index.d.ts.map +1 -0
- package/dist/components/{basics → data-display}/loading/Loading.d.ts +7 -7
- package/dist/components/data-display/loading/Loading.d.ts.map +1 -0
- package/dist/components/data-display/loading/index.d.ts.map +1 -0
- package/dist/components/data-display/loading/types.d.ts +25 -0
- package/dist/components/data-display/loading/types.d.ts.map +1 -0
- package/dist/components/data-display/progress-bar/ProgressBar.d.ts +18 -0
- package/dist/components/data-display/progress-bar/ProgressBar.d.ts.map +1 -0
- package/dist/components/data-display/progress-bar/index.d.ts +3 -0
- package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
- package/dist/components/data-display/skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/data-display/skeleton/index.d.ts.map +1 -0
- package/dist/components/effects/animated-content/AnimatedContent.d.ts.map +1 -0
- package/dist/components/effects/animated-content/index.d.ts.map +1 -0
- package/dist/components/effects/animated-content/types.d.ts +45 -0
- package/dist/components/effects/animated-content/types.d.ts.map +1 -0
- package/dist/components/effects/ascii-text/ASCIIText.d.ts.map +1 -0
- package/dist/components/effects/ascii-text/index.d.ts.map +1 -0
- package/dist/components/effects/background-gradient-animation/BackgroundGradientAnimation.d.ts.map +1 -0
- package/dist/components/effects/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts.map +1 -0
- package/dist/components/effects/background-gradient-animation/index.d.ts.map +1 -0
- package/dist/components/effects/border-beam/BorderBeam.d.ts +12 -0
- package/dist/components/effects/border-beam/BorderBeam.d.ts.map +1 -0
- package/dist/components/effects/border-beam/index.d.ts +3 -0
- package/dist/components/effects/border-beam/index.d.ts.map +1 -0
- package/dist/components/effects/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts.map +1 -0
- package/dist/components/effects/button-hover-border-gradient/index.d.ts.map +1 -0
- package/dist/components/effects/chroma-grid/ChromaGrid.d.ts.map +1 -0
- package/dist/components/effects/chroma-grid/index.d.ts +3 -0
- package/dist/components/effects/chroma-grid/index.d.ts.map +1 -0
- package/dist/components/effects/chroma-grid/types.d.ts +50 -0
- package/dist/components/effects/chroma-grid/types.d.ts.map +1 -0
- package/dist/components/{basics → effects}/gradual-blur/GradualBlur.d.ts +1 -1
- package/dist/components/effects/gradual-blur/GradualBlur.d.ts.map +1 -0
- package/dist/components/effects/gradual-blur/index.d.ts +3 -0
- package/dist/components/effects/gradual-blur/index.d.ts.map +1 -0
- package/dist/components/effects/gradual-blur/types.d.ts +28 -0
- package/dist/components/effects/gradual-blur/types.d.ts.map +1 -0
- package/dist/components/effects/hover-border-gradient/HoverBorderGradient.d.ts.map +1 -0
- package/dist/components/effects/hover-border-gradient/index.d.ts.map +1 -0
- package/dist/components/effects/index.d.ts +12 -0
- package/dist/components/effects/index.d.ts.map +1 -0
- package/dist/components/effects/splash-cursor/SplashCursor.d.ts.map +1 -0
- package/dist/components/effects/splash-cursor/index.d.ts.map +1 -0
- package/dist/components/effects/splash-cursor/types.d.ts +40 -0
- package/dist/components/effects/splash-cursor/types.d.ts.map +1 -0
- package/dist/components/effects/spotlight-card/SpotlightCard.d.ts.map +1 -0
- package/dist/components/effects/spotlight-card/index.d.ts +3 -0
- package/dist/components/effects/spotlight-card/index.d.ts.map +1 -0
- package/dist/components/effects/spotlight-card/types.d.ts +26 -0
- package/dist/components/effects/spotlight-card/types.d.ts.map +1 -0
- package/dist/components/effects/sun-to-moon-button/SunToMoonButton.d.ts +5 -0
- package/dist/components/effects/sun-to-moon-button/SunToMoonButton.d.ts.map +1 -0
- package/dist/components/effects/sun-to-moon-button/index.d.ts.map +1 -0
- package/dist/components/feedback/alert/Alert.d.ts.map +1 -0
- package/dist/components/feedback/alert/index.d.ts.map +1 -0
- package/dist/components/feedback/alert/types.d.ts +11 -0
- package/dist/components/feedback/alert/types.d.ts.map +1 -0
- package/dist/components/feedback/index.d.ts +2 -0
- package/dist/components/feedback/index.d.ts.map +1 -0
- package/dist/components/{basics/Button → forms/button}/Button.d.ts +1 -1
- package/dist/components/forms/button/Button.d.ts.map +1 -0
- package/dist/components/forms/button/index.d.ts.map +1 -0
- package/dist/components/forms/button/types.d.ts +14 -0
- package/dist/components/forms/button/types.d.ts.map +1 -0
- package/dist/components/forms/calendar/Calendar.d.ts.map +1 -0
- package/dist/components/forms/calendar/index.d.ts.map +1 -0
- package/dist/components/forms/calendar/types.d.ts +20 -0
- package/dist/components/forms/calendar/types.d.ts.map +1 -0
- package/dist/components/forms/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/forms/checkbox/index.d.ts.map +1 -0
- package/dist/components/forms/checkbox/types.d.ts +8 -0
- package/dist/components/forms/checkbox/types.d.ts.map +1 -0
- package/dist/components/{basics → forms}/combobox/Combobox.d.ts +1 -1
- package/dist/components/forms/combobox/Combobox.d.ts.map +1 -0
- package/dist/components/forms/combobox/index.d.ts.map +1 -0
- package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -0
- package/dist/components/forms/date-picker/index.d.ts +3 -0
- package/dist/components/forms/date-picker/index.d.ts.map +1 -0
- package/dist/components/forms/date-picker/types.d.ts +21 -0
- package/dist/components/forms/date-picker/types.d.ts.map +1 -0
- package/dist/components/forms/form/Form.d.ts.map +1 -0
- package/dist/components/forms/form/index.d.ts.map +1 -0
- package/dist/components/forms/form/types.d.ts +47 -0
- package/dist/components/forms/form/types.d.ts.map +1 -0
- package/dist/components/forms/index.d.ts +15 -0
- package/dist/components/forms/index.d.ts.map +1 -0
- package/dist/components/forms/input/Input.d.ts.map +1 -0
- package/dist/components/{basics → forms}/input/index.d.ts +1 -0
- package/dist/components/forms/input/index.d.ts.map +1 -0
- package/dist/components/forms/input/types.d.ts.map +1 -0
- package/dist/components/forms/label/Label.d.ts.map +1 -0
- package/dist/components/forms/label/index.d.ts.map +1 -0
- package/dist/components/forms/label/types.d.ts +5 -0
- package/dist/components/forms/label/types.d.ts.map +1 -0
- package/dist/components/{basics → forms}/multi-select-combobox/MultiSelectCombobox.d.ts +1 -1
- package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -0
- package/dist/components/forms/multi-select-combobox/index.d.ts +3 -0
- package/dist/components/forms/multi-select-combobox/index.d.ts.map +1 -0
- package/dist/components/forms/otp-input/OTPInput.d.ts.map +1 -0
- package/dist/components/forms/otp-input/index.d.ts +3 -0
- package/dist/components/{basics/skeleton → forms/otp-input}/index.d.ts.map +1 -1
- package/dist/components/forms/otp-input/types.d.ts +2 -0
- package/dist/components/forms/otp-input/types.d.ts.map +1 -0
- package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -0
- package/dist/components/forms/password-strength-meter/PasswordStrengthMeter.d.ts +5 -0
- package/dist/components/forms/password-strength-meter/PasswordStrengthMeter.d.ts.map +1 -0
- package/dist/components/forms/password-strength-meter/index.d.ts +3 -0
- package/dist/components/forms/password-strength-meter/index.d.ts.map +1 -0
- package/dist/components/forms/radio/Radio.d.ts.map +1 -0
- package/dist/components/forms/radio/index.d.ts.map +1 -0
- package/dist/components/forms/radio/types.d.ts +11 -0
- package/dist/components/forms/radio/types.d.ts.map +1 -0
- package/dist/components/forms/select/Select.d.ts.map +1 -0
- package/dist/components/forms/select/index.d.ts.map +1 -0
- package/dist/components/forms/select/types.d.ts +15 -0
- package/dist/components/forms/select/types.d.ts.map +1 -0
- package/dist/components/forms/switch/Switch.d.ts.map +1 -0
- package/dist/components/forms/switch/index.d.ts.map +1 -0
- package/dist/components/forms/switch/types.d.ts +6 -0
- package/dist/components/forms/switch/types.d.ts.map +1 -0
- package/dist/components/forms/textarea/Textarea.d.ts.map +1 -0
- package/dist/components/forms/textarea/index.d.ts.map +1 -0
- package/dist/components/forms/textarea/types.d.ts +7 -0
- package/dist/components/forms/textarea/types.d.ts.map +1 -0
- package/dist/components/icons/AlertCircleIcon.d.ts +9 -0
- package/dist/components/icons/AlertCircleIcon.d.ts.map +1 -0
- package/dist/components/icons/AlertTriangleIcon.d.ts +9 -0
- package/dist/components/icons/AlertTriangleIcon.d.ts.map +1 -0
- package/dist/components/icons/AudioWaveIcon.d.ts +9 -0
- package/dist/components/icons/AudioWaveIcon.d.ts.map +1 -0
- package/dist/components/icons/CheckCircleIcon.d.ts +9 -0
- package/dist/components/icons/CheckCircleIcon.d.ts.map +1 -0
- package/dist/components/icons/ColumnsIcon.d.ts +9 -0
- package/dist/components/icons/ColumnsIcon.d.ts.map +1 -0
- package/dist/components/icons/FilterIcon.d.ts +9 -0
- package/dist/components/icons/FilterIcon.d.ts.map +1 -0
- package/dist/components/icons/FilterProfileIcon.d.ts +9 -0
- package/dist/components/icons/FilterProfileIcon.d.ts.map +1 -0
- package/dist/components/icons/FilterXIcon.d.ts +9 -0
- package/dist/components/icons/FilterXIcon.d.ts.map +1 -0
- package/dist/components/icons/InfoCircleIcon.d.ts +9 -0
- package/dist/components/icons/InfoCircleIcon.d.ts.map +1 -0
- package/dist/components/icons/LoaderIcon.d.ts +10 -0
- package/dist/components/icons/LoaderIcon.d.ts.map +1 -0
- package/dist/components/icons/MailIcon.d.ts +9 -0
- package/dist/components/icons/MailIcon.d.ts.map +1 -0
- package/dist/components/icons/PlayIcon.d.ts +9 -0
- package/dist/components/icons/PlayIcon.d.ts.map +1 -0
- package/dist/components/icons/QuestionCircleIcon.d.ts +9 -0
- package/dist/components/icons/QuestionCircleIcon.d.ts.map +1 -0
- package/dist/components/icons/RefreshIcon.d.ts +9 -0
- package/dist/components/icons/RefreshIcon.d.ts.map +1 -0
- package/dist/components/icons/RingLoaderIcon.d.ts +11 -0
- package/dist/components/icons/RingLoaderIcon.d.ts.map +1 -0
- package/dist/components/icons/SelectionIcon.d.ts +9 -0
- package/dist/components/icons/SelectionIcon.d.ts.map +1 -0
- package/dist/components/icons/XCircleIcon.d.ts +9 -0
- package/dist/components/icons/XCircleIcon.d.ts.map +1 -0
- package/dist/components/icons/ZapIcon.d.ts +9 -0
- package/dist/components/icons/ZapIcon.d.ts.map +1 -0
- package/dist/components/icons/index.d.ts +18 -0
- package/dist/components/icons/index.d.ts.map +1 -1
- package/dist/components/{basics → navigation}/accordion/Accordion.d.ts +1 -1
- package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -0
- package/dist/components/{basics → navigation}/accordion/index.d.ts +1 -1
- package/dist/components/navigation/accordion/index.d.ts.map +1 -0
- package/dist/components/navigation/accordion/types.d.ts +18 -0
- package/dist/components/navigation/accordion/types.d.ts.map +1 -0
- package/dist/components/navigation/carousel/Carousel.d.ts.map +1 -0
- package/dist/components/navigation/carousel/index.d.ts.map +1 -0
- package/dist/components/navigation/carousel/types.d.ts +64 -0
- package/dist/components/navigation/carousel/types.d.ts.map +1 -0
- package/dist/components/navigation/index.d.ts +4 -0
- package/dist/components/navigation/index.d.ts.map +1 -0
- package/dist/components/navigation/stepper/Stepper.d.ts.map +1 -0
- package/dist/components/navigation/stepper/index.d.ts.map +1 -0
- package/dist/components/navigation/stepper/types.d.ts +83 -0
- package/dist/components/navigation/stepper/types.d.ts.map +1 -0
- package/dist/components/overlays/dialog/Dialog.d.ts.map +1 -0
- package/dist/components/overlays/dialog/index.d.ts +3 -0
- package/dist/components/overlays/dialog/index.d.ts.map +1 -0
- package/dist/components/{basics → overlays}/dialog/types.d.ts +18 -18
- package/dist/components/overlays/dialog/types.d.ts.map +1 -0
- package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -0
- package/dist/components/overlays/drawer/index.d.ts +3 -0
- package/dist/components/overlays/drawer/index.d.ts.map +1 -0
- package/dist/components/overlays/drawer/types.d.ts +12 -0
- package/dist/components/overlays/drawer/types.d.ts.map +1 -0
- package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -0
- package/dist/components/overlays/hover-card/index.d.ts +3 -0
- package/dist/components/overlays/hover-card/index.d.ts.map +1 -0
- package/dist/components/overlays/hover-card/types.d.ts +2 -0
- package/dist/components/overlays/hover-card/types.d.ts.map +1 -0
- package/dist/components/overlays/index.d.ts +6 -0
- package/dist/components/overlays/index.d.ts.map +1 -0
- package/dist/components/overlays/toast/Toast.d.ts.map +1 -0
- package/dist/components/overlays/toast/index.d.ts.map +1 -0
- package/dist/components/overlays/toast/types.d.ts +2 -0
- package/dist/components/overlays/toast/types.d.ts.map +1 -0
- package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/overlays/tooltip/index.d.ts.map +1 -0
- package/dist/components/overlays/tooltip/types.d.ts +27 -0
- package/dist/components/overlays/tooltip/types.d.ts.map +1 -0
- package/dist/components/spinners/Audio.d.ts.map +1 -1
- package/dist/components/spinners/index.d.ts +2 -0
- package/dist/components/spinners/index.d.ts.map +1 -0
- package/dist/components/text-animations/{BlurText → blur-text}/BlurText.d.ts +2 -2
- package/dist/components/text-animations/blur-text/BlurText.d.ts.map +1 -0
- package/dist/components/text-animations/blur-text/index.d.ts.map +1 -0
- package/dist/components/{basics/typography → typography}/Typography.d.ts +5 -5
- package/dist/components/typography/Typography.d.ts.map +1 -0
- package/dist/components/typography/index.d.ts +3 -0
- package/dist/components/typography/index.d.ts.map +1 -0
- package/dist/contexts/ThemeContext.d.ts +2 -15
- package/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/data-table.cjs +7 -0
- package/dist/data-table.d.ts +2 -0
- package/dist/data-table.mjs +2 -0
- package/dist/date-picker.cjs +3 -0
- package/dist/date-picker.d.ts +2 -0
- package/dist/date-picker.mjs +2 -0
- package/dist/dialog.cjs +3 -0
- package/dist/dialog.d.ts +2 -0
- package/dist/dialog.mjs +2 -0
- package/dist/docs.cjs +699 -0
- package/dist/docs.cjs.map +1 -0
- package/dist/docs.d.ts +257 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/docs.mjs +691 -0
- package/dist/docs.mjs.map +1 -0
- package/dist/drawer.cjs +3 -0
- package/dist/drawer.d.ts +2 -0
- package/dist/drawer.mjs +2 -0
- package/dist/fonts/geist/Geist-Black.woff2 +0 -0
- package/dist/fonts/geist/Geist-Bold.woff2 +0 -0
- package/dist/fonts/geist/Geist-ExtraBold.woff2 +0 -0
- package/dist/fonts/geist/Geist-ExtraLight.woff2 +0 -0
- package/dist/fonts/geist/Geist-Light.woff2 +0 -0
- package/dist/fonts/geist/Geist-Medium.woff2 +0 -0
- package/dist/fonts/geist/Geist-Regular.woff2 +0 -0
- package/dist/fonts/geist/Geist-SemiBold.woff2 +0 -0
- package/dist/fonts/geist/Geist-Thin.woff2 +0 -0
- package/dist/fonts/geist/Geist[wght].woff2 +0 -0
- package/dist/fonts.css +84 -0
- package/dist/form.cjs +9 -0
- package/dist/form.d.ts +2 -0
- package/dist/form.mjs +2 -0
- package/dist/foundation.css +30 -0
- package/dist/foundations/index.d.ts +2 -0
- package/dist/foundations/index.d.ts.map +1 -0
- package/dist/foundations/theme/ThemeProvider.d.ts +17 -0
- package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/foundations/theme/index.d.ts +3 -0
- package/dist/foundations/theme/index.d.ts.map +1 -0
- package/dist/gradual-blur.cjs +3 -0
- package/dist/gradual-blur.d.ts +2 -0
- package/dist/gradual-blur.mjs +2 -0
- package/dist/hover-border-gradient.cjs +3 -0
- package/dist/hover-border-gradient.d.ts +2 -0
- package/dist/hover-border-gradient.mjs +2 -0
- package/dist/hover-card.cjs +3 -0
- package/dist/hover-card.d.ts +2 -0
- package/dist/hover-card.mjs +2 -0
- package/dist/icons.cjs +50 -0
- package/dist/icons.d.ts +2 -0
- package/dist/icons.mjs +2 -0
- package/dist/index.cjs +188 -12516
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +74 -76
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +67 -12500
- package/dist/index.mjs.map +1 -1
- package/dist/input.cjs +4 -0
- package/dist/input.d.ts +2 -0
- package/dist/input.mjs +2 -0
- package/dist/label.cjs +3 -0
- package/dist/label.d.ts +2 -0
- package/dist/label.mjs +2 -0
- package/dist/loading.cjs +11 -0
- package/dist/loading.d.ts +2 -0
- package/dist/loading.mjs +2 -0
- package/dist/multi-select-combobox.cjs +3 -0
- package/dist/multi-select-combobox.d.ts +2 -0
- package/dist/multi-select-combobox.mjs +2 -0
- package/dist/otp-input.cjs +3 -0
- package/dist/otp-input.d.ts +2 -0
- package/dist/otp-input.mjs +2 -0
- package/dist/password-strength-meter.cjs +3 -0
- package/dist/password-strength-meter.d.ts +2 -0
- package/dist/password-strength-meter.mjs +2 -0
- package/dist/progress-bar.cjs +3 -0
- package/dist/progress-bar.d.ts +2 -0
- package/dist/progress-bar.mjs +2 -0
- package/dist/radio.cjs +3 -0
- package/dist/radio.d.ts +2 -0
- package/dist/radio.mjs +2 -0
- package/dist/select.cjs +3 -0
- package/dist/select.d.ts +2 -0
- package/dist/select.mjs +2 -0
- package/dist/skeleton.cjs +3 -0
- package/dist/skeleton.d.ts +2 -0
- package/dist/skeleton.mjs +2 -0
- package/dist/spinners.cjs +3 -0
- package/dist/spinners.d.ts +2 -0
- package/dist/spinners.mjs +2 -0
- package/dist/splash-cursor.cjs +3 -0
- package/dist/splash-cursor.d.ts +2 -0
- package/dist/splash-cursor.mjs +2 -0
- package/dist/spotlight-card.cjs +3 -0
- package/dist/spotlight-card.d.ts +2 -0
- package/dist/spotlight-card.mjs +2 -0
- package/dist/stepper.cjs +3 -0
- package/dist/stepper.d.ts +2 -0
- package/dist/stepper.mjs +2 -0
- package/dist/styles.css +6 -0
- package/dist/sun-to-moon-button.cjs +3 -0
- package/dist/sun-to-moon-button.d.ts +2 -0
- package/dist/sun-to-moon-button.mjs +2 -0
- package/dist/switch.cjs +3 -0
- package/dist/switch.d.ts +2 -0
- package/dist/switch.mjs +2 -0
- package/dist/textarea.cjs +3 -0
- package/dist/textarea.d.ts +2 -0
- package/dist/textarea.mjs +2 -0
- package/dist/theme.cjs +4 -0
- package/dist/theme.d.ts +2 -0
- package/dist/theme.mjs +2 -0
- package/dist/toast.cjs +11 -0
- package/dist/toast.d.ts +6 -0
- package/dist/toast.mjs +2 -0
- package/dist/tokens.css +592 -0
- package/dist/tooltip.cjs +3 -0
- package/dist/tooltip.d.ts +2 -0
- package/dist/tooltip.mjs +2 -0
- package/dist/typography.cjs +3 -0
- package/dist/typography.d.ts +2 -0
- package/dist/typography.mjs +2 -0
- package/dist/utils/generateUniqueKey.d.ts.map +1 -1
- package/dist/utils.cjs +5 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.mjs +2 -0
- package/package.json +252 -106
- package/dist/components/Button.d.ts +0 -8
- package/dist/components/Button.d.ts.map +0 -1
- package/dist/components/basics/Button/Button.d.ts.map +0 -1
- package/dist/components/basics/Button/index.d.ts.map +0 -1
- package/dist/components/basics/accordion/Accordion.d.ts.map +0 -1
- package/dist/components/basics/accordion/index.d.ts.map +0 -1
- package/dist/components/basics/alert/Alert.d.ts.map +0 -1
- package/dist/components/basics/alert/index.d.ts.map +0 -1
- package/dist/components/basics/animated-content/AnimatedContent.d.ts.map +0 -1
- package/dist/components/basics/animated-content/index.d.ts.map +0 -1
- package/dist/components/basics/background-gradient-animation/BackgroundGradientAnimation.d.ts.map +0 -1
- package/dist/components/basics/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts.map +0 -1
- package/dist/components/basics/background-gradient-animation/index.d.ts.map +0 -1
- package/dist/components/basics/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts.map +0 -1
- package/dist/components/basics/button-hover-border-gradient/index.d.ts.map +0 -1
- package/dist/components/basics/calendar/Calendar.d.ts.map +0 -1
- package/dist/components/basics/calendar/index.d.ts.map +0 -1
- package/dist/components/basics/card/Card.d.ts.map +0 -1
- package/dist/components/basics/card/index.d.ts.map +0 -1
- package/dist/components/basics/carousel/Carousel.d.ts.map +0 -1
- package/dist/components/basics/carousel/index.d.ts.map +0 -1
- package/dist/components/basics/charts/AreaChart.d.ts.map +0 -1
- package/dist/components/basics/charts/BarChart.d.ts.map +0 -1
- package/dist/components/basics/charts/NeonLineChart.d.ts.map +0 -1
- package/dist/components/basics/charts/PieChart.d.ts.map +0 -1
- package/dist/components/basics/charts/StackedBarChart.d.ts.map +0 -1
- package/dist/components/basics/charts/ThinBreakdownBar.d.ts.map +0 -1
- package/dist/components/basics/checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/basics/checkbox/index.d.ts.map +0 -1
- package/dist/components/basics/chip/Chip.d.ts.map +0 -1
- package/dist/components/basics/chip/index.d.ts.map +0 -1
- package/dist/components/basics/chroma-grid/ChromaGrid.d.ts.map +0 -1
- package/dist/components/basics/chroma-grid/index.d.ts +0 -3
- package/dist/components/basics/chroma-grid/index.d.ts.map +0 -1
- package/dist/components/basics/colo-palette/ColorPalette.d.ts.map +0 -1
- package/dist/components/basics/colo-palette/index.d.ts.map +0 -1
- package/dist/components/basics/combobox/Combobox.d.ts.map +0 -1
- package/dist/components/basics/combobox/index.d.ts.map +0 -1
- package/dist/components/basics/data-table/DataTable.d.ts.map +0 -1
- package/dist/components/basics/data-table/index.d.ts +0 -4
- package/dist/components/basics/data-table/index.d.ts.map +0 -1
- package/dist/components/basics/date-picker/DatePicker.d.ts.map +0 -1
- package/dist/components/basics/date-picker/index.d.ts +0 -3
- package/dist/components/basics/date-picker/index.d.ts.map +0 -1
- package/dist/components/basics/dialog/Dialog.d.ts.map +0 -1
- package/dist/components/basics/dialog/types.d.ts.map +0 -1
- package/dist/components/basics/drawer/Drawer.d.ts.map +0 -1
- package/dist/components/basics/drawer/index.d.ts +0 -3
- package/dist/components/basics/drawer/index.d.ts.map +0 -1
- package/dist/components/basics/form/Form.d.ts.map +0 -1
- package/dist/components/basics/form/index.d.ts.map +0 -1
- package/dist/components/basics/gradual-blur/GradualBlur.d.ts.map +0 -1
- package/dist/components/basics/gradual-blur/index.d.ts +0 -3
- package/dist/components/basics/gradual-blur/index.d.ts.map +0 -1
- package/dist/components/basics/hover-border-gradient/HoverBorderGradient.d.ts.map +0 -1
- package/dist/components/basics/hover-border-gradient/index.d.ts.map +0 -1
- package/dist/components/basics/hover-card/HoverCard.d.ts.map +0 -1
- package/dist/components/basics/hover-card/index.d.ts +0 -3
- package/dist/components/basics/hover-card/index.d.ts.map +0 -1
- package/dist/components/basics/input/Input.d.ts.map +0 -1
- package/dist/components/basics/input/index.d.ts.map +0 -1
- package/dist/components/basics/input/types.d.ts.map +0 -1
- package/dist/components/basics/label/Label.d.ts.map +0 -1
- package/dist/components/basics/label/index.d.ts.map +0 -1
- package/dist/components/basics/loading/Loading.d.ts.map +0 -1
- package/dist/components/basics/loading/index.d.ts.map +0 -1
- package/dist/components/basics/multi-select-combobox/MultiSelectCombobox.d.ts.map +0 -1
- package/dist/components/basics/multi-select-combobox/index.d.ts +0 -3
- package/dist/components/basics/multi-select-combobox/index.d.ts.map +0 -1
- package/dist/components/basics/otp-Input/OTPInput.d.ts.map +0 -1
- package/dist/components/basics/otp-Input/index.d.ts +0 -3
- package/dist/components/basics/otp-Input/index.d.ts.map +0 -1
- package/dist/components/basics/password-strength-meter/PasswordCriteria.d.ts.map +0 -1
- package/dist/components/basics/password-strength-meter/PasswordStrengthMeter.d.ts +0 -6
- package/dist/components/basics/password-strength-meter/PasswordStrengthMeter.d.ts.map +0 -1
- package/dist/components/basics/preview/Preview.d.ts +0 -2
- package/dist/components/basics/preview/Preview.d.ts.map +0 -1
- package/dist/components/basics/preview/index.d.ts +0 -2
- package/dist/components/basics/preview/index.d.ts.map +0 -1
- package/dist/components/basics/radio/Radio.d.ts.map +0 -1
- package/dist/components/basics/radio/index.d.ts.map +0 -1
- package/dist/components/basics/select/Select.d.ts.map +0 -1
- package/dist/components/basics/select/index.d.ts.map +0 -1
- package/dist/components/basics/skeleton/Skeleton.d.ts.map +0 -1
- package/dist/components/basics/splashCursor/SplashCursor.d.ts.map +0 -1
- package/dist/components/basics/splashCursor/index.d.ts.map +0 -1
- package/dist/components/basics/spotlight-card/SpotlightCard.d.ts.map +0 -1
- package/dist/components/basics/spotlight-card/index.d.ts +0 -3
- package/dist/components/basics/spotlight-card/index.d.ts.map +0 -1
- package/dist/components/basics/stepper/Stepper.d.ts.map +0 -1
- package/dist/components/basics/stepper/index.d.ts.map +0 -1
- package/dist/components/basics/sun-to-moon-button/SunToMoonButton.d.ts +0 -4
- package/dist/components/basics/sun-to-moon-button/SunToMoonButton.d.ts.map +0 -1
- package/dist/components/basics/sun-to-moon-button/index.d.ts.map +0 -1
- package/dist/components/basics/switch/Switch.d.ts.map +0 -1
- package/dist/components/basics/switch/index.d.ts.map +0 -1
- package/dist/components/basics/textarea/Textarea.d.ts.map +0 -1
- package/dist/components/basics/textarea/index.d.ts.map +0 -1
- package/dist/components/basics/toast/Toast.d.ts.map +0 -1
- package/dist/components/basics/toast/index.d.ts.map +0 -1
- package/dist/components/basics/tooltip/Tooltip.d.ts.map +0 -1
- package/dist/components/basics/tooltip/index.d.ts.map +0 -1
- package/dist/components/basics/typography/Typography.d.ts.map +0 -1
- package/dist/components/text-animations/ASCIIText/ASCIIText.d.ts.map +0 -1
- package/dist/components/text-animations/ASCIIText/index.d.ts.map +0 -1
- package/dist/components/text-animations/BlurText/BlurText.d.ts.map +0 -1
- package/dist/components/text-animations/BlurText/index.d.ts.map +0 -1
- /package/dist/components/{basics → data-display}/card/Card.d.ts +0 -0
- /package/dist/components/{basics → data-display}/card/index.d.ts +0 -0
- /package/dist/components/{basics → data-display}/charts/AreaChart.d.ts +0 -0
- /package/dist/components/{basics → data-display}/charts/BarChart.d.ts +0 -0
- /package/dist/components/{basics → data-display}/charts/NeonLineChart.d.ts +0 -0
- /package/dist/components/{basics → data-display}/charts/PieChart.d.ts +0 -0
- /package/dist/components/{basics → data-display}/charts/StackedBarChart.d.ts +0 -0
- /package/dist/components/{basics → data-display}/charts/ThinBreakdownBar.d.ts +0 -0
- /package/dist/components/{basics → data-display}/chip/Chip.d.ts +0 -0
- /package/dist/components/{basics → data-display}/chip/index.d.ts +0 -0
- /package/dist/components/{basics/colo-palette → data-display/color-palette}/ColorPalette.d.ts +0 -0
- /package/dist/components/{basics/colo-palette → data-display/color-palette}/index.d.ts +0 -0
- /package/dist/components/{basics → data-display}/loading/index.d.ts +0 -0
- /package/dist/components/{basics → data-display}/skeleton/Skeleton.d.ts +0 -0
- /package/dist/components/{basics → data-display}/skeleton/index.d.ts +0 -0
- /package/dist/components/{basics → effects}/animated-content/AnimatedContent.d.ts +0 -0
- /package/dist/components/{basics → effects}/animated-content/index.d.ts +0 -0
- /package/dist/components/{text-animations/ASCIIText → effects/ascii-text}/ASCIIText.d.ts +0 -0
- /package/dist/components/{text-animations/ASCIIText → effects/ascii-text}/index.d.ts +0 -0
- /package/dist/components/{basics → effects}/background-gradient-animation/BackgroundGradientAnimation.d.ts +0 -0
- /package/dist/components/{basics → effects}/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts +0 -0
- /package/dist/components/{basics → effects}/background-gradient-animation/index.d.ts +0 -0
- /package/dist/components/{basics → effects}/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts +0 -0
- /package/dist/components/{basics → effects}/button-hover-border-gradient/index.d.ts +0 -0
- /package/dist/components/{basics → effects}/chroma-grid/ChromaGrid.d.ts +0 -0
- /package/dist/components/{basics → effects}/hover-border-gradient/HoverBorderGradient.d.ts +0 -0
- /package/dist/components/{basics → effects}/hover-border-gradient/index.d.ts +0 -0
- /package/dist/components/{basics/splashCursor → effects/splash-cursor}/SplashCursor.d.ts +0 -0
- /package/dist/components/{basics/splashCursor → effects/splash-cursor}/index.d.ts +0 -0
- /package/dist/components/{basics → effects}/spotlight-card/SpotlightCard.d.ts +0 -0
- /package/dist/components/{basics → effects}/sun-to-moon-button/index.d.ts +0 -0
- /package/dist/components/{basics → feedback}/alert/Alert.d.ts +0 -0
- /package/dist/components/{basics → feedback}/alert/index.d.ts +0 -0
- /package/dist/components/{basics/Button → forms/button}/index.d.ts +0 -0
- /package/dist/components/{basics → forms}/calendar/Calendar.d.ts +0 -0
- /package/dist/components/{basics → forms}/calendar/index.d.ts +0 -0
- /package/dist/components/{basics → forms}/checkbox/Checkbox.d.ts +0 -0
- /package/dist/components/{basics → forms}/checkbox/index.d.ts +0 -0
- /package/dist/components/{basics → forms}/combobox/index.d.ts +0 -0
- /package/dist/components/{basics → forms}/date-picker/DatePicker.d.ts +0 -0
- /package/dist/components/{basics → forms}/form/Form.d.ts +0 -0
- /package/dist/components/{basics → forms}/form/index.d.ts +0 -0
- /package/dist/components/{basics → forms}/input/Input.d.ts +0 -0
- /package/dist/components/{basics → forms}/input/types.d.ts +0 -0
- /package/dist/components/{basics → forms}/label/Label.d.ts +0 -0
- /package/dist/components/{basics → forms}/label/index.d.ts +0 -0
- /package/dist/components/{basics/otp-Input → forms/otp-input}/OTPInput.d.ts +0 -0
- /package/dist/components/{basics → forms}/password-strength-meter/PasswordCriteria.d.ts +0 -0
- /package/dist/components/{basics → forms}/radio/Radio.d.ts +0 -0
- /package/dist/components/{basics → forms}/radio/index.d.ts +0 -0
- /package/dist/components/{basics → forms}/select/Select.d.ts +0 -0
- /package/dist/components/{basics → forms}/select/index.d.ts +0 -0
- /package/dist/components/{basics → forms}/switch/Switch.d.ts +0 -0
- /package/dist/components/{basics → forms}/switch/index.d.ts +0 -0
- /package/dist/components/{basics → forms}/textarea/Textarea.d.ts +0 -0
- /package/dist/components/{basics → forms}/textarea/index.d.ts +0 -0
- /package/dist/components/{basics → navigation}/carousel/Carousel.d.ts +0 -0
- /package/dist/components/{basics → navigation}/carousel/index.d.ts +0 -0
- /package/dist/components/{basics → navigation}/stepper/Stepper.d.ts +0 -0
- /package/dist/components/{basics → navigation}/stepper/index.d.ts +0 -0
- /package/dist/components/{basics → overlays}/dialog/Dialog.d.ts +0 -0
- /package/dist/components/{basics → overlays}/drawer/Drawer.d.ts +0 -0
- /package/dist/components/{basics → overlays}/hover-card/HoverCard.d.ts +0 -0
- /package/dist/components/{basics → overlays}/toast/Toast.d.ts +0 -0
- /package/dist/components/{basics → overlays}/toast/index.d.ts +0 -0
- /package/dist/components/{basics → overlays}/tooltip/Tooltip.d.ts +0 -0
- /package/dist/components/{basics → overlays}/tooltip/index.d.ts +0 -0
- /package/dist/components/text-animations/{BlurText → blur-text}/index.d.ts +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { n as mergeClassNames } from "./utils-ati1KkDb.mjs";
|
|
2
|
+
import { J as CheckIcon, N as ChevronDownIcon, q as CloseIcon } from "./icons-DuumN7z-.mjs";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
|
|
6
|
+
//#region src/components/forms/multi-select-combobox/MultiSelectCombobox.tsx
|
|
7
|
+
var MultiSelectCombobox = ({ options, value = [], onChange, placeholder = "Select...", className, bgClassName = "bg-background-secondary" }) => {
|
|
8
|
+
const [open, setOpen] = useState(false);
|
|
9
|
+
const [search, setSearch] = useState("");
|
|
10
|
+
const [visible, setVisible] = useState(false);
|
|
11
|
+
const ref = useRef(null);
|
|
12
|
+
const mouseX = useMotionValue(0);
|
|
13
|
+
const mouseY = useMotionValue(0);
|
|
14
|
+
const radius = 100;
|
|
15
|
+
const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const handleClick = (e) => {
|
|
18
|
+
if (ref.current && !ref.current.contains(e.target)) {
|
|
19
|
+
setOpen(false);
|
|
20
|
+
setSearch("");
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
if (open) document.addEventListener("mousedown", handleClick);
|
|
24
|
+
return () => document.removeEventListener("mousedown", handleClick);
|
|
25
|
+
}, [open]);
|
|
26
|
+
const handleMouseMove = (event) => {
|
|
27
|
+
const { left, top } = event.currentTarget.getBoundingClientRect();
|
|
28
|
+
mouseX.set(event.clientX - left);
|
|
29
|
+
mouseY.set(event.clientY - top);
|
|
30
|
+
};
|
|
31
|
+
const handleOptionClick = (optionValue) => {
|
|
32
|
+
if (value.includes(optionValue)) onChange(value.filter((v) => v !== optionValue));
|
|
33
|
+
else onChange([...value, optionValue]);
|
|
34
|
+
};
|
|
35
|
+
const handleRemoveTag = (optionValue, e) => {
|
|
36
|
+
e.stopPropagation();
|
|
37
|
+
onChange(value.filter((v) => v !== optionValue));
|
|
38
|
+
};
|
|
39
|
+
const selectedLabels = value.map((v) => options.find((opt) => opt.value === v)?.label).filter(Boolean);
|
|
40
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
41
|
+
ref,
|
|
42
|
+
className: mergeClassNames("relative w-full", className),
|
|
43
|
+
tabIndex: 0,
|
|
44
|
+
children: [/* @__PURE__ */ jsx(motion.div, {
|
|
45
|
+
style: { backgroundImage: useMotionTemplate`
|
|
46
|
+
radial-gradient(
|
|
47
|
+
${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
|
|
48
|
+
var(--ds-color-accent),
|
|
49
|
+
transparent 90%
|
|
50
|
+
)
|
|
51
|
+
` },
|
|
52
|
+
onMouseMove: handleMouseMove,
|
|
53
|
+
onMouseEnter: () => setVisible(true),
|
|
54
|
+
onMouseLeave: () => setVisible(false),
|
|
55
|
+
className: "group/multi-combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent",
|
|
56
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
57
|
+
className: mergeClassNames("shadow-input flex min-h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/multi-combobox:shadow-none", bgClassName),
|
|
58
|
+
onClick: () => {
|
|
59
|
+
setOpen((o) => {
|
|
60
|
+
if (o) setSearch("");
|
|
61
|
+
return !o;
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
65
|
+
className: "flex flex-1 flex-wrap gap-1",
|
|
66
|
+
children: selectedLabels.length > 0 ? selectedLabels.map((label, index) => /* @__PURE__ */ jsxs("span", {
|
|
67
|
+
className: "inline-flex items-center gap-1 rounded-md bg-accent-subtle px-2 py-0.5 text-xs font-medium text-accent",
|
|
68
|
+
children: [label, /* @__PURE__ */ jsx("button", {
|
|
69
|
+
type: "button",
|
|
70
|
+
onClick: (e) => handleRemoveTag(value[index], e),
|
|
71
|
+
className: "ml-0.5 rounded-full p-0.5 transition-colors hover:bg-accent/10",
|
|
72
|
+
children: /* @__PURE__ */ jsx(CloseIcon, {
|
|
73
|
+
className: "w-3 h-3",
|
|
74
|
+
"aria-hidden": "true"
|
|
75
|
+
})
|
|
76
|
+
})]
|
|
77
|
+
}, value[index])) : /* @__PURE__ */ jsx("span", {
|
|
78
|
+
className: "text-muted-foreground",
|
|
79
|
+
children: placeholder
|
|
80
|
+
})
|
|
81
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
82
|
+
className: mergeClassNames("ml-2 shrink-0 text-muted-foreground transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
|
|
83
|
+
children: /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
84
|
+
width: 24,
|
|
85
|
+
height: 24,
|
|
86
|
+
color: "currentColor",
|
|
87
|
+
className: "h-5 w-5"
|
|
88
|
+
})
|
|
89
|
+
})]
|
|
90
|
+
})
|
|
91
|
+
}), open && /* @__PURE__ */ jsxs("div", {
|
|
92
|
+
className: "absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition",
|
|
93
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
94
|
+
className: "sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm",
|
|
95
|
+
children: /* @__PURE__ */ jsx("input", {
|
|
96
|
+
autoFocus: true,
|
|
97
|
+
className: "w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent",
|
|
98
|
+
placeholder: "Type to search...",
|
|
99
|
+
value: search,
|
|
100
|
+
onChange: (e) => setSearch(e.target.value),
|
|
101
|
+
onClick: (e) => e.stopPropagation()
|
|
102
|
+
})
|
|
103
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
104
|
+
className: "max-h-80 flex-1 overflow-auto",
|
|
105
|
+
children: [filteredOptions.length === 0 && /* @__PURE__ */ jsx("div", {
|
|
106
|
+
className: "p-3 text-center text-muted-foreground text-sm",
|
|
107
|
+
children: "No options found"
|
|
108
|
+
}), filteredOptions.map((option) => {
|
|
109
|
+
const isSelected = value.includes(option.value);
|
|
110
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
111
|
+
className: mergeClassNames("flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition", isSelected ? "bg-accent-subtle text-accent" : "text-foreground hover:bg-accent hover:text-on-accent"),
|
|
112
|
+
onClick: () => handleOptionClick(option.value),
|
|
113
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
114
|
+
className: mergeClassNames("flex h-4 w-4 items-center justify-center rounded border transition", isSelected ? "border-accent bg-accent text-on-accent" : "border-border"),
|
|
115
|
+
children: isSelected && /* @__PURE__ */ jsx(CheckIcon, {
|
|
116
|
+
width: 12,
|
|
117
|
+
height: 12
|
|
118
|
+
})
|
|
119
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
120
|
+
className: "flex-1",
|
|
121
|
+
children: option.label
|
|
122
|
+
})]
|
|
123
|
+
}, option.value);
|
|
124
|
+
})]
|
|
125
|
+
})]
|
|
126
|
+
})]
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
//#endregion
|
|
130
|
+
export { MultiSelectCombobox as t };
|
|
131
|
+
|
|
132
|
+
//# sourceMappingURL=multi-select-combobox-ELSH_Xr4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-select-combobox-ELSH_Xr4.mjs","names":[],"sources":["../../src/components/forms/multi-select-combobox/MultiSelectCombobox.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon, CloseIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface MultiSelectOption {\n label: string;\n value: string;\n}\n\nexport interface MultiSelectComboboxProps {\n options: MultiSelectOption[];\n value: string[];\n onChange: (values: string[]) => void;\n placeholder?: string;\n className?: string;\n bgClassName?: string;\n}\n\nconst MultiSelectCombobox: React.FC<MultiSelectComboboxProps> = ({\n options,\n value = [],\n onChange,\n placeholder = \"Select...\",\n className,\n bgClassName = \"bg-background-secondary\",\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n // Close dropdown on outside click\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n };\n if (open) {\n document.addEventListener(\"mousedown\", handleClick);\n }\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [open]);\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n const handleOptionClick = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange(value.filter((v) => v !== optionValue));\n } else {\n onChange([...value, optionValue]);\n }\n };\n\n const handleRemoveTag = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation();\n onChange(value.filter((v) => v !== optionValue));\n };\n\n const selectedLabels = value\n .map((v) => options.find((opt) => opt.value === v)?.label)\n .filter(Boolean);\n\n return (\n <div\n ref={ref}\n className={mergeClassNames(\"relative w-full\", className)}\n tabIndex={0}\n >\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/multi-combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent\"\n >\n <div\n className={mergeClassNames(\n \"shadow-input flex min-h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/multi-combobox:shadow-none\",\n bgClassName,\n )}\n onClick={() => {\n setOpen((o) => {\n if (o) setSearch(\"\");\n return !o;\n });\n }}\n >\n <div className=\"flex flex-1 flex-wrap gap-1\">\n {selectedLabels.length > 0 ? (\n selectedLabels.map((label, index) => (\n <span\n key={value[index]}\n className=\"inline-flex items-center gap-1 rounded-md bg-accent-subtle px-2 py-0.5 text-xs font-medium text-accent\"\n >\n {label}\n <button\n type=\"button\"\n onClick={(e) => handleRemoveTag(value[index], e)}\n className=\"ml-0.5 rounded-full p-0.5 transition-colors hover:bg-accent/10\"\n >\n <CloseIcon className=\"w-3 h-3\" aria-hidden=\"true\" />\n </button>\n </span>\n ))\n ) : (\n <span className=\"text-muted-foreground\">{placeholder}</span>\n )}\n </div>\n <span\n className={mergeClassNames(\n \"ml-2 shrink-0 text-muted-foreground transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n {open && (\n <div className=\"absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition\">\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent\"\n placeholder=\"Type to search...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && (\n <div className=\"p-3 text-center text-muted-foreground text-sm\">\n No options found\n </div>\n )}\n {filteredOptions.map((option) => {\n const isSelected = value.includes(option.value);\n return (\n <div\n key={option.value}\n className={mergeClassNames(\n \"flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition\",\n isSelected\n ? \"bg-accent-subtle text-accent\"\n : \"text-foreground hover:bg-accent hover:text-on-accent\",\n )}\n onClick={() => handleOptionClick(option.value)}\n >\n <span\n className={mergeClassNames(\n \"flex h-4 w-4 items-center justify-center rounded border transition\",\n isSelected\n ? \"border-accent bg-accent text-on-accent\"\n : \"border-border\",\n )}\n >\n {isSelected && <CheckIcon width={12} height={12} />}\n </span>\n <span className=\"flex-1\">{option.label}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default MultiSelectCombobox;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
const require_chunk = require("./chunk-B_GkZjkl.cjs");
|
|
2
|
+
const require_utils = require("./utils-B4SmmY4J.cjs");
|
|
3
|
+
const require_icons = require("./icons-BxIzP2jd.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
react = require_chunk.__toESM(react);
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
let framer_motion = require("framer-motion");
|
|
8
|
+
//#region src/components/forms/multi-select-combobox/MultiSelectCombobox.tsx
|
|
9
|
+
var MultiSelectCombobox = ({ options, value = [], onChange, placeholder = "Select...", className, bgClassName = "bg-background-secondary" }) => {
|
|
10
|
+
const [open, setOpen] = (0, react.useState)(false);
|
|
11
|
+
const [search, setSearch] = (0, react.useState)("");
|
|
12
|
+
const [visible, setVisible] = (0, react.useState)(false);
|
|
13
|
+
const ref = (0, react.useRef)(null);
|
|
14
|
+
const mouseX = (0, framer_motion.useMotionValue)(0);
|
|
15
|
+
const mouseY = (0, framer_motion.useMotionValue)(0);
|
|
16
|
+
const radius = 100;
|
|
17
|
+
const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
|
|
18
|
+
(0, react.useEffect)(() => {
|
|
19
|
+
const handleClick = (e) => {
|
|
20
|
+
if (ref.current && !ref.current.contains(e.target)) {
|
|
21
|
+
setOpen(false);
|
|
22
|
+
setSearch("");
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
if (open) document.addEventListener("mousedown", handleClick);
|
|
26
|
+
return () => document.removeEventListener("mousedown", handleClick);
|
|
27
|
+
}, [open]);
|
|
28
|
+
const handleMouseMove = (event) => {
|
|
29
|
+
const { left, top } = event.currentTarget.getBoundingClientRect();
|
|
30
|
+
mouseX.set(event.clientX - left);
|
|
31
|
+
mouseY.set(event.clientY - top);
|
|
32
|
+
};
|
|
33
|
+
const handleOptionClick = (optionValue) => {
|
|
34
|
+
if (value.includes(optionValue)) onChange(value.filter((v) => v !== optionValue));
|
|
35
|
+
else onChange([...value, optionValue]);
|
|
36
|
+
};
|
|
37
|
+
const handleRemoveTag = (optionValue, e) => {
|
|
38
|
+
e.stopPropagation();
|
|
39
|
+
onChange(value.filter((v) => v !== optionValue));
|
|
40
|
+
};
|
|
41
|
+
const selectedLabels = value.map((v) => options.find((opt) => opt.value === v)?.label).filter(Boolean);
|
|
42
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
43
|
+
ref,
|
|
44
|
+
className: require_utils.mergeClassNames("relative w-full", className),
|
|
45
|
+
tabIndex: 0,
|
|
46
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
|
|
47
|
+
style: { backgroundImage: framer_motion.useMotionTemplate`
|
|
48
|
+
radial-gradient(
|
|
49
|
+
${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
|
|
50
|
+
var(--ds-color-accent),
|
|
51
|
+
transparent 90%
|
|
52
|
+
)
|
|
53
|
+
` },
|
|
54
|
+
onMouseMove: handleMouseMove,
|
|
55
|
+
onMouseEnter: () => setVisible(true),
|
|
56
|
+
onMouseLeave: () => setVisible(false),
|
|
57
|
+
className: "group/multi-combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent",
|
|
58
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
59
|
+
className: require_utils.mergeClassNames("shadow-input flex min-h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/multi-combobox:shadow-none", bgClassName),
|
|
60
|
+
onClick: () => {
|
|
61
|
+
setOpen((o) => {
|
|
62
|
+
if (o) setSearch("");
|
|
63
|
+
return !o;
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
67
|
+
className: "flex flex-1 flex-wrap gap-1",
|
|
68
|
+
children: selectedLabels.length > 0 ? selectedLabels.map((label, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
69
|
+
className: "inline-flex items-center gap-1 rounded-md bg-accent-subtle px-2 py-0.5 text-xs font-medium text-accent",
|
|
70
|
+
children: [label, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
71
|
+
type: "button",
|
|
72
|
+
onClick: (e) => handleRemoveTag(value[index], e),
|
|
73
|
+
className: "ml-0.5 rounded-full p-0.5 transition-colors hover:bg-accent/10",
|
|
74
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CloseIcon, {
|
|
75
|
+
className: "w-3 h-3",
|
|
76
|
+
"aria-hidden": "true"
|
|
77
|
+
})
|
|
78
|
+
})]
|
|
79
|
+
}, value[index])) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
80
|
+
className: "text-muted-foreground",
|
|
81
|
+
children: placeholder
|
|
82
|
+
})
|
|
83
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
84
|
+
className: require_utils.mergeClassNames("ml-2 shrink-0 text-muted-foreground transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
|
|
85
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronDownIcon, {
|
|
86
|
+
width: 24,
|
|
87
|
+
height: 24,
|
|
88
|
+
color: "currentColor",
|
|
89
|
+
className: "h-5 w-5"
|
|
90
|
+
})
|
|
91
|
+
})]
|
|
92
|
+
})
|
|
93
|
+
}), open && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
94
|
+
className: "absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition",
|
|
95
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
96
|
+
className: "sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm",
|
|
97
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
98
|
+
autoFocus: true,
|
|
99
|
+
className: "w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent",
|
|
100
|
+
placeholder: "Type to search...",
|
|
101
|
+
value: search,
|
|
102
|
+
onChange: (e) => setSearch(e.target.value),
|
|
103
|
+
onClick: (e) => e.stopPropagation()
|
|
104
|
+
})
|
|
105
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
106
|
+
className: "max-h-80 flex-1 overflow-auto",
|
|
107
|
+
children: [filteredOptions.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
108
|
+
className: "p-3 text-center text-muted-foreground text-sm",
|
|
109
|
+
children: "No options found"
|
|
110
|
+
}), filteredOptions.map((option) => {
|
|
111
|
+
const isSelected = value.includes(option.value);
|
|
112
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
113
|
+
className: require_utils.mergeClassNames("flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition", isSelected ? "bg-accent-subtle text-accent" : "text-foreground hover:bg-accent hover:text-on-accent"),
|
|
114
|
+
onClick: () => handleOptionClick(option.value),
|
|
115
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
116
|
+
className: require_utils.mergeClassNames("flex h-4 w-4 items-center justify-center rounded border transition", isSelected ? "border-accent bg-accent text-on-accent" : "border-border"),
|
|
117
|
+
children: isSelected && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
|
|
118
|
+
width: 12,
|
|
119
|
+
height: 12
|
|
120
|
+
})
|
|
121
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
122
|
+
className: "flex-1",
|
|
123
|
+
children: option.label
|
|
124
|
+
})]
|
|
125
|
+
}, option.value);
|
|
126
|
+
})]
|
|
127
|
+
})]
|
|
128
|
+
})]
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
//#endregion
|
|
132
|
+
Object.defineProperty(exports, "MultiSelectCombobox", {
|
|
133
|
+
enumerable: true,
|
|
134
|
+
get: function() {
|
|
135
|
+
return MultiSelectCombobox;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
//# sourceMappingURL=multi-select-combobox-UW0X15W7.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-select-combobox-UW0X15W7.cjs","names":[],"sources":["../../src/components/forms/multi-select-combobox/MultiSelectCombobox.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon, CloseIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface MultiSelectOption {\n label: string;\n value: string;\n}\n\nexport interface MultiSelectComboboxProps {\n options: MultiSelectOption[];\n value: string[];\n onChange: (values: string[]) => void;\n placeholder?: string;\n className?: string;\n bgClassName?: string;\n}\n\nconst MultiSelectCombobox: React.FC<MultiSelectComboboxProps> = ({\n options,\n value = [],\n onChange,\n placeholder = \"Select...\",\n className,\n bgClassName = \"bg-background-secondary\",\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n // Close dropdown on outside click\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n };\n if (open) {\n document.addEventListener(\"mousedown\", handleClick);\n }\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [open]);\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n const handleOptionClick = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange(value.filter((v) => v !== optionValue));\n } else {\n onChange([...value, optionValue]);\n }\n };\n\n const handleRemoveTag = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation();\n onChange(value.filter((v) => v !== optionValue));\n };\n\n const selectedLabels = value\n .map((v) => options.find((opt) => opt.value === v)?.label)\n .filter(Boolean);\n\n return (\n <div\n ref={ref}\n className={mergeClassNames(\"relative w-full\", className)}\n tabIndex={0}\n >\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/multi-combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent\"\n >\n <div\n className={mergeClassNames(\n \"shadow-input flex min-h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/multi-combobox:shadow-none\",\n bgClassName,\n )}\n onClick={() => {\n setOpen((o) => {\n if (o) setSearch(\"\");\n return !o;\n });\n }}\n >\n <div className=\"flex flex-1 flex-wrap gap-1\">\n {selectedLabels.length > 0 ? (\n selectedLabels.map((label, index) => (\n <span\n key={value[index]}\n className=\"inline-flex items-center gap-1 rounded-md bg-accent-subtle px-2 py-0.5 text-xs font-medium text-accent\"\n >\n {label}\n <button\n type=\"button\"\n onClick={(e) => handleRemoveTag(value[index], e)}\n className=\"ml-0.5 rounded-full p-0.5 transition-colors hover:bg-accent/10\"\n >\n <CloseIcon className=\"w-3 h-3\" aria-hidden=\"true\" />\n </button>\n </span>\n ))\n ) : (\n <span className=\"text-muted-foreground\">{placeholder}</span>\n )}\n </div>\n <span\n className={mergeClassNames(\n \"ml-2 shrink-0 text-muted-foreground transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n {open && (\n <div className=\"absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition\">\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent\"\n placeholder=\"Type to search...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && (\n <div className=\"p-3 text-center text-muted-foreground text-sm\">\n No options found\n </div>\n )}\n {filteredOptions.map((option) => {\n const isSelected = value.includes(option.value);\n return (\n <div\n key={option.value}\n className={mergeClassNames(\n \"flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition\",\n isSelected\n ? \"bg-accent-subtle text-accent\"\n : \"text-foreground hover:bg-accent hover:text-on-accent\",\n )}\n onClick={() => handleOptionClick(option.value)}\n >\n <span\n className={mergeClassNames(\n \"flex h-4 w-4 items-center justify-center rounded border transition\",\n isSelected\n ? \"border-accent bg-accent text-on-accent\"\n : \"border-border\",\n )}\n >\n {isSelected && <CheckIcon width={12} height={12} />}\n </span>\n <span className=\"flex-1\">{option.label}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default MultiSelectCombobox;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
require("./chunk-B_GkZjkl.cjs");
|
|
2
|
+
let react = require("react");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
//#region src/components/forms/otp-input/OTPInput.tsx
|
|
5
|
+
var sizeStyles = {
|
|
6
|
+
sm: "w-9 h-10 text-base",
|
|
7
|
+
md: "w-12 h-14 text-xl",
|
|
8
|
+
lg: "w-14 h-16 text-2xl"
|
|
9
|
+
};
|
|
10
|
+
var variantStyles = {
|
|
11
|
+
outlined: {
|
|
12
|
+
base: "border border-input bg-background-secondary rounded-lg shadow-input text-foreground",
|
|
13
|
+
focus: "focus:border-accent focus:ring-2 focus:ring-accent",
|
|
14
|
+
error: "border-destructive"
|
|
15
|
+
},
|
|
16
|
+
filled: {
|
|
17
|
+
base: "border border-transparent bg-accent-subtle rounded-lg text-foreground",
|
|
18
|
+
focus: "focus:border-accent focus:bg-background-secondary focus:ring-2 focus:ring-accent",
|
|
19
|
+
error: "bg-danger-subtle border-danger-border"
|
|
20
|
+
},
|
|
21
|
+
underlined: {
|
|
22
|
+
base: "border-b-2 border-border-strong bg-transparent rounded-none text-foreground",
|
|
23
|
+
focus: "focus:border-accent",
|
|
24
|
+
error: "border-destructive"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
var OTPInput = (0, react.forwardRef)(({ length = 6, onChange, onComplete, value: controlledValue, defaultValue = "", size = "md", variant = "outlined", disabled = false, error = false, errorMessage, placeholder = "", mask = false, autoFocus = false, type = "number", className = "", inputClassName = "", separator = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
28
|
+
className: "text-neutral-400 text-2xl mx-2",
|
|
29
|
+
children: "—"
|
|
30
|
+
}), separatorPositions = [], "aria-label": ariaLabel = "One-time password" }, ref) => {
|
|
31
|
+
const [values, setValues] = (0, react.useState)(() => {
|
|
32
|
+
return (controlledValue ?? defaultValue).split("").slice(0, length).concat(Array(length).fill("")).slice(0, length);
|
|
33
|
+
});
|
|
34
|
+
const inputRefs = (0, react.useRef)([]);
|
|
35
|
+
(0, react.useEffect)(() => {
|
|
36
|
+
if (controlledValue !== void 0) setValues(controlledValue.split("").slice(0, length).concat(Array(length).fill("")).slice(0, length));
|
|
37
|
+
}, [controlledValue, length]);
|
|
38
|
+
(0, react.useEffect)(() => {
|
|
39
|
+
if (autoFocus && inputRefs.current[0]) inputRefs.current[0].focus();
|
|
40
|
+
}, [autoFocus]);
|
|
41
|
+
const focusInput = (0, react.useCallback)((index) => {
|
|
42
|
+
if (index >= 0 && index < length && inputRefs.current[index]) {
|
|
43
|
+
inputRefs.current[index]?.focus();
|
|
44
|
+
inputRefs.current[index]?.select();
|
|
45
|
+
}
|
|
46
|
+
}, [length]);
|
|
47
|
+
const handleChange = (0, react.useCallback)((index, e) => {
|
|
48
|
+
const char = e.target.value.slice(-1);
|
|
49
|
+
if (type === "number" && char && !/^\d$/.test(char)) return;
|
|
50
|
+
const newValues = [...values];
|
|
51
|
+
newValues[index] = char;
|
|
52
|
+
setValues(newValues);
|
|
53
|
+
const otpValue = newValues.join("");
|
|
54
|
+
onChange?.(otpValue);
|
|
55
|
+
if (char && index < length - 1) focusInput(index + 1);
|
|
56
|
+
if (newValues.every((v) => v !== "") && newValues.length === length) onComplete?.(otpValue);
|
|
57
|
+
}, [
|
|
58
|
+
values,
|
|
59
|
+
onChange,
|
|
60
|
+
onComplete,
|
|
61
|
+
length,
|
|
62
|
+
type,
|
|
63
|
+
focusInput
|
|
64
|
+
]);
|
|
65
|
+
const handleKeyDown = (0, react.useCallback)((index, e) => {
|
|
66
|
+
switch (e.key) {
|
|
67
|
+
case "Backspace":
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
const newValues = [...values];
|
|
70
|
+
if (values[index]) {
|
|
71
|
+
newValues[index] = "";
|
|
72
|
+
setValues(newValues);
|
|
73
|
+
onChange?.(newValues.join(""));
|
|
74
|
+
} else if (index > 0) {
|
|
75
|
+
newValues[index - 1] = "";
|
|
76
|
+
setValues(newValues);
|
|
77
|
+
onChange?.(newValues.join(""));
|
|
78
|
+
focusInput(index - 1);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case "ArrowLeft":
|
|
82
|
+
e.preventDefault();
|
|
83
|
+
focusInput(index - 1);
|
|
84
|
+
break;
|
|
85
|
+
case "ArrowRight":
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
focusInput(index + 1);
|
|
88
|
+
break;
|
|
89
|
+
case "Delete":
|
|
90
|
+
e.preventDefault();
|
|
91
|
+
const deleteValues = [...values];
|
|
92
|
+
deleteValues[index] = "";
|
|
93
|
+
setValues(deleteValues);
|
|
94
|
+
onChange?.(deleteValues.join(""));
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
}, [
|
|
98
|
+
values,
|
|
99
|
+
onChange,
|
|
100
|
+
focusInput
|
|
101
|
+
]);
|
|
102
|
+
const handlePaste = (0, react.useCallback)((e) => {
|
|
103
|
+
e.preventDefault();
|
|
104
|
+
const pastedData = e.clipboardData.getData("text").slice(0, length);
|
|
105
|
+
if (type === "number" && !/^\d*$/.test(pastedData)) return;
|
|
106
|
+
const newValues = pastedData.split("").slice(0, length).concat(Array(length).fill("")).slice(0, length);
|
|
107
|
+
setValues(newValues);
|
|
108
|
+
const otpValue = newValues.join("");
|
|
109
|
+
onChange?.(otpValue);
|
|
110
|
+
const lastFilledIndex = newValues.findLastIndex((v) => v !== "");
|
|
111
|
+
focusInput(Math.min(lastFilledIndex + 1, length - 1));
|
|
112
|
+
if (newValues.every((v) => v !== "") && pastedData.length >= length) onComplete?.(otpValue);
|
|
113
|
+
}, [
|
|
114
|
+
length,
|
|
115
|
+
type,
|
|
116
|
+
onChange,
|
|
117
|
+
onComplete,
|
|
118
|
+
focusInput
|
|
119
|
+
]);
|
|
120
|
+
const handleFocus = (0, react.useCallback)((e) => {
|
|
121
|
+
e.target.select();
|
|
122
|
+
}, []);
|
|
123
|
+
const renderInputs = () => {
|
|
124
|
+
const inputs = [];
|
|
125
|
+
for (let i = 0; i < length; i++) {
|
|
126
|
+
if (separatorPositions.includes(i) && i > 0) inputs.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
127
|
+
className: "flex items-center",
|
|
128
|
+
children: separator
|
|
129
|
+
}, `separator-${i}`));
|
|
130
|
+
inputs.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
131
|
+
ref: (el) => {
|
|
132
|
+
inputRefs.current[i] = el;
|
|
133
|
+
return () => {
|
|
134
|
+
inputRefs.current[i] = null;
|
|
135
|
+
};
|
|
136
|
+
},
|
|
137
|
+
type: mask ? "password" : "text",
|
|
138
|
+
inputMode: type === "number" ? "numeric" : "text",
|
|
139
|
+
pattern: type === "number" ? "\\d*" : void 0,
|
|
140
|
+
maxLength: 1,
|
|
141
|
+
value: values[i] || "",
|
|
142
|
+
placeholder,
|
|
143
|
+
disabled,
|
|
144
|
+
onChange: (e) => handleChange(i, e),
|
|
145
|
+
onKeyDown: (e) => handleKeyDown(i, e),
|
|
146
|
+
onPaste: handlePaste,
|
|
147
|
+
onFocus: handleFocus,
|
|
148
|
+
"aria-label": `${ariaLabel} digit ${i + 1}`,
|
|
149
|
+
className: `
|
|
150
|
+
text-center font-semibold outline-none transition-all
|
|
151
|
+
placeholder:text-muted-foreground
|
|
152
|
+
${sizeStyles[size]}
|
|
153
|
+
${variantStyles[variant].base}
|
|
154
|
+
${!error ? variantStyles[variant].focus : ""}
|
|
155
|
+
${error ? variantStyles[variant].error : ""}
|
|
156
|
+
${disabled ? "opacity-50 cursor-not-allowed bg-muted" : ""}
|
|
157
|
+
${inputClassName}
|
|
158
|
+
`
|
|
159
|
+
}, i));
|
|
160
|
+
}
|
|
161
|
+
return inputs;
|
|
162
|
+
};
|
|
163
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
164
|
+
ref,
|
|
165
|
+
className: `flex flex-col gap-2 ${className}`,
|
|
166
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
167
|
+
className: "flex items-center gap-2",
|
|
168
|
+
role: "group",
|
|
169
|
+
"aria-label": ariaLabel,
|
|
170
|
+
children: renderInputs()
|
|
171
|
+
}), error && errorMessage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
172
|
+
className: "text-sm text-destructive",
|
|
173
|
+
children: errorMessage
|
|
174
|
+
})]
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
OTPInput.displayName = "OTPInput";
|
|
178
|
+
//#endregion
|
|
179
|
+
Object.defineProperty(exports, "OTPInput", {
|
|
180
|
+
enumerable: true,
|
|
181
|
+
get: function() {
|
|
182
|
+
return OTPInput;
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
//# sourceMappingURL=otp-input-B6zzOEqw.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otp-input-B6zzOEqw.cjs","names":[],"sources":["../../src/components/forms/otp-input/OTPInput.tsx"],"sourcesContent":["import {\n forwardRef,\n useState,\n useRef,\n useCallback,\n useEffect,\n type KeyboardEvent,\n type ClipboardEvent,\n type ChangeEvent,\n} from \"react\";\n\nexport type OTPInputSize = \"sm\" | \"md\" | \"lg\";\nexport type OTPInputVariant = \"outlined\" | \"filled\" | \"underlined\";\n\nexport interface OTPInputProps {\n /** Number of OTP digits */\n length?: number;\n /** Callback when OTP value changes */\n onChange?: (value: string) => void;\n /** Callback when all digits are filled */\n onComplete?: (value: string) => void;\n /** The current value (controlled) */\n value?: string;\n /** Default value (uncontrolled) */\n defaultValue?: string;\n /** Size of the input boxes */\n size?: OTPInputSize;\n /** Visual variant */\n variant?: OTPInputVariant;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Whether there's an error */\n error?: boolean;\n /** Error message to display */\n errorMessage?: string;\n /** Placeholder character */\n placeholder?: string;\n /** Whether to mask the input (like password) */\n mask?: boolean;\n /** Whether to auto-focus the first input */\n autoFocus?: boolean;\n /** Input type - number only or alphanumeric */\n type?: \"number\" | \"text\";\n /** Custom className for the container */\n className?: string;\n /** Custom className for each input box */\n inputClassName?: string;\n /** Separator to show between groups of digits */\n separator?: React.ReactNode;\n /** Position(s) to show separator (e.g., [3] means after 3rd digit) */\n separatorPositions?: number[];\n /** Accessible label */\n \"aria-label\"?: string;\n}\n\nconst sizeStyles: Record<OTPInputSize, string> = {\n sm: \"w-9 h-10 text-base\",\n md: \"w-12 h-14 text-xl\",\n lg: \"w-14 h-16 text-2xl\",\n};\n\nconst variantStyles: Record<\n OTPInputVariant,\n { base: string; focus: string; error: string }\n> = {\n outlined: {\n base: \"border border-input bg-background-secondary rounded-lg shadow-input text-foreground\",\n focus: \"focus:border-accent focus:ring-2 focus:ring-accent\",\n error: \"border-destructive\",\n },\n filled: {\n base: \"border border-transparent bg-accent-subtle rounded-lg text-foreground\",\n focus:\n \"focus:border-accent focus:bg-background-secondary focus:ring-2 focus:ring-accent\",\n error: \"bg-danger-subtle border-danger-border\",\n },\n underlined: {\n base: \"border-b-2 border-border-strong bg-transparent rounded-none text-foreground\",\n focus: \"focus:border-accent\",\n error: \"border-destructive\",\n },\n};\n\nconst OTPInput = forwardRef<HTMLDivElement, OTPInputProps>(\n (\n {\n length = 6,\n onChange,\n onComplete,\n value: controlledValue,\n defaultValue = \"\",\n size = \"md\",\n variant = \"outlined\",\n disabled = false,\n error = false,\n errorMessage,\n placeholder = \"\",\n mask = false,\n autoFocus = false,\n type = \"number\",\n className = \"\",\n inputClassName = \"\",\n separator = <span className=\"text-neutral-400 text-2xl mx-2\">—</span>,\n separatorPositions = [],\n \"aria-label\": ariaLabel = \"One-time password\",\n },\n ref,\n ) => {\n const [values, setValues] = useState<string[]>(() => {\n const initial = controlledValue ?? defaultValue;\n return initial\n .split(\"\")\n .slice(0, length)\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n });\n\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n\n // Sync with controlled value\n useEffect(() => {\n if (controlledValue !== undefined) {\n const newValues = controlledValue\n .split(\"\")\n .slice(0, length)\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n setValues(newValues);\n }\n }, [controlledValue, length]);\n\n // Auto-focus first input\n useEffect(() => {\n if (autoFocus && inputRefs.current[0]) {\n inputRefs.current[0].focus();\n }\n }, [autoFocus]);\n\n const focusInput = useCallback(\n (index: number) => {\n if (index >= 0 && index < length && inputRefs.current[index]) {\n inputRefs.current[index]?.focus();\n inputRefs.current[index]?.select();\n }\n },\n [length],\n );\n\n const handleChange = useCallback(\n (index: number, e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n const char = inputValue.slice(-1);\n\n // Validate input based on type\n if (type === \"number\" && char && !/^\\d$/.test(char)) {\n return;\n }\n\n const newValues = [...values];\n newValues[index] = char;\n setValues(newValues);\n\n const otpValue = newValues.join(\"\");\n onChange?.(otpValue);\n\n // Move to next input if value entered\n if (char && index < length - 1) {\n focusInput(index + 1);\n }\n\n // Check if complete\n if (newValues.every((v) => v !== \"\") && newValues.length === length) {\n onComplete?.(otpValue);\n }\n },\n [values, onChange, onComplete, length, type, focusInput],\n );\n\n const handleKeyDown = useCallback(\n (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case \"Backspace\":\n e.preventDefault();\n const newValues = [...values];\n if (values[index]) {\n // Clear current value\n newValues[index] = \"\";\n setValues(newValues);\n onChange?.(newValues.join(\"\"));\n } else if (index > 0) {\n // Move to previous and clear\n newValues[index - 1] = \"\";\n setValues(newValues);\n onChange?.(newValues.join(\"\"));\n focusInput(index - 1);\n }\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n focusInput(index - 1);\n break;\n case \"ArrowRight\":\n e.preventDefault();\n focusInput(index + 1);\n break;\n case \"Delete\":\n e.preventDefault();\n const deleteValues = [...values];\n deleteValues[index] = \"\";\n setValues(deleteValues);\n onChange?.(deleteValues.join(\"\"));\n break;\n }\n },\n [values, onChange, focusInput],\n );\n\n const handlePaste = useCallback(\n (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData(\"text\").slice(0, length);\n\n // Validate pasted content\n if (type === \"number\" && !/^\\d*$/.test(pastedData)) {\n return;\n }\n\n const newValues = pastedData\n .split(\"\")\n .slice(0, length)\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n\n setValues(newValues);\n const otpValue = newValues.join(\"\");\n onChange?.(otpValue);\n\n // Focus last filled input or last input\n const lastFilledIndex = newValues.findLastIndex((v) => v !== \"\");\n focusInput(Math.min(lastFilledIndex + 1, length - 1));\n\n // Check if complete\n if (newValues.every((v) => v !== \"\") && pastedData.length >= length) {\n onComplete?.(otpValue);\n }\n },\n [length, type, onChange, onComplete, focusInput],\n );\n\n const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>) => {\n e.target.select();\n }, []);\n\n const renderInputs = () => {\n const inputs: React.ReactNode[] = [];\n\n for (let i = 0; i < length; i++) {\n // Add separator if needed\n if (separatorPositions.includes(i) && i > 0) {\n inputs.push(\n <div key={`separator-${i}`} className=\"flex items-center\">\n {separator}\n </div>,\n );\n }\n\n inputs.push(\n <input\n key={i}\n ref={(el) => {\n inputRefs.current[i] = el;\n // React 19: Return cleanup function\n return () => {\n inputRefs.current[i] = null;\n };\n }}\n type={mask ? \"password\" : \"text\"}\n inputMode={type === \"number\" ? \"numeric\" : \"text\"}\n pattern={type === \"number\" ? \"\\\\d*\" : undefined}\n maxLength={1}\n value={values[i] || \"\"}\n placeholder={placeholder}\n disabled={disabled}\n onChange={(e) => handleChange(i, e)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n onFocus={handleFocus}\n aria-label={`${ariaLabel} digit ${i + 1}`}\n className={`\n text-center font-semibold outline-none transition-all\n placeholder:text-muted-foreground\n ${sizeStyles[size]}\n ${variantStyles[variant].base}\n ${!error ? variantStyles[variant].focus : \"\"}\n ${error ? variantStyles[variant].error : \"\"}\n ${disabled ? \"opacity-50 cursor-not-allowed bg-muted\" : \"\"}\n ${inputClassName}\n `}\n />,\n );\n }\n\n return inputs;\n };\n\n return (\n <div ref={ref} className={`flex flex-col gap-2 ${className}`}>\n <div\n className=\"flex items-center gap-2\"\n role=\"group\"\n aria-label={ariaLabel}\n >\n {renderInputs()}\n </div>\n {error && errorMessage && (\n <span className=\"text-sm text-destructive\">{errorMessage}</span>\n )}\n </div>\n );\n },\n);\n\nOTPInput.displayName = \"OTPInput\";\n\nexport default OTPInput;\nexport { OTPInput };\n"],"mappings":"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"}
|