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,369 @@
|
|
|
1
|
+
require("./chunk-B_GkZjkl.cjs");
|
|
2
|
+
const require_icons = require("./icons-BxIzP2jd.cjs");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let framer_motion = require("framer-motion");
|
|
6
|
+
//#region src/components/overlays/toast/Toast.tsx
|
|
7
|
+
var ToastContext = (0, react.createContext)(null);
|
|
8
|
+
var useToast = () => {
|
|
9
|
+
const context = (0, react.useContext)(ToastContext);
|
|
10
|
+
if (!context) throw new Error("useToast must be used within a ToastProvider");
|
|
11
|
+
return context;
|
|
12
|
+
};
|
|
13
|
+
var typeStyles = {
|
|
14
|
+
success: {
|
|
15
|
+
bg: "bg-white dark:bg-neutral-800 border-success-border",
|
|
16
|
+
icon: "text-success",
|
|
17
|
+
iconBg: "bg-success-subtle"
|
|
18
|
+
},
|
|
19
|
+
error: {
|
|
20
|
+
bg: "bg-white dark:bg-neutral-800 border-danger-border",
|
|
21
|
+
icon: "text-danger",
|
|
22
|
+
iconBg: "bg-danger-subtle"
|
|
23
|
+
},
|
|
24
|
+
warning: {
|
|
25
|
+
bg: "bg-white dark:bg-neutral-800 border-warning-border",
|
|
26
|
+
icon: "text-warning",
|
|
27
|
+
iconBg: "bg-warning-subtle"
|
|
28
|
+
},
|
|
29
|
+
info: {
|
|
30
|
+
bg: "bg-white dark:bg-neutral-800 border-info-border",
|
|
31
|
+
icon: "text-info",
|
|
32
|
+
iconBg: "bg-info-subtle"
|
|
33
|
+
},
|
|
34
|
+
default: {
|
|
35
|
+
bg: "bg-white dark:bg-neutral-800 border-neutral-200 dark:border-neutral-700",
|
|
36
|
+
icon: "text-neutral-500",
|
|
37
|
+
iconBg: "bg-neutral-100 dark:bg-neutral-700"
|
|
38
|
+
},
|
|
39
|
+
loading: {
|
|
40
|
+
bg: "bg-white dark:bg-neutral-800 border-neutral-200 dark:border-neutral-700",
|
|
41
|
+
icon: "text-accent",
|
|
42
|
+
iconBg: "bg-accent-subtle"
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var positionStyles = {
|
|
46
|
+
"top-left": "top-4 left-4",
|
|
47
|
+
"top-center": "top-4 left-1/2 -translate-x-1/2",
|
|
48
|
+
"top-right": "top-4 right-4",
|
|
49
|
+
"bottom-left": "bottom-4 left-4",
|
|
50
|
+
"bottom-center": "bottom-4 left-1/2 -translate-x-1/2",
|
|
51
|
+
"bottom-right": "bottom-4 right-4"
|
|
52
|
+
};
|
|
53
|
+
var getMotionVariants = (position) => {
|
|
54
|
+
const isTop = position.startsWith("top");
|
|
55
|
+
const isCenter = position.includes("center");
|
|
56
|
+
const isLeft = position.includes("left");
|
|
57
|
+
return {
|
|
58
|
+
initial: {
|
|
59
|
+
opacity: 0,
|
|
60
|
+
y: isTop ? -20 : 20,
|
|
61
|
+
x: isCenter ? 0 : isLeft ? -20 : 20,
|
|
62
|
+
scale: .95
|
|
63
|
+
},
|
|
64
|
+
animate: {
|
|
65
|
+
opacity: 1,
|
|
66
|
+
y: 0,
|
|
67
|
+
x: 0,
|
|
68
|
+
scale: 1
|
|
69
|
+
},
|
|
70
|
+
exit: {
|
|
71
|
+
opacity: 0,
|
|
72
|
+
y: isTop ? -20 : 20,
|
|
73
|
+
scale: .95,
|
|
74
|
+
transition: { duration: .15 }
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
var ToastItem = (0, react.forwardRef)(({ toast, onDismiss, position }, ref) => {
|
|
79
|
+
const { type, title, description, icon, action, dismissible = true, duration } = toast;
|
|
80
|
+
const timerRef = (0, react.useRef)(null);
|
|
81
|
+
const [progress, setProgress] = (0, react.useState)(100);
|
|
82
|
+
const [isPaused, setIsPaused] = (0, react.useState)(false);
|
|
83
|
+
const defaultIcons = {
|
|
84
|
+
success: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckCircleIcon, {
|
|
85
|
+
className: "w-5 h-5",
|
|
86
|
+
"aria-hidden": "true"
|
|
87
|
+
}),
|
|
88
|
+
error: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.XCircleIcon, {
|
|
89
|
+
className: "w-5 h-5",
|
|
90
|
+
"aria-hidden": "true"
|
|
91
|
+
}),
|
|
92
|
+
warning: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.AlertTriangleIcon, {
|
|
93
|
+
className: "w-5 h-5",
|
|
94
|
+
"aria-hidden": "true"
|
|
95
|
+
}),
|
|
96
|
+
info: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.InfoCircleIcon, {
|
|
97
|
+
className: "w-5 h-5",
|
|
98
|
+
"aria-hidden": "true"
|
|
99
|
+
}),
|
|
100
|
+
loading: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.LoaderIcon, {
|
|
101
|
+
className: "w-5 h-5 animate-spin",
|
|
102
|
+
"aria-hidden": "true"
|
|
103
|
+
}),
|
|
104
|
+
default: null
|
|
105
|
+
};
|
|
106
|
+
(0, react.useEffect)(() => {
|
|
107
|
+
if (duration && duration > 0 && type !== "loading") {
|
|
108
|
+
const startTime = Date.now();
|
|
109
|
+
const interval = 50;
|
|
110
|
+
const updateProgress = () => {
|
|
111
|
+
if (isPaused) return;
|
|
112
|
+
const elapsed = Date.now() - startTime;
|
|
113
|
+
const remaining = Math.max(0, 100 - elapsed / duration * 100);
|
|
114
|
+
setProgress(remaining);
|
|
115
|
+
if (remaining <= 0) {
|
|
116
|
+
toast.onAutoClose?.();
|
|
117
|
+
onDismiss(toast.id);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
timerRef.current = setInterval(updateProgress, interval);
|
|
121
|
+
return () => {
|
|
122
|
+
if (timerRef.current) clearInterval(timerRef.current);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}, [
|
|
126
|
+
duration,
|
|
127
|
+
toast.id,
|
|
128
|
+
type,
|
|
129
|
+
isPaused,
|
|
130
|
+
onDismiss,
|
|
131
|
+
toast
|
|
132
|
+
]);
|
|
133
|
+
const handleMouseEnter = () => setIsPaused(true);
|
|
134
|
+
const handleMouseLeave = () => setIsPaused(false);
|
|
135
|
+
const styles = typeStyles[type];
|
|
136
|
+
const displayIcon = icon ?? defaultIcons[type];
|
|
137
|
+
const variants = getMotionVariants(position);
|
|
138
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(framer_motion.motion.div, {
|
|
139
|
+
ref,
|
|
140
|
+
layout: true,
|
|
141
|
+
initial: variants.initial,
|
|
142
|
+
animate: variants.animate,
|
|
143
|
+
exit: variants.exit,
|
|
144
|
+
transition: {
|
|
145
|
+
type: "spring",
|
|
146
|
+
stiffness: 400,
|
|
147
|
+
damping: 30
|
|
148
|
+
},
|
|
149
|
+
onMouseEnter: handleMouseEnter,
|
|
150
|
+
onMouseLeave: handleMouseLeave,
|
|
151
|
+
className: `
|
|
152
|
+
relative flex items-start gap-3 p-4 pr-10
|
|
153
|
+
rounded-lg shadow-lg border min-w-[320px] max-w-[420px]
|
|
154
|
+
overflow-hidden
|
|
155
|
+
${styles.bg}
|
|
156
|
+
`,
|
|
157
|
+
role: "alert",
|
|
158
|
+
"aria-live": "polite",
|
|
159
|
+
children: [
|
|
160
|
+
duration && duration > 0 && type !== "loading" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
161
|
+
className: "absolute bottom-0 left-0 right-0 h-1 bg-neutral-100 dark:bg-neutral-700",
|
|
162
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
|
|
163
|
+
className: `h-full ${type === "success" ? "bg-success" : type === "error" ? "bg-destructive" : type === "warning" ? "bg-warning" : type === "info" ? "bg-info" : "bg-neutral-400"}`,
|
|
164
|
+
style: { width: `${progress}%` },
|
|
165
|
+
transition: { duration: .05 }
|
|
166
|
+
})
|
|
167
|
+
}),
|
|
168
|
+
displayIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
169
|
+
className: `shrink-0 p-1.5 rounded-full ${styles.iconBg} ${styles.icon}`,
|
|
170
|
+
children: displayIcon
|
|
171
|
+
}),
|
|
172
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
173
|
+
className: "flex-1 min-w-0",
|
|
174
|
+
children: [
|
|
175
|
+
title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
176
|
+
className: "font-semibold text-neutral-900 dark:text-white text-sm",
|
|
177
|
+
children: title
|
|
178
|
+
}),
|
|
179
|
+
description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
180
|
+
className: `text-sm text-neutral-600 dark:text-neutral-300 ${title ? "mt-1" : ""}`,
|
|
181
|
+
children: description
|
|
182
|
+
}),
|
|
183
|
+
action && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
184
|
+
onClick: () => {
|
|
185
|
+
action.onClick();
|
|
186
|
+
onDismiss(toast.id);
|
|
187
|
+
},
|
|
188
|
+
className: "mt-2 text-sm font-medium text-accent hover:underline",
|
|
189
|
+
children: action.label
|
|
190
|
+
})
|
|
191
|
+
]
|
|
192
|
+
}),
|
|
193
|
+
dismissible && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
194
|
+
onClick: () => {
|
|
195
|
+
toast.onDismiss?.();
|
|
196
|
+
onDismiss(toast.id);
|
|
197
|
+
},
|
|
198
|
+
className: "absolute top-3 right-3 p-1 rounded-full text-neutral-400 hover:text-neutral-600 dark:text-neutral-500 dark:hover:text-neutral-300 hover:bg-neutral-100 dark:hover:bg-neutral-700 transition-colors",
|
|
199
|
+
"aria-label": "Dismiss",
|
|
200
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CloseIcon, {
|
|
201
|
+
className: "w-4 h-4",
|
|
202
|
+
"aria-hidden": "true"
|
|
203
|
+
})
|
|
204
|
+
})
|
|
205
|
+
]
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
ToastItem.displayName = "ToastItem";
|
|
209
|
+
var ToastProvider = ({ children, position = "bottom-right", duration = 5e3, maxToasts = 5, gap = 12, dismissible = true, containerClassName = "" }) => {
|
|
210
|
+
const [toasts, setToasts] = (0, react.useState)([]);
|
|
211
|
+
const toastIdCounter = (0, react.useRef)(0);
|
|
212
|
+
const generateId = () => {
|
|
213
|
+
toastIdCounter.current += 1;
|
|
214
|
+
return `toast-${toastIdCounter.current}-${Date.now()}`;
|
|
215
|
+
};
|
|
216
|
+
const addToast = (0, react.useCallback)((options, type = "default") => {
|
|
217
|
+
const id = generateId();
|
|
218
|
+
const toastOptions = typeof options === "string" ? { description: options } : options;
|
|
219
|
+
const newToast = {
|
|
220
|
+
id,
|
|
221
|
+
type: toastOptions.type ?? type,
|
|
222
|
+
title: toastOptions.title,
|
|
223
|
+
description: toastOptions.description,
|
|
224
|
+
duration: toastOptions.duration ?? duration,
|
|
225
|
+
icon: toastOptions.icon,
|
|
226
|
+
action: toastOptions.action,
|
|
227
|
+
dismissible: toastOptions.dismissible ?? dismissible,
|
|
228
|
+
onDismiss: toastOptions.onDismiss,
|
|
229
|
+
onAutoClose: toastOptions.onAutoClose
|
|
230
|
+
};
|
|
231
|
+
setToasts((prev) => {
|
|
232
|
+
return [...prev, newToast].slice(-maxToasts);
|
|
233
|
+
});
|
|
234
|
+
return id;
|
|
235
|
+
}, [
|
|
236
|
+
duration,
|
|
237
|
+
dismissible,
|
|
238
|
+
maxToasts
|
|
239
|
+
]);
|
|
240
|
+
const dismiss = (0, react.useCallback)((id) => {
|
|
241
|
+
setToasts((prev) => prev.filter((t) => t.id !== id));
|
|
242
|
+
}, []);
|
|
243
|
+
const dismissAll = (0, react.useCallback)(() => {
|
|
244
|
+
setToasts([]);
|
|
245
|
+
}, []);
|
|
246
|
+
const update = (0, react.useCallback)((id, options) => {
|
|
247
|
+
setToasts((prev) => prev.map((t) => t.id === id ? {
|
|
248
|
+
...t,
|
|
249
|
+
...options,
|
|
250
|
+
type: options.type ?? t.type
|
|
251
|
+
} : t));
|
|
252
|
+
}, []);
|
|
253
|
+
const toast = (0, react.useCallback)((options) => addToast(options, "default"), [addToast]);
|
|
254
|
+
const success = (0, react.useCallback)((options) => addToast(options, "success"), [addToast]);
|
|
255
|
+
const error = (0, react.useCallback)((options) => addToast(options, "error"), [addToast]);
|
|
256
|
+
const warning = (0, react.useCallback)((options) => addToast(options, "warning"), [addToast]);
|
|
257
|
+
const info = (0, react.useCallback)((options) => addToast(options, "info"), [addToast]);
|
|
258
|
+
const loading = (0, react.useCallback)((options) => {
|
|
259
|
+
return addToast({
|
|
260
|
+
...typeof options === "string" ? { description: options } : options,
|
|
261
|
+
duration: 0,
|
|
262
|
+
dismissible: false
|
|
263
|
+
}, "loading");
|
|
264
|
+
}, [addToast]);
|
|
265
|
+
const contextValue = {
|
|
266
|
+
toasts,
|
|
267
|
+
toast,
|
|
268
|
+
success,
|
|
269
|
+
error,
|
|
270
|
+
warning,
|
|
271
|
+
info,
|
|
272
|
+
loading,
|
|
273
|
+
promise: (0, react.useCallback)(async (promiseToResolve, options) => {
|
|
274
|
+
const id = loading(options.loading);
|
|
275
|
+
try {
|
|
276
|
+
const result = await promiseToResolve;
|
|
277
|
+
update(id, {
|
|
278
|
+
type: "success",
|
|
279
|
+
description: typeof options.success === "function" ? options.success(result) : options.success,
|
|
280
|
+
duration,
|
|
281
|
+
dismissible: true
|
|
282
|
+
});
|
|
283
|
+
return result;
|
|
284
|
+
} catch (err) {
|
|
285
|
+
update(id, {
|
|
286
|
+
type: "error",
|
|
287
|
+
description: typeof options.error === "function" ? options.error(err) : options.error,
|
|
288
|
+
duration,
|
|
289
|
+
dismissible: true
|
|
290
|
+
});
|
|
291
|
+
throw err;
|
|
292
|
+
}
|
|
293
|
+
}, [
|
|
294
|
+
loading,
|
|
295
|
+
update,
|
|
296
|
+
duration
|
|
297
|
+
]),
|
|
298
|
+
dismiss,
|
|
299
|
+
dismissAll,
|
|
300
|
+
update
|
|
301
|
+
};
|
|
302
|
+
const isTop = position.startsWith("top");
|
|
303
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ToastContext.Provider, {
|
|
304
|
+
value: contextValue,
|
|
305
|
+
children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
306
|
+
className: `fixed z-100 flex flex-col pointer-events-none ${positionStyles[position]} ${containerClassName}`,
|
|
307
|
+
style: { gap: `${gap}px` },
|
|
308
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.AnimatePresence, {
|
|
309
|
+
mode: "popLayout",
|
|
310
|
+
children: (isTop ? toasts : [...toasts].reverse()).map((t) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
311
|
+
className: "pointer-events-auto",
|
|
312
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToastItem, {
|
|
313
|
+
toast: t,
|
|
314
|
+
onDismiss: dismiss,
|
|
315
|
+
position
|
|
316
|
+
})
|
|
317
|
+
}, t.id))
|
|
318
|
+
})
|
|
319
|
+
})]
|
|
320
|
+
});
|
|
321
|
+
};
|
|
322
|
+
var globalToast = null;
|
|
323
|
+
var setGlobalToast = (toastContext) => {
|
|
324
|
+
globalToast = toastContext;
|
|
325
|
+
};
|
|
326
|
+
var toastStandalone = {
|
|
327
|
+
show: (options) => globalToast?.toast(options),
|
|
328
|
+
success: (options) => globalToast?.success(options),
|
|
329
|
+
error: (options) => globalToast?.error(options),
|
|
330
|
+
warning: (options) => globalToast?.warning(options),
|
|
331
|
+
info: (options) => globalToast?.info(options),
|
|
332
|
+
loading: (options) => globalToast?.loading(options),
|
|
333
|
+
promise: (promise, options) => globalToast?.promise(promise, options),
|
|
334
|
+
dismiss: (id) => globalToast?.dismiss(id),
|
|
335
|
+
dismissAll: () => globalToast?.dismissAll()
|
|
336
|
+
};
|
|
337
|
+
//#endregion
|
|
338
|
+
Object.defineProperty(exports, "ToastItem", {
|
|
339
|
+
enumerable: true,
|
|
340
|
+
get: function() {
|
|
341
|
+
return ToastItem;
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
Object.defineProperty(exports, "ToastProvider", {
|
|
345
|
+
enumerable: true,
|
|
346
|
+
get: function() {
|
|
347
|
+
return ToastProvider;
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
Object.defineProperty(exports, "setGlobalToast", {
|
|
351
|
+
enumerable: true,
|
|
352
|
+
get: function() {
|
|
353
|
+
return setGlobalToast;
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
Object.defineProperty(exports, "toastStandalone", {
|
|
357
|
+
enumerable: true,
|
|
358
|
+
get: function() {
|
|
359
|
+
return toastStandalone;
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
Object.defineProperty(exports, "useToast", {
|
|
363
|
+
enumerable: true,
|
|
364
|
+
get: function() {
|
|
365
|
+
return useToast;
|
|
366
|
+
}
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
//# sourceMappingURL=toast-Ds7_19Ap.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast-Ds7_19Ap.cjs","names":[],"sources":["../../src/components/overlays/toast/Toast.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useState,\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n} from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport {\n AlertTriangleIcon,\n CheckCircleIcon,\n CloseIcon,\n InfoCircleIcon,\n LoaderIcon,\n XCircleIcon,\n} from \"../../icons\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ToastType =\n | \"success\"\n | \"error\"\n | \"warning\"\n | \"info\"\n | \"default\"\n | \"loading\";\nexport type ToastPosition =\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\";\n\nexport interface ToastAction {\n label: string;\n onClick: () => void;\n}\n\nexport interface Toast {\n id: string;\n type: ToastType;\n title?: string;\n description?: string;\n duration?: number;\n icon?: React.ReactNode;\n action?: ToastAction;\n dismissible?: boolean;\n onDismiss?: () => void;\n onAutoClose?: () => void;\n promise?: {\n loading: string;\n success: string | ((data: unknown) => string);\n error: string | ((error: unknown) => string);\n };\n}\n\nexport interface ToastOptions {\n type?: ToastType;\n title?: string;\n description?: string;\n duration?: number;\n icon?: React.ReactNode;\n action?: ToastAction;\n dismissible?: boolean;\n onDismiss?: () => void;\n onAutoClose?: () => void;\n}\n\nexport interface ToastContextValue {\n toasts: Toast[];\n toast: (options: ToastOptions | string) => string;\n success: (options: ToastOptions | string) => string;\n error: (options: ToastOptions | string) => string;\n warning: (options: ToastOptions | string) => string;\n info: (options: ToastOptions | string) => string;\n loading: (options: ToastOptions | string) => string;\n promise: <T>(\n promise: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ) => Promise<T>;\n dismiss: (id: string) => void;\n dismissAll: () => void;\n update: (id: string, options: Partial<ToastOptions>) => void;\n}\n\nexport interface ToastProviderProps {\n children: React.ReactNode;\n /** Default position for toasts */\n position?: ToastPosition;\n /** Default duration in milliseconds */\n duration?: number;\n /** Maximum number of visible toasts */\n maxToasts?: number;\n /** Gap between toasts */\n gap?: number;\n /** Whether toasts are dismissible by default */\n dismissible?: boolean;\n /** Custom className for the toast container */\n containerClassName?: string;\n}\n\nexport interface ToastItemProps {\n toast: Toast;\n onDismiss: (id: string) => void;\n position: ToastPosition;\n}\n\n// ============================================================================\n// Context\n// ============================================================================\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport const useToast = (): ToastContextValue => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within a ToastProvider\");\n }\n return context;\n};\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst typeStyles: Record<\n ToastType,\n { bg: string; icon: string; iconBg: string }\n> = {\n success: {\n bg: \"bg-white dark:bg-neutral-800 border-success-border\",\n icon: \"text-success\",\n iconBg: \"bg-success-subtle\",\n },\n error: {\n bg: \"bg-white dark:bg-neutral-800 border-danger-border\",\n icon: \"text-danger\",\n iconBg: \"bg-danger-subtle\",\n },\n warning: {\n bg: \"bg-white dark:bg-neutral-800 border-warning-border\",\n icon: \"text-warning\",\n iconBg: \"bg-warning-subtle\",\n },\n info: {\n bg: \"bg-white dark:bg-neutral-800 border-info-border\",\n icon: \"text-info\",\n iconBg: \"bg-info-subtle\",\n },\n default: {\n bg: \"bg-white dark:bg-neutral-800 border-neutral-200 dark:border-neutral-700\",\n icon: \"text-neutral-500\",\n iconBg: \"bg-neutral-100 dark:bg-neutral-700\",\n },\n loading: {\n bg: \"bg-white dark:bg-neutral-800 border-neutral-200 dark:border-neutral-700\",\n icon: \"text-accent\",\n iconBg: \"bg-accent-subtle\",\n },\n};\n\nconst positionStyles: Record<ToastPosition, string> = {\n \"top-left\": \"top-4 left-4\",\n \"top-center\": \"top-4 left-1/2 -translate-x-1/2\",\n \"top-right\": \"top-4 right-4\",\n \"bottom-left\": \"bottom-4 left-4\",\n \"bottom-center\": \"bottom-4 left-1/2 -translate-x-1/2\",\n \"bottom-right\": \"bottom-4 right-4\",\n};\n\nconst getMotionVariants = (position: ToastPosition) => {\n const isTop = position.startsWith(\"top\");\n const isCenter = position.includes(\"center\");\n const isLeft = position.includes(\"left\");\n\n return {\n initial: {\n opacity: 0,\n y: isTop ? -20 : 20,\n x: isCenter ? 0 : isLeft ? -20 : 20,\n scale: 0.95,\n },\n animate: {\n opacity: 1,\n y: 0,\n x: 0,\n scale: 1,\n },\n exit: {\n opacity: 0,\n y: isTop ? -20 : 20,\n scale: 0.95,\n transition: { duration: 0.15 },\n },\n };\n};\n\n// ============================================================================\n// Toast Item Component\n// ============================================================================\n\nconst ToastItem = forwardRef<HTMLDivElement, ToastItemProps>(\n ({ toast, onDismiss, position }, ref) => {\n const {\n type,\n title,\n description,\n icon,\n action,\n dismissible = true,\n duration,\n } = toast;\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const [progress, setProgress] = useState(100);\n const [isPaused, setIsPaused] = useState(false);\n\n const defaultIcons: Record<ToastType, React.ReactNode> = {\n success: <CheckCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n error: <XCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n warning: <AlertTriangleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n info: <InfoCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n loading: (\n <LoaderIcon className=\"w-5 h-5 animate-spin\" aria-hidden=\"true\" />\n ),\n default: null,\n };\n\n // Auto-dismiss timer with progress\n useEffect(() => {\n if (duration && duration > 0 && type !== \"loading\") {\n const startTime = Date.now();\n const interval = 50;\n\n const updateProgress = () => {\n if (isPaused) return;\n\n const elapsed = Date.now() - startTime;\n const remaining = Math.max(0, 100 - (elapsed / duration) * 100);\n setProgress(remaining);\n\n if (remaining <= 0) {\n toast.onAutoClose?.();\n onDismiss(toast.id);\n }\n };\n\n timerRef.current = setInterval(updateProgress, interval);\n\n return () => {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n };\n }\n }, [duration, toast.id, type, isPaused, onDismiss, toast]);\n\n const handleMouseEnter = () => setIsPaused(true);\n const handleMouseLeave = () => setIsPaused(false);\n\n const styles = typeStyles[type];\n const displayIcon = icon ?? defaultIcons[type];\n const variants = getMotionVariants(position);\n\n return (\n <motion.div\n ref={ref}\n layout\n initial={variants.initial}\n animate={variants.animate}\n exit={variants.exit}\n transition={{ type: \"spring\", stiffness: 400, damping: 30 }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={`\n relative flex items-start gap-3 p-4 pr-10\n rounded-lg shadow-lg border min-w-[320px] max-w-[420px]\n overflow-hidden\n ${styles.bg}\n `}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {/* Progress bar */}\n {duration && duration > 0 && type !== \"loading\" && (\n <div className=\"absolute bottom-0 left-0 right-0 h-1 bg-neutral-100 dark:bg-neutral-700\">\n <motion.div\n className={`h-full ${\n type === \"success\"\n ? \"bg-success\"\n : type === \"error\"\n ? \"bg-destructive\"\n : type === \"warning\"\n ? \"bg-warning\"\n : type === \"info\"\n ? \"bg-info\"\n : \"bg-neutral-400\"\n }`}\n style={{ width: `${progress}%` }}\n transition={{ duration: 0.05 }}\n />\n </div>\n )}\n\n {/* Icon */}\n {displayIcon && (\n <div\n className={`shrink-0 p-1.5 rounded-full ${styles.iconBg} ${styles.icon}`}\n >\n {displayIcon}\n </div>\n )}\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n {title && (\n <p className=\"font-semibold text-neutral-900 dark:text-white text-sm\">\n {title}\n </p>\n )}\n {description && (\n <p\n className={`text-sm text-neutral-600 dark:text-neutral-300 ${\n title ? \"mt-1\" : \"\"\n }`}\n >\n {description}\n </p>\n )}\n {action && (\n <button\n onClick={() => {\n action.onClick();\n onDismiss(toast.id);\n }}\n className=\"mt-2 text-sm font-medium text-accent hover:underline\"\n >\n {action.label}\n </button>\n )}\n </div>\n\n {/* Dismiss button */}\n {dismissible && (\n <button\n onClick={() => {\n toast.onDismiss?.();\n onDismiss(toast.id);\n }}\n className=\"absolute top-3 right-3 p-1 rounded-full text-neutral-400 hover:text-neutral-600 dark:text-neutral-500 dark:hover:text-neutral-300 hover:bg-neutral-100 dark:hover:bg-neutral-700 transition-colors\"\n aria-label=\"Dismiss\"\n >\n <CloseIcon className=\"w-4 h-4\" aria-hidden=\"true\" />\n </button>\n )}\n </motion.div>\n );\n },\n);\n\nToastItem.displayName = \"ToastItem\";\n\n// ============================================================================\n// Toast Provider Component\n// ============================================================================\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n children,\n position = \"bottom-right\",\n duration = 5000,\n maxToasts = 5,\n gap = 12,\n dismissible = true,\n containerClassName = \"\",\n}) => {\n const [toasts, setToasts] = useState<Toast[]>([]);\n const toastIdCounter = useRef(0);\n\n const generateId = () => {\n toastIdCounter.current += 1;\n return `toast-${toastIdCounter.current}-${Date.now()}`;\n };\n\n const addToast = useCallback(\n (options: ToastOptions | string, type: ToastType = \"default\"): string => {\n const id = generateId();\n const toastOptions: ToastOptions =\n typeof options === \"string\" ? { description: options } : options;\n\n const newToast: Toast = {\n id,\n type: toastOptions.type ?? type,\n title: toastOptions.title,\n description: toastOptions.description,\n duration: toastOptions.duration ?? duration,\n icon: toastOptions.icon,\n action: toastOptions.action,\n dismissible: toastOptions.dismissible ?? dismissible,\n onDismiss: toastOptions.onDismiss,\n onAutoClose: toastOptions.onAutoClose,\n };\n\n setToasts((prev) => {\n const updated = [...prev, newToast];\n // Keep only the last maxToasts\n return updated.slice(-maxToasts);\n });\n\n return id;\n },\n [duration, dismissible, maxToasts],\n );\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n const dismissAll = useCallback(() => {\n setToasts([]);\n }, []);\n\n const update = useCallback((id: string, options: Partial<ToastOptions>) => {\n setToasts((prev) =>\n prev.map((t) =>\n t.id === id\n ? {\n ...t,\n ...options,\n type: options.type ?? t.type,\n }\n : t,\n ),\n );\n }, []);\n\n const toast = useCallback(\n (options: ToastOptions | string) => addToast(options, \"default\"),\n [addToast],\n );\n\n const success = useCallback(\n (options: ToastOptions | string) => addToast(options, \"success\"),\n [addToast],\n );\n\n const error = useCallback(\n (options: ToastOptions | string) => addToast(options, \"error\"),\n [addToast],\n );\n\n const warning = useCallback(\n (options: ToastOptions | string) => addToast(options, \"warning\"),\n [addToast],\n );\n\n const info = useCallback(\n (options: ToastOptions | string) => addToast(options, \"info\"),\n [addToast],\n );\n\n const loading = useCallback(\n (options: ToastOptions | string) => {\n const toastOptions: ToastOptions =\n typeof options === \"string\" ? { description: options } : options;\n return addToast(\n { ...toastOptions, duration: 0, dismissible: false },\n \"loading\",\n );\n },\n [addToast],\n );\n\n const promise = useCallback(\n async <T,>(\n promiseToResolve: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ): Promise<T> => {\n const id = loading(options.loading);\n\n try {\n const result = await promiseToResolve;\n const successMessage =\n typeof options.success === \"function\"\n ? options.success(result)\n : options.success;\n update(id, {\n type: \"success\",\n description: successMessage,\n duration,\n dismissible: true,\n });\n return result;\n } catch (err) {\n const errorMessage =\n typeof options.error === \"function\"\n ? options.error(err)\n : options.error;\n update(id, {\n type: \"error\",\n description: errorMessage,\n duration,\n dismissible: true,\n });\n throw err;\n }\n },\n [loading, update, duration],\n );\n\n const contextValue: ToastContextValue = {\n toasts,\n toast,\n success,\n error,\n warning,\n info,\n loading,\n promise,\n dismiss,\n dismissAll,\n update,\n };\n\n const isTop = position.startsWith(\"top\");\n\n return (\n <ToastContext.Provider value={contextValue}>\n {children}\n <div\n className={`fixed z-100 flex flex-col pointer-events-none ${positionStyles[position]} ${containerClassName}`}\n style={{ gap: `${gap}px` }}\n >\n <AnimatePresence mode=\"popLayout\">\n {(isTop ? toasts : [...toasts].reverse()).map((t) => (\n <div key={t.id} className=\"pointer-events-auto\">\n <ToastItem toast={t} onDismiss={dismiss} position={position} />\n </div>\n ))}\n </AnimatePresence>\n </div>\n </ToastContext.Provider>\n );\n};\n\n// ============================================================================\n// Standalone toast function (for use without hooks)\n// ============================================================================\n\nlet globalToast: ToastContextValue | null = null;\n\nexport const setGlobalToast = (toastContext: ToastContextValue) => {\n globalToast = toastContext;\n};\n\nexport const toastStandalone = {\n show: (options: ToastOptions | string) => globalToast?.toast(options),\n success: (options: ToastOptions | string) => globalToast?.success(options),\n error: (options: ToastOptions | string) => globalToast?.error(options),\n warning: (options: ToastOptions | string) => globalToast?.warning(options),\n info: (options: ToastOptions | string) => globalToast?.info(options),\n loading: (options: ToastOptions | string) => globalToast?.loading(options),\n promise: <T,>(\n promise: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ) => globalToast?.promise(promise, options),\n dismiss: (id: string) => globalToast?.dismiss(id),\n dismissAll: () => globalToast?.dismissAll(),\n};\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport default ToastProvider;\nexport { ToastItem };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { AnimatePresence, motion } from "framer-motion";
|
|
4
|
+
//#region src/components/overlays/tooltip/Tooltip.tsx
|
|
5
|
+
var positionStyles = {
|
|
6
|
+
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
7
|
+
bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
|
|
8
|
+
left: "right-full top-1/2 -translate-y-1/2 mr-2",
|
|
9
|
+
right: "left-full top-1/2 -translate-y-1/2 ml-2"
|
|
10
|
+
};
|
|
11
|
+
var arrowStyles = {
|
|
12
|
+
top: "top-full left-1/2 -translate-x-1/2 border-t-neutral-800 dark:border-t-neutral-700 border-x-transparent border-b-transparent border-t-[6px] border-x-[6px] border-b-0",
|
|
13
|
+
bottom: "bottom-full left-1/2 -translate-x-1/2 border-b-neutral-800 dark:border-b-neutral-700 border-x-transparent border-t-transparent border-b-[6px] border-x-[6px] border-t-0",
|
|
14
|
+
left: "left-full top-1/2 -translate-y-1/2 border-l-neutral-800 dark:border-l-neutral-700 border-y-transparent border-r-transparent border-l-[6px] border-y-[6px] border-r-0",
|
|
15
|
+
right: "right-full top-1/2 -translate-y-1/2 border-r-neutral-800 dark:border-r-neutral-700 border-y-transparent border-l-transparent border-r-[6px] border-y-[6px] border-l-0"
|
|
16
|
+
};
|
|
17
|
+
var motionVariants = {
|
|
18
|
+
top: {
|
|
19
|
+
initial: {
|
|
20
|
+
opacity: 0,
|
|
21
|
+
y: 4,
|
|
22
|
+
scale: .95
|
|
23
|
+
},
|
|
24
|
+
animate: {
|
|
25
|
+
opacity: 1,
|
|
26
|
+
y: 0,
|
|
27
|
+
scale: 1
|
|
28
|
+
},
|
|
29
|
+
exit: {
|
|
30
|
+
opacity: 0,
|
|
31
|
+
y: 4,
|
|
32
|
+
scale: .95
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
bottom: {
|
|
36
|
+
initial: {
|
|
37
|
+
opacity: 0,
|
|
38
|
+
y: -4,
|
|
39
|
+
scale: .95
|
|
40
|
+
},
|
|
41
|
+
animate: {
|
|
42
|
+
opacity: 1,
|
|
43
|
+
y: 0,
|
|
44
|
+
scale: 1
|
|
45
|
+
},
|
|
46
|
+
exit: {
|
|
47
|
+
opacity: 0,
|
|
48
|
+
y: -4,
|
|
49
|
+
scale: .95
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
left: {
|
|
53
|
+
initial: {
|
|
54
|
+
opacity: 0,
|
|
55
|
+
x: 4,
|
|
56
|
+
scale: .95
|
|
57
|
+
},
|
|
58
|
+
animate: {
|
|
59
|
+
opacity: 1,
|
|
60
|
+
x: 0,
|
|
61
|
+
scale: 1
|
|
62
|
+
},
|
|
63
|
+
exit: {
|
|
64
|
+
opacity: 0,
|
|
65
|
+
x: 4,
|
|
66
|
+
scale: .95
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
right: {
|
|
70
|
+
initial: {
|
|
71
|
+
opacity: 0,
|
|
72
|
+
x: -4,
|
|
73
|
+
scale: .95
|
|
74
|
+
},
|
|
75
|
+
animate: {
|
|
76
|
+
opacity: 1,
|
|
77
|
+
x: 0,
|
|
78
|
+
scale: 1
|
|
79
|
+
},
|
|
80
|
+
exit: {
|
|
81
|
+
opacity: 0,
|
|
82
|
+
x: -4,
|
|
83
|
+
scale: .95
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
function Tooltip({ content, children, position = "top", trigger = "hover", delayShow = 200, delayHide = 0, disabled = false, className = "", arrow = true, maxWidth = 250, open: controlledOpen, onOpenChange }) {
|
|
88
|
+
const [internalOpen, setInternalOpen] = useState(false);
|
|
89
|
+
const showTimeoutRef = useRef(null);
|
|
90
|
+
const hideTimeoutRef = useRef(null);
|
|
91
|
+
const triggerRef = useRef(null);
|
|
92
|
+
const isControlled = controlledOpen !== void 0;
|
|
93
|
+
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
94
|
+
const setOpen = useCallback((value) => {
|
|
95
|
+
if (isControlled) onOpenChange?.(value);
|
|
96
|
+
else setInternalOpen(value);
|
|
97
|
+
}, [isControlled, onOpenChange]);
|
|
98
|
+
const clearTimeouts = useCallback(() => {
|
|
99
|
+
if (showTimeoutRef.current) {
|
|
100
|
+
clearTimeout(showTimeoutRef.current);
|
|
101
|
+
showTimeoutRef.current = null;
|
|
102
|
+
}
|
|
103
|
+
if (hideTimeoutRef.current) {
|
|
104
|
+
clearTimeout(hideTimeoutRef.current);
|
|
105
|
+
hideTimeoutRef.current = null;
|
|
106
|
+
}
|
|
107
|
+
}, []);
|
|
108
|
+
const showTooltip = useCallback(() => {
|
|
109
|
+
if (disabled) return;
|
|
110
|
+
clearTimeouts();
|
|
111
|
+
if (delayShow > 0) showTimeoutRef.current = setTimeout(() => setOpen(true), delayShow);
|
|
112
|
+
else setOpen(true);
|
|
113
|
+
}, [
|
|
114
|
+
disabled,
|
|
115
|
+
delayShow,
|
|
116
|
+
setOpen,
|
|
117
|
+
clearTimeouts
|
|
118
|
+
]);
|
|
119
|
+
const hideTooltip = useCallback(() => {
|
|
120
|
+
clearTimeouts();
|
|
121
|
+
if (delayHide > 0) hideTimeoutRef.current = setTimeout(() => setOpen(false), delayHide);
|
|
122
|
+
else setOpen(false);
|
|
123
|
+
}, [
|
|
124
|
+
delayHide,
|
|
125
|
+
setOpen,
|
|
126
|
+
clearTimeouts
|
|
127
|
+
]);
|
|
128
|
+
const toggleTooltip = useCallback(() => {
|
|
129
|
+
if (disabled) return;
|
|
130
|
+
setOpen(!isOpen);
|
|
131
|
+
}, [
|
|
132
|
+
disabled,
|
|
133
|
+
isOpen,
|
|
134
|
+
setOpen
|
|
135
|
+
]);
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
return () => clearTimeouts();
|
|
138
|
+
}, [clearTimeouts]);
|
|
139
|
+
useEffect(() => {
|
|
140
|
+
if (trigger !== "click" || !isOpen) return;
|
|
141
|
+
const handleClickOutside = (event) => {
|
|
142
|
+
if (triggerRef.current && !triggerRef.current.contains(event.target)) setOpen(false);
|
|
143
|
+
};
|
|
144
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
145
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
146
|
+
}, [
|
|
147
|
+
trigger,
|
|
148
|
+
isOpen,
|
|
149
|
+
setOpen
|
|
150
|
+
]);
|
|
151
|
+
useEffect(() => {
|
|
152
|
+
if (!isOpen) return;
|
|
153
|
+
const handleEscape = (event) => {
|
|
154
|
+
if (event.key === "Escape") setOpen(false);
|
|
155
|
+
};
|
|
156
|
+
document.addEventListener("keydown", handleEscape);
|
|
157
|
+
return () => document.removeEventListener("keydown", handleEscape);
|
|
158
|
+
}, [isOpen, setOpen]);
|
|
159
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
160
|
+
ref: triggerRef,
|
|
161
|
+
className: "relative inline-flex",
|
|
162
|
+
...trigger === "hover" && {
|
|
163
|
+
onMouseEnter: showTooltip,
|
|
164
|
+
onMouseLeave: hideTooltip
|
|
165
|
+
},
|
|
166
|
+
...trigger === "click" && { onClick: toggleTooltip },
|
|
167
|
+
...trigger === "focus" && {
|
|
168
|
+
onFocus: showTooltip,
|
|
169
|
+
onBlur: hideTooltip
|
|
170
|
+
},
|
|
171
|
+
children: [children, /* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && !disabled && /* @__PURE__ */ jsxs(motion.div, {
|
|
172
|
+
role: "tooltip",
|
|
173
|
+
initial: motionVariants[position].initial,
|
|
174
|
+
animate: motionVariants[position].animate,
|
|
175
|
+
exit: motionVariants[position].exit,
|
|
176
|
+
transition: {
|
|
177
|
+
duration: .15,
|
|
178
|
+
ease: "easeOut"
|
|
179
|
+
},
|
|
180
|
+
className: `
|
|
181
|
+
absolute z-50 ${positionStyles[position]}
|
|
182
|
+
px-3 py-2 text-sm font-medium
|
|
183
|
+
bg-neutral-800 dark:bg-neutral-700
|
|
184
|
+
text-white rounded-lg shadow-lg
|
|
185
|
+
whitespace-normal break-words
|
|
186
|
+
${className}
|
|
187
|
+
`,
|
|
188
|
+
style: { maxWidth },
|
|
189
|
+
children: [content, arrow && /* @__PURE__ */ jsx("span", {
|
|
190
|
+
className: `absolute w-0 h-0 ${arrowStyles[position]}`,
|
|
191
|
+
"aria-hidden": "true"
|
|
192
|
+
})]
|
|
193
|
+
}) })]
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
//#endregion
|
|
197
|
+
export { Tooltip as t };
|
|
198
|
+
|
|
199
|
+
//# sourceMappingURL=tooltip-efHETBo1.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip-efHETBo1.mjs","names":[],"sources":["../../src/components/overlays/tooltip/Tooltip.tsx"],"sourcesContent":["import { useState, useRef, useEffect, useCallback } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\n\nexport type TooltipPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\nexport type TooltipTrigger = \"hover\" | \"click\" | \"focus\";\n\nexport interface TooltipProps {\n /** The content to display in the tooltip */\n content: React.ReactNode;\n /** The element that triggers the tooltip */\n children: React.ReactElement;\n /** Position of the tooltip relative to the trigger */\n position?: TooltipPosition;\n /** How the tooltip is triggered */\n trigger?: TooltipTrigger;\n /** Delay before showing tooltip (ms) */\n delayShow?: number;\n /** Delay before hiding tooltip (ms) */\n delayHide?: number;\n /** Whether the tooltip is disabled */\n disabled?: boolean;\n /** Custom className for the tooltip */\n className?: string;\n /** Whether to show an arrow pointing to the trigger */\n arrow?: boolean;\n /** Maximum width of the tooltip */\n maxWidth?: number;\n /** Controlled open state */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n}\n\nconst positionStyles: Record<TooltipPosition, string> = {\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\n};\n\nconst arrowStyles: Record<TooltipPosition, string> = {\n top: \"top-full left-1/2 -translate-x-1/2 border-t-neutral-800 dark:border-t-neutral-700 border-x-transparent border-b-transparent border-t-[6px] border-x-[6px] border-b-0\",\n bottom:\n \"bottom-full left-1/2 -translate-x-1/2 border-b-neutral-800 dark:border-b-neutral-700 border-x-transparent border-t-transparent border-b-[6px] border-x-[6px] border-t-0\",\n left: \"left-full top-1/2 -translate-y-1/2 border-l-neutral-800 dark:border-l-neutral-700 border-y-transparent border-r-transparent border-l-[6px] border-y-[6px] border-r-0\",\n right:\n \"right-full top-1/2 -translate-y-1/2 border-r-neutral-800 dark:border-r-neutral-700 border-y-transparent border-l-transparent border-r-[6px] border-y-[6px] border-l-0\",\n};\n\nconst motionVariants = {\n top: {\n initial: { opacity: 0, y: 4, scale: 0.95 },\n animate: { opacity: 1, y: 0, scale: 1 },\n exit: { opacity: 0, y: 4, scale: 0.95 },\n },\n bottom: {\n initial: { opacity: 0, y: -4, scale: 0.95 },\n animate: { opacity: 1, y: 0, scale: 1 },\n exit: { opacity: 0, y: -4, scale: 0.95 },\n },\n left: {\n initial: { opacity: 0, x: 4, scale: 0.95 },\n animate: { opacity: 1, x: 0, scale: 1 },\n exit: { opacity: 0, x: 4, scale: 0.95 },\n },\n right: {\n initial: { opacity: 0, x: -4, scale: 0.95 },\n animate: { opacity: 1, x: 0, scale: 1 },\n exit: { opacity: 0, x: -4, scale: 0.95 },\n },\n} as const;\n\nexport default function Tooltip({\n content,\n children,\n position = \"top\",\n trigger = \"hover\",\n delayShow = 200,\n delayHide = 0,\n disabled = false,\n className = \"\",\n arrow = true,\n maxWidth = 250,\n open: controlledOpen,\n onOpenChange,\n}: TooltipProps) {\n const [internalOpen, setInternalOpen] = useState(false);\n const showTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (isControlled) {\n onOpenChange?.(value);\n } else {\n setInternalOpen(value);\n }\n },\n [isControlled, onOpenChange],\n );\n\n const clearTimeouts = useCallback(() => {\n if (showTimeoutRef.current) {\n clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = null;\n }\n if (hideTimeoutRef.current) {\n clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = null;\n }\n }, []);\n\n const showTooltip = useCallback(() => {\n if (disabled) return;\n clearTimeouts();\n if (delayShow > 0) {\n showTimeoutRef.current = setTimeout(() => setOpen(true), delayShow);\n } else {\n setOpen(true);\n }\n }, [disabled, delayShow, setOpen, clearTimeouts]);\n\n const hideTooltip = useCallback(() => {\n clearTimeouts();\n if (delayHide > 0) {\n hideTimeoutRef.current = setTimeout(() => setOpen(false), delayHide);\n } else {\n setOpen(false);\n }\n }, [delayHide, setOpen, clearTimeouts]);\n\n const toggleTooltip = useCallback(() => {\n if (disabled) return;\n setOpen(!isOpen);\n }, [disabled, isOpen, setOpen]);\n\n useEffect(() => {\n return () => clearTimeouts();\n }, [clearTimeouts]);\n\n // Close on click outside for click trigger\n useEffect(() => {\n if (trigger !== \"click\" || !isOpen) return;\n\n const handleClickOutside = (event: MouseEvent) => {\n if (\n triggerRef.current &&\n !triggerRef.current.contains(event.target as Node)\n ) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [trigger, isOpen, setOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }, [isOpen, setOpen]);\n\n const triggerProps = {\n ...(trigger === \"hover\" && {\n onMouseEnter: showTooltip,\n onMouseLeave: hideTooltip,\n }),\n ...(trigger === \"click\" && {\n onClick: toggleTooltip,\n }),\n ...(trigger === \"focus\" && {\n onFocus: showTooltip,\n onBlur: hideTooltip,\n }),\n };\n\n return (\n <div ref={triggerRef} className=\"relative inline-flex\" {...triggerProps}>\n {children}\n <AnimatePresence>\n {isOpen && !disabled && (\n <motion.div\n role=\"tooltip\"\n initial={motionVariants[position].initial}\n animate={motionVariants[position].animate}\n exit={motionVariants[position].exit}\n transition={{ duration: 0.15, ease: \"easeOut\" }}\n className={`\n absolute z-50 ${positionStyles[position]}\n px-3 py-2 text-sm font-medium\n bg-neutral-800 dark:bg-neutral-700\n text-white rounded-lg shadow-lg\n whitespace-normal break-words\n ${className}\n `}\n style={{ maxWidth }}\n >\n {content}\n {arrow && (\n <span\n className={`absolute w-0 h-0 ${arrowStyles[position]}`}\n aria-hidden=\"true\"\n />\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n}\n\nexport { Tooltip };\n"],"mappings":"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"}
|