erp-pro-ui 0.2.4 → 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-Kkr45nuN.cjs → sidebar-Cq7UbKJT.cjs} +18 -21
- package/dist/chunks/sidebar-Cq7UbKJT.cjs.map +1 -0
- package/dist/chunks/{sidebar-DYEDFV2u.mjs → sidebar-oemmRzCL.mjs} +18 -21
- package/dist/chunks/sidebar-oemmRzCL.mjs.map +1 -0
- 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/navigation/sidebar/DashboardSidebarShell.d.ts +3 -1
- package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts.map +1 -1
- package/dist/components/navigation/sidebar/SidebarLinks.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
- package/dist/chunks/sidebar-DYEDFV2u.mjs.map +0 -1
- package/dist/chunks/sidebar-Kkr45nuN.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-calendar-BbFOUDov.mjs","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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"}
|