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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-calendar-Bljd_7PI.cjs","names":[],"sources":["../../src/components/data-display/event-calendar/calendarUtils.ts","../../src/components/data-display/event-calendar/MiniCalendarPicker.tsx","../../src/components/data-display/event-calendar/types.ts","../../src/components/data-display/event-calendar/EventFilterList.tsx","../../src/components/data-display/event-calendar/CalendarSidebar.tsx","../../src/components/data-display/event-calendar/CalendarHeader.tsx","../../src/components/data-display/event-calendar/EventPill.tsx","../../src/components/data-display/event-calendar/views/MonthView.tsx","../../src/components/data-display/event-calendar/views/WeekView.tsx","../../src/components/data-display/event-calendar/views/DayView.tsx","../../src/components/data-display/event-calendar/views/ListView.tsx","../../src/components/data-display/event-calendar/AddEventPanel.tsx","../../src/components/data-display/event-calendar/EventDetailDrawer.tsx","../../src/components/data-display/event-calendar/EventCalendar.tsx"],"sourcesContent":["import type { CalendarEvent } from './types';\n\nexport const GRID_START_HOUR = 6;\nexport const GRID_END_HOUR = 22;\nexport const HOUR_HEIGHT_PX = 80;\n\nexport function isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isToday(date: Date): boolean {\n return isSameDay(date, new Date());\n}\n\nexport function addDays(date: Date, n: number): Date {\n const d = new Date(date);\n d.setDate(d.getDate() + n);\n return d;\n}\n\nexport function addMonths(date: Date, n: number): Date {\n const d = new Date(date);\n d.setMonth(d.getMonth() + n);\n return d;\n}\n\nexport function addWeeks(date: Date, n: number): Date {\n return addDays(date, n * 7);\n}\n\nexport function startOfWeek(date: Date): Date {\n const d = new Date(date);\n d.setDate(d.getDate() - d.getDay());\n d.setHours(0, 0, 0, 0);\n return d;\n}\n\nexport function startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport function endOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0, 23, 59, 59, 999);\n}\n\nexport function getMonthGridDays(date: Date): Date[] {\n const first = startOfMonth(date);\n const gridStart = startOfWeek(first);\n return Array.from({ length: 42 }, (_, i) => addDays(gridStart, i));\n}\n\nexport function getWeekDays(date: Date): Date[] {\n const sunday = startOfWeek(date);\n return Array.from({ length: 7 }, (_, i) => addDays(sunday, i));\n}\n\nexport function getEventsForDay(events: CalendarEvent[], day: Date): CalendarEvent[] {\n const dayStart = new Date(day);\n dayStart.setHours(0, 0, 0, 0);\n const dayEnd = new Date(day);\n dayEnd.setHours(23, 59, 59, 999);\n return events.filter((e) => e.start <= dayEnd && e.end >= dayStart);\n}\n\nexport function formatMonthYear(date: Date): string {\n return date.toLocaleDateString('en-US', { month: 'long', year: 'numeric' });\n}\n\nexport function formatWeekRange(date: Date): string {\n const days = getWeekDays(date);\n const start = days[0]!;\n const end = days[6]!;\n const startStr = start.toLocaleDateString('en-US', { month: 'long', day: 'numeric' });\n const endStr =\n start.getMonth() === end.getMonth()\n ? end.getDate().toString()\n : end.toLocaleDateString('en-US', { month: 'long', day: 'numeric' });\n return `${startStr}–${endStr}, ${end.getFullYear()}`;\n}\n\nexport function formatDayFull(date: Date): string {\n return date.toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' });\n}\n\nexport function formatShortDate(date: Date): string {\n return `${date.getMonth() + 1}/${date.getDate()}`;\n}\n\nexport function formatHour(h: number): string {\n if (h === 0) return '12AM';\n if (h === 12) return '12PM';\n return h < 12 ? `${h}AM` : `${h - 12}PM`;\n}\n\nexport function formatTime(date: Date): string {\n let h = date.getHours();\n const m = date.getMinutes();\n const ampm = h >= 12 ? 'pm' : 'am';\n h = h % 12 || 12;\n const mm = m.toString().padStart(2, '0');\n return `${h}:${mm}${ampm}`;\n}\n\nexport function formatListDate(date: Date): string {\n return date.toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' });\n}\n\nexport function formatListDayName(date: Date): string {\n return date.toLocaleDateString('en-US', { weekday: 'long' });\n}\n\nexport function generateId(): string {\n return Math.random().toString(36).slice(2) + Date.now().toString(36);\n}\n\nexport function getEventTopPx(event: CalendarEvent): number {\n const startH = event.start.getHours() + event.start.getMinutes() / 60;\n return (startH - GRID_START_HOUR) * HOUR_HEIGHT_PX;\n}\n\nexport function getEventHeightPx(event: CalendarEvent): number {\n const startH = event.start.getHours() + event.start.getMinutes() / 60;\n const endH = event.end.getHours() + event.end.getMinutes() / 60;\n const clampedEnd = Math.min(endH, GRID_END_HOUR);\n const clampedStart = Math.max(startH, GRID_START_HOUR);\n return Math.max((clampedEnd - clampedStart) * HOUR_HEIGHT_PX, 20);\n}\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport { Button } from '../../forms/button';\nimport { mergeClassNames } from '../../../utils';\n\nimport { getMonthGridDays, isSameDay, isToday, addMonths } from './calendarUtils';\n\ninterface MiniCalendarPickerProps {\n currentDate: Date;\n onDateChange: (d: Date) => void;\n onMonthChange: (d: Date) => void;\n}\n\nconst DAY_CHARS = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\n\nconst ChevronLeft = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n);\n\nconst ChevronRight = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n);\n\nexport const MiniCalendarPicker: FC<MiniCalendarPickerProps> = ({\n currentDate,\n onDateChange,\n onMonthChange,\n}) => {\n const days = getMonthGridDays(currentDate);\n const monthLabel = currentDate.toLocaleDateString('en-US', { month: 'long', year: 'numeric' });\n\n return (\n <div className=\"select-none\">\n <div className=\"mb-2 flex items-center justify-between\">\n <span className=\"text-xs font-semibold text-ds-1\">{monthLabel}</span>\n <div className=\"flex gap-0.5\">\n <Button\n variant=\"tertiary\"\n size=\"small\"\n className=\"h-6 w-6 p-0! hover:opacity-100\"\n aria-label=\"Previous month\"\n onClick={() => onMonthChange(addMonths(currentDate, -1))}\n >\n <ChevronLeft />\n </Button>\n <Button\n variant=\"tertiary\"\n size=\"small\"\n className=\"h-6 w-6 p-0! hover:opacity-100\"\n aria-label=\"Next month\"\n onClick={() => onMonthChange(addMonths(currentDate, 1))}\n >\n <ChevronRight />\n </Button>\n </div>\n </div>\n\n <div className=\"mb-1 grid grid-cols-7\">\n {DAY_CHARS.map((c, i) => (\n <div key={i} className=\"py-0.5 text-center text-[10px] font-medium text-ds-3\">\n {c}\n </div>\n ))}\n </div>\n\n <div className=\"grid grid-cols-7 gap-y-0.5\">\n {days.map((day, i) => {\n const isCurrentMonth = day.getMonth() === currentDate.getMonth();\n const today = isToday(day);\n const selected = isSameDay(day, currentDate);\n return (\n <Button\n key={i}\n variant=\"tertiary\"\n aria-label={day.toDateString()}\n onClick={() => onDateChange(day)}\n className={mergeClassNames(\n 'mx-auto h-6 w-6 rounded-full p-0! text-[10px] hover:opacity-100',\n today ? 'bg-ds-accent! text-ds-on-accent! font-bold' : '',\n !today && selected ? 'bg-ds-surface-3! text-ds-1! font-medium' : '',\n !today && !selected && isCurrentMonth ? 'text-ds-2 hover:bg-ds-surface-3' : '',\n !today && !selected && !isCurrentMonth ? 'text-ds-3 opacity-50' : '',\n )}\n >\n {day.getDate()}\n </Button>\n );\n })}\n </div>\n </div>\n );\n};\n","export type CalendarView = 'month' | 'week' | 'day' | 'list';\nexport type EventLabel = 'personal' | 'business' | 'family' | 'holiday' | 'etc';\n\nexport interface CalendarEvent {\n id: string;\n title: string;\n start: Date;\n end: Date;\n allDay: boolean;\n label: EventLabel;\n url?: string;\n guests?: string;\n location?: string;\n description?: string;\n}\n\nexport interface EventCalendarProps {\n initialEvents?: CalendarEvent[];\n initialView?: CalendarView;\n initialDate?: Date;\n onEventAdd?: (event: CalendarEvent) => void;\n onEventUpdate?: (event: CalendarEvent) => void;\n onEventDelete?: (id: string) => void;\n className?: string;\n}\n\nexport const EVENT_LABEL_CONFIG = {\n personal: { display: 'Personal', color: 'var(--ds-color-danger)', bg: 'var(--ds-color-danger-subtle)' },\n business: { display: 'Business', color: 'var(--ds-color-accent)', bg: 'var(--ds-color-accent-subtle)' },\n family: { display: 'Family', color: 'var(--ds-color-warning)', bg: 'var(--ds-color-warning-subtle)' },\n holiday: { display: 'Holiday', color: 'var(--ds-color-success)', bg: 'var(--ds-color-success-subtle)' },\n etc: { display: 'ETC', color: 'var(--ds-color-info)', bg: 'var(--ds-color-info-subtle)' },\n} as const;\n\nexport const ALL_LABELS: EventLabel[] = ['personal', 'business', 'family', 'holiday', 'etc'];\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport { Checkbox } from '../../forms/checkbox';\n\nimport { EVENT_LABEL_CONFIG, ALL_LABELS } from './types';\nimport type { EventLabel } from './types';\n\ninterface EventFilterListProps {\n activeLabels: EventLabel[];\n onChange: (labels: EventLabel[]) => void;\n}\n\nconst LABEL_COLOR: Record<EventLabel, string> = {\n personal: 'red',\n business: 'primary',\n family: 'yellow',\n holiday: 'green',\n etc: 'teal',\n};\n\nexport const EventFilterList: FC<EventFilterListProps> = ({ activeLabels, onChange }) => {\n const allActive = activeLabels.length === ALL_LABELS.length;\n\n const toggleAll = () => {\n onChange(allActive ? [] : [...ALL_LABELS]);\n };\n\n const toggleLabel = (label: EventLabel) => {\n if (activeLabels.includes(label)) {\n onChange(activeLabels.filter((l) => l !== label));\n } else {\n onChange([...activeLabels, label]);\n }\n };\n\n return (\n <div className=\"flex flex-col gap-2.5\">\n <Checkbox\n checked={allActive}\n onChange={toggleAll}\n label=\"View all\"\n color=\"primary\"\n />\n {ALL_LABELS.map((label) => {\n const cfg = EVENT_LABEL_CONFIG[label];\n return (\n <Checkbox\n key={label}\n checked={activeLabels.includes(label)}\n onChange={() => toggleLabel(label)}\n label={cfg.display}\n color={LABEL_COLOR[label]}\n />\n );\n })}\n </div>\n );\n};\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport { Button } from '../../forms/button';\n\nimport { MiniCalendarPicker } from './MiniCalendarPicker';\nimport { EventFilterList } from './EventFilterList';\nimport type { EventLabel } from './types';\n\nexport interface CalendarSidebarProps {\n currentDate: Date;\n onDateChange: (d: Date) => void;\n onMonthChange: (d: Date) => void;\n activeLabels: EventLabel[];\n onFiltersChange: (labels: EventLabel[]) => void;\n onAddEvent: () => void;\n}\n\nexport const CalendarSidebarContent: FC<CalendarSidebarProps> = ({\n currentDate,\n onDateChange,\n onMonthChange,\n activeLabels,\n onFiltersChange,\n onAddEvent,\n}) => (\n <div className=\"flex flex-col gap-5\">\n <Button\n variant=\"primary\"\n className=\"w-full\"\n onClick={onAddEvent}\n aria-label=\"Add new event\"\n >\n + Add Event\n </Button>\n\n <MiniCalendarPicker\n currentDate={currentDate}\n onDateChange={onDateChange}\n onMonthChange={onMonthChange}\n />\n\n <div>\n <h3 className=\"mb-3 text-xs font-semibold uppercase tracking-wider text-ds-3\">\n Event Filters\n </h3>\n <EventFilterList activeLabels={activeLabels} onChange={onFiltersChange} />\n </div>\n </div>\n);\n\nexport const CalendarSidebar: FC<CalendarSidebarProps> = (props) => (\n <aside className=\"hidden w-[280px] shrink-0 flex-col border-e border-ds-border-3 bg-ds-surface-1 p-4 lg:flex\">\n <CalendarSidebarContent {...props} />\n </aside>\n);\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport { Button } from '../../forms/button';\nimport { mergeClassNames } from '../../../utils';\n\nimport {\n formatMonthYear,\n formatWeekRange,\n formatDayFull,\n} from './calendarUtils';\nimport type { CalendarView } from './types';\n\ninterface CalendarHeaderProps {\n view: CalendarView;\n currentDate: Date;\n onPrev: () => void;\n onNext: () => void;\n onViewChange: (v: CalendarView) => void;\n onSidebarToggle?: () => void;\n}\n\nconst VIEWS: { value: CalendarView; label: string }[] = [\n { value: 'month', label: 'Month' },\n { value: 'week', label: 'Week' },\n { value: 'day', label: 'Day' },\n { value: 'list', label: 'List' },\n];\n\nfunction getTitle(view: CalendarView, date: Date): string {\n if (view === 'month' || view === 'list') return formatMonthYear(date);\n if (view === 'week') return formatWeekRange(date);\n return formatDayFull(date);\n}\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n);\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n);\n\nconst MenuIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n </svg>\n);\n\nexport const CalendarHeader: FC<CalendarHeaderProps> = ({\n view,\n currentDate,\n onPrev,\n onNext,\n onViewChange,\n onSidebarToggle,\n}) => (\n <header className=\"flex items-center justify-between border-b border-ds-border-3 bg-ds-surface-1 px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n {onSidebarToggle && (\n <Button\n variant=\"secondary\"\n size=\"small\"\n className=\"h-8 w-8 p-0! hover:opacity-100 lg:hidden\"\n aria-label=\"Toggle calendar sidebar\"\n onClick={onSidebarToggle}\n >\n <MenuIcon />\n </Button>\n )}\n <Button\n variant=\"secondary\"\n size=\"small\"\n className=\"h-8 w-8 p-0! hover:opacity-100\"\n aria-label=\"Previous period\"\n onClick={onPrev}\n >\n <ChevronLeft />\n </Button>\n <Button\n variant=\"secondary\"\n size=\"small\"\n className=\"h-8 w-8 p-0! hover:opacity-100\"\n aria-label=\"Next period\"\n onClick={onNext}\n >\n <ChevronRight />\n </Button>\n <h2 className=\"ms-1 text-base font-semibold text-ds-1\">\n {getTitle(view, currentDate)}\n </h2>\n </div>\n\n <div className=\"flex rounded-lg border border-ds-border-2 bg-ds-surface-2 p-0.5\" role=\"tablist\" aria-label=\"Calendar view\">\n {VIEWS.map(({ value, label }) => (\n <Button\n key={value}\n variant=\"tertiary\"\n size=\"small\"\n role=\"tab\"\n aria-selected={view === value}\n onClick={() => onViewChange(value)}\n className={mergeClassNames(\n 'rounded-md px-3 py-1.5 text-xs font-medium hover:opacity-100',\n view === value\n ? 'bg-ds-surface-1 text-ds-1 shadow-1'\n : 'text-ds-3 hover:text-ds-2',\n )}\n >\n {label}\n </Button>\n ))}\n </div>\n </header>\n);\n","\"use client\";\n\nimport type { FC, KeyboardEvent } from 'react';\n\nimport { Tooltip } from '../../overlays/tooltip/Tooltip';\nimport { TruncatedText } from '../../typography/truncated-text/TruncatedText';\n\nimport { formatDayFull, formatTime } from './calendarUtils';\nimport { EVENT_LABEL_CONFIG } from './types';\nimport type { CalendarEvent } from './types';\n\ninterface EventPillProps {\n event: CalendarEvent;\n compact?: boolean;\n onDoubleClick?: (event: CalendarEvent) => void;\n}\n\nexport const EventPill: FC<EventPillProps> = ({ event, compact = false, onDoubleClick }) => {\n const cfg = EVENT_LABEL_CONFIG[event.label];\n const timeStr = event.allDay\n ? 'All day'\n : `${formatTime(event.start)} – ${formatTime(event.end)}`;\n\n const tooltipContent = (\n <div className=\"flex min-w-0 flex-col gap-1.5\">\n <span className=\"font-semibold leading-snug text-ds-1\">{event.title}</span>\n <div className=\"flex items-center gap-1.5\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: cfg.color }}\n aria-hidden=\"true\"\n />\n <span className=\"text-xs text-ds-2\">{cfg.display}</span>\n </div>\n <span className=\"text-xs text-ds-3\">{formatDayFull(event.start)}</span>\n <span className=\"text-xs text-ds-3\">{timeStr}</span>\n {event.location && <span className=\"text-xs text-ds-3\">{event.location}</span>}\n </div>\n );\n\n return (\n <Tooltip content={tooltipContent} position=\"top\" delayShow={500} wrapperClassName=\"w-full min-w-0\">\n <div\n className={`w-full min-w-0 cursor-pointer select-none rounded font-medium leading-none ${\n compact ? 'px-1.5 py-1 text-[11px]' : 'px-2 py-1.5 text-xs'\n }`}\n style={{ backgroundColor: cfg.bg, color: cfg.color }}\n role=\"button\"\n tabIndex={0}\n aria-label={`${event.title} – ${cfg.display}`}\n onClick={(e) => e.stopPropagation()}\n onDoubleClick={(e) => {\n e.stopPropagation();\n onDoubleClick?.(event);\n }}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === 'Enter') onDoubleClick?.(event);\n }}\n >\n <TruncatedText showTitleOnHover={false}>{event.title}</TruncatedText>\n </div>\n </Tooltip>\n );\n};\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport { Button } from '../../../forms/button';\nimport { mergeClassNames } from '../../../../utils';\n\nimport { getMonthGridDays, getEventsForDay, isToday } from '../calendarUtils';\nimport { EventPill } from '../EventPill';\nimport type { CalendarEvent } from '../types';\n\ninterface MonthViewProps {\n currentDate: Date;\n events: CalendarEvent[];\n onDayClick: (d: Date) => void;\n onEventDoubleClick?: (event: CalendarEvent) => void;\n}\n\nconst DAY_NAMES = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\nexport const MonthView: FC<MonthViewProps> = ({ currentDate, events, onDayClick, onEventDoubleClick }) => {\n const days = getMonthGridDays(currentDate);\n const currentMonth = currentDate.getMonth();\n\n return (\n <div className=\"flex flex-1 flex-col overflow-auto\">\n <div className=\"grid grid-cols-7 border-b border-ds-border-3\">\n {DAY_NAMES.map((name) => (\n <div\n key={name}\n className=\"py-2 text-center text-xs font-medium uppercase tracking-wide text-ds-3\"\n >\n {name}\n </div>\n ))}\n </div>\n\n <div className=\"grid flex-1 grid-cols-7 grid-rows-6\">\n {days.map((day, i) => {\n const inMonth = day.getMonth() === currentMonth;\n const today = isToday(day);\n const dayEvents = getEventsForDay(events, day);\n const visible = dayEvents.slice(0, 2);\n const overflow = dayEvents.length - visible.length;\n\n return (\n <Button\n key={i}\n variant=\"tertiary\"\n aria-label={day.toDateString()}\n onClick={() => onDayClick(day)}\n className={mergeClassNames(\n 'flex flex-col items-start gap-1 rounded-none border-b border-e border-ds-border-3 p-1.5 text-start hover:bg-ds-surface-2 hover:opacity-100',\n today ? 'bg-ds-surface-2' : '',\n )}\n >\n <span\n className={mergeClassNames(\n 'self-end flex h-6 w-6 items-center justify-center rounded-full text-xs font-medium leading-none',\n today\n ? 'bg-ds-accent text-ds-on-accent font-bold'\n : inMonth\n ? 'text-ds-2'\n : 'text-ds-3 opacity-50',\n )}\n >\n {day.getDate()}\n </span>\n\n <div className=\"flex w-full min-h-0 flex-col gap-0.5\">\n {visible.map((event) => (\n <EventPill key={event.id} event={event} compact onDoubleClick={onEventDoubleClick} />\n ))}\n {overflow > 0 && (\n <span className=\"px-1 text-[10px] text-ds-3\">+{overflow} more</span>\n )}\n </div>\n </Button>\n );\n })}\n </div>\n </div>\n );\n};\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport { mergeClassNames } from '../../../../utils';\n\nimport {\n getWeekDays,\n getEventsForDay,\n isSameDay,\n isToday,\n formatShortDate,\n formatHour,\n getEventTopPx,\n getEventHeightPx,\n GRID_START_HOUR,\n GRID_END_HOUR,\n HOUR_HEIGHT_PX,\n} from '../calendarUtils';\nimport { EventPill } from '../EventPill';\nimport { EVENT_LABEL_CONFIG } from '../types';\nimport type { CalendarEvent } from '../types';\n\ninterface WeekViewProps {\n currentDate: Date;\n events: CalendarEvent[];\n onEventDoubleClick?: (event: CalendarEvent) => void;\n}\n\nconst HOURS = Array.from({ length: GRID_END_HOUR - GRID_START_HOUR }, (_, i) => GRID_START_HOUR + i);\nconst DAY_ABBR = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\nexport const WeekView: FC<WeekViewProps> = ({ currentDate, events, onEventDoubleClick }) => {\n const weekDays = getWeekDays(currentDate);\n\n return (\n <div className=\"flex flex-col flex-1 overflow-hidden\">\n {/* Column headers */}\n <div className=\"grid border-b border-ds-border-3\" style={{ gridTemplateColumns: '56px repeat(7, 1fr)' }}>\n <div className=\"border-e border-ds-border-3\" />\n {weekDays.map((day) => {\n const today = isToday(day);\n return (\n <div\n key={day.toISOString()}\n className={mergeClassNames(\n 'flex flex-col items-center py-2 text-xs font-medium border-e border-ds-border-3 last:border-e-0',\n today ? 'bg-ds-accent-subtle/30 text-ds-accent' : 'text-ds-3',\n )}\n >\n <span>{DAY_ABBR[day.getDay()]}</span>\n <span className={mergeClassNames(\n 'mt-0.5 flex h-6 w-6 items-center justify-center rounded-full font-semibold',\n today ? 'bg-ds-accent text-ds-on-accent' : 'text-ds-2',\n )}>\n {formatShortDate(day).split('/')[1]}\n </span>\n </div>\n );\n })}\n </div>\n\n {/* All-Day row */}\n <div className=\"grid border-b border-ds-border-3\" style={{ gridTemplateColumns: '56px repeat(7, 1fr)', minHeight: 40 }}>\n <div className=\"flex items-center justify-end pe-2 text-[10px] text-ds-3 border-e border-ds-border-3\">All-day</div>\n {weekDays.map((day) => {\n const allDayEvents = getEventsForDay(events, day).filter((e) => e.allDay);\n return (\n <div key={day.toISOString()} className=\"flex flex-col gap-0.5 p-0.5 border-e border-ds-border-3 last:border-e-0\">\n {allDayEvents.map((e) => <EventPill key={e.id} event={e} compact onDoubleClick={onEventDoubleClick} />)}\n </div>\n );\n })}\n </div>\n\n {/* Time grid */}\n <div className=\"flex-1 overflow-y-auto\">\n <div className=\"grid relative\" style={{ gridTemplateColumns: '56px repeat(7, 1fr)', height: HOURS.length * HOUR_HEIGHT_PX }}>\n {/* Hour labels */}\n <div className=\"relative border-e border-ds-border-3\">\n {HOURS.map((h) => (\n <div key={h} className=\"absolute w-full flex justify-end pe-2\" style={{ top: (h - GRID_START_HOUR) * HOUR_HEIGHT_PX - 8 }}>\n <span className=\"text-[10px] text-ds-3\">{formatHour(h)}</span>\n </div>\n ))}\n </div>\n\n {/* Day columns */}\n {weekDays.map((day) => {\n const today = isToday(day);\n const timedEvents = getEventsForDay(events, day).filter((e) => !e.allDay);\n return (\n <div\n key={day.toISOString()}\n className={mergeClassNames(\n 'relative border-e border-ds-border-3 last:border-e-0',\n today ? 'bg-ds-accent-subtle/20' : '',\n )}\n >\n {HOURS.map((h) => (\n <div\n key={h}\n className=\"border-t border-ds-border-3/50\"\n style={{ height: HOUR_HEIGHT_PX }}\n />\n ))}\n {timedEvents.map((event) => {\n const cfg = EVENT_LABEL_CONFIG[event.label];\n return (\n <div\n key={event.id}\n className=\"absolute inset-x-0.5 cursor-pointer overflow-hidden rounded px-1.5 py-1 text-xs font-medium leading-tight select-none\"\n style={{\n top: getEventTopPx(event),\n height: getEventHeightPx(event),\n backgroundColor: cfg.bg,\n color: cfg.color,\n }}\n title={event.title}\n onDoubleClick={() => onEventDoubleClick?.(event)}\n >\n {event.title}\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n};\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport { getEventsForDay, formatHour, getEventTopPx, getEventHeightPx, GRID_START_HOUR, GRID_END_HOUR, HOUR_HEIGHT_PX } from '../calendarUtils';\nimport { EVENT_LABEL_CONFIG } from '../types';\nimport type { CalendarEvent } from '../types';\n\ninterface DayViewProps {\n currentDate: Date;\n events: CalendarEvent[];\n onEventDoubleClick?: (event: CalendarEvent) => void;\n}\n\nconst HOURS = Array.from({ length: GRID_END_HOUR - GRID_START_HOUR }, (_, i) => GRID_START_HOUR + i);\n\nexport const DayView: FC<DayViewProps> = ({ currentDate, events, onEventDoubleClick }) => {\n const dayName = currentDate.toLocaleDateString('en-US', { weekday: 'long' });\n const allDayEvents = getEventsForDay(events, currentDate).filter((e) => e.allDay);\n const timedEvents = getEventsForDay(events, currentDate).filter((e) => !e.allDay);\n\n return (\n <div className=\"flex flex-col flex-1 overflow-hidden\">\n {/* Column header */}\n <div className=\"grid border-b border-ds-border-3\" style={{ gridTemplateColumns: '56px 1fr' }}>\n <div className=\"border-e border-ds-border-3\" />\n <div className=\"flex flex-col items-center py-2 text-xs font-medium text-ds-accent bg-ds-accent-subtle/30\">\n <span>{dayName}</span>\n <span className=\"mt-0.5 flex h-6 w-6 items-center justify-center rounded-full bg-ds-accent text-ds-on-accent font-semibold\">\n {currentDate.getDate()}\n </span>\n </div>\n </div>\n\n {/* All-Day row */}\n <div className=\"grid border-b border-ds-border-3\" style={{ gridTemplateColumns: '56px 1fr', minHeight: 40 }}>\n <div className=\"flex items-center justify-end pe-2 text-[10px] text-ds-3 border-e border-ds-border-3\">\n All-day\n </div>\n <div className=\"flex flex-col gap-0.5 p-1\">\n {allDayEvents.map((e) => (\n <div\n key={e.id}\n className=\"cursor-pointer truncate rounded px-2 py-1 text-xs font-medium select-none\"\n style={{ backgroundColor: EVENT_LABEL_CONFIG[e.label].bg, color: EVENT_LABEL_CONFIG[e.label].color }}\n title={e.title}\n onDoubleClick={() => onEventDoubleClick?.(e)}\n >\n {e.title}\n </div>\n ))}\n </div>\n </div>\n\n {/* Time grid */}\n <div className=\"flex-1 overflow-y-auto\">\n <div className=\"grid relative\" style={{ gridTemplateColumns: '56px 1fr', height: HOURS.length * HOUR_HEIGHT_PX }}>\n {/* Hour labels */}\n <div className=\"relative border-e border-ds-border-3\">\n {HOURS.map((h) => (\n <div key={h} className=\"absolute w-full flex justify-end pe-2\" style={{ top: (h - GRID_START_HOUR) * HOUR_HEIGHT_PX - 8 }}>\n <span className=\"text-[10px] text-ds-3\">{formatHour(h)}</span>\n </div>\n ))}\n </div>\n\n {/* Day column */}\n <div className=\"relative bg-ds-accent-subtle/20\">\n {HOURS.map((h) => (\n <div key={h} className=\"border-t border-ds-border-3/50\" style={{ height: HOUR_HEIGHT_PX }} />\n ))}\n {timedEvents.map((event) => {\n const cfg = EVENT_LABEL_CONFIG[event.label];\n return (\n <div\n key={event.id}\n className=\"absolute inset-x-1 cursor-pointer overflow-hidden rounded px-2 py-1 text-xs font-medium leading-tight select-none\"\n style={{\n top: getEventTopPx(event),\n height: getEventHeightPx(event),\n backgroundColor: cfg.bg,\n color: cfg.color,\n }}\n title={event.title}\n onDoubleClick={() => onEventDoubleClick?.(event)}\n >\n {event.title}\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </div>\n );\n};\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport {\n startOfMonth,\n endOfMonth,\n isSameDay,\n formatListDate,\n formatListDayName,\n formatTime,\n} from '../calendarUtils';\nimport { EVENT_LABEL_CONFIG } from '../types';\nimport type { CalendarEvent } from '../types';\n\ninterface ListViewProps {\n currentDate: Date;\n events: CalendarEvent[];\n onEventDoubleClick?: (event: CalendarEvent) => void;\n}\n\nexport const ListView: FC<ListViewProps> = ({ currentDate, events, onEventDoubleClick }) => {\n const monthStart = startOfMonth(currentDate);\n const monthEnd = endOfMonth(currentDate);\n\n const monthEvents = events\n .filter((e) => e.start <= monthEnd && e.end >= monthStart)\n .sort((a, b) => a.start.getTime() - b.start.getTime());\n\n // Group by day\n const groups: { day: Date; events: CalendarEvent[] }[] = [];\n for (const event of monthEvents) {\n const existing = groups.find((g) => isSameDay(g.day, event.start));\n if (existing) {\n existing.events.push(event);\n } else {\n groups.push({ day: event.start, events: [event] });\n }\n }\n\n if (groups.length === 0) {\n return (\n <div className=\"flex flex-1 items-center justify-center text-sm text-ds-3\">\n No events this month\n </div>\n );\n }\n\n return (\n <div className=\"flex-1 overflow-y-auto\">\n {groups.map(({ day, events: dayEvents }) => (\n <div key={day.toISOString()}>\n {/* Date header */}\n <div className=\"flex items-center justify-between bg-ds-surface-2 px-4 py-2 border-b border-ds-border-3\">\n <span className=\"text-sm font-semibold text-ds-1\">{formatListDate(day)}</span>\n <span className=\"text-xs font-medium text-ds-3\">{formatListDayName(day)}</span>\n </div>\n\n {/* Events */}\n {dayEvents.map((event) => {\n const cfg = EVENT_LABEL_CONFIG[event.label];\n const timeLabel = event.allDay\n ? 'all-day'\n : `${formatTime(event.start)}–${formatTime(event.end)}`;\n return (\n <div\n key={event.id}\n className=\"flex cursor-pointer select-none items-center gap-3 border-b border-ds-border-3 px-4 py-3 transition-colors hover:bg-ds-surface-2\"\n onDoubleClick={() => onEventDoubleClick?.(event)}\n title=\"Double-click to view details\"\n >\n <span className=\"w-28 shrink-0 text-xs text-ds-3\">{timeLabel}</span>\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: cfg.color }}\n aria-hidden=\"true\"\n />\n <span className=\"truncate text-sm text-ds-1\">{event.title}</span>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n","\"use client\";\n\nimport { type FC, useEffect, useState } from 'react';\n\nimport { Button } from '../../forms/button';\nimport { Input } from '../../forms/input';\nimport { Select } from '../../forms/select';\nimport { Switch } from '../../forms/switch';\nimport { Textarea } from '../../forms/textarea';\nimport { Drawer } from '../../overlays/drawer/Drawer';\n\nimport { generateId } from './calendarUtils';\nimport { EVENT_LABEL_CONFIG, ALL_LABELS } from './types';\nimport type { CalendarEvent, EventLabel } from './types';\n\ninterface AddEventPanelProps {\n isOpen: boolean;\n onClose: () => void;\n onSubmit: (event: CalendarEvent) => void;\n initialDate?: Date;\n}\n\nfunction toDateInput(d: Date): string {\n return d.toISOString().split('T')[0] ?? '';\n}\n\nconst labelOptions = ALL_LABELS.map((l) => ({\n value: l,\n label: EVENT_LABEL_CONFIG[l].display,\n}));\n\nexport const AddEventPanel: FC<AddEventPanelProps> = ({ isOpen, onClose, onSubmit, initialDate }) => {\n const [title, setTitle] = useState('');\n const [label, setLabel] = useState<EventLabel>('personal');\n const [startDate, setStartDate] = useState('');\n const [endDate, setEndDate] = useState('');\n const [allDay, setAllDay] = useState(true);\n const [url, setUrl] = useState('');\n const [guests, setGuests] = useState('');\n const [location, setLocation] = useState('');\n const [description, setDescription] = useState('');\n\n useEffect(() => {\n if (isOpen) {\n const today = initialDate ?? new Date();\n setTitle('');\n setLabel('personal');\n setStartDate(toDateInput(today));\n setEndDate(toDateInput(today));\n setAllDay(true);\n setUrl('');\n setGuests('');\n setLocation('');\n setDescription('');\n }\n }, [isOpen, initialDate]);\n\n const handleSubmit = () => {\n if (!title.trim()) return;\n const start = new Date(startDate);\n const end = new Date(endDate);\n end.setHours(23, 59, 59, 999);\n const event: CalendarEvent = {\n id: generateId(),\n title: title.trim(),\n start,\n end,\n allDay,\n label,\n url: url.trim() || undefined,\n guests: guests.trim() || undefined,\n location: location.trim() || undefined,\n description: description.trim() || undefined,\n };\n onSubmit(event);\n };\n\n return (\n <Drawer\n open={isOpen}\n onOpenChange={(o) => { if (!o) onClose(); }}\n title=\"Add Event\"\n position=\"right\"\n footer={\n <div className=\"flex gap-2\">\n <Button variant=\"primary\" className=\"flex-1\" onClick={handleSubmit} disabled={!title.trim()}>\n Submit\n </Button>\n <Button variant=\"secondary\" onClick={onClose}>\n Cancel\n </Button>\n </div>\n }\n >\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-ds-2\">Title</label>\n <Input placeholder=\"Meeting with Jane\" value={title} onChange={(e) => setTitle(e.target.value)} />\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-ds-2\">Label</label>\n <Select\n options={labelOptions}\n value={label}\n onChange={(e) => setLabel(e.target.value as EventLabel)}\n placeholder=\"Select Event Label\"\n />\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-ds-2\">Start date</label>\n <Input type=\"date\" value={startDate} onChange={(e) => setStartDate(e.target.value)} />\n </div>\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-ds-2\">End date</label>\n <Input type=\"date\" value={endDate} onChange={(e) => setEndDate(e.target.value)} />\n </div>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-xs font-medium text-ds-2\">All day</span>\n <Switch checked={allDay} onChange={(e) => setAllDay(e.target.checked)} aria-label=\"All day event\" />\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-ds-2\">Event URL</label>\n <Input placeholder=\"https://event.com/meeting\" value={url} onChange={(e) => setUrl(e.target.value)} />\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-ds-2\">Guests</label>\n <Input placeholder=\"Select guests\" value={guests} onChange={(e) => setGuests(e.target.value)} />\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-ds-2\">Location</label>\n <Input placeholder=\"Meeting room\" value={location} onChange={(e) => setLocation(e.target.value)} />\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-ds-2\">Description</label>\n <Textarea\n placeholder=\"Add description\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n className=\"h-24 resize-none\"\n />\n </div>\n </div>\n </Drawer>\n );\n};\n","\"use client\";\n\nimport type { FC } from 'react';\n\nimport { Drawer } from '../../overlays/drawer/Drawer';\n\nimport { formatDayFull, formatTime } from './calendarUtils';\nimport { EVENT_LABEL_CONFIG } from './types';\nimport type { CalendarEvent } from './types';\n\ninterface EventDetailDrawerProps {\n event: CalendarEvent | null;\n open: boolean;\n onClose: () => void;\n}\n\nexport const EventDetailDrawer: FC<EventDetailDrawerProps> = ({ event, open, onClose }) => {\n if (!event) return null;\n const cfg = EVENT_LABEL_CONFIG[event.label];\n const timeStr = event.allDay\n ? 'All day'\n : `${formatTime(event.start)} – ${formatTime(event.end)}`;\n\n return (\n <Drawer\n open={open}\n onOpenChange={(o) => { if (!o) onClose(); }}\n title={event.title}\n position=\"right\"\n >\n <div className=\"flex flex-col gap-5\">\n <span\n className=\"inline-flex w-fit items-center gap-1.5 rounded-full px-3 py-1 text-xs font-semibold\"\n style={{ backgroundColor: cfg.bg, color: cfg.color }}\n >\n <span className=\"h-1.5 w-1.5 rounded-full\" style={{ backgroundColor: cfg.color }} aria-hidden=\"true\" />\n {cfg.display}\n </span>\n\n <div className=\"flex flex-col gap-1\">\n <p className=\"text-xs font-semibold uppercase tracking-wider text-ds-3\">Date</p>\n <p className=\"text-sm text-ds-1\">{formatDayFull(event.start)}</p>\n </div>\n\n <div className=\"flex flex-col gap-1\">\n <p className=\"text-xs font-semibold uppercase tracking-wider text-ds-3\">Time</p>\n <p className=\"text-sm text-ds-1\">{timeStr}</p>\n </div>\n\n {event.location && (\n <div className=\"flex flex-col gap-1\">\n <p className=\"text-xs font-semibold uppercase tracking-wider text-ds-3\">Location</p>\n <p className=\"text-sm text-ds-1\">{event.location}</p>\n </div>\n )}\n\n {event.guests && (\n <div className=\"flex flex-col gap-1\">\n <p className=\"text-xs font-semibold uppercase tracking-wider text-ds-3\">Guests</p>\n <p className=\"text-sm text-ds-1\">{event.guests}</p>\n </div>\n )}\n\n {event.url && (\n <div className=\"flex flex-col gap-1\">\n <p className=\"text-xs font-semibold uppercase tracking-wider text-ds-3\">Event URL</p>\n <p className=\"break-all text-sm text-ds-accent\">{event.url}</p>\n </div>\n )}\n\n {event.description && (\n <div className=\"flex flex-col gap-1\">\n <p className=\"text-xs font-semibold uppercase tracking-wider text-ds-3\">Description</p>\n <p className=\"text-sm leading-relaxed text-ds-2\">{event.description}</p>\n </div>\n )}\n </div>\n </Drawer>\n );\n};\n","\"use client\";\n\nimport { useState } from 'react';\n\nimport { Drawer } from '../../overlays/drawer/Drawer';\nimport { mergeClassNames } from '../../../utils';\n\nimport { addDays, addMonths, addWeeks } from './calendarUtils';\nimport { CalendarSidebar, CalendarSidebarContent } from './CalendarSidebar';\nimport { CalendarHeader } from './CalendarHeader';\nimport { MonthView } from './views/MonthView';\nimport { WeekView } from './views/WeekView';\nimport { DayView } from './views/DayView';\nimport { ListView } from './views/ListView';\nimport { AddEventPanel } from './AddEventPanel';\nimport { EventDetailDrawer } from './EventDetailDrawer';\nimport { ALL_LABELS } from './types';\nimport type { CalendarEvent, CalendarView, EventLabel, EventCalendarProps } from './types';\n\nexport const EventCalendar = ({\n initialEvents = [],\n initialView = 'month',\n initialDate,\n onEventAdd,\n className,\n}: EventCalendarProps) => {\n const [view, setView] = useState<CalendarView>(initialView);\n const [currentDate, setCurrentDate] = useState<Date>(initialDate ?? new Date());\n const [events, setEvents] = useState<CalendarEvent[]>(initialEvents);\n const [activeLabels, setActiveLabels] = useState<EventLabel[]>([...ALL_LABELS]);\n const [isAddPanelOpen, setIsAddPanelOpen] = useState(false);\n const [isSidebarDrawerOpen, setIsSidebarDrawerOpen] = useState(false);\n const [selectedEvent, setSelectedEvent] = useState<CalendarEvent | null>(null);\n const [isEventDrawerOpen, setIsEventDrawerOpen] = useState(false);\n\n const handlePrev = () => {\n if (view === 'month' || view === 'list') setCurrentDate((d) => addMonths(d, -1));\n else if (view === 'week') setCurrentDate((d) => addWeeks(d, -1));\n else setCurrentDate((d) => addDays(d, -1));\n };\n\n const handleNext = () => {\n if (view === 'month' || view === 'list') setCurrentDate((d) => addMonths(d, 1));\n else if (view === 'week') setCurrentDate((d) => addWeeks(d, 1));\n else setCurrentDate((d) => addDays(d, 1));\n };\n\n const handleEventSubmit = (event: CalendarEvent) => {\n setEvents((prev) => [...prev, event]);\n onEventAdd?.(event);\n setIsAddPanelOpen(false);\n };\n\n const handleEventDoubleClick = (event: CalendarEvent) => {\n setSelectedEvent(event);\n setIsEventDrawerOpen(true);\n };\n\n const filteredEvents = events.filter((e) => activeLabels.includes(e.label));\n\n const handleDayClick = (day: Date) => {\n setCurrentDate(day);\n setView('day');\n };\n\n const sidebarProps = {\n currentDate,\n onDateChange: (d: Date) => setCurrentDate(d),\n onMonthChange: (d: Date) => setCurrentDate(d),\n activeLabels,\n onFiltersChange: setActiveLabels,\n onAddEvent: () => {\n setIsSidebarDrawerOpen(false);\n setIsAddPanelOpen(true);\n },\n };\n\n return (\n <div className={mergeClassNames('flex h-full overflow-hidden rounded-xl border border-ds-border-3 bg-ds-surface-1', className)}>\n {/* Inline sidebar — hidden on mobile, visible on lg+ */}\n <CalendarSidebar {...sidebarProps} />\n\n {/* Sidebar Drawer — mobile only */}\n <Drawer\n open={isSidebarDrawerOpen}\n onOpenChange={setIsSidebarDrawerOpen}\n title=\"Calendar\"\n position=\"left\"\n >\n <CalendarSidebarContent {...sidebarProps} />\n </Drawer>\n\n <main className=\"flex flex-1 flex-col overflow-hidden\">\n <CalendarHeader\n view={view}\n currentDate={currentDate}\n onPrev={handlePrev}\n onNext={handleNext}\n onViewChange={setView}\n onSidebarToggle={() => setIsSidebarDrawerOpen(true)}\n />\n\n {view === 'month' && (\n <MonthView\n currentDate={currentDate}\n events={filteredEvents}\n onDayClick={handleDayClick}\n onEventDoubleClick={handleEventDoubleClick}\n />\n )}\n {view === 'week' && (\n <WeekView\n currentDate={currentDate}\n events={filteredEvents}\n onEventDoubleClick={handleEventDoubleClick}\n />\n )}\n {view === 'day' && (\n <DayView\n currentDate={currentDate}\n events={filteredEvents}\n onEventDoubleClick={handleEventDoubleClick}\n />\n )}\n {view === 'list' && (\n <ListView\n currentDate={currentDate}\n events={filteredEvents}\n onEventDoubleClick={handleEventDoubleClick}\n />\n )}\n </main>\n\n <AddEventPanel\n isOpen={isAddPanelOpen}\n onClose={() => setIsAddPanelOpen(false)}\n onSubmit={handleEventSubmit}\n initialDate={currentDate}\n />\n\n <EventDetailDrawer\n event={selectedEvent}\n open={isEventDrawerOpen}\n onClose={() => setIsEventDrawerOpen(false)}\n />\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -158,4 +158,4 @@ var InputGroup = ({ columns = 2, children, className = "" }) => /* @__PURE__ */
|
|
|
158
158
|
//#endregion
|
|
159
159
|
export { FormMessage as a, FormField as i, FormActions as n, FormSection as o, FormDescription as r, InputGroup as s, Form as t };
|
|
160
160
|
|
|
161
|
-
//# sourceMappingURL=form-
|
|
161
|
+
//# sourceMappingURL=form-CDc9UM3r.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-
|
|
1
|
+
{"version":3,"file":"form-CDc9UM3r.mjs","names":[],"sources":["../../src/components/forms/form/Form.tsx"],"sourcesContent":["import { Children, cloneElement, isValidElement, useId } from \"react\";\nimport type { ReactElement } from \"react\";\n\nimport type {\n FormProps,\n FormSectionProps,\n FormFieldProps,\n FormActionsProps,\n InputGroupProps,\n FormDescriptionProps,\n FormMessageProps,\n} from \"./types\";\n\nconst cx = (...classes: Array<string | false | undefined>) =>\n classes.filter(Boolean).join(\" \").replace(/\\s+/g, \" \").trim();\n\nconst gapClassMap: Record<NonNullable<FormProps[\"gap\"]>, string> = {\n sm: \"space-y-4\",\n md: \"space-y-6\",\n lg: \"space-y-8\",\n};\n\nconst sectionColumnsMap: Record<\n NonNullable<FormSectionProps[\"columns\"]>,\n string\n> = {\n 1: \"space-y-4\",\n 2: \"grid grid-cols-2 gap-4\",\n 3: \"grid grid-cols-3 gap-4\",\n};\n\nconst inputGroupMap: Record<NonNullable<InputGroupProps[\"columns\"]>, string> = {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-2\",\n 3: \"grid-cols-3\",\n 4: \"grid-cols-4\",\n};\n\nconst actionsAlignMap: Record<\n NonNullable<FormActionsProps[\"align\"]>,\n string\n> = {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n};\n\nconst messageIntentMap: Record<\n NonNullable<FormMessageProps[\"intent\"]>,\n string\n> = {\n default: \"text-ds-2\",\n error: \"text-destructive\",\n success: \"text-success\",\n};\n\nconst sanitizeId = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n\nexport const Form = ({\n title,\n description,\n gap = \"lg\",\n children,\n className = \"\",\n ...props\n}: FormProps) => {\n return (\n <form\n className={cx(\n \"w-full space-y-6 rounded-lg border border-ds-border-2 bg-ds-surface-1 p-6\",\n className,\n )}\n {...props}\n >\n {(title || description) && (\n <div className=\"space-y-2\">\n {title && (\n <h2 className=\"text-xl font-semibold text-ds-1\">{title}</h2>\n )}\n {description && <p className=\"text-sm text-ds-2\">{description}</p>}\n </div>\n )}\n <div className={gapClassMap[gap]}>{children}</div>\n </form>\n );\n};\n\nexport const FormSection = ({\n title,\n description,\n columns = 1,\n children,\n className = \"\",\n}: FormSectionProps) => {\n return (\n <section className={cx(\"space-y-4\", className)}>\n {(title || description) && (\n <header className=\"space-y-1\">\n {title && (\n <h3 className=\"text-base font-medium text-ds-1\">{title}</h3>\n )}\n {description && <p className=\"text-sm text-ds-2\">{description}</p>}\n </header>\n )}\n <div className={sectionColumnsMap[columns] || sectionColumnsMap[1]}>\n {children}\n </div>\n </section>\n );\n};\n\nexport const FormDescription = ({\n children,\n className = \"\",\n id,\n}: FormDescriptionProps) => (\n <p id={id} className={cx(\"text-sm text-ds-2\", className)}>\n {children}\n </p>\n);\n\nexport const FormMessage = ({\n children,\n intent = \"default\",\n className = \"\",\n id,\n}: FormMessageProps) => (\n <p\n id={id}\n role={intent === \"error\" ? \"alert\" : \"status\"}\n className={cx(\"text-sm\", messageIntentMap[intent], className)}\n >\n {children}\n </p>\n);\n\nexport const FormField = ({\n label,\n description,\n error,\n required,\n htmlFor,\n helperAction,\n layout = \"stacked\",\n children,\n className = \"\",\n}: FormFieldProps) => {\n const autoId = useId();\n const fieldId = sanitizeId(htmlFor ?? autoId);\n const descriptionId = description ? `${fieldId}-description` : undefined;\n const errorId = error ? `${fieldId}-error` : undefined;\n\n const controls = Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const element = child as ReactElement<Record<string, unknown>>;\n const currentDescribedBy = element.props?.[\"aria-describedby\"] as\n | string\n | undefined;\n const describedBy = [currentDescribedBy, descriptionId, errorId]\n .filter(Boolean)\n .join(\" \")\n .trim();\n\n return cloneElement(element, {\n id: element.props?.id ?? fieldId,\n \"aria-describedby\": describedBy || undefined,\n \"aria-invalid\": element.props?.[\"aria-invalid\"] ?? Boolean(error),\n });\n });\n\n const labelNode = (\n <div className=\"flex items-center justify-between gap-2\">\n <label htmlFor={fieldId} className=\"text-sm font-medium text-ds-1\">\n {label}\n {required && <span className=\"ms-1 text-destructive\">*</span>}\n </label>\n {helperAction && <div className=\"text-xs text-ds-2\">{helperAction}</div>}\n </div>\n );\n\n if (layout === \"inline\") {\n return (\n <div className={cx(\"flex flex-wrap items-start gap-6\", className)}>\n <div className=\"min-w-[200px] space-y-1\">\n {labelNode}\n {description && (\n <FormDescription id={descriptionId}>{description}</FormDescription>\n )}\n </div>\n <div className=\"flex-1 space-y-2\">\n {controls}\n {error && (\n <FormMessage id={errorId} intent=\"error\">\n {error}\n </FormMessage>\n )}\n </div>\n </div>\n );\n }\n\n return (\n <div className={cx(\"space-y-2\", className)}>\n {labelNode}\n {description && (\n <FormDescription id={descriptionId}>{description}</FormDescription>\n )}\n <div className=\"space-y-2\">\n {controls}\n {error && (\n <FormMessage id={errorId} intent=\"error\">\n {error}\n </FormMessage>\n )}\n </div>\n </div>\n );\n};\n\nexport const FormActions = ({\n children,\n align = \"end\",\n className = \"\",\n}: FormActionsProps) => (\n <div\n className={cx(\"flex flex-wrap gap-3\", actionsAlignMap[align], className)}\n >\n {children}\n </div>\n);\n\nexport const InputGroup = ({\n columns = 2,\n children,\n className = \"\",\n}: InputGroupProps) => (\n <div className={cx(\"grid gap-4\", inputGroupMap[columns], className)}>\n {children}\n </div>\n);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-
|
|
1
|
+
{"version":3,"file":"form-DGwdlSW2.cjs","names":[],"sources":["../../src/components/forms/form/Form.tsx"],"sourcesContent":["import { Children, cloneElement, isValidElement, useId } from \"react\";\nimport type { ReactElement } from \"react\";\n\nimport type {\n FormProps,\n FormSectionProps,\n FormFieldProps,\n FormActionsProps,\n InputGroupProps,\n FormDescriptionProps,\n FormMessageProps,\n} from \"./types\";\n\nconst cx = (...classes: Array<string | false | undefined>) =>\n classes.filter(Boolean).join(\" \").replace(/\\s+/g, \" \").trim();\n\nconst gapClassMap: Record<NonNullable<FormProps[\"gap\"]>, string> = {\n sm: \"space-y-4\",\n md: \"space-y-6\",\n lg: \"space-y-8\",\n};\n\nconst sectionColumnsMap: Record<\n NonNullable<FormSectionProps[\"columns\"]>,\n string\n> = {\n 1: \"space-y-4\",\n 2: \"grid grid-cols-2 gap-4\",\n 3: \"grid grid-cols-3 gap-4\",\n};\n\nconst inputGroupMap: Record<NonNullable<InputGroupProps[\"columns\"]>, string> = {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-2\",\n 3: \"grid-cols-3\",\n 4: \"grid-cols-4\",\n};\n\nconst actionsAlignMap: Record<\n NonNullable<FormActionsProps[\"align\"]>,\n string\n> = {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n};\n\nconst messageIntentMap: Record<\n NonNullable<FormMessageProps[\"intent\"]>,\n string\n> = {\n default: \"text-ds-2\",\n error: \"text-destructive\",\n success: \"text-success\",\n};\n\nconst sanitizeId = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n\nexport const Form = ({\n title,\n description,\n gap = \"lg\",\n children,\n className = \"\",\n ...props\n}: FormProps) => {\n return (\n <form\n className={cx(\n \"w-full space-y-6 rounded-lg border border-ds-border-2 bg-ds-surface-1 p-6\",\n className,\n )}\n {...props}\n >\n {(title || description) && (\n <div className=\"space-y-2\">\n {title && (\n <h2 className=\"text-xl font-semibold text-ds-1\">{title}</h2>\n )}\n {description && <p className=\"text-sm text-ds-2\">{description}</p>}\n </div>\n )}\n <div className={gapClassMap[gap]}>{children}</div>\n </form>\n );\n};\n\nexport const FormSection = ({\n title,\n description,\n columns = 1,\n children,\n className = \"\",\n}: FormSectionProps) => {\n return (\n <section className={cx(\"space-y-4\", className)}>\n {(title || description) && (\n <header className=\"space-y-1\">\n {title && (\n <h3 className=\"text-base font-medium text-ds-1\">{title}</h3>\n )}\n {description && <p className=\"text-sm text-ds-2\">{description}</p>}\n </header>\n )}\n <div className={sectionColumnsMap[columns] || sectionColumnsMap[1]}>\n {children}\n </div>\n </section>\n );\n};\n\nexport const FormDescription = ({\n children,\n className = \"\",\n id,\n}: FormDescriptionProps) => (\n <p id={id} className={cx(\"text-sm text-ds-2\", className)}>\n {children}\n </p>\n);\n\nexport const FormMessage = ({\n children,\n intent = \"default\",\n className = \"\",\n id,\n}: FormMessageProps) => (\n <p\n id={id}\n role={intent === \"error\" ? \"alert\" : \"status\"}\n className={cx(\"text-sm\", messageIntentMap[intent], className)}\n >\n {children}\n </p>\n);\n\nexport const FormField = ({\n label,\n description,\n error,\n required,\n htmlFor,\n helperAction,\n layout = \"stacked\",\n children,\n className = \"\",\n}: FormFieldProps) => {\n const autoId = useId();\n const fieldId = sanitizeId(htmlFor ?? autoId);\n const descriptionId = description ? `${fieldId}-description` : undefined;\n const errorId = error ? `${fieldId}-error` : undefined;\n\n const controls = Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const element = child as ReactElement<Record<string, unknown>>;\n const currentDescribedBy = element.props?.[\"aria-describedby\"] as\n | string\n | undefined;\n const describedBy = [currentDescribedBy, descriptionId, errorId]\n .filter(Boolean)\n .join(\" \")\n .trim();\n\n return cloneElement(element, {\n id: element.props?.id ?? fieldId,\n \"aria-describedby\": describedBy || undefined,\n \"aria-invalid\": element.props?.[\"aria-invalid\"] ?? Boolean(error),\n });\n });\n\n const labelNode = (\n <div className=\"flex items-center justify-between gap-2\">\n <label htmlFor={fieldId} className=\"text-sm font-medium text-ds-1\">\n {label}\n {required && <span className=\"ms-1 text-destructive\">*</span>}\n </label>\n {helperAction && <div className=\"text-xs text-ds-2\">{helperAction}</div>}\n </div>\n );\n\n if (layout === \"inline\") {\n return (\n <div className={cx(\"flex flex-wrap items-start gap-6\", className)}>\n <div className=\"min-w-[200px] space-y-1\">\n {labelNode}\n {description && (\n <FormDescription id={descriptionId}>{description}</FormDescription>\n )}\n </div>\n <div className=\"flex-1 space-y-2\">\n {controls}\n {error && (\n <FormMessage id={errorId} intent=\"error\">\n {error}\n </FormMessage>\n )}\n </div>\n </div>\n );\n }\n\n return (\n <div className={cx(\"space-y-2\", className)}>\n {labelNode}\n {description && (\n <FormDescription id={descriptionId}>{description}</FormDescription>\n )}\n <div className=\"space-y-2\">\n {controls}\n {error && (\n <FormMessage id={errorId} intent=\"error\">\n {error}\n </FormMessage>\n )}\n </div>\n </div>\n );\n};\n\nexport const FormActions = ({\n children,\n align = \"end\",\n className = \"\",\n}: FormActionsProps) => (\n <div\n className={cx(\"flex flex-wrap gap-3\", actionsAlignMap[align], className)}\n >\n {children}\n </div>\n);\n\nexport const InputGroup = ({\n columns = 2,\n children,\n className = \"\",\n}: InputGroupProps) => (\n <div className={cx(\"grid gap-4\", inputGroupMap[columns], className)}>\n {children}\n </div>\n);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradual-blur-
|
|
1
|
+
{"version":3,"file":"gradual-blur-BNYVlqb1.cjs","names":[],"sources":["../../src/components/effects/gradual-blur/GradualBlur.tsx"],"sourcesContent":["import { useRef, type ComponentType } from \"react\";\nimport { motion, type HTMLMotionProps } from \"framer-motion\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { GradualBlurProps } from \"./types\";\n\nexport const GradualBlur = ({\n children,\n duration = 0.5,\n delay = 0,\n blur = 8,\n triggerOnView = true,\n triggerOnce = true,\n threshold = 0.05,\n visible = false,\n direction = \"none\",\n distance = 20,\n className,\n as = \"div\",\n}: GradualBlurProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n const getInitialPosition = () => {\n switch (direction) {\n case \"top\":\n return { y: -distance };\n case \"bottom\":\n return { y: distance };\n case \"left\":\n return { x: -distance };\n case \"right\":\n return { x: distance };\n default:\n return { x: 0, y: 0 };\n }\n };\n\n const initialPosition = getInitialPosition();\n\n const variants = {\n hidden: {\n opacity: 0,\n filter: `blur(${blur}px)`,\n ...initialPosition,\n },\n visible: {\n opacity: 1,\n filter: \"blur(0px)\",\n x: 0,\n y: 0,\n },\n };\n\n const MotionComponent = motion.create(as as string) as ComponentType<\n HTMLMotionProps<\"div\">\n >;\n\n return (\n <MotionComponent\n ref={ref}\n variants={variants}\n initial=\"hidden\"\n animate={!triggerOnView ? (visible ? \"visible\" : \"hidden\") : undefined}\n whileInView={triggerOnView ? \"visible\" : undefined}\n viewport={{\n once: triggerOnce,\n amount: threshold,\n margin: \"0px 0px -50px 0px\", // Slight bottom margin to trigger earlier\n }}\n transition={{\n duration,\n delay,\n ease: \"easeOut\",\n filter: { duration: duration },\n opacity: { duration: duration },\n }}\n className={mergeClassNames(\"relative\", className)}\n >\n {children}\n </MotionComponent>\n );\n};\n"],"mappings":";;;;;;AAKA,IAAa,eAAe,EAC1B,UACA,WAAW,IACX,QAAQ,GACR,OAAO,GACP,gBAAgB,MAChB,cAAc,MACd,YAAY,KACZ,UAAU,OACV,YAAY,QACZ,WAAW,IACX,WACA,KAAK,YACiB;CACtB,MAAM,OAAA,GAAA,MAAA,QAA6B,KAAK;CAExC,MAAM,2BAA2B;AAC/B,UAAQ,WAAR;GACE,KAAK,MACH,QAAO,EAAE,GAAG,CAAC,UAAU;GACzB,KAAK,SACH,QAAO,EAAE,GAAG,UAAU;GACxB,KAAK,OACH,QAAO,EAAE,GAAG,CAAC,UAAU;GACzB,KAAK,QACH,QAAO,EAAE,GAAG,UAAU;GACxB,QACE,QAAO;IAAE,GAAG;IAAG,GAAG;IAAG;;;CAI3B,MAAM,kBAAkB,oBAAoB;CAE5C,MAAM,WAAW;EACf,QAAQ;GACN,SAAS;GACT,QAAQ,QAAQ,KAAK;GACrB,GAAG;GACJ;EACD,SAAS;GACP,SAAS;GACT,QAAQ;GACR,GAAG;GACH,GAAG;GACJ;EACF;AAMD,QACE,iBAAA,GAAA,kBAAA,KALsB,cAAA,OAAO,OAAO,GAKnC,EAAD;EACO;EACK;EACV,SAAQ;EACR,SAAS,CAAC,gBAAiB,UAAU,YAAY,WAAY,KAAA;EAC7D,aAAa,gBAAgB,YAAY,KAAA;EACzC,UAAU;GACR,MAAM;GACN,QAAQ;GACR,QAAQ;GACT;EACD,YAAY;GACV;GACA;GACA,MAAM;GACN,QAAQ,EAAY,UAAU;GAC9B,SAAS,EAAY,UAAU;GAChC;EACD,WAAW,cAAA,gBAAgB,YAAY,UAAU;EAEhD;EACe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradual-blur-
|
|
1
|
+
{"version":3,"file":"gradual-blur-Bw2KNmXb.mjs","names":[],"sources":["../../src/components/effects/gradual-blur/GradualBlur.tsx"],"sourcesContent":["import { useRef, type ComponentType } from \"react\";\nimport { motion, type HTMLMotionProps } from \"framer-motion\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { GradualBlurProps } from \"./types\";\n\nexport const GradualBlur = ({\n children,\n duration = 0.5,\n delay = 0,\n blur = 8,\n triggerOnView = true,\n triggerOnce = true,\n threshold = 0.05,\n visible = false,\n direction = \"none\",\n distance = 20,\n className,\n as = \"div\",\n}: GradualBlurProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n const getInitialPosition = () => {\n switch (direction) {\n case \"top\":\n return { y: -distance };\n case \"bottom\":\n return { y: distance };\n case \"left\":\n return { x: -distance };\n case \"right\":\n return { x: distance };\n default:\n return { x: 0, y: 0 };\n }\n };\n\n const initialPosition = getInitialPosition();\n\n const variants = {\n hidden: {\n opacity: 0,\n filter: `blur(${blur}px)`,\n ...initialPosition,\n },\n visible: {\n opacity: 1,\n filter: \"blur(0px)\",\n x: 0,\n y: 0,\n },\n };\n\n const MotionComponent = motion.create(as as string) as ComponentType<\n HTMLMotionProps<\"div\">\n >;\n\n return (\n <MotionComponent\n ref={ref}\n variants={variants}\n initial=\"hidden\"\n animate={!triggerOnView ? (visible ? \"visible\" : \"hidden\") : undefined}\n whileInView={triggerOnView ? \"visible\" : undefined}\n viewport={{\n once: triggerOnce,\n amount: threshold,\n margin: \"0px 0px -50px 0px\", // Slight bottom margin to trigger earlier\n }}\n transition={{\n duration,\n delay,\n ease: \"easeOut\",\n filter: { duration: duration },\n opacity: { duration: duration },\n }}\n className={mergeClassNames(\"relative\", className)}\n >\n {children}\n </MotionComponent>\n );\n};\n"],"mappings":";;;;;AAKA,IAAa,eAAe,EAC1B,UACA,WAAW,IACX,QAAQ,GACR,OAAO,GACP,gBAAgB,MAChB,cAAc,MACd,YAAY,KACZ,UAAU,OACV,YAAY,QACZ,WAAW,IACX,WACA,KAAK,YACiB;CACtB,MAAM,MAAM,OAAuB,KAAK;CAExC,MAAM,2BAA2B;AAC/B,UAAQ,WAAR;GACE,KAAK,MACH,QAAO,EAAE,GAAG,CAAC,UAAU;GACzB,KAAK,SACH,QAAO,EAAE,GAAG,UAAU;GACxB,KAAK,OACH,QAAO,EAAE,GAAG,CAAC,UAAU;GACzB,KAAK,QACH,QAAO,EAAE,GAAG,UAAU;GACxB,QACE,QAAO;IAAE,GAAG;IAAG,GAAG;IAAG;;;CAI3B,MAAM,kBAAkB,oBAAoB;CAE5C,MAAM,WAAW;EACf,QAAQ;GACN,SAAS;GACT,QAAQ,QAAQ,KAAK;GACrB,GAAG;GACJ;EACD,SAAS;GACP,SAAS;GACT,QAAQ;GACR,GAAG;GACH,GAAG;GACJ;EACF;AAMD,QACE,oBALsB,OAAO,OAAO,GAKnC,EAAD;EACO;EACK;EACV,SAAQ;EACR,SAAS,CAAC,gBAAiB,UAAU,YAAY,WAAY,KAAA;EAC7D,aAAa,gBAAgB,YAAY,KAAA;EACzC,UAAU;GACR,MAAM;GACN,QAAQ;GACR,QAAQ;GACT;EACD,YAAY;GACV;GACA;GACA,MAAM;GACN,QAAQ,EAAY,UAAU;GAC9B,SAAS,EAAY,UAAU;GAChC;EACD,WAAW,gBAAgB,YAAY,UAAU;EAEhD;EACe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card
|
|
1
|
+
{"version":3,"file":"hover-card-Dp6Y2h2J.cjs","names":[],"sources":["../../src/components/overlays/hover-card/HoverCard.tsx"],"sourcesContent":["import { forwardRef, useState, useCallback, useRef, useEffect } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\n\nexport type HoverCardPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\nexport type HoverCardAlign = \"start\" | \"center\" | \"end\";\n\nexport interface HoverCardProps {\n /** The trigger element */\n children: React.ReactNode;\n /** The content to display in the hover card */\n content: React.ReactNode;\n /** Position of the hover card relative to trigger */\n position?: HoverCardPosition;\n /** Alignment of the hover card */\n align?: HoverCardAlign;\n /** Delay before showing the card (ms) */\n openDelay?: number;\n /** Delay before hiding the card (ms) */\n closeDelay?: number;\n /** Whether the hover card is disabled */\n disabled?: boolean;\n /** Custom className for the card */\n className?: string;\n /** Custom className for the trigger wrapper */\n triggerClassName?: string;\n /** Whether to show an arrow */\n arrow?: boolean;\n /** Custom width for the card */\n width?: number | string;\n /** Max width for the card */\n maxWidth?: number | string;\n}\n\nconst positionStyles: Record<\n HoverCardPosition,\n Record<HoverCardAlign, string>\n> = {\n top: {\n start: \"bottom-full left-0 mb-2\",\n center: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\n end: \"bottom-full right-0 mb-2\",\n },\n bottom: {\n start: \"top-full left-0 mt-2\",\n center: \"top-full left-1/2 -translate-x-1/2 mt-2\",\n end: \"top-full right-0 mt-2\",\n },\n left: {\n start: \"right-full top-0 mr-2\",\n center: \"right-full top-1/2 -translate-y-1/2 mr-2\",\n end: \"right-full bottom-0 mr-2\",\n },\n right: {\n start: \"left-full top-0 ml-2\",\n center: \"left-full top-1/2 -translate-y-1/2 ml-2\",\n end: \"left-full bottom-0 ml-2\",\n },\n};\n\nconst arrowStyles: Record<HoverCardPosition, string> = {\n top: \"bottom-[-6px] left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-b-transparent border-t-ds-surface-1\",\n bottom:\n \"top-[-6px] left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-t-transparent border-b-ds-surface-1\",\n left: \"right-[-6px] top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-r-transparent border-l-ds-surface-1\",\n right:\n \"left-[-6px] top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-l-transparent border-r-ds-surface-1\",\n};\n\nconst motionVariants = {\n top: {\n initial: { opacity: 0, y: 5, scale: 0.98 },\n animate: { opacity: 1, y: 0, scale: 1 },\n exit: { opacity: 0, y: 5, scale: 0.98 },\n },\n bottom: {\n initial: { opacity: 0, y: -5, scale: 0.98 },\n animate: { opacity: 1, y: 0, scale: 1 },\n exit: { opacity: 0, y: -5, scale: 0.98 },\n },\n left: {\n initial: { opacity: 0, x: 5, scale: 0.98 },\n animate: { opacity: 1, x: 0, scale: 1 },\n exit: { opacity: 0, x: 5, scale: 0.98 },\n },\n right: {\n initial: { opacity: 0, x: -5, scale: 0.98 },\n animate: { opacity: 1, x: 0, scale: 1 },\n exit: { opacity: 0, x: -5, scale: 0.98 },\n },\n} as const;\n\nconst HoverCard = forwardRef<HTMLDivElement, HoverCardProps>(\n (\n {\n children,\n content,\n position = \"bottom\",\n align = \"center\",\n openDelay = 200,\n closeDelay = 150,\n disabled = false,\n className = \"\",\n triggerClassName = \"\",\n arrow = true,\n width,\n maxWidth = 320,\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const openTimeoutRef = useRef<any>(null);\n const closeTimeoutRef = useRef<any>(null);\n\n const clearTimeouts = useCallback(() => {\n if (openTimeoutRef.current) {\n clearTimeout(openTimeoutRef.current);\n openTimeoutRef.current = null;\n }\n if (closeTimeoutRef.current) {\n clearTimeout(closeTimeoutRef.current);\n closeTimeoutRef.current = null;\n }\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n if (disabled) return;\n clearTimeouts();\n openTimeoutRef.current = setTimeout(() => {\n setIsOpen(true);\n }, openDelay);\n }, [disabled, openDelay, clearTimeouts]);\n\n const handleMouseLeave = useCallback(() => {\n clearTimeouts();\n closeTimeoutRef.current = setTimeout(() => {\n setIsOpen(false);\n }, closeDelay);\n }, [closeDelay, clearTimeouts]);\n\n useEffect(() => {\n return () => clearTimeouts();\n }, [clearTimeouts]);\n\n const resolvedWidth = width\n ? typeof width === \"number\"\n ? `${width}px`\n : width\n : \"max-content\";\n\n const resolvedMaxWidth =\n typeof maxWidth === \"number\" ? `${maxWidth}px` : maxWidth;\n\n const cardContainerStyle: React.CSSProperties = {\n width: resolvedWidth,\n maxWidth: resolvedMaxWidth\n ? `min(calc(100vw - 2rem), ${resolvedMaxWidth})`\n : \"calc(100vw - 2rem)\",\n };\n\n const cardStyle: React.CSSProperties = {\n width: width\n ? typeof width === \"number\"\n ? `${width}px`\n : width\n : \"100%\",\n };\n\n return (\n <div\n ref={ref}\n className={`relative inline-block ${triggerClassName}`}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {children}\n <AnimatePresence>\n {isOpen && (\n <motion.div\n className={`\n absolute z-50\n ${positionStyles[position][align]}\n `}\n style={cardContainerStyle}\n initial={motionVariants[position].initial}\n animate={motionVariants[position].animate}\n exit={motionVariants[position].exit}\n transition={{ duration: 0.15, ease: \"easeOut\" }}\n >\n <div\n className={`\n w-full\n bg-ds-surface-1/95\n backdrop-blur-xl\n rounded-xl border border-ds-border-2 shadow-2xl\n p-4\n ${className}\n `}\n style={cardStyle}\n >\n {content}\n </div>\n {arrow && (\n <span\n className={`\n absolute w-0 h-0 border-[6px]\n ${arrowStyles[position]}\n `}\n />\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n },\n);\n\nHoverCard.displayName = \"HoverCard\";\n\nexport default HoverCard;\nexport { HoverCard };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card-
|
|
1
|
+
{"version":3,"file":"hover-card-G66SUyjq.mjs","names":[],"sources":["../../src/components/overlays/hover-card/HoverCard.tsx"],"sourcesContent":["import { forwardRef, useState, useCallback, useRef, useEffect } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\n\nexport type HoverCardPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\nexport type HoverCardAlign = \"start\" | \"center\" | \"end\";\n\nexport interface HoverCardProps {\n /** The trigger element */\n children: React.ReactNode;\n /** The content to display in the hover card */\n content: React.ReactNode;\n /** Position of the hover card relative to trigger */\n position?: HoverCardPosition;\n /** Alignment of the hover card */\n align?: HoverCardAlign;\n /** Delay before showing the card (ms) */\n openDelay?: number;\n /** Delay before hiding the card (ms) */\n closeDelay?: number;\n /** Whether the hover card is disabled */\n disabled?: boolean;\n /** Custom className for the card */\n className?: string;\n /** Custom className for the trigger wrapper */\n triggerClassName?: string;\n /** Whether to show an arrow */\n arrow?: boolean;\n /** Custom width for the card */\n width?: number | string;\n /** Max width for the card */\n maxWidth?: number | string;\n}\n\nconst positionStyles: Record<\n HoverCardPosition,\n Record<HoverCardAlign, string>\n> = {\n top: {\n start: \"bottom-full left-0 mb-2\",\n center: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\n end: \"bottom-full right-0 mb-2\",\n },\n bottom: {\n start: \"top-full left-0 mt-2\",\n center: \"top-full left-1/2 -translate-x-1/2 mt-2\",\n end: \"top-full right-0 mt-2\",\n },\n left: {\n start: \"right-full top-0 mr-2\",\n center: \"right-full top-1/2 -translate-y-1/2 mr-2\",\n end: \"right-full bottom-0 mr-2\",\n },\n right: {\n start: \"left-full top-0 ml-2\",\n center: \"left-full top-1/2 -translate-y-1/2 ml-2\",\n end: \"left-full bottom-0 ml-2\",\n },\n};\n\nconst arrowStyles: Record<HoverCardPosition, string> = {\n top: \"bottom-[-6px] left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-b-transparent border-t-ds-surface-1\",\n bottom:\n \"top-[-6px] left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-t-transparent border-b-ds-surface-1\",\n left: \"right-[-6px] top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-r-transparent border-l-ds-surface-1\",\n right:\n \"left-[-6px] top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-l-transparent border-r-ds-surface-1\",\n};\n\nconst motionVariants = {\n top: {\n initial: { opacity: 0, y: 5, scale: 0.98 },\n animate: { opacity: 1, y: 0, scale: 1 },\n exit: { opacity: 0, y: 5, scale: 0.98 },\n },\n bottom: {\n initial: { opacity: 0, y: -5, scale: 0.98 },\n animate: { opacity: 1, y: 0, scale: 1 },\n exit: { opacity: 0, y: -5, scale: 0.98 },\n },\n left: {\n initial: { opacity: 0, x: 5, scale: 0.98 },\n animate: { opacity: 1, x: 0, scale: 1 },\n exit: { opacity: 0, x: 5, scale: 0.98 },\n },\n right: {\n initial: { opacity: 0, x: -5, scale: 0.98 },\n animate: { opacity: 1, x: 0, scale: 1 },\n exit: { opacity: 0, x: -5, scale: 0.98 },\n },\n} as const;\n\nconst HoverCard = forwardRef<HTMLDivElement, HoverCardProps>(\n (\n {\n children,\n content,\n position = \"bottom\",\n align = \"center\",\n openDelay = 200,\n closeDelay = 150,\n disabled = false,\n className = \"\",\n triggerClassName = \"\",\n arrow = true,\n width,\n maxWidth = 320,\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const openTimeoutRef = useRef<any>(null);\n const closeTimeoutRef = useRef<any>(null);\n\n const clearTimeouts = useCallback(() => {\n if (openTimeoutRef.current) {\n clearTimeout(openTimeoutRef.current);\n openTimeoutRef.current = null;\n }\n if (closeTimeoutRef.current) {\n clearTimeout(closeTimeoutRef.current);\n closeTimeoutRef.current = null;\n }\n }, []);\n\n const handleMouseEnter = useCallback(() => {\n if (disabled) return;\n clearTimeouts();\n openTimeoutRef.current = setTimeout(() => {\n setIsOpen(true);\n }, openDelay);\n }, [disabled, openDelay, clearTimeouts]);\n\n const handleMouseLeave = useCallback(() => {\n clearTimeouts();\n closeTimeoutRef.current = setTimeout(() => {\n setIsOpen(false);\n }, closeDelay);\n }, [closeDelay, clearTimeouts]);\n\n useEffect(() => {\n return () => clearTimeouts();\n }, [clearTimeouts]);\n\n const resolvedWidth = width\n ? typeof width === \"number\"\n ? `${width}px`\n : width\n : \"max-content\";\n\n const resolvedMaxWidth =\n typeof maxWidth === \"number\" ? `${maxWidth}px` : maxWidth;\n\n const cardContainerStyle: React.CSSProperties = {\n width: resolvedWidth,\n maxWidth: resolvedMaxWidth\n ? `min(calc(100vw - 2rem), ${resolvedMaxWidth})`\n : \"calc(100vw - 2rem)\",\n };\n\n const cardStyle: React.CSSProperties = {\n width: width\n ? typeof width === \"number\"\n ? `${width}px`\n : width\n : \"100%\",\n };\n\n return (\n <div\n ref={ref}\n className={`relative inline-block ${triggerClassName}`}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {children}\n <AnimatePresence>\n {isOpen && (\n <motion.div\n className={`\n absolute z-50\n ${positionStyles[position][align]}\n `}\n style={cardContainerStyle}\n initial={motionVariants[position].initial}\n animate={motionVariants[position].animate}\n exit={motionVariants[position].exit}\n transition={{ duration: 0.15, ease: \"easeOut\" }}\n >\n <div\n className={`\n w-full\n bg-ds-surface-1/95\n backdrop-blur-xl\n rounded-xl border border-ds-border-2 shadow-2xl\n p-4\n ${className}\n `}\n style={cardStyle}\n >\n {content}\n </div>\n {arrow && (\n <span\n className={`\n absolute w-0 h-0 border-[6px]\n ${arrowStyles[position]}\n `}\n />\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n },\n);\n\nHoverCard.displayName = \"HoverCard\";\n\nexport default HoverCard;\nexport { HoverCard };\n"],"mappings":"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"}
|
|
@@ -643,47 +643,6 @@ var EllipsisIcon = ({ className = "text-ds-1", title, titleId, ...props }) => /*
|
|
|
643
643
|
]
|
|
644
644
|
});
|
|
645
645
|
//#endregion
|
|
646
|
-
//#region src/components/icons/EllipsisVerticalIcon.tsx
|
|
647
|
-
var EllipsisVerticalIcon = ({ className = "text-ds-1", title, titleId, ...props }) => /* @__PURE__ */ jsxs("svg", {
|
|
648
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
649
|
-
className,
|
|
650
|
-
width: "24",
|
|
651
|
-
height: "24",
|
|
652
|
-
strokeWidth: "2",
|
|
653
|
-
strokeLinecap: "round",
|
|
654
|
-
strokeLinejoin: "round",
|
|
655
|
-
fill: "none",
|
|
656
|
-
viewBox: "0 0 24 24",
|
|
657
|
-
stroke: "currentColor",
|
|
658
|
-
"aria-labelledby": title ? titleId : void 0,
|
|
659
|
-
role: "img",
|
|
660
|
-
...props,
|
|
661
|
-
children: [
|
|
662
|
-
title && /* @__PURE__ */ jsx("title", {
|
|
663
|
-
id: titleId,
|
|
664
|
-
children: title
|
|
665
|
-
}),
|
|
666
|
-
/* @__PURE__ */ jsx("path", {
|
|
667
|
-
d: "M12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13Z",
|
|
668
|
-
strokeWidth: 2,
|
|
669
|
-
strokeLinecap: "round",
|
|
670
|
-
strokeLinejoin: "round"
|
|
671
|
-
}),
|
|
672
|
-
/* @__PURE__ */ jsx("path", {
|
|
673
|
-
d: "M12 6C12.5523 6 13 5.55228 13 5C13 4.44772 12.5523 4 12 4C11.4477 4 11 4.44772 11 5C11 5.55228 11.4477 6 12 6Z",
|
|
674
|
-
strokeWidth: 2,
|
|
675
|
-
strokeLinecap: "round",
|
|
676
|
-
strokeLinejoin: "round"
|
|
677
|
-
}),
|
|
678
|
-
/* @__PURE__ */ jsx("path", {
|
|
679
|
-
d: "M12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20Z",
|
|
680
|
-
strokeWidth: 2,
|
|
681
|
-
strokeLinecap: "round",
|
|
682
|
-
strokeLinejoin: "round"
|
|
683
|
-
})
|
|
684
|
-
]
|
|
685
|
-
});
|
|
686
|
-
//#endregion
|
|
687
646
|
//#region src/components/icons/EyeIcon.tsx
|
|
688
647
|
var EyeIcon = ({ className, title, titleId, ...props }) => /* @__PURE__ */ jsxs("svg", {
|
|
689
648
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -1424,6 +1383,6 @@ var ZapIcon = ({ className, title, titleId, ...props }) => /* @__PURE__ */ jsxs(
|
|
|
1424
1383
|
}), /* @__PURE__ */ jsx("path", { d: "M13 10V3L4 14h7v7l9-11h-7z" })]
|
|
1425
1384
|
});
|
|
1426
1385
|
//#endregion
|
|
1427
|
-
export {
|
|
1386
|
+
export { ChevronRightIcon as A, UserIcon as B, EyeOffIcon as C, ChevronsRightIcon as D, ArrowUpDownIcon as E, ArrowUpIcon as F, HomeIcon as G, PackageIcon as H, ArrowDownIcon as I, CloseIcon as K, TrashIcon as L, ChevronDownIcon as M, ArrowRightIcon as N, ChevronsLeftIcon as O, ArrowLeftIcon as P, ActivityIcon as R, BellIcon as S, EllipsisIcon as T, SettingsIcon as U, SearchIcon as V, ShoppingCartIcon as W, AlertTriangleIcon as _, RefreshIcon as a, DragIcon as b, MailIcon as c, FilterXIcon as d, FilterProfileIcon as f, AudioWaveIcon as g, CheckCircleIcon as h, RingLoaderIcon as i, ChevronLeftIcon as j, ChevronUpIcon as k, LoaderIcon as l, ColumnsIcon as m, XCircleIcon as n, QuestionCircleIcon as o, FilterIcon as p, CheckIcon as q, SelectionIcon as r, PlayIcon as s, ZapIcon as t, InfoCircleIcon as u, AlertCircleIcon as v, EyeIcon as w, FullScreenIcon as x, CircleIcon as y, BriefcaseBusinessIcon as z };
|
|
1428
1387
|
|
|
1429
|
-
//# sourceMappingURL=icons-
|
|
1388
|
+
//# sourceMappingURL=icons-JzMKLygv.mjs.map
|