erp-pro-ui 0.1.4 → 0.1.6
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 +137 -28
- package/dist/accordion.cjs +1 -1
- package/dist/accordion.mjs +1 -1
- package/dist/alert.cjs +1 -1
- package/dist/alert.mjs +1 -1
- package/dist/animated-content.cjs +1 -1
- package/dist/animated-content.mjs +1 -1
- package/dist/animations.css +2 -2
- package/dist/ascii-text.cjs +1 -1
- package/dist/ascii-text.mjs +1 -1
- package/dist/background-gradient-animation.cjs +1 -1
- package/dist/background-gradient-animation.mjs +1 -1
- package/dist/button-hover-border-gradient.cjs +1 -1
- package/dist/button-hover-border-gradient.mjs +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.mjs +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.mjs +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.mjs +1 -1
- package/dist/carousel.cjs +1 -1
- package/dist/carousel.mjs +1 -1
- package/dist/catalog.cjs +6 -0
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.ts +11 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.mjs +6 -0
- package/dist/catalog.mjs.map +1 -1
- package/dist/charts.cjs +2 -1
- package/dist/charts.mjs +2 -2
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.mjs +1 -1
- package/dist/chip.cjs +3 -1
- package/dist/chip.mjs +2 -2
- package/dist/chroma-grid.cjs +1 -1
- package/dist/chroma-grid.mjs +1 -1
- package/dist/chunks/{HoverBorderGradient-Df3PKpw6.cjs → HoverBorderGradient-C5D6lGg0.cjs} +8 -8
- package/dist/chunks/HoverBorderGradient-C5D6lGg0.cjs.map +1 -0
- package/dist/chunks/{HoverBorderGradient-DVFEIXFQ.mjs → HoverBorderGradient-CduqqQgX.mjs} +8 -8
- package/dist/chunks/HoverBorderGradient-CduqqQgX.mjs.map +1 -0
- package/dist/chunks/{accordion-Cbt-SJhj.mjs → accordion-6zxJUYXr.mjs} +8 -8
- package/dist/chunks/accordion-6zxJUYXr.mjs.map +1 -0
- package/dist/chunks/{accordion-pfJR8YYA.cjs → accordion-CmB6EidC.cjs} +8 -8
- package/dist/chunks/accordion-CmB6EidC.cjs.map +1 -0
- package/dist/chunks/alert-C5KEeQqh.cjs +81 -0
- package/dist/chunks/alert-C5KEeQqh.cjs.map +1 -0
- package/dist/chunks/alert-XVmYJgds.mjs +75 -0
- package/dist/chunks/alert-XVmYJgds.mjs.map +1 -0
- package/dist/chunks/{animated-content-CttSmLWV.cjs → animated-content-CLsFnjgr.cjs} +1 -1
- package/dist/chunks/{animated-content-CttSmLWV.cjs.map → animated-content-CLsFnjgr.cjs.map} +1 -1
- package/dist/chunks/{animated-content-C1uNg1xO.mjs → animated-content-bK6xp-vc.mjs} +1 -1
- package/dist/chunks/{animated-content-C1uNg1xO.mjs.map → animated-content-bK6xp-vc.mjs.map} +1 -1
- package/dist/chunks/{ascii-text-DlmArZXh.cjs → ascii-text-BP-BBy0-.cjs} +3 -3
- package/dist/chunks/{ascii-text-DlmArZXh.cjs.map → ascii-text-BP-BBy0-.cjs.map} +1 -1
- package/dist/chunks/{ascii-text-C5tyNsR3.mjs → ascii-text-RJxX3wCC.mjs} +1 -1
- package/dist/chunks/{ascii-text-C5tyNsR3.mjs.map → ascii-text-RJxX3wCC.mjs.map} +1 -1
- package/dist/chunks/{background-gradient-animation-BL-lnrJe.mjs → background-gradient-animation-DpKJ3ecq.mjs} +3 -3
- package/dist/chunks/{background-gradient-animation-BL-lnrJe.mjs.map → background-gradient-animation-DpKJ3ecq.mjs.map} +1 -1
- package/dist/chunks/{background-gradient-animation-CXV9GDH8.cjs → background-gradient-animation-II9hdrgB.cjs} +3 -3
- package/dist/chunks/{background-gradient-animation-CXV9GDH8.cjs.map → background-gradient-animation-II9hdrgB.cjs.map} +1 -1
- package/dist/chunks/{button-B0Lhj0AS.mjs → button-DddUhuR-.mjs} +6 -5
- package/dist/chunks/button-DddUhuR-.mjs.map +1 -0
- package/dist/chunks/{button-hover-border-gradient-CvoM60wz.mjs → button-hover-border-gradient-DFppVRI4.mjs} +3 -3
- package/dist/chunks/{button-hover-border-gradient-CvoM60wz.mjs.map → button-hover-border-gradient-DFppVRI4.mjs.map} +1 -1
- package/dist/chunks/{button-hover-border-gradient-CSHXM5Cm.cjs → button-hover-border-gradient-DX2lBG5C.cjs} +3 -3
- package/dist/chunks/{button-hover-border-gradient-CSHXM5Cm.cjs.map → button-hover-border-gradient-DX2lBG5C.cjs.map} +1 -1
- package/dist/chunks/{button-CZL6kFzT.cjs → button-xqernofO.cjs} +6 -5
- package/dist/chunks/button-xqernofO.cjs.map +1 -0
- package/dist/chunks/{calendar-DrCgT_pj.mjs → calendar-Cp84V2rY.mjs} +7 -7
- package/dist/chunks/calendar-Cp84V2rY.mjs.map +1 -0
- package/dist/chunks/{calendar-Cpp_Rc7T.cjs → calendar-DuCKr6b7.cjs} +7 -7
- package/dist/chunks/calendar-DuCKr6b7.cjs.map +1 -0
- package/dist/chunks/{card-C5_tFK6Q.cjs → card-CqPDr6Tt.cjs} +4 -4
- package/dist/chunks/card-CqPDr6Tt.cjs.map +1 -0
- package/dist/chunks/{card-Dh8wNv8N.mjs → card-SpHHNB0c.mjs} +4 -4
- package/dist/chunks/card-SpHHNB0c.mjs.map +1 -0
- package/dist/chunks/{carousel-BYwqI4cA.mjs → carousel-C1skQ65z.mjs} +14 -14
- package/dist/chunks/carousel-C1skQ65z.mjs.map +1 -0
- package/dist/chunks/{carousel-C1338X8h.cjs → carousel-YlRLOGkM.cjs} +11 -11
- package/dist/chunks/carousel-YlRLOGkM.cjs.map +1 -0
- package/dist/chunks/{charts-BYvM4TMG.mjs → charts-C-Qee_JY.mjs} +118 -19
- package/dist/chunks/charts-C-Qee_JY.mjs.map +1 -0
- package/dist/chunks/{charts-DbxyHtlX.cjs → charts-CZEYcr6X.cjs} +119 -14
- package/dist/chunks/charts-CZEYcr6X.cjs.map +1 -0
- package/dist/chunks/{checkbox-Pr49U9F1.mjs → checkbox-DjGpvMyo.mjs} +12 -12
- package/dist/chunks/checkbox-DjGpvMyo.mjs.map +1 -0
- package/dist/chunks/{checkbox-CxOcjoGP.cjs → checkbox-NM_iPd6S.cjs} +10 -10
- package/dist/chunks/checkbox-NM_iPd6S.cjs.map +1 -0
- package/dist/chunks/chip-BY83_HK7.cjs +203 -0
- package/dist/chunks/chip-BY83_HK7.cjs.map +1 -0
- package/dist/chunks/chip-CbO8-1lK.mjs +185 -0
- package/dist/chunks/chip-CbO8-1lK.mjs.map +1 -0
- package/dist/chunks/{chroma-grid-BAo6V5A7.mjs → chroma-grid-CexX28VQ.mjs} +6 -6
- package/dist/chunks/chroma-grid-CexX28VQ.mjs.map +1 -0
- package/dist/chunks/{chroma-grid-CIk0dsNS.cjs → chroma-grid-DP__XtmV.cjs} +6 -6
- package/dist/chunks/chroma-grid-DP__XtmV.cjs.map +1 -0
- package/dist/chunks/{color-palette-euKQMWlV.mjs → color-palette-BU1cI6XP.mjs} +166 -132
- package/dist/chunks/color-palette-BU1cI6XP.mjs.map +1 -0
- package/dist/chunks/{color-palette-2TuEMkAn.cjs → color-palette-ThIKMhT1.cjs} +168 -133
- package/dist/chunks/color-palette-ThIKMhT1.cjs.map +1 -0
- package/dist/chunks/{combobox-CwGubKTt.cjs → combobox-B7UIcjsI.cjs} +31 -23
- package/dist/chunks/combobox-B7UIcjsI.cjs.map +1 -0
- package/dist/chunks/{combobox-DrFmkI0F.mjs → combobox-D6WnThIQ.mjs} +30 -22
- package/dist/chunks/combobox-D6WnThIQ.mjs.map +1 -0
- package/dist/chunks/data-table-KDM8AEwU.mjs +1555 -0
- package/dist/chunks/data-table-KDM8AEwU.mjs.map +1 -0
- package/dist/chunks/data-table-z-YDzi0N.cjs +1646 -0
- package/dist/chunks/data-table-z-YDzi0N.cjs.map +1 -0
- package/dist/chunks/{date-picker-CNPORxhv.mjs → date-picker-Bh6_p4bD.mjs} +39 -19
- package/dist/chunks/date-picker-Bh6_p4bD.mjs.map +1 -0
- package/dist/chunks/{date-picker-CZo68Fkl.cjs → date-picker-CfCvp6Tj.cjs} +39 -19
- package/dist/chunks/date-picker-CfCvp6Tj.cjs.map +1 -0
- package/dist/chunks/{dialog-DUWnV9tN.mjs → dialog-BibwiFLY.mjs} +33 -30
- package/dist/chunks/dialog-BibwiFLY.mjs.map +1 -0
- package/dist/chunks/{dialog-CYFiWN8M.cjs → dialog-I141I0nc.cjs} +33 -30
- package/dist/chunks/dialog-I141I0nc.cjs.map +1 -0
- package/dist/chunks/{drawer-D82Jz6KO.mjs → drawer-DsE8Pb8e.mjs} +11 -11
- package/dist/chunks/drawer-DsE8Pb8e.mjs.map +1 -0
- package/dist/chunks/{drawer-CLjsYdxN.cjs → drawer-EC9eopGX.cjs} +11 -11
- package/dist/chunks/drawer-EC9eopGX.cjs.map +1 -0
- package/dist/chunks/{form-B2vcaHwh.mjs → form-CRwpjFWu.mjs} +10 -10
- package/dist/chunks/form-CRwpjFWu.mjs.map +1 -0
- package/dist/chunks/{form-CzH9GQc6.cjs → form-DaGyqM97.cjs} +10 -10
- package/dist/chunks/form-DaGyqM97.cjs.map +1 -0
- package/dist/chunks/{gradual-blur-B9GoY8o1.cjs → gradual-blur-Di7MBs7M.cjs} +1 -1
- package/dist/chunks/{gradual-blur-B9GoY8o1.cjs.map → gradual-blur-Di7MBs7M.cjs.map} +1 -1
- package/dist/chunks/{gradual-blur-Bl3dOMEz.mjs → gradual-blur-pt0UiMEy.mjs} +1 -1
- package/dist/chunks/{gradual-blur-Bl3dOMEz.mjs.map → gradual-blur-pt0UiMEy.mjs.map} +1 -1
- package/dist/chunks/{hover-card-xqwpmZNm.mjs → hover-card-C3Xa18Ov.mjs} +7 -8
- package/dist/chunks/hover-card-C3Xa18Ov.mjs.map +1 -0
- package/dist/chunks/{hover-card-v0QwmVBU.cjs → hover-card-D78E07hk.cjs} +7 -8
- package/dist/chunks/hover-card-D78E07hk.cjs.map +1 -0
- package/dist/chunks/{icons-BxIzP2jd.cjs → icons-CRanVZB1.cjs} +8 -8
- package/dist/chunks/icons-CRanVZB1.cjs.map +1 -0
- package/dist/chunks/{icons-DuumN7z-.mjs → icons-bx3nrxNv.mjs} +8 -8
- package/dist/chunks/icons-bx3nrxNv.mjs.map +1 -0
- package/dist/chunks/{input-Bt_r_B_c.mjs → input-CpARxvFi.mjs} +14 -14
- package/dist/chunks/input-CpARxvFi.mjs.map +1 -0
- package/dist/chunks/{input-BWM6G7jq.cjs → input-DTW_8EwG.cjs} +14 -14
- package/dist/chunks/input-DTW_8EwG.cjs.map +1 -0
- package/dist/chunks/{label-KPA-yYOF.mjs → label-BVH02Yvq.mjs} +1 -1
- package/dist/chunks/{label-KPA-yYOF.mjs.map → label-BVH02Yvq.mjs.map} +1 -1
- package/dist/chunks/{label-BWPEGVam.cjs → label-DN-Bg5i8.cjs} +1 -1
- package/dist/chunks/{label-BWPEGVam.cjs.map → label-DN-Bg5i8.cjs.map} +1 -1
- package/dist/chunks/{loading-q7IEg56I.cjs → loading-B1yrR3KX.cjs} +7 -7
- package/dist/chunks/{loading-q7IEg56I.cjs.map → loading-B1yrR3KX.cjs.map} +1 -1
- package/dist/chunks/{loading-S1TdIrbB.mjs → loading-B2Ron0Fd.mjs} +7 -7
- package/dist/chunks/{loading-S1TdIrbB.mjs.map → loading-B2Ron0Fd.mjs.map} +1 -1
- package/dist/chunks/{multi-select-combobox-D46M-AN9.mjs → multi-select-combobox-CMhAXEGZ.mjs} +15 -15
- package/dist/chunks/multi-select-combobox-CMhAXEGZ.mjs.map +1 -0
- package/dist/chunks/{multi-select-combobox-dS6bJE_e.cjs → multi-select-combobox-FEbMAPEg.cjs} +16 -16
- package/dist/chunks/multi-select-combobox-FEbMAPEg.cjs.map +1 -0
- package/dist/chunks/{otp-input-DSW9Ca_D.cjs → otp-input-B6nJC-Fl.cjs} +10 -10
- package/dist/chunks/otp-input-B6nJC-Fl.cjs.map +1 -0
- package/dist/chunks/{otp-input-DeAi4nJ_.mjs → otp-input-B7DhhsMe.mjs} +10 -10
- package/dist/chunks/otp-input-B7DhhsMe.mjs.map +1 -0
- package/dist/chunks/{overlay-TycCIFOu.mjs → overlay-C58wXorc.mjs} +1 -1
- package/dist/chunks/{overlay-TycCIFOu.mjs.map → overlay-C58wXorc.mjs.map} +1 -1
- package/dist/chunks/{overlay-DWNTyQzK.cjs → overlay-DwJgjJuu.cjs} +1 -1
- package/dist/chunks/{overlay-DWNTyQzK.cjs.map → overlay-DwJgjJuu.cjs.map} +1 -1
- package/dist/chunks/{password-strength-meter-DxMV6GAs.cjs → password-strength-meter-6vNu6p19.cjs} +13 -13
- package/dist/chunks/password-strength-meter-6vNu6p19.cjs.map +1 -0
- package/dist/chunks/{password-strength-meter-CbNSBuh_.mjs → password-strength-meter-D7gmZNjp.mjs} +13 -13
- package/dist/chunks/password-strength-meter-D7gmZNjp.mjs.map +1 -0
- package/dist/chunks/{progress-bar-BdvQtpm3.cjs → progress-bar-CbsCItvv.cjs} +78 -5
- package/dist/chunks/progress-bar-CbsCItvv.cjs.map +1 -0
- package/dist/chunks/{progress-bar-B9sy7WBT.mjs → progress-bar-D6Q9Di7D.mjs} +72 -5
- package/dist/chunks/progress-bar-D6Q9Di7D.mjs.map +1 -0
- package/dist/chunks/{radio-C9w_CoiY.mjs → radio-C6Meq2iz.mjs} +2 -2
- package/dist/chunks/{radio-C9w_CoiY.mjs.map → radio-C6Meq2iz.mjs.map} +1 -1
- package/dist/chunks/{radio-jMHDvaMY.cjs → radio-DxakS7iD.cjs} +2 -2
- package/dist/chunks/{radio-jMHDvaMY.cjs.map → radio-DxakS7iD.cjs.map} +1 -1
- package/dist/chunks/{select-B8UQ6Uq5.mjs → select-1rSJeUBQ.mjs} +25 -19
- package/dist/chunks/select-1rSJeUBQ.mjs.map +1 -0
- package/dist/chunks/{select-CCUSMvfS.cjs → select-SOmIt-BD.cjs} +25 -19
- package/dist/chunks/select-SOmIt-BD.cjs.map +1 -0
- package/dist/chunks/{skeleton-CtLumdRw.mjs → skeleton-BRx-80dg.mjs} +18 -18
- package/dist/chunks/skeleton-BRx-80dg.mjs.map +1 -0
- package/dist/chunks/{skeleton-BNea1Rcp.cjs → skeleton-o7DlA5yl.cjs} +18 -18
- package/dist/chunks/skeleton-o7DlA5yl.cjs.map +1 -0
- package/dist/chunks/{spinners-BL4ERCCw.cjs → spinners-BylPf0uk.cjs} +2 -2
- package/dist/chunks/{spinners-BL4ERCCw.cjs.map → spinners-BylPf0uk.cjs.map} +1 -1
- package/dist/chunks/{spinners-BBCWD2gw.mjs → spinners-hJaI_cBH.mjs} +2 -2
- package/dist/chunks/{spinners-BBCWD2gw.mjs.map → spinners-hJaI_cBH.mjs.map} +1 -1
- package/dist/chunks/{splash-cursor-BVSmbcIX.cjs → splash-cursor-CmqkSl6m.cjs} +1 -1
- package/dist/chunks/{splash-cursor-BVSmbcIX.cjs.map → splash-cursor-CmqkSl6m.cjs.map} +1 -1
- package/dist/chunks/{splash-cursor-rSrTnawZ.mjs → splash-cursor-Cxouip_h.mjs} +1 -1
- package/dist/chunks/{splash-cursor-rSrTnawZ.mjs.map → splash-cursor-Cxouip_h.mjs.map} +1 -1
- package/dist/chunks/{spotlight-card-DS1dy1W3.cjs → spotlight-card-B3L3K21T.cjs} +8 -8
- package/dist/chunks/spotlight-card-B3L3K21T.cjs.map +1 -0
- package/dist/chunks/{spotlight-card-BpZLMOp6.mjs → spotlight-card-DIgacTxA.mjs} +8 -8
- package/dist/chunks/spotlight-card-DIgacTxA.mjs.map +1 -0
- package/dist/chunks/{stepper-D6qQbZdg.cjs → stepper-BpjKyemI.cjs} +212 -129
- package/dist/chunks/stepper-BpjKyemI.cjs.map +1 -0
- package/dist/chunks/{stepper-DUknuW2E.mjs → stepper-JD4ZHT-b.mjs} +213 -130
- package/dist/chunks/stepper-JD4ZHT-b.mjs.map +1 -0
- package/dist/chunks/sun-to-moon-button-BOx1n6nk.cjs +311 -0
- package/dist/chunks/sun-to-moon-button-BOx1n6nk.cjs.map +1 -0
- package/dist/chunks/sun-to-moon-button-CBbDar4k.mjs +299 -0
- package/dist/chunks/sun-to-moon-button-CBbDar4k.mjs.map +1 -0
- package/dist/chunks/{switch-C5otDb4c.cjs → switch-C9suGEWg.cjs} +5 -5
- package/dist/chunks/switch-C9suGEWg.cjs.map +1 -0
- package/dist/chunks/{switch-DOVl_i_s.mjs → switch-hd7zTBD_.mjs} +5 -5
- package/dist/chunks/switch-hd7zTBD_.mjs.map +1 -0
- package/dist/chunks/{textarea-Blky_fLK.mjs → textarea-Cu26uKqq.mjs} +5 -5
- package/dist/chunks/textarea-Cu26uKqq.mjs.map +1 -0
- package/dist/chunks/{textarea-ok_NlE2p.cjs → textarea-cXgKzluG.cjs} +5 -5
- package/dist/chunks/textarea-cXgKzluG.cjs.map +1 -0
- package/dist/chunks/{theme-7DWLxJK_.cjs → theme-D6B-FaoE.cjs} +28 -5
- package/dist/chunks/theme-D6B-FaoE.cjs.map +1 -0
- package/dist/chunks/{theme-BceKeYhw.mjs → theme-koPrLKQv.mjs} +28 -5
- package/dist/chunks/theme-koPrLKQv.mjs.map +1 -0
- package/dist/chunks/{toast-CvfP7PUP.mjs → toast-CpX-22n2.mjs} +26 -26
- package/dist/chunks/toast-CpX-22n2.mjs.map +1 -0
- package/dist/chunks/{toast-Ds7_19Ap.cjs → toast-REa6FRBc.cjs} +26 -26
- package/dist/chunks/toast-REa6FRBc.cjs.map +1 -0
- package/dist/chunks/{tooltip-efHETBo1.mjs → tooltip-CASvQiFQ.mjs} +6 -7
- package/dist/chunks/tooltip-CASvQiFQ.mjs.map +1 -0
- package/dist/chunks/{tooltip-nkIqViGk.cjs → tooltip-CKF78rni.cjs} +6 -7
- package/dist/chunks/tooltip-CKF78rni.cjs.map +1 -0
- package/dist/chunks/truncated-text-DTgks5yS.mjs +45 -0
- package/dist/chunks/truncated-text-DTgks5yS.mjs.map +1 -0
- package/dist/chunks/truncated-text-istgJRUq.cjs +52 -0
- package/dist/chunks/truncated-text-istgJRUq.cjs.map +1 -0
- package/dist/chunks/{typography-CLu6Hx9j.mjs → typography-KxLf6Td8.mjs} +5 -5
- package/dist/chunks/typography-KxLf6Td8.mjs.map +1 -0
- package/dist/chunks/{typography-DaLu9tty.cjs → typography-sGmh0gZ_.cjs} +6 -6
- package/dist/chunks/typography-sGmh0gZ_.cjs.map +1 -0
- package/dist/color-palette.cjs +1 -1
- package/dist/color-palette.mjs +1 -1
- package/dist/colors.css +45 -149
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.mjs +1 -1
- package/dist/components/data-display/card/Card.d.ts.map +1 -1
- package/dist/components/data-display/charts/MiniNeonSparkline.d.ts +17 -0
- package/dist/components/data-display/charts/MiniNeonSparkline.d.ts.map +1 -0
- package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -1
- package/dist/components/data-display/charts/index.d.ts +2 -0
- package/dist/components/data-display/charts/index.d.ts.map +1 -1
- package/dist/components/data-display/chip/Chip.d.ts.map +1 -1
- package/dist/components/data-display/chip/SpecialChip.d.ts +23 -0
- package/dist/components/data-display/chip/SpecialChip.d.ts.map +1 -0
- package/dist/components/data-display/chip/index.d.ts +2 -0
- package/dist/components/data-display/chip/index.d.ts.map +1 -1
- package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTable.d.ts +49 -26
- package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTableControls.d.ts +34 -0
- package/dist/components/data-display/data-table/DataTableControls.d.ts.map +1 -0
- package/dist/components/data-display/data-table/DataTableFilters.d.ts +27 -0
- package/dist/components/data-display/data-table/DataTableFilters.d.ts.map +1 -0
- package/dist/components/data-display/data-table/DataTableRows.d.ts +34 -0
- package/dist/components/data-display/data-table/DataTableRows.d.ts.map +1 -0
- package/dist/components/data-display/data-table/DataTableToolbar.d.ts +48 -0
- package/dist/components/data-display/data-table/DataTableToolbar.d.ts.map +1 -0
- package/dist/components/data-display/data-table/TablePrimitives.d.ts +11 -0
- package/dist/components/data-display/data-table/TablePrimitives.d.ts.map +1 -0
- package/dist/components/data-display/data-table/direction.d.ts +7 -0
- package/dist/components/data-display/data-table/direction.d.ts.map +1 -0
- package/dist/components/data-display/data-table/index.d.ts +2 -2
- package/dist/components/data-display/data-table/index.d.ts.map +1 -1
- package/dist/components/data-display/loading/Loading.d.ts.map +1 -1
- package/dist/components/data-display/progress-bar/CircularProgress.d.ts +17 -0
- package/dist/components/data-display/progress-bar/CircularProgress.d.ts.map +1 -0
- package/dist/components/data-display/progress-bar/index.d.ts +2 -0
- package/dist/components/data-display/progress-bar/index.d.ts.map +1 -1
- package/dist/components/effects/sun-to-moon-button/ThemeSwitcherButtons.d.ts +5 -0
- package/dist/components/effects/sun-to-moon-button/ThemeSwitcherButtons.d.ts.map +1 -0
- package/dist/components/effects/sun-to-moon-button/index.d.ts +2 -0
- package/dist/components/effects/sun-to-moon-button/index.d.ts.map +1 -1
- package/dist/components/feedback/alert/Alert.d.ts +1 -1
- package/dist/components/feedback/alert/Alert.d.ts.map +1 -1
- package/dist/components/feedback/alert/types.d.ts +11 -2
- package/dist/components/feedback/alert/types.d.ts.map +1 -1
- package/dist/components/forms/button/Button.d.ts +1 -1
- package/dist/components/forms/button/Button.d.ts.map +1 -1
- package/dist/components/forms/button/index.d.ts +1 -1
- package/dist/components/forms/button/index.d.ts.map +1 -1
- package/dist/components/forms/button/types.d.ts +4 -1
- package/dist/components/forms/button/types.d.ts.map +1 -1
- package/dist/components/forms/calendar/Calendar.d.ts.map +1 -1
- package/dist/components/forms/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/forms/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/forms/form/Form.d.ts.map +1 -1
- package/dist/components/forms/input/Input.d.ts.map +1 -1
- package/dist/components/forms/input/types.d.ts +1 -1
- package/dist/components/forms/input/types.d.ts.map +1 -1
- package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -1
- package/dist/components/forms/password-strength-meter/PasswordStrengthMeter.d.ts.map +1 -1
- package/dist/components/forms/select/Select.d.ts.map +1 -1
- package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -1
- package/dist/components/navigation/stepper/Stepper.d.ts +1 -1
- package/dist/components/navigation/stepper/Stepper.d.ts.map +1 -1
- package/dist/components/navigation/stepper/Stepper1.d.ts.map +1 -1
- package/dist/components/navigation/stepper/index.d.ts +1 -1
- package/dist/components/navigation/stepper/index.d.ts.map +1 -1
- package/dist/components/navigation/stepper/types.d.ts +3 -0
- package/dist/components/navigation/stepper/types.d.ts.map +1 -1
- package/dist/components/navigation/tabs/Tabs.d.ts +3 -0
- package/dist/components/navigation/tabs/Tabs.d.ts.map +1 -0
- package/dist/components/navigation/tabs/index.d.ts +3 -0
- package/dist/components/navigation/tabs/index.d.ts.map +1 -0
- package/dist/components/navigation/tabs/types.d.ts +21 -0
- package/dist/components/navigation/tabs/types.d.ts.map +1 -0
- package/dist/components/overlays/dialog/Dialog.d.ts.map +1 -1
- package/dist/components/overlays/dialog/types.d.ts +1 -0
- package/dist/components/overlays/dialog/types.d.ts.map +1 -1
- package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -1
- package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -1
- package/dist/components/overlays/toast/Toast.d.ts.map +1 -1
- package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/shared/overlay.d.ts +1 -1
- package/dist/components/typography/Typography.d.ts.map +1 -1
- package/dist/components/typography/truncated-text/TruncatedText.d.ts +11 -0
- package/dist/components/typography/truncated-text/TruncatedText.d.ts.map +1 -0
- package/dist/components/typography/truncated-text/index.d.ts +3 -0
- package/dist/components/typography/truncated-text/index.d.ts.map +1 -0
- package/dist/contexts/ThemeContext.d.ts +1 -1
- package/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/contexts/index.d.ts +1 -1
- package/dist/contexts/index.d.ts.map +1 -1
- package/dist/data-table.cjs +11 -1
- package/dist/data-table.mjs +2 -2
- package/dist/date-picker.cjs +1 -1
- package/dist/date-picker.mjs +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.mjs +1 -1
- package/dist/docs.cjs +76 -26
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.ts +10 -10
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.mjs +76 -26
- package/dist/docs.mjs.map +1 -1
- package/dist/drawer.cjs +1 -1
- package/dist/drawer.mjs +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.mjs +1 -1
- package/dist/foundation.css +54 -3
- package/dist/foundations/theme/ThemeProvider.d.ts +22 -1
- package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/foundations/theme/index.d.ts +1 -1
- package/dist/foundations/theme/index.d.ts.map +1 -1
- package/dist/gradual-blur.cjs +1 -1
- package/dist/gradual-blur.mjs +1 -1
- package/dist/hover-border-gradient.cjs +1 -1
- package/dist/hover-border-gradient.mjs +1 -1
- package/dist/hover-card.cjs +1 -1
- package/dist/hover-card.mjs +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.mjs +1 -1
- package/dist/index.cjs +201 -48
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +17 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +183 -50
- package/dist/index.mjs.map +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.mjs +1 -1
- package/dist/label.cjs +1 -1
- package/dist/label.mjs +1 -1
- package/dist/loading.cjs +1 -1
- package/dist/loading.mjs +1 -1
- package/dist/multi-select-combobox.cjs +1 -1
- package/dist/multi-select-combobox.mjs +1 -1
- package/dist/otp-input.cjs +1 -1
- package/dist/otp-input.mjs +1 -1
- package/dist/password-strength-meter.cjs +1 -1
- package/dist/password-strength-meter.mjs +1 -1
- package/dist/progress-bar.cjs +2 -1
- package/dist/progress-bar.mjs +2 -2
- package/dist/radio.cjs +1 -1
- package/dist/radio.mjs +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.mjs +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.mjs +1 -1
- package/dist/spinners.cjs +1 -1
- package/dist/spinners.mjs +1 -1
- package/dist/splash-cursor.cjs +1 -1
- package/dist/splash-cursor.mjs +1 -1
- package/dist/spotlight-card.cjs +1 -1
- package/dist/spotlight-card.mjs +1 -1
- package/dist/stepper.cjs +1 -1
- package/dist/stepper.mjs +1 -1
- package/dist/sun-to-moon-button.cjs +2 -1
- package/dist/sun-to-moon-button.mjs +2 -2
- package/dist/switch.cjs +1 -1
- package/dist/switch.mjs +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.mjs +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.mjs +1 -1
- package/dist/toast.cjs +1 -1
- package/dist/toast.mjs +1 -1
- package/dist/tokens.css +592 -298
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.mjs +1 -1
- package/dist/truncated-text.cjs +3 -0
- package/dist/truncated-text.d.ts +2 -0
- package/dist/truncated-text.mjs +2 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.mjs +1 -1
- package/package.json +15 -9
- package/dist/chunks/HoverBorderGradient-DVFEIXFQ.mjs.map +0 -1
- package/dist/chunks/HoverBorderGradient-Df3PKpw6.cjs.map +0 -1
- package/dist/chunks/accordion-Cbt-SJhj.mjs.map +0 -1
- package/dist/chunks/accordion-pfJR8YYA.cjs.map +0 -1
- package/dist/chunks/alert-CtdLy4Hv.mjs +0 -40
- package/dist/chunks/alert-CtdLy4Hv.mjs.map +0 -1
- package/dist/chunks/alert-Dvz1GoL5.cjs +0 -46
- package/dist/chunks/alert-Dvz1GoL5.cjs.map +0 -1
- package/dist/chunks/button-B0Lhj0AS.mjs.map +0 -1
- package/dist/chunks/button-CZL6kFzT.cjs.map +0 -1
- package/dist/chunks/calendar-Cpp_Rc7T.cjs.map +0 -1
- package/dist/chunks/calendar-DrCgT_pj.mjs.map +0 -1
- package/dist/chunks/card-C5_tFK6Q.cjs.map +0 -1
- package/dist/chunks/card-Dh8wNv8N.mjs.map +0 -1
- package/dist/chunks/carousel-BYwqI4cA.mjs.map +0 -1
- package/dist/chunks/carousel-C1338X8h.cjs.map +0 -1
- package/dist/chunks/charts-BYvM4TMG.mjs.map +0 -1
- package/dist/chunks/charts-DbxyHtlX.cjs.map +0 -1
- package/dist/chunks/checkbox-CxOcjoGP.cjs.map +0 -1
- package/dist/chunks/checkbox-Pr49U9F1.mjs.map +0 -1
- package/dist/chunks/chip-B4ol1yPk.cjs +0 -145
- package/dist/chunks/chip-B4ol1yPk.cjs.map +0 -1
- package/dist/chunks/chip-DdnBLdpl.mjs +0 -139
- package/dist/chunks/chip-DdnBLdpl.mjs.map +0 -1
- package/dist/chunks/chroma-grid-BAo6V5A7.mjs.map +0 -1
- package/dist/chunks/chroma-grid-CIk0dsNS.cjs.map +0 -1
- package/dist/chunks/color-palette-2TuEMkAn.cjs.map +0 -1
- package/dist/chunks/color-palette-euKQMWlV.mjs.map +0 -1
- package/dist/chunks/combobox-CwGubKTt.cjs.map +0 -1
- package/dist/chunks/combobox-DrFmkI0F.mjs.map +0 -1
- package/dist/chunks/data-table-Bo80m7qV.mjs +0 -1123
- package/dist/chunks/data-table-Bo80m7qV.mjs.map +0 -1
- package/dist/chunks/data-table-W1sK5tkL.cjs +0 -1154
- package/dist/chunks/data-table-W1sK5tkL.cjs.map +0 -1
- package/dist/chunks/date-picker-CNPORxhv.mjs.map +0 -1
- package/dist/chunks/date-picker-CZo68Fkl.cjs.map +0 -1
- package/dist/chunks/dialog-CYFiWN8M.cjs.map +0 -1
- package/dist/chunks/dialog-DUWnV9tN.mjs.map +0 -1
- package/dist/chunks/drawer-CLjsYdxN.cjs.map +0 -1
- package/dist/chunks/drawer-D82Jz6KO.mjs.map +0 -1
- package/dist/chunks/form-B2vcaHwh.mjs.map +0 -1
- package/dist/chunks/form-CzH9GQc6.cjs.map +0 -1
- package/dist/chunks/hover-card-v0QwmVBU.cjs.map +0 -1
- package/dist/chunks/hover-card-xqwpmZNm.mjs.map +0 -1
- package/dist/chunks/icons-BxIzP2jd.cjs.map +0 -1
- package/dist/chunks/icons-DuumN7z-.mjs.map +0 -1
- package/dist/chunks/input-BWM6G7jq.cjs.map +0 -1
- package/dist/chunks/input-Bt_r_B_c.mjs.map +0 -1
- package/dist/chunks/multi-select-combobox-D46M-AN9.mjs.map +0 -1
- package/dist/chunks/multi-select-combobox-dS6bJE_e.cjs.map +0 -1
- package/dist/chunks/otp-input-DSW9Ca_D.cjs.map +0 -1
- package/dist/chunks/otp-input-DeAi4nJ_.mjs.map +0 -1
- package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +0 -1
- package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +0 -1
- package/dist/chunks/progress-bar-B9sy7WBT.mjs.map +0 -1
- package/dist/chunks/progress-bar-BdvQtpm3.cjs.map +0 -1
- package/dist/chunks/select-B8UQ6Uq5.mjs.map +0 -1
- package/dist/chunks/select-CCUSMvfS.cjs.map +0 -1
- package/dist/chunks/skeleton-BNea1Rcp.cjs.map +0 -1
- package/dist/chunks/skeleton-CtLumdRw.mjs.map +0 -1
- package/dist/chunks/spotlight-card-BpZLMOp6.mjs.map +0 -1
- package/dist/chunks/spotlight-card-DS1dy1W3.cjs.map +0 -1
- package/dist/chunks/stepper-D6qQbZdg.cjs.map +0 -1
- package/dist/chunks/stepper-DUknuW2E.mjs.map +0 -1
- package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs +0 -186
- package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs.map +0 -1
- package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs +0 -192
- package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs.map +0 -1
- package/dist/chunks/switch-C5otDb4c.cjs.map +0 -1
- package/dist/chunks/switch-DOVl_i_s.mjs.map +0 -1
- package/dist/chunks/textarea-Blky_fLK.mjs.map +0 -1
- package/dist/chunks/textarea-ok_NlE2p.cjs.map +0 -1
- package/dist/chunks/theme-7DWLxJK_.cjs.map +0 -1
- package/dist/chunks/theme-BceKeYhw.mjs.map +0 -1
- package/dist/chunks/toast-CvfP7PUP.mjs.map +0 -1
- package/dist/chunks/toast-Ds7_19Ap.cjs.map +0 -1
- package/dist/chunks/tooltip-efHETBo1.mjs.map +0 -1
- package/dist/chunks/tooltip-nkIqViGk.cjs.map +0 -1
- package/dist/chunks/typography-CLu6Hx9j.mjs.map +0 -1
- package/dist/chunks/typography-DaLu9tty.cjs.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-B_GkZjkl.cjs");
|
|
2
|
+
const require_utils = require("./utils-B4SmmY4J.cjs");
|
|
2
3
|
let react = require("react");
|
|
3
|
-
react = require_chunk.__toESM(react);
|
|
4
|
+
react = require_chunk.__toESM(react, 1);
|
|
4
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
6
|
//#region src/components/data-display/progress-bar/ProgressBar.tsx
|
|
6
7
|
var sizeStyles = {
|
|
@@ -58,10 +59,10 @@ function ProgressBar({ value, max = 100, label, percentageLabel, showPercentage
|
|
|
58
59
|
children: [(label || showPercentage) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
59
60
|
className: "flex items-center justify-between gap-4",
|
|
60
61
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
61
|
-
className: `font-mono font-semibold tracking-[0.08em] text-
|
|
62
|
+
className: `font-mono font-semibold tracking-[0.08em] text-ds-1 ${sizeStyles[size].label}`,
|
|
62
63
|
children: label
|
|
63
64
|
}), showPercentage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
64
|
-
className: `font-mono font-medium tracking-[0.08em] text-
|
|
65
|
+
className: `font-mono font-medium tracking-[0.08em] text-ds-2 ${sizeStyles[size].percentage}`,
|
|
65
66
|
children: resolvedPercentageLabel
|
|
66
67
|
})]
|
|
67
68
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -71,7 +72,7 @@ function ProgressBar({ value, max = 100, label, percentageLabel, showPercentage
|
|
|
71
72
|
"aria-valuemax": safeMax,
|
|
72
73
|
"aria-valuenow": Math.round(clampedValue),
|
|
73
74
|
"aria-valuetext": `${roundedPercentage}%`,
|
|
74
|
-
className: `relative overflow-hidden rounded-full border border-
|
|
75
|
+
className: `relative overflow-hidden rounded-full border border-ds-border-2/50 bg-ds-surface-2/80 shadow-[inset_0_1px_1px_rgba(255,255,255,0.2)] ${sizeStyles[size].track} ${trackClassName}`,
|
|
75
76
|
style: { background: toneStyle.trackBackground },
|
|
76
77
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
77
78
|
className: `h-full rounded-full transition-[width,filter,box-shadow] duration-500 ease-out ${fillClassName}`,
|
|
@@ -86,6 +87,78 @@ function ProgressBar({ value, max = 100, label, percentageLabel, showPercentage
|
|
|
86
87
|
});
|
|
87
88
|
}
|
|
88
89
|
//#endregion
|
|
90
|
+
//#region src/components/data-display/progress-bar/CircularProgress.tsx
|
|
91
|
+
var toneColorMap = {
|
|
92
|
+
default: "var(--ds-chart-1)",
|
|
93
|
+
success: "var(--ds-chart-3)",
|
|
94
|
+
warning: "var(--ds-chart-4)",
|
|
95
|
+
danger: "var(--ds-chart-5)",
|
|
96
|
+
info: "var(--ds-chart-2)"
|
|
97
|
+
};
|
|
98
|
+
function clamp(value, max) {
|
|
99
|
+
if (!Number.isFinite(value)) return 0;
|
|
100
|
+
return Math.min(Math.max(value, 0), max);
|
|
101
|
+
}
|
|
102
|
+
function CircularProgress({ value, max = 100, size = 24, strokeWidth = 3, tone = "default", showValue = false, valueLabel, className, trackClassName, progressClassName, ariaLabel = "Circular progress" }) {
|
|
103
|
+
const safeMax = Number.isFinite(max) && max > 0 ? max : 100;
|
|
104
|
+
const safeValue = clamp(value, safeMax);
|
|
105
|
+
const percentage = safeValue / safeMax * 100;
|
|
106
|
+
const center = size / 2;
|
|
107
|
+
const radius = center - strokeWidth / 2;
|
|
108
|
+
const circumference = 2 * Math.PI * radius;
|
|
109
|
+
const dashOffset = circumference - percentage / 100 * circumference;
|
|
110
|
+
const label = valueLabel ?? `${Math.round(percentage)}%`;
|
|
111
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
112
|
+
role: "progressbar",
|
|
113
|
+
"aria-label": ariaLabel,
|
|
114
|
+
"aria-valuemin": 0,
|
|
115
|
+
"aria-valuemax": safeMax,
|
|
116
|
+
"aria-valuenow": Math.round(safeValue),
|
|
117
|
+
"aria-valuetext": label,
|
|
118
|
+
className: require_utils.mergeClassNames("relative inline-flex items-center justify-center", className),
|
|
119
|
+
style: {
|
|
120
|
+
width: size,
|
|
121
|
+
height: size
|
|
122
|
+
},
|
|
123
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
124
|
+
width: size,
|
|
125
|
+
height: size,
|
|
126
|
+
viewBox: `0 0 ${size} ${size}`,
|
|
127
|
+
className: "-rotate-90",
|
|
128
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
|
|
129
|
+
cx: center,
|
|
130
|
+
cy: center,
|
|
131
|
+
r: radius,
|
|
132
|
+
fill: "none",
|
|
133
|
+
stroke: "var(--ds-border-2)",
|
|
134
|
+
strokeOpacity: .5,
|
|
135
|
+
strokeWidth,
|
|
136
|
+
className: trackClassName
|
|
137
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
|
|
138
|
+
cx: center,
|
|
139
|
+
cy: center,
|
|
140
|
+
r: radius,
|
|
141
|
+
fill: "none",
|
|
142
|
+
stroke: toneColorMap[tone],
|
|
143
|
+
strokeWidth,
|
|
144
|
+
strokeLinecap: "round",
|
|
145
|
+
strokeDasharray: circumference,
|
|
146
|
+
strokeDashoffset: dashOffset,
|
|
147
|
+
className: require_utils.mergeClassNames("transition-[stroke-dashoffset] duration-500 ease-out", progressClassName)
|
|
148
|
+
})]
|
|
149
|
+
}), showValue ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
150
|
+
className: "absolute text-[10px] font-semibold leading-none text-ds-1",
|
|
151
|
+
children: Math.round(percentage)
|
|
152
|
+
}) : null]
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
//#endregion
|
|
156
|
+
Object.defineProperty(exports, "CircularProgress", {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function() {
|
|
159
|
+
return CircularProgress;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
89
162
|
Object.defineProperty(exports, "ProgressBar", {
|
|
90
163
|
enumerable: true,
|
|
91
164
|
get: function() {
|
|
@@ -93,4 +166,4 @@ Object.defineProperty(exports, "ProgressBar", {
|
|
|
93
166
|
}
|
|
94
167
|
});
|
|
95
168
|
|
|
96
|
-
//# sourceMappingURL=progress-bar-
|
|
169
|
+
//# sourceMappingURL=progress-bar-CbsCItvv.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-bar-CbsCItvv.cjs","names":[],"sources":["../../src/components/data-display/progress-bar/ProgressBar.tsx","../../src/components/data-display/progress-bar/CircularProgress.tsx"],"sourcesContent":["import React from \"react\";\n\nexport type ProgressBarSize = \"sm\" | \"md\" | \"lg\";\nexport type ProgressBarTone =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"info\";\n\nexport interface ProgressBarProps {\n value: number;\n max?: number;\n label?: React.ReactNode;\n percentageLabel?: React.ReactNode;\n showPercentage?: boolean;\n size?: ProgressBarSize;\n tone?: ProgressBarTone;\n className?: string;\n trackClassName?: string;\n fillClassName?: string;\n ariaLabel?: string;\n}\n\nconst sizeStyles: Record<\n ProgressBarSize,\n {\n track: string;\n label: string;\n percentage: string;\n }\n> = {\n sm: {\n track: \"h-1.5\",\n label: \"text-xs\",\n percentage: \"text-xs\",\n },\n md: {\n track: \"h-2.5\",\n label: \"text-sm\",\n percentage: \"text-sm\",\n },\n lg: {\n track: \"h-3.5\",\n label: \"text-base\",\n percentage: \"text-base\",\n },\n};\n\nconst toneStyles: Record<\n ProgressBarTone,\n {\n color: string;\n trackBackground: string;\n }\n> = {\n default: {\n color: \"var(--ds-chart-1)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(15, 23, 42, 0.08) 0%, rgba(30, 41, 59, 0.14) 100%)\",\n },\n success: {\n color: \"var(--ds-chart-3)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(20, 83, 45, 0.12) 0%, rgba(34, 197, 94, 0.18) 100%)\",\n },\n warning: {\n color: \"var(--ds-chart-4)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(120, 53, 15, 0.12) 0%, rgba(245, 158, 11, 0.18) 100%)\",\n },\n danger: {\n color: \"var(--ds-chart-5)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(127, 29, 29, 0.12) 0%, rgba(239, 68, 68, 0.18) 100%)\",\n },\n info: {\n color: \"var(--ds-chart-2)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(30, 64, 175, 0.12) 0%, rgba(59, 130, 246, 0.18) 100%)\",\n },\n};\n\nfunction clampValue(value: number, max: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n return Math.min(Math.max(value, 0), max);\n}\n\nexport default function ProgressBar({\n value,\n max = 100,\n label,\n percentageLabel,\n showPercentage = true,\n size = \"md\",\n tone = \"default\",\n className = \"\",\n trackClassName = \"\",\n fillClassName = \"\",\n ariaLabel = \"Progress\",\n}: ProgressBarProps) {\n const safeMax = Number.isFinite(max) && max > 0 ? max : 100;\n const clampedValue = clampValue(value, safeMax);\n const percentage = (clampedValue / safeMax) * 100;\n const roundedPercentage = Math.round(percentage);\n const toneStyle = toneStyles[tone];\n const resolvedPercentageLabel = percentageLabel ?? `${roundedPercentage}%`;\n\n return (\n <div className={`w-full space-y-3 ${className}`}>\n {(label || showPercentage) && (\n <div className=\"flex items-center justify-between gap-4\">\n <div\n className={`font-mono font-semibold tracking-[0.08em] text-ds-1 ${sizeStyles[size].label}`}\n >\n {label}\n </div>\n {showPercentage && (\n <div\n className={`font-mono font-medium tracking-[0.08em] text-ds-2 ${sizeStyles[size].percentage}`}\n >\n {resolvedPercentageLabel}\n </div>\n )}\n </div>\n )}\n\n <div\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={safeMax}\n aria-valuenow={Math.round(clampedValue)}\n aria-valuetext={`${roundedPercentage}%`}\n className={`relative overflow-hidden rounded-full border border-ds-border-2/50 bg-ds-surface-2/80 shadow-[inset_0_1px_1px_rgba(255,255,255,0.2)] ${sizeStyles[size].track} ${trackClassName}`}\n style={{ background: toneStyle.trackBackground }}\n >\n <div\n className={`h-full rounded-full transition-[width,filter,box-shadow] duration-500 ease-out ${fillClassName}`}\n style={{\n width: `${percentage}%`,\n background: `linear-gradient(90deg, color-mix(in srgb, ${toneStyle.color} 68%, white 32%) 0%, ${toneStyle.color} 100%)`,\n boxShadow: `inset 0 1px 0 rgba(255,255,255,0.4), 0 0 14px color-mix(in srgb, ${toneStyle.color} 32%, transparent)`,\n filter: percentage > 0 ? \"saturate(1.05) brightness(1.02)\" : \"none\",\n }}\n />\n </div>\n </div>\n );\n}\n","import { mergeClassNames } from \"../../../utils\";\n\nexport type CircularProgressTone =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"info\";\n\nexport interface CircularProgressProps {\n value: number;\n max?: number;\n size?: number;\n strokeWidth?: number;\n tone?: CircularProgressTone;\n showValue?: boolean;\n valueLabel?: string;\n className?: string;\n trackClassName?: string;\n progressClassName?: string;\n ariaLabel?: string;\n}\n\nconst toneColorMap: Record<CircularProgressTone, string> = {\n default: \"var(--ds-chart-1)\",\n success: \"var(--ds-chart-3)\",\n warning: \"var(--ds-chart-4)\",\n danger: \"var(--ds-chart-5)\",\n info: \"var(--ds-chart-2)\",\n};\n\nfunction clamp(value: number, max: number): number {\n if (!Number.isFinite(value)) return 0;\n return Math.min(Math.max(value, 0), max);\n}\n\nexport default function CircularProgress({\n value,\n max = 100,\n size = 24,\n strokeWidth = 3,\n tone = \"default\",\n showValue = false,\n valueLabel,\n className,\n trackClassName,\n progressClassName,\n ariaLabel = \"Circular progress\",\n}: CircularProgressProps) {\n const safeMax = Number.isFinite(max) && max > 0 ? max : 100;\n const safeValue = clamp(value, safeMax);\n const percentage = (safeValue / safeMax) * 100;\n\n const center = size / 2;\n const radius = center - strokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n const dashOffset = circumference - (percentage / 100) * circumference;\n const label = valueLabel ?? `${Math.round(percentage)}%`;\n\n return (\n <span\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={safeMax}\n aria-valuenow={Math.round(safeValue)}\n aria-valuetext={label}\n className={mergeClassNames(\n \"relative inline-flex items-center justify-center\",\n className,\n )}\n style={{ width: size, height: size }}\n >\n <svg\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n className=\"-rotate-90\"\n >\n <circle\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n stroke=\"var(--ds-border-2)\"\n strokeOpacity={0.5}\n strokeWidth={strokeWidth}\n className={trackClassName}\n />\n <circle\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n stroke={toneColorMap[tone]}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n className={mergeClassNames(\n \"transition-[stroke-dashoffset] duration-500 ease-out\",\n progressClassName,\n )}\n />\n </svg>\n\n {showValue ? (\n <span className=\"absolute text-[10px] font-semibold leading-none text-ds-1\">\n {Math.round(percentage)}\n </span>\n ) : null}\n </span>\n );\n}\n\nexport { CircularProgress };\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { n as mergeClassNames } from "./utils-ati1KkDb.mjs";
|
|
1
2
|
import "react";
|
|
2
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
4
|
//#region src/components/data-display/progress-bar/ProgressBar.tsx
|
|
@@ -56,10 +57,10 @@ function ProgressBar({ value, max = 100, label, percentageLabel, showPercentage
|
|
|
56
57
|
children: [(label || showPercentage) && /* @__PURE__ */ jsxs("div", {
|
|
57
58
|
className: "flex items-center justify-between gap-4",
|
|
58
59
|
children: [/* @__PURE__ */ jsx("div", {
|
|
59
|
-
className: `font-mono font-semibold tracking-[0.08em] text-
|
|
60
|
+
className: `font-mono font-semibold tracking-[0.08em] text-ds-1 ${sizeStyles[size].label}`,
|
|
60
61
|
children: label
|
|
61
62
|
}), showPercentage && /* @__PURE__ */ jsx("div", {
|
|
62
|
-
className: `font-mono font-medium tracking-[0.08em] text-
|
|
63
|
+
className: `font-mono font-medium tracking-[0.08em] text-ds-2 ${sizeStyles[size].percentage}`,
|
|
63
64
|
children: resolvedPercentageLabel
|
|
64
65
|
})]
|
|
65
66
|
}), /* @__PURE__ */ jsx("div", {
|
|
@@ -69,7 +70,7 @@ function ProgressBar({ value, max = 100, label, percentageLabel, showPercentage
|
|
|
69
70
|
"aria-valuemax": safeMax,
|
|
70
71
|
"aria-valuenow": Math.round(clampedValue),
|
|
71
72
|
"aria-valuetext": `${roundedPercentage}%`,
|
|
72
|
-
className: `relative overflow-hidden rounded-full border border-
|
|
73
|
+
className: `relative overflow-hidden rounded-full border border-ds-border-2/50 bg-ds-surface-2/80 shadow-[inset_0_1px_1px_rgba(255,255,255,0.2)] ${sizeStyles[size].track} ${trackClassName}`,
|
|
73
74
|
style: { background: toneStyle.trackBackground },
|
|
74
75
|
children: /* @__PURE__ */ jsx("div", {
|
|
75
76
|
className: `h-full rounded-full transition-[width,filter,box-shadow] duration-500 ease-out ${fillClassName}`,
|
|
@@ -84,6 +85,72 @@ function ProgressBar({ value, max = 100, label, percentageLabel, showPercentage
|
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
87
|
//#endregion
|
|
87
|
-
|
|
88
|
+
//#region src/components/data-display/progress-bar/CircularProgress.tsx
|
|
89
|
+
var toneColorMap = {
|
|
90
|
+
default: "var(--ds-chart-1)",
|
|
91
|
+
success: "var(--ds-chart-3)",
|
|
92
|
+
warning: "var(--ds-chart-4)",
|
|
93
|
+
danger: "var(--ds-chart-5)",
|
|
94
|
+
info: "var(--ds-chart-2)"
|
|
95
|
+
};
|
|
96
|
+
function clamp(value, max) {
|
|
97
|
+
if (!Number.isFinite(value)) return 0;
|
|
98
|
+
return Math.min(Math.max(value, 0), max);
|
|
99
|
+
}
|
|
100
|
+
function CircularProgress({ value, max = 100, size = 24, strokeWidth = 3, tone = "default", showValue = false, valueLabel, className, trackClassName, progressClassName, ariaLabel = "Circular progress" }) {
|
|
101
|
+
const safeMax = Number.isFinite(max) && max > 0 ? max : 100;
|
|
102
|
+
const safeValue = clamp(value, safeMax);
|
|
103
|
+
const percentage = safeValue / safeMax * 100;
|
|
104
|
+
const center = size / 2;
|
|
105
|
+
const radius = center - strokeWidth / 2;
|
|
106
|
+
const circumference = 2 * Math.PI * radius;
|
|
107
|
+
const dashOffset = circumference - percentage / 100 * circumference;
|
|
108
|
+
const label = valueLabel ?? `${Math.round(percentage)}%`;
|
|
109
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
110
|
+
role: "progressbar",
|
|
111
|
+
"aria-label": ariaLabel,
|
|
112
|
+
"aria-valuemin": 0,
|
|
113
|
+
"aria-valuemax": safeMax,
|
|
114
|
+
"aria-valuenow": Math.round(safeValue),
|
|
115
|
+
"aria-valuetext": label,
|
|
116
|
+
className: mergeClassNames("relative inline-flex items-center justify-center", className),
|
|
117
|
+
style: {
|
|
118
|
+
width: size,
|
|
119
|
+
height: size
|
|
120
|
+
},
|
|
121
|
+
children: [/* @__PURE__ */ jsxs("svg", {
|
|
122
|
+
width: size,
|
|
123
|
+
height: size,
|
|
124
|
+
viewBox: `0 0 ${size} ${size}`,
|
|
125
|
+
className: "-rotate-90",
|
|
126
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
127
|
+
cx: center,
|
|
128
|
+
cy: center,
|
|
129
|
+
r: radius,
|
|
130
|
+
fill: "none",
|
|
131
|
+
stroke: "var(--ds-border-2)",
|
|
132
|
+
strokeOpacity: .5,
|
|
133
|
+
strokeWidth,
|
|
134
|
+
className: trackClassName
|
|
135
|
+
}), /* @__PURE__ */ jsx("circle", {
|
|
136
|
+
cx: center,
|
|
137
|
+
cy: center,
|
|
138
|
+
r: radius,
|
|
139
|
+
fill: "none",
|
|
140
|
+
stroke: toneColorMap[tone],
|
|
141
|
+
strokeWidth,
|
|
142
|
+
strokeLinecap: "round",
|
|
143
|
+
strokeDasharray: circumference,
|
|
144
|
+
strokeDashoffset: dashOffset,
|
|
145
|
+
className: mergeClassNames("transition-[stroke-dashoffset] duration-500 ease-out", progressClassName)
|
|
146
|
+
})]
|
|
147
|
+
}), showValue ? /* @__PURE__ */ jsx("span", {
|
|
148
|
+
className: "absolute text-[10px] font-semibold leading-none text-ds-1",
|
|
149
|
+
children: Math.round(percentage)
|
|
150
|
+
}) : null]
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
//#endregion
|
|
154
|
+
export { ProgressBar as n, CircularProgress as t };
|
|
88
155
|
|
|
89
|
-
//# sourceMappingURL=progress-bar-
|
|
156
|
+
//# sourceMappingURL=progress-bar-D6Q9Di7D.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-bar-D6Q9Di7D.mjs","names":[],"sources":["../../src/components/data-display/progress-bar/ProgressBar.tsx","../../src/components/data-display/progress-bar/CircularProgress.tsx"],"sourcesContent":["import React from \"react\";\n\nexport type ProgressBarSize = \"sm\" | \"md\" | \"lg\";\nexport type ProgressBarTone =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"info\";\n\nexport interface ProgressBarProps {\n value: number;\n max?: number;\n label?: React.ReactNode;\n percentageLabel?: React.ReactNode;\n showPercentage?: boolean;\n size?: ProgressBarSize;\n tone?: ProgressBarTone;\n className?: string;\n trackClassName?: string;\n fillClassName?: string;\n ariaLabel?: string;\n}\n\nconst sizeStyles: Record<\n ProgressBarSize,\n {\n track: string;\n label: string;\n percentage: string;\n }\n> = {\n sm: {\n track: \"h-1.5\",\n label: \"text-xs\",\n percentage: \"text-xs\",\n },\n md: {\n track: \"h-2.5\",\n label: \"text-sm\",\n percentage: \"text-sm\",\n },\n lg: {\n track: \"h-3.5\",\n label: \"text-base\",\n percentage: \"text-base\",\n },\n};\n\nconst toneStyles: Record<\n ProgressBarTone,\n {\n color: string;\n trackBackground: string;\n }\n> = {\n default: {\n color: \"var(--ds-chart-1)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(15, 23, 42, 0.08) 0%, rgba(30, 41, 59, 0.14) 100%)\",\n },\n success: {\n color: \"var(--ds-chart-3)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(20, 83, 45, 0.12) 0%, rgba(34, 197, 94, 0.18) 100%)\",\n },\n warning: {\n color: \"var(--ds-chart-4)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(120, 53, 15, 0.12) 0%, rgba(245, 158, 11, 0.18) 100%)\",\n },\n danger: {\n color: \"var(--ds-chart-5)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(127, 29, 29, 0.12) 0%, rgba(239, 68, 68, 0.18) 100%)\",\n },\n info: {\n color: \"var(--ds-chart-2)\",\n trackBackground:\n \"linear-gradient(90deg, rgba(30, 64, 175, 0.12) 0%, rgba(59, 130, 246, 0.18) 100%)\",\n },\n};\n\nfunction clampValue(value: number, max: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n return Math.min(Math.max(value, 0), max);\n}\n\nexport default function ProgressBar({\n value,\n max = 100,\n label,\n percentageLabel,\n showPercentage = true,\n size = \"md\",\n tone = \"default\",\n className = \"\",\n trackClassName = \"\",\n fillClassName = \"\",\n ariaLabel = \"Progress\",\n}: ProgressBarProps) {\n const safeMax = Number.isFinite(max) && max > 0 ? max : 100;\n const clampedValue = clampValue(value, safeMax);\n const percentage = (clampedValue / safeMax) * 100;\n const roundedPercentage = Math.round(percentage);\n const toneStyle = toneStyles[tone];\n const resolvedPercentageLabel = percentageLabel ?? `${roundedPercentage}%`;\n\n return (\n <div className={`w-full space-y-3 ${className}`}>\n {(label || showPercentage) && (\n <div className=\"flex items-center justify-between gap-4\">\n <div\n className={`font-mono font-semibold tracking-[0.08em] text-ds-1 ${sizeStyles[size].label}`}\n >\n {label}\n </div>\n {showPercentage && (\n <div\n className={`font-mono font-medium tracking-[0.08em] text-ds-2 ${sizeStyles[size].percentage}`}\n >\n {resolvedPercentageLabel}\n </div>\n )}\n </div>\n )}\n\n <div\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={safeMax}\n aria-valuenow={Math.round(clampedValue)}\n aria-valuetext={`${roundedPercentage}%`}\n className={`relative overflow-hidden rounded-full border border-ds-border-2/50 bg-ds-surface-2/80 shadow-[inset_0_1px_1px_rgba(255,255,255,0.2)] ${sizeStyles[size].track} ${trackClassName}`}\n style={{ background: toneStyle.trackBackground }}\n >\n <div\n className={`h-full rounded-full transition-[width,filter,box-shadow] duration-500 ease-out ${fillClassName}`}\n style={{\n width: `${percentage}%`,\n background: `linear-gradient(90deg, color-mix(in srgb, ${toneStyle.color} 68%, white 32%) 0%, ${toneStyle.color} 100%)`,\n boxShadow: `inset 0 1px 0 rgba(255,255,255,0.4), 0 0 14px color-mix(in srgb, ${toneStyle.color} 32%, transparent)`,\n filter: percentage > 0 ? \"saturate(1.05) brightness(1.02)\" : \"none\",\n }}\n />\n </div>\n </div>\n );\n}\n","import { mergeClassNames } from \"../../../utils\";\n\nexport type CircularProgressTone =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"info\";\n\nexport interface CircularProgressProps {\n value: number;\n max?: number;\n size?: number;\n strokeWidth?: number;\n tone?: CircularProgressTone;\n showValue?: boolean;\n valueLabel?: string;\n className?: string;\n trackClassName?: string;\n progressClassName?: string;\n ariaLabel?: string;\n}\n\nconst toneColorMap: Record<CircularProgressTone, string> = {\n default: \"var(--ds-chart-1)\",\n success: \"var(--ds-chart-3)\",\n warning: \"var(--ds-chart-4)\",\n danger: \"var(--ds-chart-5)\",\n info: \"var(--ds-chart-2)\",\n};\n\nfunction clamp(value: number, max: number): number {\n if (!Number.isFinite(value)) return 0;\n return Math.min(Math.max(value, 0), max);\n}\n\nexport default function CircularProgress({\n value,\n max = 100,\n size = 24,\n strokeWidth = 3,\n tone = \"default\",\n showValue = false,\n valueLabel,\n className,\n trackClassName,\n progressClassName,\n ariaLabel = \"Circular progress\",\n}: CircularProgressProps) {\n const safeMax = Number.isFinite(max) && max > 0 ? max : 100;\n const safeValue = clamp(value, safeMax);\n const percentage = (safeValue / safeMax) * 100;\n\n const center = size / 2;\n const radius = center - strokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n const dashOffset = circumference - (percentage / 100) * circumference;\n const label = valueLabel ?? `${Math.round(percentage)}%`;\n\n return (\n <span\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={safeMax}\n aria-valuenow={Math.round(safeValue)}\n aria-valuetext={label}\n className={mergeClassNames(\n \"relative inline-flex items-center justify-center\",\n className,\n )}\n style={{ width: size, height: size }}\n >\n <svg\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n className=\"-rotate-90\"\n >\n <circle\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n stroke=\"var(--ds-border-2)\"\n strokeOpacity={0.5}\n strokeWidth={strokeWidth}\n className={trackClassName}\n />\n <circle\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n stroke={toneColorMap[tone]}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n className={mergeClassNames(\n \"transition-[stroke-dashoffset] duration-500 ease-out\",\n progressClassName,\n )}\n />\n </svg>\n\n {showValue ? (\n <span className=\"absolute text-[10px] font-semibold leading-none text-ds-1\">\n {Math.round(percentage)}\n </span>\n ) : null}\n </span>\n );\n}\n\nexport { CircularProgress };\n"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ var Radio = forwardRef(({ className = "", label, error, id, color = "primary", b
|
|
|
27
27
|
}),
|
|
28
28
|
label && /* @__PURE__ */ jsx("label", {
|
|
29
29
|
htmlFor: radioId,
|
|
30
|
-
className: "text-sm font-medium leading-none cursor-pointer text-
|
|
30
|
+
className: "text-sm font-medium leading-none cursor-pointer text-ds-1",
|
|
31
31
|
children: label
|
|
32
32
|
}),
|
|
33
33
|
error && /* @__PURE__ */ jsx("p", {
|
|
@@ -41,4 +41,4 @@ Radio.displayName = "Radio";
|
|
|
41
41
|
//#endregion
|
|
42
42
|
export { Radio as t };
|
|
43
43
|
|
|
44
|
-
//# sourceMappingURL=radio-
|
|
44
|
+
//# sourceMappingURL=radio-C6Meq2iz.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-
|
|
1
|
+
{"version":3,"file":"radio-C6Meq2iz.mjs","names":[],"sources":["../../src/components/forms/radio/Radio.tsx"],"sourcesContent":["import type { RadioProps, RadioColor } from \"./types\";\nimport { forwardRef, useId } from \"react\";\n\nimport { mergeClassNames } from \"../../../utils\";\n\nconst sanitizeId = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n\nconst colorValues: Record<RadioColor, string> = {\n red: \"var(--ds-color-danger)\",\n blue: \"var(--ds-color-info)\",\n green: \"var(--ds-color-success)\",\n yellow: \"var(--ds-color-warning)\",\n teal: \"var(--ds-brand-teal)\",\n primary: \"var(--ds-color-accent)\",\n};\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n (\n {\n className = \"\",\n label,\n error,\n id,\n color = \"primary\",\n bgClassName = \"\",\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const radioId = id || `radio-${sanitizeId(generatedId)}`;\n\n return (\n <div className=\"flex items-center space-x-2\">\n <input\n ref={ref}\n type=\"radio\"\n id={radioId}\n style={{ accentColor: colorValues[color] }}\n className={mergeClassNames(\n \"h-5 w-5 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50\",\n bgClassName,\n className,\n )}\n {...props}\n />\n {label && (\n <label\n htmlFor={radioId}\n className=\"text-sm font-medium leading-none cursor-pointer text-ds-1\"\n >\n {label}\n </label>\n )}\n {error && (\n <p className=\"mt-1 text-sm font-medium text-destructive\">{error}</p>\n )}\n </div>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\n"],"mappings":";;;;AAKA,IAAM,cAAc,UAAkB,MAAM,QAAQ,mBAAmB,IAAI;AAE3E,IAAM,cAA0C;CAC9C,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,SAAS;CACV;AAED,IAAa,QAAQ,YAEjB,EACE,YAAY,IACZ,OACA,OACA,IACA,QAAQ,WACR,cAAc,IACd,GAAG,SAEL,QACG;CACH,MAAM,cAAc,OAAO;CAC3B,MAAM,UAAU,MAAM,SAAS,WAAW,YAAY;AAEtD,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GACE,oBAAC,SAAD;IACO;IACL,MAAK;IACL,IAAI;IACJ,OAAO,EAAE,aAAa,YAAY,QAAQ;IAC1C,WAAW,gBACT,0EACA,aACA,UACD;IACD,GAAI;IACJ,CAAA;GACD,SACC,oBAAC,SAAD;IACE,SAAS;IACT,WAAU;cAET;IACK,CAAA;GAET,SACC,oBAAC,KAAD;IAAG,WAAU;cAA6C;IAAU,CAAA;GAElE;;EAGX;AAED,MAAM,cAAc"}
|
|
@@ -28,7 +28,7 @@ var Radio = (0, react.forwardRef)(({ className = "", label, error, id, color = "
|
|
|
28
28
|
}),
|
|
29
29
|
label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
30
30
|
htmlFor: radioId,
|
|
31
|
-
className: "text-sm font-medium leading-none cursor-pointer text-
|
|
31
|
+
className: "text-sm font-medium leading-none cursor-pointer text-ds-1",
|
|
32
32
|
children: label
|
|
33
33
|
}),
|
|
34
34
|
error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
@@ -47,4 +47,4 @@ Object.defineProperty(exports, "Radio", {
|
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=radio-
|
|
50
|
+
//# sourceMappingURL=radio-DxakS7iD.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-
|
|
1
|
+
{"version":3,"file":"radio-DxakS7iD.cjs","names":[],"sources":["../../src/components/forms/radio/Radio.tsx"],"sourcesContent":["import type { RadioProps, RadioColor } from \"./types\";\nimport { forwardRef, useId } from \"react\";\n\nimport { mergeClassNames } from \"../../../utils\";\n\nconst sanitizeId = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n\nconst colorValues: Record<RadioColor, string> = {\n red: \"var(--ds-color-danger)\",\n blue: \"var(--ds-color-info)\",\n green: \"var(--ds-color-success)\",\n yellow: \"var(--ds-color-warning)\",\n teal: \"var(--ds-brand-teal)\",\n primary: \"var(--ds-color-accent)\",\n};\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n (\n {\n className = \"\",\n label,\n error,\n id,\n color = \"primary\",\n bgClassName = \"\",\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const radioId = id || `radio-${sanitizeId(generatedId)}`;\n\n return (\n <div className=\"flex items-center space-x-2\">\n <input\n ref={ref}\n type=\"radio\"\n id={radioId}\n style={{ accentColor: colorValues[color] }}\n className={mergeClassNames(\n \"h-5 w-5 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50\",\n bgClassName,\n className,\n )}\n {...props}\n />\n {label && (\n <label\n htmlFor={radioId}\n className=\"text-sm font-medium leading-none cursor-pointer text-ds-1\"\n >\n {label}\n </label>\n )}\n {error && (\n <p className=\"mt-1 text-sm font-medium text-destructive\">{error}</p>\n )}\n </div>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\n"],"mappings":";;;;;AAKA,IAAM,cAAc,UAAkB,MAAM,QAAQ,mBAAmB,IAAI;AAE3E,IAAM,cAA0C;CAC9C,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,SAAS;CACV;AAED,IAAa,SAAA,GAAA,MAAA,aAET,EACE,YAAY,IACZ,OACA,OACA,IACA,QAAQ,WACR,cAAc,IACd,GAAG,SAEL,QACG;CACH,MAAM,eAAA,GAAA,MAAA,QAAqB;CAC3B,MAAM,UAAU,MAAM,SAAS,WAAW,YAAY;AAEtD,QACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,WAAU;YAAf;GACE,iBAAA,GAAA,kBAAA,KAAC,SAAD;IACO;IACL,MAAK;IACL,IAAI;IACJ,OAAO,EAAE,aAAa,YAAY,QAAQ;IAC1C,WAAW,cAAA,gBACT,0EACA,aACA,UACD;IACD,GAAI;IACJ,CAAA;GACD,SACC,iBAAA,GAAA,kBAAA,KAAC,SAAD;IACE,SAAS;IACT,WAAU;cAET;IACK,CAAA;GAET,SACC,iBAAA,GAAA,kBAAA,KAAC,KAAD;IAAG,WAAU;cAA6C;IAAU,CAAA;GAElE;;EAGX;AAED,MAAM,cAAc"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { n as mergeClassNames } from "./utils-ati1KkDb.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { t as TruncatedText } from "./truncated-text-DTgks5yS.mjs";
|
|
3
|
+
import { J as CheckIcon, N as ChevronDownIcon } from "./icons-bx3nrxNv.mjs";
|
|
3
4
|
import { forwardRef, useEffect, useRef, useState } from "react";
|
|
4
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
|
|
6
7
|
//#region src/components/forms/select/Select.tsx
|
|
7
|
-
var Select = forwardRef(function SelectComponent({ className = "", containerClassName = "", triggerClassName = "", dropdownClassName = "", optionClassName = "", label, error, helperText, options, value, onChange, placeholder = "Select...", disabled, bgClassName = "bg-
|
|
8
|
+
var Select = forwardRef(function SelectComponent({ className = "", containerClassName = "", triggerClassName = "", dropdownClassName = "", optionClassName = "", label, error, helperText, options, value, onChange, placeholder = "Select...", disabled, bgClassName = "bg-ds-surface-1", size = "default", selectionIndicator = "check", ...props }, ref) {
|
|
8
9
|
const [open, setOpen] = useState(false);
|
|
9
10
|
const [visible, setVisible] = useState(false);
|
|
10
11
|
const containerRef = useRef(null);
|
|
@@ -70,7 +71,7 @@ var Select = forwardRef(function SelectComponent({ className = "", containerClas
|
|
|
70
71
|
className: mergeClassNames("w-full", isCompact ? "min-w-0" : "min-w-48", containerClassName),
|
|
71
72
|
children: [
|
|
72
73
|
label ? /* @__PURE__ */ jsx("label", {
|
|
73
|
-
className: "mb-2 block text-sm leading-none font-medium text-
|
|
74
|
+
className: "mb-2 block text-sm leading-none font-medium text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
|
|
74
75
|
children: label
|
|
75
76
|
}) : null,
|
|
76
77
|
/* @__PURE__ */ jsxs("select", {
|
|
@@ -102,9 +103,9 @@ var Select = forwardRef(function SelectComponent({ className = "", containerClas
|
|
|
102
103
|
onMouseMove: !disabled ? handleMouseMove : void 0,
|
|
103
104
|
onMouseEnter: !disabled ? () => setVisible(true) : void 0,
|
|
104
105
|
onMouseLeave: !disabled ? () => setVisible(false) : void 0,
|
|
105
|
-
className: mergeClassNames("group/select rounded-lg p-[2px] transition duration-300 hover:border-accent", disabled ? "border-none bg-
|
|
106
|
+
className: mergeClassNames("group/select rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent", disabled ? "border-none bg-ds-surface-1" : error ? "border-ds-state-error-border" : "border-ds-border-2"),
|
|
106
107
|
children: /* @__PURE__ */ jsxs("div", {
|
|
107
|
-
className: mergeClassNames("flex w-full cursor-pointer items-center justify-between rounded-md border border-
|
|
108
|
+
className: mergeClassNames("flex w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field transition duration-400 ease-in-out", isCompact ? "h-9 px-2.5 py-2 text-sm" : "h-10 px-3 py-2 text-sm", bgClassName, disabled ? "cursor-not-allowed opacity-50" : "text-ds-1", error ? "border-ds-state-error-border text-ds-state-error-text focus-visible:ring-ds-state-error-border" : "", triggerClassName),
|
|
108
109
|
onClick: () => {
|
|
109
110
|
if (!disabled) setOpen((current) => !current);
|
|
110
111
|
},
|
|
@@ -113,14 +114,17 @@ var Select = forwardRef(function SelectComponent({ className = "", containerClas
|
|
|
113
114
|
tabIndex: disabled ? -1 : 0,
|
|
114
115
|
"aria-haspopup": "listbox",
|
|
115
116
|
"aria-expanded": open,
|
|
116
|
-
children: [selectedOption ? /* @__PURE__ */ jsx(
|
|
117
|
-
|
|
117
|
+
children: [selectedOption ? /* @__PURE__ */ jsx(TruncatedText, {
|
|
118
|
+
as: "span",
|
|
119
|
+
showTitleOnHover: true,
|
|
120
|
+
className: "flex-1 text-ds-1",
|
|
118
121
|
children: selectedOption.label
|
|
119
|
-
}) : /* @__PURE__ */ jsx(
|
|
120
|
-
|
|
122
|
+
}) : /* @__PURE__ */ jsx(TruncatedText, {
|
|
123
|
+
as: "span",
|
|
124
|
+
className: "flex-1 text-ds-2",
|
|
121
125
|
children: placeholder
|
|
122
126
|
}), /* @__PURE__ */ jsx("span", {
|
|
123
|
-
className: mergeClassNames("ml-2 shrink-0 text-
|
|
127
|
+
className: mergeClassNames("ml-2 shrink-0 text-ds-2 transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
|
|
124
128
|
children: /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
125
129
|
width: 24,
|
|
126
130
|
height: 24,
|
|
@@ -130,34 +134,36 @@ var Select = forwardRef(function SelectComponent({ className = "", containerClas
|
|
|
130
134
|
})]
|
|
131
135
|
})
|
|
132
136
|
}), open && !disabled ? /* @__PURE__ */ jsxs("div", {
|
|
133
|
-
className: mergeClassNames("absolute right-0 left-0 z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-border bg-
|
|
137
|
+
className: mergeClassNames("absolute right-0 left-0 z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition", isCompact ? "max-h-56" : "max-h-60", dropdownClassName),
|
|
134
138
|
children: [options.length === 0 ? /* @__PURE__ */ jsx("div", {
|
|
135
|
-
className: "px-3 py-2 text-
|
|
139
|
+
className: "px-3 py-2 text-ds-2",
|
|
136
140
|
children: "No options"
|
|
137
141
|
}) : null, options.map((option) => /* @__PURE__ */ jsxs("div", {
|
|
138
142
|
ref: option.value === value ? selectedOptionRef : null,
|
|
139
|
-
className: mergeClassNames("mx-1 my-1 flex cursor-pointer items-center rounded-md text-
|
|
143
|
+
className: mergeClassNames("mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition", isCompact ? "gap-1.5 px-2.5 py-2 text-sm" : "gap-2 px-3 py-2 text-sm", option.value === value ? "bg-ds-accent-subtle font-semibold text-ds-1" : "", "hover:bg-ds-accent hover:text-ds-on-accent", optionClassName),
|
|
140
144
|
onClick: () => handleSelect(option.value),
|
|
141
145
|
children: [selectionIndicator === "check" ? /* @__PURE__ */ jsx("span", {
|
|
142
146
|
className: mergeClassNames("flex items-center justify-center", isCompact ? "w-4" : "w-5"),
|
|
143
147
|
children: option.value === value ? /* @__PURE__ */ jsx(CheckIcon, {
|
|
144
|
-
className: "text-
|
|
148
|
+
className: "text-ds-1",
|
|
145
149
|
width: isCompact ? 16 : 18,
|
|
146
150
|
height: isCompact ? 16 : 18
|
|
147
151
|
}) : null
|
|
148
|
-
}) : null, /* @__PURE__ */ jsx(
|
|
149
|
-
|
|
152
|
+
}) : null, /* @__PURE__ */ jsx(TruncatedText, {
|
|
153
|
+
as: "span",
|
|
154
|
+
showTitleOnHover: true,
|
|
155
|
+
className: "flex-1",
|
|
150
156
|
children: option.label
|
|
151
157
|
})]
|
|
152
158
|
}, option.value))]
|
|
153
159
|
}) : null]
|
|
154
160
|
}),
|
|
155
161
|
error ? /* @__PURE__ */ jsx("p", {
|
|
156
|
-
className: "mt-1 text-sm font-medium text-
|
|
162
|
+
className: "mt-1 text-sm font-medium text-ds-state-error-text",
|
|
157
163
|
children: error
|
|
158
164
|
}) : null,
|
|
159
165
|
helperText && !error ? /* @__PURE__ */ jsx("p", {
|
|
160
|
-
className: "mt-1 text-sm text-
|
|
166
|
+
className: "mt-1 text-sm text-ds-2",
|
|
161
167
|
children: helperText
|
|
162
168
|
}) : null
|
|
163
169
|
]
|
|
@@ -167,4 +173,4 @@ Select.displayName = "Select";
|
|
|
167
173
|
//#endregion
|
|
168
174
|
export { Select as t };
|
|
169
175
|
|
|
170
|
-
//# sourceMappingURL=select-
|
|
176
|
+
//# sourceMappingURL=select-1rSJeUBQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-1rSJeUBQ.mjs","names":[],"sources":["../../src/components/forms/select/Select.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type ChangeEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n} from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { SelectProps } from \"./types\";\n\nexport const Select = forwardRef(function SelectComponent(\n {\n className = \"\",\n containerClassName = \"\",\n triggerClassName = \"\",\n dropdownClassName = \"\",\n optionClassName = \"\",\n label,\n error,\n helperText,\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n disabled,\n bgClassName = \"bg-ds-surface-1\",\n size = \"default\",\n selectionIndicator = \"check\",\n ...props\n }: SelectProps,\n ref: ForwardedRef<HTMLSelectElement>,\n) {\n const [open, setOpen] = useState(false);\n const [visible, setVisible] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const hiddenSelectRef = useRef<HTMLSelectElement>(null);\n const selectedOptionRef = useRef<HTMLDivElement>(null);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n const isCompact = size === \"compact\";\n const selectedOption = options.find((option) => option.value === value);\n\n useEffect(() => {\n if (typeof ref === \"function\") {\n ref(hiddenSelectRef.current);\n return;\n }\n\n if (ref) {\n ref.current = hiddenSelectRef.current;\n }\n }, [ref]);\n\n useEffect(() => {\n const handleClick = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setOpen(false);\n }\n };\n\n if (open) {\n document.addEventListener(\"mousedown\", handleClick);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClick);\n };\n }, [open]);\n\n useEffect(() => {\n if (!open || !selectedOptionRef.current) {\n return;\n }\n\n const frameId = window.requestAnimationFrame(() => {\n selectedOptionRef.current?.scrollIntoView({ block: \"nearest\" });\n });\n\n return () => {\n window.cancelAnimationFrame(frameId);\n };\n }, [open, value]);\n\n const handleMouseMove = (event: ReactMouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n const handleSelect = (optionValue: string) => {\n if (onChange && hiddenSelectRef.current) {\n const syntheticEvent = {\n target: { value: optionValue, name: props.name },\n currentTarget: { value: optionValue, name: props.name },\n } as ChangeEvent<HTMLSelectElement>;\n\n onChange(syntheticEvent);\n }\n\n setOpen(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setOpen((current) => !current);\n }\n\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n return (\n <div\n className={mergeClassNames(\n \"w-full\",\n isCompact ? \"min-w-0\" : \"min-w-48\",\n containerClassName,\n )}\n >\n {label ? (\n <label className=\"mb-2 block text-sm leading-none font-medium text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {label}\n </label>\n ) : null}\n\n <select\n ref={hiddenSelectRef}\n className=\"sr-only\"\n value={value}\n onChange={onChange}\n disabled={disabled}\n {...props}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n\n <div\n ref={containerRef}\n className={mergeClassNames(\"relative w-full\", className)}\n >\n <motion.div\n style={{\n backgroundImage: disabled\n ? \"none\"\n : 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={!disabled ? handleMouseMove : undefined}\n onMouseEnter={!disabled ? () => setVisible(true) : undefined}\n onMouseLeave={!disabled ? () => setVisible(false) : undefined}\n className={mergeClassNames(\n \"group/select rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent\",\n disabled\n ? \"border-none bg-ds-surface-1\"\n : error\n ? \"border-ds-state-error-border\"\n : \"border-ds-border-2\",\n )}\n >\n <div\n className={mergeClassNames(\n \"flex w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field transition duration-400 ease-in-out\",\n isCompact ? \"h-9 px-2.5 py-2 text-sm\" : \"h-10 px-3 py-2 text-sm\",\n bgClassName,\n disabled ? \"cursor-not-allowed opacity-50\" : \"text-ds-1\",\n error\n ? \"border-ds-state-error-border text-ds-state-error-text focus-visible:ring-ds-state-error-border\"\n : \"\",\n triggerClassName,\n )}\n onClick={() => {\n if (!disabled) {\n setOpen((current) => !current);\n }\n }}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n >\n {selectedOption ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {selectedOption.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n\n <span\n className={mergeClassNames(\n \"ml-2 shrink-0 text-ds-2 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={isCompact ? \"h-4 w-4\" : \"h-5 w-5\"}\n />\n </span>\n </div>\n </motion.div>\n\n {open && !disabled ? (\n <div\n className={mergeClassNames(\n \"absolute right-0 left-0 z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\",\n isCompact ? \"max-h-56\" : \"max-h-60\",\n dropdownClassName,\n )}\n >\n {options.length === 0 ? (\n <div className=\"px-3 py-2 text-ds-2\">No options</div>\n ) : null}\n\n {options.map((option) => (\n <div\n key={option.value}\n ref={option.value === value ? selectedOptionRef : null}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition\",\n isCompact\n ? \"gap-1.5 px-2.5 py-2 text-sm\"\n : \"gap-2 px-3 py-2 text-sm\",\n option.value === value\n ? \"bg-ds-accent-subtle font-semibold text-ds-1\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n optionClassName,\n )}\n onClick={() => handleSelect(option.value)}\n >\n {selectionIndicator === \"check\" ? (\n <span\n className={mergeClassNames(\n \"flex items-center justify-center\",\n isCompact ? \"w-4\" : \"w-5\",\n )}\n >\n {option.value === value ? (\n <CheckIcon\n className=\"text-ds-1\"\n width={isCompact ? 16 : 18}\n height={isCompact ? 16 : 18}\n />\n ) : null}\n </span>\n ) : null}\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {option.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n ) : null}\n </div>\n\n {error ? (\n <p className=\"mt-1 text-sm font-medium text-ds-state-error-text\">\n {error}\n </p>\n ) : null}\n {helperText && !error ? (\n <p className=\"mt-1 text-sm text-ds-2\">{helperText}</p>\n ) : null}\n </div>\n );\n});\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
require("./chunk-B_GkZjkl.cjs");
|
|
2
2
|
const require_utils = require("./utils-B4SmmY4J.cjs");
|
|
3
|
-
const
|
|
3
|
+
const require_truncated_text = require("./truncated-text-istgJRUq.cjs");
|
|
4
|
+
const require_icons = require("./icons-CRanVZB1.cjs");
|
|
4
5
|
let react = require("react");
|
|
5
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
7
|
let framer_motion = require("framer-motion");
|
|
7
8
|
//#region src/components/forms/select/Select.tsx
|
|
8
|
-
var Select = (0, react.forwardRef)(function SelectComponent({ className = "", containerClassName = "", triggerClassName = "", dropdownClassName = "", optionClassName = "", label, error, helperText, options, value, onChange, placeholder = "Select...", disabled, bgClassName = "bg-
|
|
9
|
+
var Select = (0, react.forwardRef)(function SelectComponent({ className = "", containerClassName = "", triggerClassName = "", dropdownClassName = "", optionClassName = "", label, error, helperText, options, value, onChange, placeholder = "Select...", disabled, bgClassName = "bg-ds-surface-1", size = "default", selectionIndicator = "check", ...props }, ref) {
|
|
9
10
|
const [open, setOpen] = (0, react.useState)(false);
|
|
10
11
|
const [visible, setVisible] = (0, react.useState)(false);
|
|
11
12
|
const containerRef = (0, react.useRef)(null);
|
|
@@ -71,7 +72,7 @@ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", co
|
|
|
71
72
|
className: require_utils.mergeClassNames("w-full", isCompact ? "min-w-0" : "min-w-48", containerClassName),
|
|
72
73
|
children: [
|
|
73
74
|
label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
74
|
-
className: "mb-2 block text-sm leading-none font-medium text-
|
|
75
|
+
className: "mb-2 block text-sm leading-none font-medium text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
|
|
75
76
|
children: label
|
|
76
77
|
}) : null,
|
|
77
78
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
@@ -103,9 +104,9 @@ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", co
|
|
|
103
104
|
onMouseMove: !disabled ? handleMouseMove : void 0,
|
|
104
105
|
onMouseEnter: !disabled ? () => setVisible(true) : void 0,
|
|
105
106
|
onMouseLeave: !disabled ? () => setVisible(false) : void 0,
|
|
106
|
-
className: require_utils.mergeClassNames("group/select rounded-lg p-[2px] transition duration-300 hover:border-accent", disabled ? "border-none bg-
|
|
107
|
+
className: require_utils.mergeClassNames("group/select rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent", disabled ? "border-none bg-ds-surface-1" : error ? "border-ds-state-error-border" : "border-ds-border-2"),
|
|
107
108
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
108
|
-
className: require_utils.mergeClassNames("flex w-full cursor-pointer items-center justify-between rounded-md border border-
|
|
109
|
+
className: require_utils.mergeClassNames("flex w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field transition duration-400 ease-in-out", isCompact ? "h-9 px-2.5 py-2 text-sm" : "h-10 px-3 py-2 text-sm", bgClassName, disabled ? "cursor-not-allowed opacity-50" : "text-ds-1", error ? "border-ds-state-error-border text-ds-state-error-text focus-visible:ring-ds-state-error-border" : "", triggerClassName),
|
|
109
110
|
onClick: () => {
|
|
110
111
|
if (!disabled) setOpen((current) => !current);
|
|
111
112
|
},
|
|
@@ -114,14 +115,17 @@ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", co
|
|
|
114
115
|
tabIndex: disabled ? -1 : 0,
|
|
115
116
|
"aria-haspopup": "listbox",
|
|
116
117
|
"aria-expanded": open,
|
|
117
|
-
children: [selectedOption ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
118
|
-
|
|
118
|
+
children: [selectedOption ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
|
|
119
|
+
as: "span",
|
|
120
|
+
showTitleOnHover: true,
|
|
121
|
+
className: "flex-1 text-ds-1",
|
|
119
122
|
children: selectedOption.label
|
|
120
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
121
|
-
|
|
123
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
|
|
124
|
+
as: "span",
|
|
125
|
+
className: "flex-1 text-ds-2",
|
|
122
126
|
children: placeholder
|
|
123
127
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
124
|
-
className: require_utils.mergeClassNames("ml-2 shrink-0 text-
|
|
128
|
+
className: require_utils.mergeClassNames("ml-2 shrink-0 text-ds-2 transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
|
|
125
129
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronDownIcon, {
|
|
126
130
|
width: 24,
|
|
127
131
|
height: 24,
|
|
@@ -131,34 +135,36 @@ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", co
|
|
|
131
135
|
})]
|
|
132
136
|
})
|
|
133
137
|
}), open && !disabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
134
|
-
className: require_utils.mergeClassNames("absolute right-0 left-0 z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-border bg-
|
|
138
|
+
className: require_utils.mergeClassNames("absolute right-0 left-0 z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition", isCompact ? "max-h-56" : "max-h-60", dropdownClassName),
|
|
135
139
|
children: [options.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
136
|
-
className: "px-3 py-2 text-
|
|
140
|
+
className: "px-3 py-2 text-ds-2",
|
|
137
141
|
children: "No options"
|
|
138
142
|
}) : null, options.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
139
143
|
ref: option.value === value ? selectedOptionRef : null,
|
|
140
|
-
className: require_utils.mergeClassNames("mx-1 my-1 flex cursor-pointer items-center rounded-md text-
|
|
144
|
+
className: require_utils.mergeClassNames("mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition", isCompact ? "gap-1.5 px-2.5 py-2 text-sm" : "gap-2 px-3 py-2 text-sm", option.value === value ? "bg-ds-accent-subtle font-semibold text-ds-1" : "", "hover:bg-ds-accent hover:text-ds-on-accent", optionClassName),
|
|
141
145
|
onClick: () => handleSelect(option.value),
|
|
142
146
|
children: [selectionIndicator === "check" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
143
147
|
className: require_utils.mergeClassNames("flex items-center justify-center", isCompact ? "w-4" : "w-5"),
|
|
144
148
|
children: option.value === value ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
|
|
145
|
-
className: "text-
|
|
149
|
+
className: "text-ds-1",
|
|
146
150
|
width: isCompact ? 16 : 18,
|
|
147
151
|
height: isCompact ? 16 : 18
|
|
148
152
|
}) : null
|
|
149
|
-
}) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
150
|
-
|
|
153
|
+
}) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
|
|
154
|
+
as: "span",
|
|
155
|
+
showTitleOnHover: true,
|
|
156
|
+
className: "flex-1",
|
|
151
157
|
children: option.label
|
|
152
158
|
})]
|
|
153
159
|
}, option.value))]
|
|
154
160
|
}) : null]
|
|
155
161
|
}),
|
|
156
162
|
error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
157
|
-
className: "mt-1 text-sm font-medium text-
|
|
163
|
+
className: "mt-1 text-sm font-medium text-ds-state-error-text",
|
|
158
164
|
children: error
|
|
159
165
|
}) : null,
|
|
160
166
|
helperText && !error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
161
|
-
className: "mt-1 text-sm text-
|
|
167
|
+
className: "mt-1 text-sm text-ds-2",
|
|
162
168
|
children: helperText
|
|
163
169
|
}) : null
|
|
164
170
|
]
|
|
@@ -173,4 +179,4 @@ Object.defineProperty(exports, "Select", {
|
|
|
173
179
|
}
|
|
174
180
|
});
|
|
175
181
|
|
|
176
|
-
//# sourceMappingURL=select-
|
|
182
|
+
//# sourceMappingURL=select-SOmIt-BD.cjs.map
|