erp-pro-ui 0.2.5 → 0.2.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/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/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 +14 -0
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.ts +25 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.mjs +14 -0
- package/dist/catalog.mjs.map +1 -1
- package/dist/charts.cjs +1 -1
- package/dist/charts.mjs +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.mjs +1 -1
- package/dist/chip.cjs +1 -1
- package/dist/chip.mjs +1 -1
- package/dist/chroma-grid.cjs +1 -1
- package/dist/chroma-grid.mjs +1 -1
- package/dist/chunks/{drawer-D07dGN6R.cjs → Drawer-D72Xi2Gq.cjs} +2 -2
- package/dist/chunks/{drawer-D07dGN6R.cjs.map → Drawer-D72Xi2Gq.cjs.map} +1 -1
- package/dist/chunks/{drawer-DaoAXL-w.mjs → Drawer-Y0_sJni5.mjs} +2 -2
- package/dist/chunks/{drawer-DaoAXL-w.mjs.map → Drawer-Y0_sJni5.mjs.map} +1 -1
- package/dist/chunks/{DropdownMenu-BtTOri-A.mjs → DropdownMenu-BQ4WlaGp.mjs} +1 -1
- package/dist/chunks/{DropdownMenu-BtTOri-A.mjs.map → DropdownMenu-BQ4WlaGp.mjs.map} +1 -1
- package/dist/chunks/{DropdownMenu-BDrNYO-D.cjs → DropdownMenu-yh04burS.cjs} +1 -1
- package/dist/chunks/{DropdownMenu-BDrNYO-D.cjs.map → DropdownMenu-yh04burS.cjs.map} +1 -1
- package/dist/chunks/EllipsisVerticalIcon-BJw3MNkg.cjs +51 -0
- package/dist/chunks/EllipsisVerticalIcon-BJw3MNkg.cjs.map +1 -0
- package/dist/chunks/EllipsisVerticalIcon-C2b2KMfE.mjs +45 -0
- package/dist/chunks/EllipsisVerticalIcon-C2b2KMfE.mjs.map +1 -0
- package/dist/chunks/{HoverBorderGradient-NbdXeLgC.mjs → HoverBorderGradient-DEtm3owk.mjs} +1 -1
- package/dist/chunks/{HoverBorderGradient-NbdXeLgC.mjs.map → HoverBorderGradient-DEtm3owk.mjs.map} +1 -1
- package/dist/chunks/{HoverBorderGradient-9pfvBoHR.cjs → HoverBorderGradient-DMMyr2L3.cjs} +1 -1
- package/dist/chunks/{HoverBorderGradient-9pfvBoHR.cjs.map → HoverBorderGradient-DMMyr2L3.cjs.map} +1 -1
- package/dist/chunks/{SunToMoonButton-BkEfkElJ.mjs → SunToMoonButton-BOKHzC1H.mjs} +1 -1
- package/dist/chunks/{SunToMoonButton-BkEfkElJ.mjs.map → SunToMoonButton-BOKHzC1H.mjs.map} +1 -1
- package/dist/chunks/{SunToMoonButton-jS4BJD9q.cjs → SunToMoonButton-gX4Kk_5B.cjs} +1 -1
- package/dist/chunks/{SunToMoonButton-jS4BJD9q.cjs.map → SunToMoonButton-gX4Kk_5B.cjs.map} +1 -1
- package/dist/chunks/{Tooltip-DK3B879v.mjs → Tooltip-LbOKP__2.mjs} +10 -7
- package/dist/chunks/Tooltip-LbOKP__2.mjs.map +1 -0
- package/dist/chunks/{Tooltip-DD30yj3A.cjs → Tooltip-nnaiqJTT.cjs} +10 -7
- package/dist/chunks/Tooltip-nnaiqJTT.cjs.map +1 -0
- package/dist/chunks/{accordion-CmB6EidC.cjs → accordion-Bj3Sj0mC.cjs} +2 -2
- package/dist/chunks/{accordion-CmB6EidC.cjs.map → accordion-Bj3Sj0mC.cjs.map} +1 -1
- package/dist/chunks/{accordion-6zxJUYXr.mjs → accordion-CLcjNX_X.mjs} +2 -2
- package/dist/chunks/{accordion-6zxJUYXr.mjs.map → accordion-CLcjNX_X.mjs.map} +1 -1
- package/dist/chunks/{alert-C5KEeQqh.cjs → alert-BBA4Sh4e.cjs} +2 -2
- package/dist/chunks/{alert-C5KEeQqh.cjs.map → alert-BBA4Sh4e.cjs.map} +1 -1
- package/dist/chunks/{alert-XVmYJgds.mjs → alert-oUz79MGc.mjs} +2 -2
- package/dist/chunks/{alert-XVmYJgds.mjs.map → alert-oUz79MGc.mjs.map} +1 -1
- package/dist/chunks/{animated-content-CLsFnjgr.cjs → animated-content-B3wbiWQI.cjs} +1 -1
- package/dist/chunks/{animated-content-CLsFnjgr.cjs.map → animated-content-B3wbiWQI.cjs.map} +1 -1
- package/dist/chunks/{animated-content-bK6xp-vc.mjs → animated-content-CiNJLgbq.mjs} +1 -1
- package/dist/chunks/{animated-content-bK6xp-vc.mjs.map → animated-content-CiNJLgbq.mjs.map} +1 -1
- package/dist/chunks/{ascii-text-Bdy4C5rU.mjs → ascii-text-C6JegLhP.mjs} +1 -1
- package/dist/chunks/{ascii-text-Bdy4C5rU.mjs.map → ascii-text-C6JegLhP.mjs.map} +1 -1
- package/dist/chunks/{ascii-text-BFnpVur6.cjs → ascii-text-KwVE41Hw.cjs} +1 -1
- package/dist/chunks/{ascii-text-BFnpVur6.cjs.map → ascii-text-KwVE41Hw.cjs.map} +1 -1
- package/dist/chunks/{background-gradient-animation-CiNdmA61.cjs → background-gradient-animation-1LZY3DYT.cjs} +1 -1
- package/dist/chunks/{background-gradient-animation-CiNdmA61.cjs.map → background-gradient-animation-1LZY3DYT.cjs.map} +1 -1
- package/dist/chunks/{background-gradient-animation-BR9wx6Z8.mjs → background-gradient-animation-CTc2ZR74.mjs} +1 -1
- package/dist/chunks/{background-gradient-animation-BR9wx6Z8.mjs.map → background-gradient-animation-CTc2ZR74.mjs.map} +1 -1
- package/dist/chunks/{button-A6UTvrOu.mjs → button-IDShmQqA.mjs} +3 -2
- package/dist/chunks/button-IDShmQqA.mjs.map +1 -0
- package/dist/chunks/{button-hover-border-gradient-DnFvjNNw.mjs → button-hover-border-gradient-B2ebbDek.mjs} +2 -2
- package/dist/chunks/{button-hover-border-gradient-DnFvjNNw.mjs.map → button-hover-border-gradient-B2ebbDek.mjs.map} +1 -1
- package/dist/chunks/{button-hover-border-gradient-ssmwU5-U.cjs → button-hover-border-gradient-DGZqd8je.cjs} +2 -2
- package/dist/chunks/{button-hover-border-gradient-ssmwU5-U.cjs.map → button-hover-border-gradient-DGZqd8je.cjs.map} +1 -1
- package/dist/chunks/{button-C4MXPxsC.cjs → button-uD87K76W.cjs} +3 -2
- package/dist/chunks/button-uD87K76W.cjs.map +1 -0
- package/dist/chunks/{calendar-CQJgQ5H_.cjs → calendar-DCkikZYb.cjs} +2 -2
- package/dist/chunks/{calendar-CQJgQ5H_.cjs.map → calendar-DCkikZYb.cjs.map} +1 -1
- package/dist/chunks/{calendar-5XzPqKbE.mjs → calendar-FxAmm_ao.mjs} +2 -2
- package/dist/chunks/{calendar-5XzPqKbE.mjs.map → calendar-FxAmm_ao.mjs.map} +1 -1
- package/dist/chunks/{card-RrT68nvu.cjs → card-Cuud0jIt.cjs} +1 -1
- package/dist/chunks/{card-RrT68nvu.cjs.map → card-Cuud0jIt.cjs.map} +1 -1
- package/dist/chunks/{card-BId1_zHw.mjs → card-DNeC6jqk.mjs} +1 -1
- package/dist/chunks/{card-BId1_zHw.mjs.map → card-DNeC6jqk.mjs.map} +1 -1
- package/dist/chunks/{carousel-Dd4rp-jr.mjs → carousel-Dpe5QLJK.mjs} +2 -2
- package/dist/chunks/{carousel-Dd4rp-jr.mjs.map → carousel-Dpe5QLJK.mjs.map} +1 -1
- package/dist/chunks/{carousel-Cv0m1Pp5.cjs → carousel-xHkrV_pt.cjs} +2 -2
- package/dist/chunks/{carousel-Cv0m1Pp5.cjs.map → carousel-xHkrV_pt.cjs.map} +1 -1
- package/dist/chunks/chartStyles-BADmRKZo.cjs +108 -0
- package/dist/chunks/chartStyles-BADmRKZo.cjs.map +1 -0
- package/dist/chunks/chartStyles-DPXgYmGn.mjs +55 -0
- package/dist/chunks/chartStyles-DPXgYmGn.mjs.map +1 -0
- package/dist/chunks/{charts-DkVu0rFc.mjs → charts-C-KQ3Nk5.mjs} +3 -54
- package/dist/chunks/charts-C-KQ3Nk5.mjs.map +1 -0
- package/dist/chunks/{charts-BmIV-mJy.cjs → charts-COx3IbI2.cjs} +42 -93
- package/dist/chunks/charts-COx3IbI2.cjs.map +1 -0
- package/dist/chunks/{checkbox-D8ivRZ1x.cjs → checkbox-CDknzh89.cjs} +1 -1
- package/dist/chunks/{checkbox-D8ivRZ1x.cjs.map → checkbox-CDknzh89.cjs.map} +1 -1
- package/dist/chunks/{checkbox-3aB7XC9_.mjs → checkbox-Y04NlzB8.mjs} +1 -1
- package/dist/chunks/{checkbox-3aB7XC9_.mjs.map → checkbox-Y04NlzB8.mjs.map} +1 -1
- package/dist/chunks/{chip-CqcdcSs2.mjs → chip-B3j6R6sO.mjs} +3 -3
- package/dist/chunks/{chip-CqcdcSs2.mjs.map → chip-B3j6R6sO.mjs.map} +1 -1
- package/dist/chunks/{chip-B0YzBwkz.cjs → chip-sfQlzrbo.cjs} +3 -3
- package/dist/chunks/{chip-B0YzBwkz.cjs.map → chip-sfQlzrbo.cjs.map} +1 -1
- package/dist/chunks/{chroma-grid-opB2DBtS.mjs → chroma-grid-BHS9qAn_.mjs} +1 -1
- package/dist/chunks/{chroma-grid-opB2DBtS.mjs.map → chroma-grid-BHS9qAn_.mjs.map} +1 -1
- package/dist/chunks/{chroma-grid-DcZ9f4Ui.cjs → chroma-grid-Bp55pKEm.cjs} +1 -1
- package/dist/chunks/{chroma-grid-DcZ9f4Ui.cjs.map → chroma-grid-Bp55pKEm.cjs.map} +1 -1
- package/dist/chunks/{color-palette-C3lesasJ.mjs → color-palette-D9Qlw2Cx.mjs} +1 -1
- package/dist/chunks/{color-palette-C3lesasJ.mjs.map → color-palette-D9Qlw2Cx.mjs.map} +1 -1
- package/dist/chunks/{color-palette-pLh6En3n.cjs → color-palette-Duud5Iqq.cjs} +1 -1
- package/dist/chunks/{color-palette-pLh6En3n.cjs.map → color-palette-Duud5Iqq.cjs.map} +1 -1
- package/dist/chunks/{combobox-CtNrGmuR.cjs → combobox-C3a2iogC.cjs} +4 -4
- package/dist/chunks/{combobox-CtNrGmuR.cjs.map → combobox-C3a2iogC.cjs.map} +1 -1
- package/dist/chunks/{combobox-B6yk5U82.mjs → combobox-neBItbtz.mjs} +4 -4
- package/dist/chunks/{combobox-B6yk5U82.mjs.map → combobox-neBItbtz.mjs.map} +1 -1
- package/dist/chunks/dashboard-cards-BnPt0gDW.mjs +2428 -0
- package/dist/chunks/dashboard-cards-BnPt0gDW.mjs.map +1 -0
- package/dist/chunks/dashboard-cards-DNWJPKRu.cjs +2524 -0
- package/dist/chunks/dashboard-cards-DNWJPKRu.cjs.map +1 -0
- package/dist/chunks/{data-table-fAEuevPn.cjs → data-table-BZEiSZI2.cjs} +48 -36
- package/dist/chunks/data-table-BZEiSZI2.cjs.map +1 -0
- package/dist/chunks/{data-table-Dtf6lKpp.mjs → data-table-EfGKkerd.mjs} +47 -35
- package/dist/chunks/data-table-EfGKkerd.mjs.map +1 -0
- package/dist/chunks/{date-picker-BmQ0rgwH.mjs → date-picker-3IDSmb9Z.mjs} +3 -3
- package/dist/chunks/{date-picker-BmQ0rgwH.mjs.map → date-picker-3IDSmb9Z.mjs.map} +1 -1
- package/dist/chunks/{date-picker-qpUZMtZC.cjs → date-picker-_EVYpGga.cjs} +3 -3
- package/dist/chunks/{date-picker-qpUZMtZC.cjs.map → date-picker-_EVYpGga.cjs.map} +1 -1
- package/dist/chunks/{dialog-DSyq6MS3.mjs → dialog-B60BjJz0.mjs} +3 -3
- package/dist/chunks/{dialog-DSyq6MS3.mjs.map → dialog-B60BjJz0.mjs.map} +1 -1
- package/dist/chunks/{dialog-J2ZTSTpL.cjs → dialog-i9LdkXmF.cjs} +3 -3
- package/dist/chunks/{dialog-J2ZTSTpL.cjs.map → dialog-i9LdkXmF.cjs.map} +1 -1
- package/dist/chunks/event-calendar-BbFOUDov.mjs +1191 -0
- package/dist/chunks/event-calendar-BbFOUDov.mjs.map +1 -0
- package/dist/chunks/event-calendar-Bljd_7PI.cjs +1209 -0
- package/dist/chunks/event-calendar-Bljd_7PI.cjs.map +1 -0
- package/dist/chunks/{form-CtZ6U-_B.mjs → form-CDc9UM3r.mjs} +1 -1
- package/dist/chunks/{form-CtZ6U-_B.mjs.map → form-CDc9UM3r.mjs.map} +1 -1
- package/dist/chunks/{form-X6Vyaavl.cjs → form-DGwdlSW2.cjs} +1 -1
- package/dist/chunks/{form-X6Vyaavl.cjs.map → form-DGwdlSW2.cjs.map} +1 -1
- package/dist/chunks/{gradual-blur-C6NOnjTw.cjs → gradual-blur-BNYVlqb1.cjs} +1 -1
- package/dist/chunks/{gradual-blur-C6NOnjTw.cjs.map → gradual-blur-BNYVlqb1.cjs.map} +1 -1
- package/dist/chunks/{gradual-blur-DXfxpCdB.mjs → gradual-blur-Bw2KNmXb.mjs} +1 -1
- package/dist/chunks/{gradual-blur-DXfxpCdB.mjs.map → gradual-blur-Bw2KNmXb.mjs.map} +1 -1
- package/dist/chunks/{hover-card--rplmsA_.cjs → hover-card-Dp6Y2h2J.cjs} +1 -1
- package/dist/chunks/{hover-card--rplmsA_.cjs.map → hover-card-Dp6Y2h2J.cjs.map} +1 -1
- package/dist/chunks/{hover-card-C88rU-nW.mjs → hover-card-G66SUyjq.mjs} +1 -1
- package/dist/chunks/{hover-card-C88rU-nW.mjs.map → hover-card-G66SUyjq.mjs.map} +1 -1
- package/dist/chunks/{icons-bx3nrxNv.mjs → icons-JzMKLygv.mjs} +2 -43
- package/dist/chunks/icons-JzMKLygv.mjs.map +1 -0
- package/dist/chunks/{icons-CRanVZB1.cjs → icons-ub9iu-JG.cjs} +1 -48
- package/dist/chunks/icons-ub9iu-JG.cjs.map +1 -0
- package/dist/chunks/{input-Bqo9Q5zF.mjs → input-CRc3MKb_.mjs} +3 -3
- package/dist/chunks/{input-Bqo9Q5zF.mjs.map → input-CRc3MKb_.mjs.map} +1 -1
- package/dist/chunks/{input-DkCPyWXi.cjs → input-DMTwz27q.cjs} +3 -3
- package/dist/chunks/{input-DkCPyWXi.cjs.map → input-DMTwz27q.cjs.map} +1 -1
- package/dist/chunks/{label-BKzqfAAq.cjs → label-B5Ugq0Nk.cjs} +1 -1
- package/dist/chunks/{label-BKzqfAAq.cjs.map → label-B5Ugq0Nk.cjs.map} +1 -1
- package/dist/chunks/{label-Drxg0cG2.mjs → label-Bc_r54NU.mjs} +1 -1
- package/dist/chunks/{label-Drxg0cG2.mjs.map → label-Bc_r54NU.mjs.map} +1 -1
- package/dist/chunks/{loading-BiM4mKh6.cjs → loading-DZKJc3e7.cjs} +2 -2
- package/dist/chunks/{loading-BiM4mKh6.cjs.map → loading-DZKJc3e7.cjs.map} +1 -1
- package/dist/chunks/{loading-Dtosnb4A.mjs → loading-ll2L6lc7.mjs} +2 -2
- package/dist/chunks/{loading-Dtosnb4A.mjs.map → loading-ll2L6lc7.mjs.map} +1 -1
- package/dist/chunks/{multi-select-combobox-C0DoDzxQ.cjs → multi-select-combobox-CFJGq1hn.cjs} +3 -3
- package/dist/chunks/{multi-select-combobox-C0DoDzxQ.cjs.map → multi-select-combobox-CFJGq1hn.cjs.map} +1 -1
- package/dist/chunks/{multi-select-combobox-Do23ZfOQ.mjs → multi-select-combobox-C_8sxaiL.mjs} +3 -3
- package/dist/chunks/{multi-select-combobox-Do23ZfOQ.mjs.map → multi-select-combobox-C_8sxaiL.mjs.map} +1 -1
- package/dist/chunks/{otp-input-CkhV-sGl.cjs → otp-input-B5-tuc0q.cjs} +1 -1
- package/dist/chunks/{otp-input-CkhV-sGl.cjs.map → otp-input-B5-tuc0q.cjs.map} +1 -1
- package/dist/chunks/{otp-input-JOysxKfD.mjs → otp-input-BpcTJOmU.mjs} +1 -1
- package/dist/chunks/{otp-input-JOysxKfD.mjs.map → otp-input-BpcTJOmU.mjs.map} +1 -1
- package/dist/chunks/{overlay-BzkUmjQ-.mjs → overlay-CG1dMYtO.mjs} +1 -1
- package/dist/chunks/{overlay-BzkUmjQ-.mjs.map → overlay-CG1dMYtO.mjs.map} +1 -1
- package/dist/chunks/{overlay-DNnZywyR.cjs → overlay-DzE_GyYf.cjs} +1 -1
- package/dist/chunks/{overlay-DNnZywyR.cjs.map → overlay-DzE_GyYf.cjs.map} +1 -1
- package/dist/chunks/{password-strength-meter-BsvqQBAg.mjs → password-strength-meter-CH6uQAuK.mjs} +2 -2
- package/dist/chunks/{password-strength-meter-BsvqQBAg.mjs.map → password-strength-meter-CH6uQAuK.mjs.map} +1 -1
- package/dist/chunks/{password-strength-meter-DCi_BP7e.cjs → password-strength-meter-_o1T1HLO.cjs} +2 -2
- package/dist/chunks/{password-strength-meter-DCi_BP7e.cjs.map → password-strength-meter-_o1T1HLO.cjs.map} +1 -1
- package/dist/chunks/{progress-bar-DQ5ZKk2Y.mjs → progress-bar-BAvRSW1b.mjs} +1 -1
- package/dist/chunks/{progress-bar-DQ5ZKk2Y.mjs.map → progress-bar-BAvRSW1b.mjs.map} +1 -1
- package/dist/chunks/{progress-bar-CYaBO_lS.cjs → progress-bar-FfdFVvTT.cjs} +1 -1
- package/dist/chunks/{progress-bar-CYaBO_lS.cjs.map → progress-bar-FfdFVvTT.cjs.map} +1 -1
- package/dist/chunks/{radio-CuiM_gDv.mjs → radio-BMOnxnUS.mjs} +1 -1
- package/dist/chunks/{radio-CuiM_gDv.mjs.map → radio-BMOnxnUS.mjs.map} +1 -1
- package/dist/chunks/{radio-zx9xEW_C.cjs → radio-wagafWwx.cjs} +1 -1
- package/dist/chunks/{radio-zx9xEW_C.cjs.map → radio-wagafWwx.cjs.map} +1 -1
- package/dist/chunks/{select-CUaSNR09.mjs → select--DeSgPdn.mjs} +4 -4
- package/dist/chunks/{select-CUaSNR09.mjs.map → select--DeSgPdn.mjs.map} +1 -1
- package/dist/chunks/{select-bZ9WqLOc.cjs → select-zFFyNmlY.cjs} +4 -4
- package/dist/chunks/{select-bZ9WqLOc.cjs.map → select-zFFyNmlY.cjs.map} +1 -1
- package/dist/chunks/{sidebar-3i4mGE6T.cjs → sidebar-Cq7UbKJT.cjs} +6 -6
- package/dist/chunks/{sidebar-3i4mGE6T.cjs.map → sidebar-Cq7UbKJT.cjs.map} +1 -1
- package/dist/chunks/{sidebar-Dhf_Arae.mjs → sidebar-oemmRzCL.mjs} +6 -6
- package/dist/chunks/{sidebar-Dhf_Arae.mjs.map → sidebar-oemmRzCL.mjs.map} +1 -1
- package/dist/chunks/{skeleton-nH1eAN96.mjs → skeleton-BsDMlWZG.mjs} +1 -1
- package/dist/chunks/{skeleton-nH1eAN96.mjs.map → skeleton-BsDMlWZG.mjs.map} +1 -1
- package/dist/chunks/{skeleton-DCBGLNAZ.cjs → skeleton-DWvVc17T.cjs} +1 -1
- package/dist/chunks/{skeleton-DCBGLNAZ.cjs.map → skeleton-DWvVc17T.cjs.map} +1 -1
- package/dist/chunks/{spinners-C9acUulz.cjs → spinners-DBAJliAj.cjs} +2 -2
- package/dist/chunks/{spinners-C9acUulz.cjs.map → spinners-DBAJliAj.cjs.map} +1 -1
- package/dist/chunks/{spinners-g6_Up5Rb.mjs → spinners-DlMcokJa.mjs} +2 -2
- package/dist/chunks/{spinners-g6_Up5Rb.mjs.map → spinners-DlMcokJa.mjs.map} +1 -1
- package/dist/chunks/{splash-cursor-N4FdnkOa.mjs → splash-cursor-Bb7LSzaO.mjs} +1 -1
- package/dist/chunks/{splash-cursor-N4FdnkOa.mjs.map → splash-cursor-Bb7LSzaO.mjs.map} +1 -1
- package/dist/chunks/{splash-cursor-BqG7ClsJ.cjs → splash-cursor-CQ6_HwHV.cjs} +1 -1
- package/dist/chunks/{splash-cursor-BqG7ClsJ.cjs.map → splash-cursor-CQ6_HwHV.cjs.map} +1 -1
- package/dist/chunks/{spotlight-card-D9Z3nTmb.mjs → spotlight-card-Bs0iiSLc.mjs} +1 -1
- package/dist/chunks/{spotlight-card-D9Z3nTmb.mjs.map → spotlight-card-Bs0iiSLc.mjs.map} +1 -1
- package/dist/chunks/{spotlight-card-BmsqC7wm.cjs → spotlight-card-COfSD7ns.cjs} +1 -1
- package/dist/chunks/{spotlight-card-BmsqC7wm.cjs.map → spotlight-card-COfSD7ns.cjs.map} +1 -1
- package/dist/chunks/{stepper-Jv5OS1nY.mjs → stepper-B9NdZ6ZV.mjs} +4 -4
- package/dist/chunks/{stepper-Jv5OS1nY.mjs.map → stepper-B9NdZ6ZV.mjs.map} +1 -1
- package/dist/chunks/{stepper-DepvEGfr.cjs → stepper-CTteR-Kj.cjs} +4 -4
- package/dist/chunks/{stepper-DepvEGfr.cjs.map → stepper-CTteR-Kj.cjs.map} +1 -1
- package/dist/chunks/{sun-to-moon-button-BJtBEaa3.mjs → sun-to-moon-button-DWHDpP5B.mjs} +2 -2
- package/dist/chunks/{sun-to-moon-button-BJtBEaa3.mjs.map → sun-to-moon-button-DWHDpP5B.mjs.map} +1 -1
- package/dist/chunks/{sun-to-moon-button-PwgTPsTW.cjs → sun-to-moon-button-lt-1vmWm.cjs} +2 -2
- package/dist/chunks/{sun-to-moon-button-PwgTPsTW.cjs.map → sun-to-moon-button-lt-1vmWm.cjs.map} +1 -1
- package/dist/chunks/{switch-iPsN1NS2.mjs → switch--68scepb.mjs} +1 -1
- package/dist/chunks/{switch-iPsN1NS2.mjs.map → switch--68scepb.mjs.map} +1 -1
- package/dist/chunks/{switch-X3l8xnle.cjs → switch-BbFl5b4t.cjs} +1 -1
- package/dist/chunks/{switch-X3l8xnle.cjs.map → switch-BbFl5b4t.cjs.map} +1 -1
- package/dist/chunks/{textarea-Bdo-Trvi.mjs → textarea-CEj9voUJ.mjs} +1 -1
- package/dist/chunks/{textarea-Bdo-Trvi.mjs.map → textarea-CEj9voUJ.mjs.map} +1 -1
- package/dist/chunks/{textarea-CGRl2hrM.cjs → textarea-U_JeSWI3.cjs} +1 -1
- package/dist/chunks/{textarea-CGRl2hrM.cjs.map → textarea-U_JeSWI3.cjs.map} +1 -1
- package/dist/chunks/{toast-DiFgv3IL.cjs → toast-2yq4Q7-q.cjs} +2 -2
- package/dist/chunks/{toast-DiFgv3IL.cjs.map → toast-2yq4Q7-q.cjs.map} +1 -1
- package/dist/chunks/{toast-BcBidy5n.mjs → toast-CyY8VZN7.mjs} +2 -2
- package/dist/chunks/{toast-BcBidy5n.mjs.map → toast-CyY8VZN7.mjs.map} +1 -1
- package/dist/chunks/{truncated-text-BIXqNfOL.cjs → truncated-text-CswjmrHZ.cjs} +1 -1
- package/dist/chunks/{truncated-text-BIXqNfOL.cjs.map → truncated-text-CswjmrHZ.cjs.map} +1 -1
- package/dist/chunks/{truncated-text-C9t9o9IA.mjs → truncated-text-DUYTW1KP.mjs} +1 -1
- package/dist/chunks/{truncated-text-C9t9o9IA.mjs.map → truncated-text-DUYTW1KP.mjs.map} +1 -1
- package/dist/chunks/{typography-LwwY_MOy.cjs → typography-CFIiYk1d.cjs} +1 -1
- package/dist/chunks/{typography-LwwY_MOy.cjs.map → typography-CFIiYk1d.cjs.map} +1 -1
- package/dist/chunks/{typography-Ct-jDJP3.mjs → typography-DHE9sUZ8.mjs} +1 -1
- package/dist/chunks/{typography-Ct-jDJP3.mjs.map → typography-DHE9sUZ8.mjs.map} +1 -1
- package/dist/color-palette.cjs +1 -1
- package/dist/color-palette.mjs +1 -1
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.mjs +1 -1
- package/dist/components/data-display/charts/chartPalette.d.ts +1 -1
- package/dist/components/data-display/dashboard-cards/DeviceSalesCard.d.ts +25 -0
- package/dist/components/data-display/dashboard-cards/DeviceSalesCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/EarningReportsTabsCard.d.ts +34 -0
- package/dist/components/data-display/dashboard-cards/EarningReportsTabsCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/EarningsCard.d.ts +43 -0
- package/dist/components/data-display/dashboard-cards/EarningsCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/ExpensesCard.d.ts +26 -0
- package/dist/components/data-display/dashboard-cards/ExpensesCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/IncomeExpenseCard.d.ts +30 -0
- package/dist/components/data-display/dashboard-cards/IncomeExpenseCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/RevenueGrowthCard.d.ts +26 -0
- package/dist/components/data-display/dashboard-cards/RevenueGrowthCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/SalesOverviewCard.d.ts +33 -0
- package/dist/components/data-display/dashboard-cards/SalesOverviewCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/ShipmentStatisticsCard.d.ts +33 -0
- package/dist/components/data-display/dashboard-cards/ShipmentStatisticsCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/StockAvailabilityCard.d.ts +24 -0
- package/dist/components/data-display/dashboard-cards/StockAvailabilityCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/SupportTrackerCard.d.ts +25 -0
- package/dist/components/data-display/dashboard-cards/SupportTrackerCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/TopicsCard.d.ts +18 -0
- package/dist/components/data-display/dashboard-cards/TopicsCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/VehicleConditionCard.d.ts +20 -0
- package/dist/components/data-display/dashboard-cards/VehicleConditionCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/VehiclesOverviewCard.d.ts +21 -0
- package/dist/components/data-display/dashboard-cards/VehiclesOverviewCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/index.d.ts +26 -0
- package/dist/components/data-display/dashboard-cards/index.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTableControls.d.ts.map +1 -1
- package/dist/components/data-display/event-calendar/AddEventPanel.d.ts +11 -0
- package/dist/components/data-display/event-calendar/AddEventPanel.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/CalendarHeader.d.ts +13 -0
- package/dist/components/data-display/event-calendar/CalendarHeader.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/CalendarSidebar.d.ts +13 -0
- package/dist/components/data-display/event-calendar/CalendarSidebar.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/EventCalendar.d.ts +3 -0
- package/dist/components/data-display/event-calendar/EventCalendar.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/EventDetailDrawer.d.ts +10 -0
- package/dist/components/data-display/event-calendar/EventDetailDrawer.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/EventFilterList.d.ts +9 -0
- package/dist/components/data-display/event-calendar/EventFilterList.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/EventPill.d.ts +10 -0
- package/dist/components/data-display/event-calendar/EventPill.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/MiniCalendarPicker.d.ts +9 -0
- package/dist/components/data-display/event-calendar/MiniCalendarPicker.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/calendarUtils.d.ts +27 -0
- package/dist/components/data-display/event-calendar/calendarUtils.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/index.d.ts +4 -0
- package/dist/components/data-display/event-calendar/index.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/types.d.ts +52 -0
- package/dist/components/data-display/event-calendar/types.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/views/DayView.d.ts +10 -0
- package/dist/components/data-display/event-calendar/views/DayView.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/views/ListView.d.ts +10 -0
- package/dist/components/data-display/event-calendar/views/ListView.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/views/MonthView.d.ts +11 -0
- package/dist/components/data-display/event-calendar/views/MonthView.d.ts.map +1 -0
- package/dist/components/data-display/event-calendar/views/WeekView.d.ts +10 -0
- package/dist/components/data-display/event-calendar/views/WeekView.d.ts.map +1 -0
- package/dist/components/forms/button/Button.d.ts.map +1 -1
- package/dist/components/overlays/tooltip/Tooltip.d.ts +3 -1
- package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/dashboard-cards.cjs +18 -0
- package/dist/dashboard-cards.d.ts +2 -0
- package/dist/dashboard-cards.mjs +2 -0
- package/dist/data-table.cjs +1 -1
- package/dist/data-table.mjs +1 -1
- 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 +31 -0
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.mjs +31 -0
- package/dist/docs.mjs.map +1 -1
- package/dist/drawer.cjs +2 -2
- package/dist/drawer.mjs +1 -1
- package/dist/event-calendar.cjs +5 -0
- package/dist/event-calendar.d.ts +2 -0
- package/dist/event-calendar.mjs +2 -0
- package/dist/form.cjs +1 -1
- package/dist/form.mjs +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 +3 -2
- package/dist/icons.mjs +2 -1
- package/dist/index.cjs +74 -330
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +55 -327
- 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 +1 -1
- package/dist/progress-bar.mjs +1 -1
- 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/sidebar.cjs +1 -1
- package/dist/sidebar.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 -2
- 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/toast.cjs +1 -1
- package/dist/toast.mjs +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.mjs +1 -1
- package/dist/truncated-text.cjs +1 -1
- package/dist/truncated-text.mjs +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.mjs +1 -1
- package/package.json +17 -5
- package/dist/chunks/Tooltip-DD30yj3A.cjs.map +0 -1
- package/dist/chunks/Tooltip-DK3B879v.mjs.map +0 -1
- package/dist/chunks/button-A6UTvrOu.mjs.map +0 -1
- package/dist/chunks/button-C4MXPxsC.cjs.map +0 -1
- package/dist/chunks/charts-BmIV-mJy.cjs.map +0 -1
- package/dist/chunks/charts-DkVu0rFc.mjs.map +0 -1
- package/dist/chunks/data-table-Dtf6lKpp.mjs.map +0 -1
- package/dist/chunks/data-table-fAEuevPn.cjs.map +0 -1
- package/dist/chunks/icons-CRanVZB1.cjs.map +0 -1
- package/dist/chunks/icons-bx3nrxNv.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-palette-C3lesasJ.mjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"color-palette-D9Qlw2Cx.mjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-palette-pLh6En3n.cjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"color-palette-Duud5Iqq.cjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-B_GkZjkl.cjs");
|
|
2
2
|
const require_utils = require("./utils-LRbEQHYs.cjs");
|
|
3
|
-
const require_truncated_text = require("./truncated-text-
|
|
4
|
-
const require_icons = require("./icons-
|
|
5
|
-
const require_DropdownMenu = require("./DropdownMenu-
|
|
3
|
+
const require_truncated_text = require("./truncated-text-CswjmrHZ.cjs");
|
|
4
|
+
const require_icons = require("./icons-ub9iu-JG.cjs");
|
|
5
|
+
const require_DropdownMenu = require("./DropdownMenu-yh04burS.cjs");
|
|
6
6
|
let react = require("react");
|
|
7
7
|
react = require_chunk.__toESM(react, 1);
|
|
8
8
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -131,4 +131,4 @@ Object.defineProperty(exports, "Combobox", {
|
|
|
131
131
|
}
|
|
132
132
|
});
|
|
133
133
|
|
|
134
|
-
//# sourceMappingURL=combobox-
|
|
134
|
+
//# sourceMappingURL=combobox-C3a2iogC.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-
|
|
1
|
+
{"version":3,"file":"combobox-C3a2iogC.cjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\"start-0 top-[40px] z-20 mt-1 flex w-full max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ms-2 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=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as mergeClassNames } from "./utils-7S0u48mU.mjs";
|
|
2
|
-
import { t as TruncatedText } from "./truncated-text-
|
|
3
|
-
import {
|
|
4
|
-
import { t as DropdownMenu } from "./DropdownMenu-
|
|
2
|
+
import { t as TruncatedText } from "./truncated-text-DUYTW1KP.mjs";
|
|
3
|
+
import { M as ChevronDownIcon, q as CheckIcon } from "./icons-JzMKLygv.mjs";
|
|
4
|
+
import { t as DropdownMenu } from "./DropdownMenu-BQ4WlaGp.mjs";
|
|
5
5
|
import { useState } from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
|
|
@@ -124,4 +124,4 @@ var Combobox = ({ options, value, onChange, placeholder = "Select...", searchPla
|
|
|
124
124
|
//#endregion
|
|
125
125
|
export { Combobox as t };
|
|
126
126
|
|
|
127
|
-
//# sourceMappingURL=combobox-
|
|
127
|
+
//# sourceMappingURL=combobox-neBItbtz.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-
|
|
1
|
+
{"version":3,"file":"combobox-neBItbtz.mjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\"start-0 top-[40px] z-20 mt-1 flex w-full max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ms-2 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=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":";;;;;;;;AA0BA,IAAM,YAAqC,EACzC,SACA,OACA,UACA,cAAc,aACd,oBAAoB,qBACpB,gBAAgB,cAChB,WACA,cAAc,mBACd,mBACA,qBACI;CACJ,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,CAAC,QAAQ,aAAa,SAAS,GAAG;CACxC,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,SAAS,eAAe,EAAE;CAChC,MAAM,SAAS,eAAe,EAAE;CAChC,MAAM,SAAS;CAGf,MAAM,kBAAkB,QAAQ,QAAQ,QACtC,IAAI,MAAM,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,CACvD;CAED,MAAM,mBAAmB,UAA4C;EACnE,MAAM,EAAE,MAAM,QAAQ,MAAM,cAAc,uBAAuB;AACjE,SAAO,IAAI,MAAM,UAAU,KAAK;AAChC,SAAO,IAAI,MAAM,UAAU,IAAI;;AAGjC,QACE,qBAAC,cAAD;EACE,WAAW,gBAAgB,UAAU,UAAU;EACzC;EACN,eAAe,aAAa;AAC1B,WAAQ,SAAS;AACjB,OAAI,CAAC,SACH,WAAU,GAAG;;EAGjB,oBAAmB;EACnB,gBAAe;EACf,SACE,oBAAC,OAAO,KAAR;GACE,OAAO,EACL,iBAAiB,iBAAiB;;kBAE5B,UAAU,GAAG,OAAO,MAAM,MAAM,aAAa,OAAO,KAAK,OAAO;;;;eAKvE;GACD,aAAa;GACb,oBAAoB,WAAW,KAAK;GACpC,oBAAoB,WAAW,MAAM;GACrC,WAAU;aAEV,qBAAC,OAAD;IACE,WAAW,gBACT,qPACA,YACD;cAJH,CAMG,QACC,oBAAC,eAAD;KACE,IAAG;KACH,kBAAA;KACA,WAAU;eAET,QAAQ,MAAM,QAAQ,IAAI,UAAU,MAAM,EAAE;KAC/B,CAAA,GAEhB,oBAAC,eAAD;KAAe,IAAG;KAAO,WAAU;eAChC;KACa,CAAA,EAElB,oBAAC,QAAD;KACE,WAAW,gBACT,oDACA,OAAO,eAAe,WACvB;eAED,oBAAC,iBAAD;MACE,OAAO;MACP,QAAQ;MACR,OAAM;MACN,WAAU;MACV,CAAA;KACG,CAAA,CACH;;GACK,CAAA;YA5DjB;GAgEE,oBAAC,OAAD;IAAK,WAAU;cACb,oBAAC,SAAD;KACE,WAAA;KACA,WAAU;KACV,aAAa;KACb,OAAO;KACP,WAAW,MAAM,UAAU,EAAE,OAAO,MAAM;KAC1C,UAAU,MAAM,EAAE,iBAAiB;KACnC,CAAA;IACE,CAAA;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACG,gBAAgB,WAAW,KAAK,CAAC,qBAChC,oBAAC,OAAD;KAAK,WAAU;eAAuB;KAAoB,CAAA,EAE3D,gBAAgB,KAAK,QACpB,qBAAC,OAAD;KAEE,WAAW,gBACT,sGACA,IAAI,UAAU,QACV,gDACA,IACJ,6CACD;KACD,eAAe;AACb,eAAS,IAAI,MAAM;AACnB,gBAAU,GAAG;AACb,cAAQ,MAAM;;eAZlB,CAeE,oBAAC,QAAD;MAAM,WAAU;gBACb,IAAI,UAAU,SACb,oBAAC,WAAD;OAAW,WAAU;OAAY,OAAO;OAAI,QAAQ;OAAM,CAAA;MAEvD,CAAA,EACP,oBAAC,eAAD;MAAe,IAAG;MAAO,kBAAA;MAAiB,WAAU;gBACjD,IAAI;MACS,CAAA,CACZ;OAtBC,IAAI,MAsBL,CACN,CACE;;GAEL,qBAAqB,kBACpB,oBAAC,OAAD;IAAK,WAAU;cACb,qBAAC,OAAD;KACE,WAAU;KACV,eAAe;AACb,sBAAgB;AAChB,gBAAU,GAAG;AACb,cAAQ,MAAM;;eALlB,CAQE,oBAAC,QAAD,EAAM,WAAU,wCAET,CAAA,EACP,oBAAC,eAAD;MAAe,IAAG;MAAO,kBAAA;MAAiB,WAAU;gBACjD;MACa,CAAA,CACZ;;IACF,CAAA;GAEK"}
|