@techzyapp/ui-library 1.0.25 → 1.0.28
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/AdminRoot-BTvmassR.js +55 -0
- package/dist/AdminRoot-BTvmassR.js.map +1 -0
- package/dist/AdminRoot-DM-cZCpN.cjs +2 -0
- package/dist/AdminRoot-DM-cZCpN.cjs.map +1 -0
- package/dist/{Alert-udX1ybuC.cjs → Alert-CFm6MU0u.cjs} +2 -2
- package/dist/{Alert-udX1ybuC.cjs.map → Alert-CFm6MU0u.cjs.map} +1 -1
- package/dist/{Alert-DXmzM_rh.js → Alert-v-lelDih.js} +3 -3
- package/dist/{Alert-DXmzM_rh.js.map → Alert-v-lelDih.js.map} +1 -1
- package/dist/{AuthLayout-CP9qu6Bv.js → AuthLayout-DOFYw_z5.js} +3 -3
- package/dist/{AuthLayout-CP9qu6Bv.js.map → AuthLayout-DOFYw_z5.js.map} +1 -1
- package/dist/{AuthLayout-BRUxDgzs.cjs → AuthLayout-QAtW2GAT.cjs} +2 -2
- package/dist/{AuthLayout-BRUxDgzs.cjs.map → AuthLayout-QAtW2GAT.cjs.map} +1 -1
- package/dist/Avatar-DXNPg23a.js +90 -0
- package/dist/Avatar-DXNPg23a.js.map +1 -0
- package/dist/Avatar-DrV_F7Ex.cjs +2 -0
- package/dist/Avatar-DrV_F7Ex.cjs.map +1 -0
- package/dist/{AvatarGroup-uW0SD5P4.cjs → AvatarGroup-CHesdo-M.cjs} +2 -2
- package/dist/{AvatarGroup-uW0SD5P4.cjs.map → AvatarGroup-CHesdo-M.cjs.map} +1 -1
- package/dist/{AvatarGroup-YaNasLMS.js → AvatarGroup-CwlYqDCI.js} +2 -2
- package/dist/{AvatarGroup-YaNasLMS.js.map → AvatarGroup-CwlYqDCI.js.map} +1 -1
- package/dist/Badge-BmFgusOa.js +50 -0
- package/dist/{Badge-DSWigoGC.js.map → Badge-BmFgusOa.js.map} +1 -1
- package/dist/Badge-DVbe1rAI.cjs +2 -0
- package/dist/{Badge-BQpr2Jee.cjs.map → Badge-DVbe1rAI.cjs.map} +1 -1
- package/dist/{Breadcrumbs-CsYTiX2h.cjs → Breadcrumbs-3wHPNa0P.cjs} +2 -2
- package/dist/{Breadcrumbs-CsYTiX2h.cjs.map → Breadcrumbs-3wHPNa0P.cjs.map} +1 -1
- package/dist/{Breadcrumbs-DQHHeLId.js → Breadcrumbs-Cgd-u3aK.js} +3 -3
- package/dist/{Breadcrumbs-DQHHeLId.js.map → Breadcrumbs-Cgd-u3aK.js.map} +1 -1
- package/dist/Button-BLW9yV8W.js +72 -0
- package/dist/{Button-DBs8xnA5.js.map → Button-BLW9yV8W.js.map} +1 -1
- package/dist/Button-KRGjJdMV.cjs +2 -0
- package/dist/{Button-CXmDOzPk.cjs.map → Button-KRGjJdMV.cjs.map} +1 -1
- package/dist/{Calendar-B2nMXk4C.cjs → Calendar-CoTCOOUu.cjs} +2 -2
- package/dist/{Calendar-B2nMXk4C.cjs.map → Calendar-CoTCOOUu.cjs.map} +1 -1
- package/dist/{Calendar-CtteUt82.js → Calendar-sLA-xa0B.js} +4 -4
- package/dist/{Calendar-CtteUt82.js.map → Calendar-sLA-xa0B.js.map} +1 -1
- package/dist/Card-6fiSEC0z.js +121 -0
- package/dist/Card-6fiSEC0z.js.map +1 -0
- package/dist/Card-zTkvreQu.cjs +2 -0
- package/dist/Card-zTkvreQu.cjs.map +1 -0
- package/dist/Checkbox-CTp1xFW7.cjs +2 -0
- package/dist/{Checkbox-fzJCwe0j.cjs.map → Checkbox-CTp1xFW7.cjs.map} +1 -1
- package/dist/Checkbox-DyKBIgVT.js +98 -0
- package/dist/{Checkbox-ZYOSBYRt.js.map → Checkbox-DyKBIgVT.js.map} +1 -1
- package/dist/{Chip-DdKhcstm.js → Chip-C-5Z5wsC.js} +31 -31
- package/dist/{Chip-DdKhcstm.js.map → Chip-C-5Z5wsC.js.map} +1 -1
- package/dist/Chip-CqOqfafx.cjs +2 -0
- package/dist/{Chip-gUH_7nQc.cjs.map → Chip-CqOqfafx.cjs.map} +1 -1
- package/dist/ChoiceCardGroup-BSagRbPI.cjs +2 -0
- package/dist/{ChoiceCardGroup-d0VVTUi5.cjs.map → ChoiceCardGroup-BSagRbPI.cjs.map} +1 -1
- package/dist/ChoiceCardGroup-CEniY_HJ.js +181 -0
- package/dist/{ChoiceCardGroup-DBohUnRj.js.map → ChoiceCardGroup-CEniY_HJ.js.map} +1 -1
- package/dist/{CodeBlock-C6tQtbHU.cjs → CodeBlock-DFiHDZXh.cjs} +2 -2
- package/dist/{CodeBlock-C6tQtbHU.cjs.map → CodeBlock-DFiHDZXh.cjs.map} +1 -1
- package/dist/{CodeBlock-DD_d3-sM.js → CodeBlock-rPaqO7yD.js} +3 -3
- package/dist/{CodeBlock-DD_d3-sM.js.map → CodeBlock-rPaqO7yD.js.map} +1 -1
- package/dist/ColorPicker-Bqypsy5E.cjs +2 -0
- package/dist/ColorPicker-Bqypsy5E.cjs.map +1 -0
- package/dist/{ColorPicker-Dw6Qk0iy.js → ColorPicker-DXDAXvlA.js} +36 -27
- package/dist/ColorPicker-DXDAXvlA.js.map +1 -0
- package/dist/ColorPickerPanel-6lQC1URc.js +322 -0
- package/dist/ColorPickerPanel-6lQC1URc.js.map +1 -0
- package/dist/ColorPickerPanel-C9ARc_uD.cjs +2 -0
- package/dist/ColorPickerPanel-C9ARc_uD.cjs.map +1 -0
- package/dist/ColorRamp-B9OWxCOK.cjs +2 -0
- package/dist/ColorRamp-B9OWxCOK.cjs.map +1 -0
- package/dist/ColorRamp-DQ8wkgvF.js +126 -0
- package/dist/ColorRamp-DQ8wkgvF.js.map +1 -0
- package/dist/{ConfigProvider-Bszl3Wr3.cjs → ConfigProvider-BElY0HuV.cjs} +2 -2
- package/dist/ConfigProvider-BElY0HuV.cjs.map +1 -0
- package/dist/{ConfigProvider-DR9YMy9U.js → ConfigProvider-B_RSn9bb.js} +2 -2
- package/dist/ConfigProvider-B_RSn9bb.js.map +1 -0
- package/dist/CopyButton-B5aicGl3.cjs +2 -0
- package/dist/{CopyButton-Ct-8AmmX.cjs.map → CopyButton-B5aicGl3.cjs.map} +1 -1
- package/dist/CopyButton-BplPYm8i.js +43 -0
- package/dist/{CopyButton-DJ1PSJZU.js.map → CopyButton-BplPYm8i.js.map} +1 -1
- package/dist/DashedButton-B7xodc3N.cjs +2 -0
- package/dist/{DashedButton-3C4IZuo4.cjs.map → DashedButton-B7xodc3N.cjs.map} +1 -1
- package/dist/DashedButton-iM7kzopW.js +59 -0
- package/dist/{DashedButton-BXZAyMtw.js.map → DashedButton-iM7kzopW.js.map} +1 -1
- package/dist/{DatePicker-BxEydgfu.cjs → DatePicker-Cdl2JYBd.cjs} +2 -2
- package/dist/{DatePicker-BxEydgfu.cjs.map → DatePicker-Cdl2JYBd.cjs.map} +1 -1
- package/dist/{DatePicker-CJioG5M7.js → DatePicker-U5TJ9FYM.js} +7 -7
- package/dist/{DatePicker-CJioG5M7.js.map → DatePicker-U5TJ9FYM.js.map} +1 -1
- package/dist/DatePicker.module-BDtTsg8M.cjs +2 -0
- package/dist/{DatePicker.module-tE-tGNBd.cjs.map → DatePicker.module-BDtTsg8M.cjs.map} +1 -1
- package/dist/DatePicker.module-CMMQyEhG.js +138 -0
- package/dist/{DatePicker.module-BZDftL4g.js.map → DatePicker.module-CMMQyEhG.js.map} +1 -1
- package/dist/{DateTimePicker-COEj2Z0F.cjs → DateTimePicker-DUFtddxJ.cjs} +2 -2
- package/dist/{DateTimePicker-COEj2Z0F.cjs.map → DateTimePicker-DUFtddxJ.cjs.map} +1 -1
- package/dist/{DateTimePicker-e2zj2bhS.js → DateTimePicker-laJsZYJX.js} +10 -10
- package/dist/{DateTimePicker-e2zj2bhS.js.map → DateTimePicker-laJsZYJX.js.map} +1 -1
- package/dist/DescriptionList-BCvOX8fg.cjs +2 -0
- package/dist/DescriptionList-BCvOX8fg.cjs.map +1 -0
- package/dist/DescriptionList-Y9jF_4L0.js +176 -0
- package/dist/DescriptionList-Y9jF_4L0.js.map +1 -0
- package/dist/{Dropdown-FfkmluRu.js → Dropdown--1mNTVZJ.js} +2 -2
- package/dist/{Dropdown-FfkmluRu.js.map → Dropdown--1mNTVZJ.js.map} +1 -1
- package/dist/{Dropdown-Ui7h2TGd.cjs → Dropdown-DNZ9S_zQ.cjs} +2 -2
- package/dist/{Dropdown-Ui7h2TGd.cjs.map → Dropdown-DNZ9S_zQ.cjs.map} +1 -1
- package/dist/EmptyState-BtwuzX9Z.js +58 -0
- package/dist/EmptyState-BtwuzX9Z.js.map +1 -0
- package/dist/EmptyState-CO_NRZ6w.cjs +2 -0
- package/dist/EmptyState-CO_NRZ6w.cjs.map +1 -0
- package/dist/ErrorBoundary-DJ6R1M9k.js +126 -0
- package/dist/ErrorBoundary-DJ6R1M9k.js.map +1 -0
- package/dist/ErrorBoundary-unvC1vZQ.cjs +2 -0
- package/dist/ErrorBoundary-unvC1vZQ.cjs.map +1 -0
- package/dist/FileCard-C3a2yDhK.js +149 -0
- package/dist/FileCard-C3a2yDhK.js.map +1 -0
- package/dist/FileCard-DKjDQRzZ.cjs +2 -0
- package/dist/FileCard-DKjDQRzZ.cjs.map +1 -0
- package/dist/FileUploader-CuOHWkiG.js +707 -0
- package/dist/FileUploader-CuOHWkiG.js.map +1 -0
- package/dist/FileUploader-VIOg03pl.cjs +2 -0
- package/dist/FileUploader-VIOg03pl.cjs.map +1 -0
- package/dist/{Flag-CB4YyPj3.cjs → Flag-aOQncoEZ.cjs} +2 -2
- package/dist/{Flag-CB4YyPj3.cjs.map → Flag-aOQncoEZ.cjs.map} +1 -1
- package/dist/{Flag-yA1y5XzR.js → Flag-kpUfmrwC.js} +2 -2
- package/dist/{Flag-yA1y5XzR.js.map → Flag-kpUfmrwC.js.map} +1 -1
- package/dist/FloatingPanel-BIC4WrFa.cjs +2 -0
- package/dist/FloatingPanel-BIC4WrFa.cjs.map +1 -0
- package/dist/FloatingPanel-CeSOtE_D.js +135 -0
- package/dist/FloatingPanel-CeSOtE_D.js.map +1 -0
- package/dist/{FullscreenToggle-0lskYnpx.cjs → FullscreenToggle-BSwxQEaG.cjs} +2 -2
- package/dist/{FullscreenToggle-0lskYnpx.cjs.map → FullscreenToggle-BSwxQEaG.cjs.map} +1 -1
- package/dist/{FullscreenToggle-jSLruiKt.js → FullscreenToggle-CMifmPD3.js} +3 -3
- package/dist/{FullscreenToggle-jSLruiKt.js.map → FullscreenToggle-CMifmPD3.js.map} +1 -1
- package/dist/IconButton-A2B0bqC-.cjs +2 -0
- package/dist/{IconButton-BN-bZxEi.cjs.map → IconButton-A2B0bqC-.cjs.map} +1 -1
- package/dist/IconButton-Dq17Fekm.js +68 -0
- package/dist/{IconButton-BEGWfcVc.js.map → IconButton-Dq17Fekm.js.map} +1 -1
- package/dist/List-9lUjapQ5.cjs +2 -0
- package/dist/List-9lUjapQ5.cjs.map +1 -0
- package/dist/List-CZwNGxuP.js +107 -0
- package/dist/List-CZwNGxuP.js.map +1 -0
- package/dist/Loader-CwyoKoWY.js +28 -0
- package/dist/{Loader-BZIa8hwv.js.map → Loader-CwyoKoWY.js.map} +1 -1
- package/dist/Loader-D9nteBXt.cjs +2 -0
- package/dist/{Loader-B5YqzEYy.cjs.map → Loader-D9nteBXt.cjs.map} +1 -1
- package/dist/MobileFrame-8FSsYA_w.js +91 -0
- package/dist/MobileFrame-8FSsYA_w.js.map +1 -0
- package/dist/MobileFrame-Dsfgd_4k.cjs +2 -0
- package/dist/MobileFrame-Dsfgd_4k.cjs.map +1 -0
- package/dist/Modal-CQDcYS-Y.cjs +2 -0
- package/dist/Modal-CQDcYS-Y.cjs.map +1 -0
- package/dist/Modal-cz6JIsZn.js +196 -0
- package/dist/Modal-cz6JIsZn.js.map +1 -0
- package/dist/MultiSelect-BIwE6wb7.cjs +2 -0
- package/dist/MultiSelect-BIwE6wb7.cjs.map +1 -0
- package/dist/MultiSelect-C6l0LpIs.js +219 -0
- package/dist/MultiSelect-C6l0LpIs.js.map +1 -0
- package/dist/{MultilineTextField-Dz6Fg8RJ.cjs → MultilineTextField-B6EYAdik.cjs} +2 -2
- package/dist/{MultilineTextField-Dz6Fg8RJ.cjs.map → MultilineTextField-B6EYAdik.cjs.map} +1 -1
- package/dist/{MultilineTextField-CwNCJ9lZ.js → MultilineTextField-BgfBFeeF.js} +2 -2
- package/dist/{MultilineTextField-CwNCJ9lZ.js.map → MultilineTextField-BgfBFeeF.js.map} +1 -1
- package/dist/{NumberField-2yM0mmyj.js → NumberField-BpUTV_Qn.js} +5 -5
- package/dist/{NumberField-2yM0mmyj.js.map → NumberField-BpUTV_Qn.js.map} +1 -1
- package/dist/{NumberField-CEt95jcC.cjs → NumberField-IyhO4OpJ.cjs} +2 -2
- package/dist/{NumberField-CEt95jcC.cjs.map → NumberField-IyhO4OpJ.cjs.map} +1 -1
- package/dist/{OtpField-CkliY82J.js → OtpField-BoLxbGtY.js} +4 -4
- package/dist/{OtpField-CkliY82J.js.map → OtpField-BoLxbGtY.js.map} +1 -1
- package/dist/{OtpField-on-K0_fM.cjs → OtpField-HMrxkdiy.cjs} +2 -2
- package/dist/{OtpField-on-K0_fM.cjs.map → OtpField-HMrxkdiy.cjs.map} +1 -1
- package/dist/{PageLayout-DGHu7Vm3.cjs → PageLayout-DtWG-6dn.cjs} +2 -2
- package/dist/{PageLayout-DGHu7Vm3.cjs.map → PageLayout-DtWG-6dn.cjs.map} +1 -1
- package/dist/{PageLayout-DzPh_G6H.js → PageLayout-G8F1WgC-.js} +2 -2
- package/dist/{PageLayout-DzPh_G6H.js.map → PageLayout-G8F1WgC-.js.map} +1 -1
- package/dist/{PageNotFound-CCFfPHgA.js → PageNotFound-CeKIMZ55.js} +9 -9
- package/dist/PageNotFound-CeKIMZ55.js.map +1 -0
- package/dist/PageNotFound-DG8xXPL3.cjs +2 -0
- package/dist/PageNotFound-DG8xXPL3.cjs.map +1 -0
- package/dist/Pagination-Br8P3KwE.cjs +2 -0
- package/dist/{Pagination-BdVebW2L.cjs.map → Pagination-Br8P3KwE.cjs.map} +1 -1
- package/dist/Pagination-CE1uKrR4.js +139 -0
- package/dist/{Pagination-CmskZjcz.js.map → Pagination-CE1uKrR4.js.map} +1 -1
- package/dist/PaletteField-BBPbkDcp.js +54 -0
- package/dist/PaletteField-BBPbkDcp.js.map +1 -0
- package/dist/PaletteField-DwvSn6V6.cjs +2 -0
- package/dist/PaletteField-DwvSn6V6.cjs.map +1 -0
- package/dist/PhoneField-B-L0xAtD.js +372 -0
- package/dist/PhoneField-B-L0xAtD.js.map +1 -0
- package/dist/PhoneField-BclMbl7L.cjs +2 -0
- package/dist/PhoneField-BclMbl7L.cjs.map +1 -0
- package/dist/Popconfirm-BgpvCBy1.js +113 -0
- package/dist/Popconfirm-BgpvCBy1.js.map +1 -0
- package/dist/Popconfirm-DD8F8SXn.cjs +2 -0
- package/dist/Popconfirm-DD8F8SXn.cjs.map +1 -0
- package/dist/{Popover-CgIU4Rhg.js → Popover-B82Id9Ut.js} +2 -2
- package/dist/{Popover-CgIU4Rhg.js.map → Popover-B82Id9Ut.js.map} +1 -1
- package/dist/{Popover-CBI1icIM.cjs → Popover-DAT6DcM9.cjs} +2 -2
- package/dist/{Popover-CBI1icIM.cjs.map → Popover-DAT6DcM9.cjs.map} +1 -1
- package/dist/Progress-L5koRRJp.js +119 -0
- package/dist/Progress-L5koRRJp.js.map +1 -0
- package/dist/Progress-_aZ8XOJr.cjs +2 -0
- package/dist/Progress-_aZ8XOJr.cjs.map +1 -0
- package/dist/QrCode-BQ1eUiAJ.cjs +2 -0
- package/dist/QrCode-BQ1eUiAJ.cjs.map +1 -0
- package/dist/QrCode-osD23Vkt.js +80 -0
- package/dist/QrCode-osD23Vkt.js.map +1 -0
- package/dist/QueryError-BMH8X69O.cjs +2 -0
- package/dist/QueryError-BMH8X69O.cjs.map +1 -0
- package/dist/QueryError-tBuIQRgv.js +19 -0
- package/dist/QueryError-tBuIQRgv.js.map +1 -0
- package/dist/RadioGroup-BcFBdFhh.cjs +2 -0
- package/dist/{RadioGroup-C8u7eNBS.cjs.map → RadioGroup-BcFBdFhh.cjs.map} +1 -1
- package/dist/RadioGroup-dVx_hMCY.js +141 -0
- package/dist/{RadioGroup-DbodUJW8.js.map → RadioGroup-dVx_hMCY.js.map} +1 -1
- package/dist/RemoveDialog-C9_UzFBf.js +109 -0
- package/dist/RemoveDialog-C9_UzFBf.js.map +1 -0
- package/dist/RemoveDialog-DBKYnTYU.cjs +2 -0
- package/dist/RemoveDialog-DBKYnTYU.cjs.map +1 -0
- package/dist/RichTextEditor-DTz7Qcn_.cjs +2 -0
- package/dist/RichTextEditor-DTz7Qcn_.cjs.map +1 -0
- package/dist/{RichTextEditor-Bm8FFbcR.js → RichTextEditor-fXcbUjTl.js} +13 -13
- package/dist/RichTextEditor-fXcbUjTl.js.map +1 -0
- package/dist/RootLayout-DG2dXhXn.cjs +2 -0
- package/dist/{RootLayout-kssj9exn.cjs.map → RootLayout-DG2dXhXn.cjs.map} +1 -1
- package/dist/RootLayout-p8ArA6wA.js +515 -0
- package/dist/{RootLayout-Cf7Rr9Iz.js.map → RootLayout-p8ArA6wA.js.map} +1 -1
- package/dist/Select-BAR_aVSz.js +199 -0
- package/dist/Select-BAR_aVSz.js.map +1 -0
- package/dist/Select-BuVfUiw-.cjs +2 -0
- package/dist/Select-BuVfUiw-.cjs.map +1 -0
- package/dist/{Sidebar-YH-DoNG9.js → Sidebar-CsWcjSTx.js} +193 -183
- package/dist/Sidebar-CsWcjSTx.js.map +1 -0
- package/dist/Sidebar-NI5HGGYF.cjs +2 -0
- package/dist/Sidebar-NI5HGGYF.cjs.map +1 -0
- package/dist/Skeleton-DK0lAjS9.cjs +2 -0
- package/dist/Skeleton-DK0lAjS9.cjs.map +1 -0
- package/dist/Skeleton-_-uGax2j.js +56 -0
- package/dist/Skeleton-_-uGax2j.js.map +1 -0
- package/dist/Slider-Cu1FhxR2.cjs +2 -0
- package/dist/{Slider-dxYVXRev.cjs.map → Slider-Cu1FhxR2.cjs.map} +1 -1
- package/dist/Slider-DoQJWgGU.js +184 -0
- package/dist/{Slider-oGXd5e9X.js.map → Slider-DoQJWgGU.js.map} +1 -1
- package/dist/{SpeedDial-9_Yk8AGx.cjs → SpeedDial-C_rZkHmF.cjs} +2 -2
- package/dist/{SpeedDial-9_Yk8AGx.cjs.map → SpeedDial-C_rZkHmF.cjs.map} +1 -1
- package/dist/{SpeedDial-DWNuC6f8.js → SpeedDial-DF-ILheU.js} +2 -2
- package/dist/{SpeedDial-DWNuC6f8.js.map → SpeedDial-DF-ILheU.js.map} +1 -1
- package/dist/{Stepper-CuqFpamY.js → Stepper-B39Ax_w6.js} +70 -70
- package/dist/{Stepper-CuqFpamY.js.map → Stepper-B39Ax_w6.js.map} +1 -1
- package/dist/Stepper-CT7n113R.cjs +2 -0
- package/dist/{Stepper-B1z_u650.cjs.map → Stepper-CT7n113R.cjs.map} +1 -1
- package/dist/{SwatchPicker-CCJltwHI.cjs → SwatchPicker-BWXqgsEy.cjs} +2 -2
- package/dist/{SwatchPicker-CCJltwHI.cjs.map → SwatchPicker-BWXqgsEy.cjs.map} +1 -1
- package/dist/{SwatchPicker-CqyWngFJ.js → SwatchPicker-Bpxk0IOe.js} +3 -3
- package/dist/{SwatchPicker-CqyWngFJ.js.map → SwatchPicker-Bpxk0IOe.js.map} +1 -1
- package/dist/Switch-DSs2Y0IR.cjs +2 -0
- package/dist/{Switch-DRkZ6kHJ.cjs.map → Switch-DSs2Y0IR.cjs.map} +1 -1
- package/dist/Switch-Jh2Ch8GO.js +85 -0
- package/dist/{Switch-DMPJ0fhB.js.map → Switch-Jh2Ch8GO.js.map} +1 -1
- package/dist/Table-CH_oiEP3.js +1170 -0
- package/dist/Table-CH_oiEP3.js.map +1 -0
- package/dist/Table-DD_uysnY.cjs +2 -0
- package/dist/Table-DD_uysnY.cjs.map +1 -0
- package/dist/Tabs-By86Cmpw.js +190 -0
- package/dist/{Tabs-ytbBzAxG.js.map → Tabs-By86Cmpw.js.map} +1 -1
- package/dist/Tabs-C1N9FgAq.cjs +2 -0
- package/dist/{Tabs-BiKDy_fv.cjs.map → Tabs-C1N9FgAq.cjs.map} +1 -1
- package/dist/{TagsField-CEt_PC5y.js → TagsField-BiOyAadf.js} +5 -5
- package/dist/{TagsField-CEt_PC5y.js.map → TagsField-BiOyAadf.js.map} +1 -1
- package/dist/{TagsField-DpDbf0ru.cjs → TagsField-RX-x45-j.cjs} +2 -2
- package/dist/{TagsField-DpDbf0ru.cjs.map → TagsField-RX-x45-j.cjs.map} +1 -1
- package/dist/{TextField-Df_kGy2l.cjs → TextField-CdbanZuk.cjs} +2 -2
- package/dist/{TextField-Df_kGy2l.cjs.map → TextField-CdbanZuk.cjs.map} +1 -1
- package/dist/{TextField-BWdmF-HE.js → TextField-CkronCRC.js} +5 -5
- package/dist/{TextField-BWdmF-HE.js.map → TextField-CkronCRC.js.map} +1 -1
- package/dist/TextField.module-6gYcR9TL.js +27 -0
- package/dist/TextField.module-6gYcR9TL.js.map +1 -0
- package/dist/TextField.module-DsNCo8vN.cjs +2 -0
- package/dist/TextField.module-DsNCo8vN.cjs.map +1 -0
- package/dist/{ThemeToggle-CgxF6oUu.js → ThemeToggle-BYUEH6be.js} +3 -3
- package/dist/{ThemeToggle-CgxF6oUu.js.map → ThemeToggle-BYUEH6be.js.map} +1 -1
- package/dist/{ThemeToggle-BJdXhmfc.cjs → ThemeToggle-C4QhDd76.cjs} +2 -2
- package/dist/{ThemeToggle-BJdXhmfc.cjs.map → ThemeToggle-C4QhDd76.cjs.map} +1 -1
- package/dist/{TimeColumns-DxVN0V8l.cjs → TimeColumns-Cl0_IRf0.cjs} +2 -2
- package/dist/{TimeColumns-DxVN0V8l.cjs.map → TimeColumns-Cl0_IRf0.cjs.map} +1 -1
- package/dist/{TimeColumns-n-fz50mr.js → TimeColumns-yzjScNU8.js} +3 -3
- package/dist/{TimeColumns-n-fz50mr.js.map → TimeColumns-yzjScNU8.js.map} +1 -1
- package/dist/{TimePicker-DvoemiGz.cjs → TimePicker-CJGVGETl.cjs} +2 -2
- package/dist/{TimePicker-DvoemiGz.cjs.map → TimePicker-CJGVGETl.cjs.map} +1 -1
- package/dist/{TimePicker-Bopxx3zU.js → TimePicker-CoIdMv1S.js} +8 -8
- package/dist/{TimePicker-Bopxx3zU.js.map → TimePicker-CoIdMv1S.js.map} +1 -1
- package/dist/Timeline-CKEosWka.cjs +2 -0
- package/dist/{Timeline-ONU_3gi3.cjs.map → Timeline-CKEosWka.cjs.map} +1 -1
- package/dist/Timeline-ufVXmpMY.js +71 -0
- package/dist/{Timeline-D3kzt1dy.js.map → Timeline-ufVXmpMY.js.map} +1 -1
- package/dist/{Toaster-BxIY2H4V.js → Toaster-Dhz2mYq_.js} +2 -2
- package/dist/{Toaster-BxIY2H4V.js.map → Toaster-Dhz2mYq_.js.map} +1 -1
- package/dist/{Toaster-DZSzFse_.cjs → Toaster-lv5cJhib.cjs} +2 -2
- package/dist/{Toaster-DZSzFse_.cjs.map → Toaster-lv5cJhib.cjs.map} +1 -1
- package/dist/{TranslatedFields-BtDLkQy7.cjs → TranslatedFields-BCJ86Tqp.cjs} +2 -2
- package/dist/{TranslatedFields-BtDLkQy7.cjs.map → TranslatedFields-BCJ86Tqp.cjs.map} +1 -1
- package/dist/{TranslatedFields-DmR8LKSG.js → TranslatedFields-BtNUAyrY.js} +5 -5
- package/dist/{TranslatedFields-DmR8LKSG.js.map → TranslatedFields-BtNUAyrY.js.map} +1 -1
- package/dist/Typography-B6ASPrzT.cjs +2 -0
- package/dist/Typography-B6ASPrzT.cjs.map +1 -0
- package/dist/Typography-CJv5AnRP.js +70 -0
- package/dist/Typography-CJv5AnRP.js.map +1 -0
- package/dist/UserCard-B-eNyZuT.js +78 -0
- package/dist/UserCard-B-eNyZuT.js.map +1 -0
- package/dist/UserCard-CiQUrZjb.cjs +2 -0
- package/dist/UserCard-CiQUrZjb.cjs.map +1 -0
- package/dist/app/AdminRoot.d.cts +10 -3
- package/dist/app/AdminRoot.d.ts +10 -3
- package/dist/color-CgR8ybWZ.cjs +2 -0
- package/dist/color-CgR8ybWZ.cjs.map +1 -0
- package/dist/color-EQJ2DrcQ.js +24 -0
- package/dist/color-EQJ2DrcQ.js.map +1 -0
- package/dist/components/Alert/index.cjs +1 -1
- package/dist/components/Alert/index.js +1 -1
- package/dist/components/AuthLayout/index.cjs +1 -1
- package/dist/components/AuthLayout/index.js +1 -1
- package/dist/components/Avatar/Avatar.d.cts +7 -1
- package/dist/components/Avatar/Avatar.d.ts +7 -1
- package/dist/components/Avatar/index.cjs +1 -1
- package/dist/components/Avatar/index.js +2 -2
- package/dist/components/Badge/index.cjs +1 -1
- package/dist/components/Badge/index.js +1 -1
- package/dist/components/Breadcrumbs/index.cjs +1 -1
- package/dist/components/Breadcrumbs/index.js +1 -1
- package/dist/components/Button/index.cjs +1 -1
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Card/Card.d.cts +2 -0
- package/dist/components/Card/Card.d.ts +2 -0
- package/dist/components/Card/index.cjs +1 -1
- package/dist/components/Card/index.js +1 -1
- package/dist/components/Checkbox/index.cjs +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Chip/index.cjs +1 -1
- package/dist/components/Chip/index.js +1 -1
- package/dist/components/ChoiceCard/index.cjs +1 -1
- package/dist/components/ChoiceCard/index.js +1 -1
- package/dist/components/CodeBlock/index.cjs +1 -1
- package/dist/components/CodeBlock/index.js +1 -1
- package/dist/components/ColorPicker/ColorPicker.d.cts +5 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +5 -0
- package/dist/components/ColorPicker/ColorPickerPanel.d.cts +6 -1
- package/dist/components/ColorPicker/ColorPickerPanel.d.ts +6 -1
- package/dist/components/ColorPicker/colorUtils.d.cts +3 -12
- package/dist/components/ColorPicker/colorUtils.d.ts +3 -12
- package/dist/components/ColorPicker/index.cjs +1 -1
- package/dist/components/ColorPicker/index.js +1 -1
- package/dist/components/ColorRamp/ColorRamp.d.cts +36 -0
- package/dist/components/ColorRamp/ColorRamp.d.ts +36 -0
- package/dist/components/ColorRamp/index.cjs +2 -0
- package/dist/components/ColorRamp/index.cjs.map +1 -0
- package/dist/components/ColorRamp/index.d.cts +3 -0
- package/dist/components/ColorRamp/index.d.ts +3 -0
- package/dist/components/ColorRamp/index.js +6 -0
- package/dist/components/ColorRamp/index.js.map +1 -0
- package/dist/components/CopyButton/index.cjs +1 -1
- package/dist/components/CopyButton/index.js +1 -1
- package/dist/components/DashedButton/index.cjs +1 -1
- package/dist/components/DashedButton/index.js +1 -1
- package/dist/components/DatePicker/index.cjs +1 -1
- package/dist/components/DatePicker/index.js +1 -1
- package/dist/components/DateTimePicker/index.cjs +1 -1
- package/dist/components/DateTimePicker/index.js +1 -1
- package/dist/components/DescriptionList/DescriptionList.d.cts +76 -0
- package/dist/components/DescriptionList/DescriptionList.d.ts +76 -0
- package/dist/components/DescriptionList/index.cjs +2 -0
- package/dist/components/DescriptionList/index.cjs.map +1 -0
- package/dist/components/DescriptionList/index.d.cts +2 -0
- package/dist/components/DescriptionList/index.d.ts +2 -0
- package/dist/components/DescriptionList/index.js +6 -0
- package/dist/components/DescriptionList/index.js.map +1 -0
- package/dist/components/Dropdown/index.cjs +1 -1
- package/dist/components/Dropdown/index.js +1 -1
- package/dist/components/EmptyState/EmptyState.d.cts +4 -1
- package/dist/components/EmptyState/EmptyState.d.ts +4 -1
- package/dist/components/EmptyState/index.cjs +1 -1
- package/dist/components/EmptyState/index.js +1 -1
- package/dist/components/ErrorState/ErrorBoundary.d.cts +35 -0
- package/dist/components/ErrorState/ErrorBoundary.d.ts +35 -0
- package/dist/components/ErrorState/ErrorState.d.cts +36 -0
- package/dist/components/ErrorState/ErrorState.d.ts +36 -0
- package/dist/components/ErrorState/QueryError.d.cts +18 -0
- package/dist/components/ErrorState/QueryError.d.ts +18 -0
- package/dist/components/ErrorState/errorMessage.d.cts +14 -0
- package/dist/components/ErrorState/errorMessage.d.ts +14 -0
- package/dist/components/ErrorState/index.cjs +2 -0
- package/dist/components/ErrorState/index.cjs.map +1 -0
- package/dist/components/ErrorState/index.d.cts +7 -0
- package/dist/components/ErrorState/index.d.ts +7 -0
- package/dist/components/ErrorState/index.js +11 -0
- package/dist/components/ErrorState/index.js.map +1 -0
- package/dist/components/FileCard/index.cjs +1 -1
- package/dist/components/FileCard/index.js +1 -1
- package/dist/components/FileUploader/index.cjs +1 -1
- package/dist/components/FileUploader/index.js +1 -1
- package/dist/components/Flag/index.cjs +1 -1
- package/dist/components/Flag/index.js +1 -1
- package/dist/components/FloatingPanel/FloatingPanel.d.cts +4 -0
- package/dist/components/FloatingPanel/FloatingPanel.d.ts +4 -0
- package/dist/components/FullscreenToggle/index.cjs +1 -1
- package/dist/components/FullscreenToggle/index.js +1 -1
- package/dist/components/IconButton/index.cjs +1 -1
- package/dist/components/IconButton/index.js +1 -1
- package/dist/components/List/List.d.cts +13 -3
- package/dist/components/List/List.d.ts +13 -3
- package/dist/components/List/ListItem.d.cts +5 -0
- package/dist/components/List/ListItem.d.ts +5 -0
- package/dist/components/List/index.cjs +1 -1
- package/dist/components/List/index.js +4 -5
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/List/listContext.d.cts +9 -3
- package/dist/components/List/listContext.d.ts +9 -3
- package/dist/components/Loader/index.cjs +1 -1
- package/dist/components/Loader/index.js +1 -1
- package/dist/components/MobileFrame/MobileFrame.d.cts +45 -0
- package/dist/components/MobileFrame/MobileFrame.d.ts +45 -0
- package/dist/components/MobileFrame/frames.d.cts +27 -0
- package/dist/components/MobileFrame/frames.d.ts +27 -0
- package/dist/components/MobileFrame/index.cjs +2 -0
- package/dist/components/MobileFrame/index.cjs.map +1 -0
- package/dist/components/MobileFrame/index.d.cts +4 -0
- package/dist/components/MobileFrame/index.d.ts +4 -0
- package/dist/components/MobileFrame/index.js +8 -0
- package/dist/components/MobileFrame/index.js.map +1 -0
- package/dist/components/Modal/Modal.d.cts +2 -0
- package/dist/components/Modal/Modal.d.ts +2 -0
- package/dist/components/Modal/index.cjs +1 -1
- package/dist/components/Modal/index.js +1 -1
- package/dist/components/MultiSelect/index.cjs +1 -1
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/MultilineTextField/index.cjs +1 -1
- package/dist/components/MultilineTextField/index.js +1 -1
- package/dist/components/NumberField/index.cjs +1 -1
- package/dist/components/NumberField/index.js +1 -1
- package/dist/components/OptionMenu/OptionMenu.d.cts +40 -0
- package/dist/components/OptionMenu/OptionMenu.d.ts +40 -0
- package/dist/components/OptionMenu/useOptionMenu.d.cts +81 -0
- package/dist/components/OptionMenu/useOptionMenu.d.ts +81 -0
- package/dist/components/OtpField/index.cjs +1 -1
- package/dist/components/OtpField/index.js +1 -1
- package/dist/components/PageLayout/index.cjs +1 -1
- package/dist/components/PageLayout/index.js +1 -1
- package/dist/components/PageNotFound/PageNotFound.d.cts +1 -1
- package/dist/components/PageNotFound/PageNotFound.d.ts +1 -1
- package/dist/components/PageNotFound/index.cjs +1 -1
- package/dist/components/PageNotFound/index.js +1 -1
- package/dist/components/Pagination/index.cjs +1 -1
- package/dist/components/Pagination/index.js +1 -1
- package/dist/components/PaletteField/PaletteField.d.cts +30 -0
- package/dist/components/PaletteField/PaletteField.d.ts +30 -0
- package/dist/components/PaletteField/index.cjs +2 -0
- package/dist/components/PaletteField/index.cjs.map +1 -0
- package/dist/components/PaletteField/index.d.cts +2 -0
- package/dist/components/PaletteField/index.d.ts +2 -0
- package/dist/components/PaletteField/index.js +6 -0
- package/dist/components/PaletteField/index.js.map +1 -0
- package/dist/components/PhoneField/PhoneField.d.cts +54 -0
- package/dist/components/PhoneField/PhoneField.d.ts +54 -0
- package/dist/components/PhoneField/index.cjs +2 -0
- package/dist/components/PhoneField/index.cjs.map +1 -0
- package/dist/components/PhoneField/index.d.cts +4 -0
- package/dist/components/PhoneField/index.d.ts +4 -0
- package/dist/components/PhoneField/index.js +7 -0
- package/dist/components/PhoneField/index.js.map +1 -0
- package/dist/components/PhoneField/phone.d.cts +50 -0
- package/dist/components/PhoneField/phone.d.ts +50 -0
- package/dist/components/Popconfirm/Popconfirm.d.cts +53 -0
- package/dist/components/Popconfirm/Popconfirm.d.ts +53 -0
- package/dist/components/Popconfirm/index.cjs +2 -0
- package/dist/components/Popconfirm/index.cjs.map +1 -0
- package/dist/components/Popconfirm/index.d.cts +2 -0
- package/dist/components/Popconfirm/index.d.ts +2 -0
- package/dist/components/Popconfirm/index.js +6 -0
- package/dist/components/Popconfirm/index.js.map +1 -0
- package/dist/components/Popover/index.cjs +1 -1
- package/dist/components/Popover/index.js +1 -1
- package/dist/components/Progress/Progress.d.cts +50 -0
- package/dist/components/Progress/Progress.d.ts +50 -0
- package/dist/components/Progress/index.cjs +2 -0
- package/dist/components/Progress/index.cjs.map +1 -0
- package/dist/components/Progress/index.d.cts +2 -0
- package/dist/components/Progress/index.d.ts +2 -0
- package/dist/components/Progress/index.js +6 -0
- package/dist/components/Progress/index.js.map +1 -0
- package/dist/components/QrCode/QrCode.d.cts +3 -0
- package/dist/components/QrCode/QrCode.d.ts +3 -0
- package/dist/components/QrCode/index.cjs +1 -1
- package/dist/components/QrCode/index.js +1 -1
- package/dist/components/Radio/index.cjs +1 -1
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/RemoveDialog/RemoveDialog.d.cts +8 -1
- package/dist/components/RemoveDialog/RemoveDialog.d.ts +8 -1
- package/dist/components/RemoveDialog/index.cjs +1 -1
- package/dist/components/RemoveDialog/index.js +1 -1
- package/dist/components/RichTextEditor/index.cjs +1 -1
- package/dist/components/RichTextEditor/index.js +1 -1
- package/dist/components/RootLayout/index.cjs +1 -1
- package/dist/components/RootLayout/index.js +1 -1
- package/dist/components/Select/Select.d.cts +2 -12
- package/dist/components/Select/Select.d.ts +2 -12
- package/dist/components/Select/index.cjs +1 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/Sidebar/index.cjs +1 -1
- package/dist/components/Sidebar/index.js +1 -1
- package/dist/components/Skeleton/Skeleton.d.cts +31 -0
- package/dist/components/Skeleton/Skeleton.d.ts +31 -0
- package/dist/components/Skeleton/index.cjs +2 -0
- package/dist/components/Skeleton/index.cjs.map +1 -0
- package/dist/components/Skeleton/index.d.cts +2 -0
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/Skeleton/index.js +6 -0
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Slider/index.cjs +1 -1
- package/dist/components/Slider/index.js +1 -1
- package/dist/components/SpeedDial/index.cjs +1 -1
- package/dist/components/SpeedDial/index.js +1 -1
- package/dist/components/Stepper/index.cjs +1 -1
- package/dist/components/Stepper/index.js +1 -1
- package/dist/components/SwatchPicker/index.cjs +1 -1
- package/dist/components/SwatchPicker/index.js +1 -1
- package/dist/components/Switch/index.cjs +1 -1
- package/dist/components/Switch/index.js +1 -1
- package/dist/components/Table/Table.d.cts +7 -1
- package/dist/components/Table/Table.d.ts +7 -1
- package/dist/components/Table/index.cjs +1 -1
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Tabs/index.cjs +1 -1
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/TagsField/index.cjs +1 -1
- package/dist/components/TagsField/index.js +1 -1
- package/dist/components/TextField/index.cjs +1 -1
- package/dist/components/TextField/index.js +1 -1
- package/dist/components/ThemeToggle/index.cjs +1 -1
- package/dist/components/ThemeToggle/index.js +1 -1
- package/dist/components/TimePicker/index.cjs +1 -1
- package/dist/components/TimePicker/index.js +1 -1
- package/dist/components/Timeline/index.cjs +1 -1
- package/dist/components/Timeline/index.js +1 -1
- package/dist/components/Toast/index.cjs +1 -1
- package/dist/components/Toast/index.js +1 -1
- package/dist/components/TranslatedFields/index.cjs +1 -1
- package/dist/components/TranslatedFields/index.js +1 -1
- package/dist/components/Typography/Typography.d.cts +10 -3
- package/dist/components/Typography/Typography.d.ts +10 -3
- package/dist/components/Typography/index.cjs +1 -1
- package/dist/components/Typography/index.js +1 -1
- package/dist/components/UserCard/UserCard.d.cts +3 -1
- package/dist/components/UserCard/UserCard.d.ts +3 -1
- package/dist/components/UserCard/index.cjs +1 -1
- package/dist/components/UserCard/index.js +1 -1
- package/dist/components/index.d.cts +9 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/entries/app.cjs +1 -1
- package/dist/entries/app.js +1 -1
- package/dist/entries/components.cjs +1 -1
- package/dist/entries/components.js +171 -146
- package/dist/entries/components.js.map +1 -1
- package/dist/entries/helpers.cjs +1 -1
- package/dist/entries/helpers.d.cts +2 -0
- package/dist/entries/helpers.d.ts +2 -0
- package/dist/entries/helpers.js +18 -8
- package/dist/entries/helpers.js.map +1 -1
- package/dist/entries/i18n.cjs +1 -1
- package/dist/entries/i18n.js +2 -2
- package/dist/entries/theme.cjs +1 -1
- package/dist/entries/theme.js +1 -1
- package/dist/helpers/color.d.cts +17 -0
- package/dist/helpers/color.d.ts +17 -0
- package/dist/helpers/palette.d.cts +68 -0
- package/dist/helpers/palette.d.ts +68 -0
- package/dist/hooks/useOptionalPeer.d.cts +21 -0
- package/dist/hooks/useOptionalPeer.d.ts +21 -0
- package/dist/i18n/messages.d.cts +24 -0
- package/dist/i18n/messages.d.ts +24 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +16 -12
- package/dist/index.js +224 -189
- package/dist/index.js.map +1 -1
- package/dist/{messages-ogohLC5P.js → messages-BF2ft7yD.js} +201 -33
- package/dist/messages-BF2ft7yD.js.map +1 -0
- package/dist/messages-ihnE1jVG.cjs +36 -0
- package/dist/messages-ihnE1jVG.cjs.map +1 -0
- package/dist/palette-B031dM4E.js +70 -0
- package/dist/palette-B031dM4E.js.map +1 -0
- package/dist/palette-BycMHbED.cjs +2 -0
- package/dist/palette-BycMHbED.cjs.map +1 -0
- package/dist/theme/ConfigProvider.d.cts +8 -8
- package/dist/theme/ConfigProvider.d.ts +8 -8
- package/dist/useOptionMenu-C0xSaZ4t.cjs +2 -0
- package/dist/useOptionMenu-C0xSaZ4t.cjs.map +1 -0
- package/dist/useOptionMenu-Cq_eHdab.js +286 -0
- package/dist/useOptionMenu-Cq_eHdab.js.map +1 -0
- package/dist/useOptionalPeer-49f3XcO5.js +28 -0
- package/dist/useOptionalPeer-49f3XcO5.js.map +1 -0
- package/dist/useOptionalPeer-9Fkx5Leb.cjs +2 -0
- package/dist/useOptionalPeer-9Fkx5Leb.cjs.map +1 -0
- package/package.json +6 -1
- package/dist/AdminRoot-BkPPRkyQ.cjs +0 -2
- package/dist/AdminRoot-BkPPRkyQ.cjs.map +0 -1
- package/dist/AdminRoot-CgvtgUpW.js +0 -50
- package/dist/AdminRoot-CgvtgUpW.js.map +0 -1
- package/dist/Avatar-Dgf04PBC.cjs +0 -2
- package/dist/Avatar-Dgf04PBC.cjs.map +0 -1
- package/dist/Avatar-Q50J8wdN.js +0 -60
- package/dist/Avatar-Q50J8wdN.js.map +0 -1
- package/dist/Badge-BQpr2Jee.cjs +0 -2
- package/dist/Badge-DSWigoGC.js +0 -50
- package/dist/Button-CXmDOzPk.cjs +0 -2
- package/dist/Button-DBs8xnA5.js +0 -72
- package/dist/Card-DGF22HbS.cjs +0 -2
- package/dist/Card-DGF22HbS.cjs.map +0 -1
- package/dist/Card-DYKnWt-L.js +0 -118
- package/dist/Card-DYKnWt-L.js.map +0 -1
- package/dist/Checkbox-ZYOSBYRt.js +0 -98
- package/dist/Checkbox-fzJCwe0j.cjs +0 -2
- package/dist/Chip-gUH_7nQc.cjs +0 -2
- package/dist/ChoiceCardGroup-DBohUnRj.js +0 -181
- package/dist/ChoiceCardGroup-d0VVTUi5.cjs +0 -2
- package/dist/ColorPicker-DtzFwNWk.cjs +0 -2
- package/dist/ColorPicker-DtzFwNWk.cjs.map +0 -1
- package/dist/ColorPicker-Dw6Qk0iy.js.map +0 -1
- package/dist/ColorPickerPanel--wBX-m7J.cjs +0 -2
- package/dist/ColorPickerPanel--wBX-m7J.cjs.map +0 -1
- package/dist/ColorPickerPanel-Dp7bnnVf.js +0 -336
- package/dist/ColorPickerPanel-Dp7bnnVf.js.map +0 -1
- package/dist/ConfigProvider-Bszl3Wr3.cjs.map +0 -1
- package/dist/ConfigProvider-DR9YMy9U.js.map +0 -1
- package/dist/CopyButton-Ct-8AmmX.cjs +0 -2
- package/dist/CopyButton-DJ1PSJZU.js +0 -31
- package/dist/DashedButton-3C4IZuo4.cjs +0 -2
- package/dist/DashedButton-BXZAyMtw.js +0 -59
- package/dist/DatePicker.module-BZDftL4g.js +0 -138
- package/dist/DatePicker.module-tE-tGNBd.cjs +0 -2
- package/dist/EmptyState-BTd7aVgu.js +0 -38
- package/dist/EmptyState-BTd7aVgu.js.map +0 -1
- package/dist/EmptyState-Bv4XXnD1.cjs +0 -2
- package/dist/EmptyState-Bv4XXnD1.cjs.map +0 -1
- package/dist/FileCard-DW5Ur8Aj.cjs +0 -2
- package/dist/FileCard-DW5Ur8Aj.cjs.map +0 -1
- package/dist/FileCard-DY8N9Lzz.js +0 -148
- package/dist/FileCard-DY8N9Lzz.js.map +0 -1
- package/dist/FileUploader-B7VfhcR7.cjs +0 -2
- package/dist/FileUploader-B7VfhcR7.cjs.map +0 -1
- package/dist/FileUploader-BYF5FvUc.js +0 -684
- package/dist/FileUploader-BYF5FvUc.js.map +0 -1
- package/dist/FloatingPanel-BG9Uag__.js +0 -131
- package/dist/FloatingPanel-BG9Uag__.js.map +0 -1
- package/dist/FloatingPanel-U6sGYiSK.cjs +0 -2
- package/dist/FloatingPanel-U6sGYiSK.cjs.map +0 -1
- package/dist/IconButton-BEGWfcVc.js +0 -68
- package/dist/IconButton-BN-bZxEi.cjs +0 -2
- package/dist/List-ChXO0Hz-.cjs +0 -2
- package/dist/List-ChXO0Hz-.cjs.map +0 -1
- package/dist/List-LqbfF6gU.js +0 -26
- package/dist/List-LqbfF6gU.js.map +0 -1
- package/dist/ListItem-Cn15lJBr.js +0 -74
- package/dist/ListItem-Cn15lJBr.js.map +0 -1
- package/dist/ListItem-yXXjtepZ.cjs +0 -2
- package/dist/ListItem-yXXjtepZ.cjs.map +0 -1
- package/dist/Loader-B5YqzEYy.cjs +0 -2
- package/dist/Loader-BZIa8hwv.js +0 -29
- package/dist/Modal-0V-REVV-.cjs +0 -2
- package/dist/Modal-0V-REVV-.cjs.map +0 -1
- package/dist/Modal-B7yoFC3o.js +0 -195
- package/dist/Modal-B7yoFC3o.js.map +0 -1
- package/dist/MultiSelect-C8xuXaoR.js +0 -350
- package/dist/MultiSelect-C8xuXaoR.js.map +0 -1
- package/dist/MultiSelect-gj9Ymeh2.cjs +0 -2
- package/dist/MultiSelect-gj9Ymeh2.cjs.map +0 -1
- package/dist/PageNotFound-B8_eIT8p.cjs +0 -2
- package/dist/PageNotFound-B8_eIT8p.cjs.map +0 -1
- package/dist/PageNotFound-CCFfPHgA.js.map +0 -1
- package/dist/Pagination-BdVebW2L.cjs +0 -2
- package/dist/Pagination-CmskZjcz.js +0 -139
- package/dist/QrCode-Bcj9_Emc.js +0 -70
- package/dist/QrCode-Bcj9_Emc.js.map +0 -1
- package/dist/QrCode-DfDfGhG-.cjs +0 -2
- package/dist/QrCode-DfDfGhG-.cjs.map +0 -1
- package/dist/RadioGroup-C8u7eNBS.cjs +0 -2
- package/dist/RadioGroup-DbodUJW8.js +0 -141
- package/dist/RemoveDialog-CV75B0aN.js +0 -47
- package/dist/RemoveDialog-CV75B0aN.js.map +0 -1
- package/dist/RemoveDialog-DmOk0ezc.cjs +0 -2
- package/dist/RemoveDialog-DmOk0ezc.cjs.map +0 -1
- package/dist/RichTextEditor-Bm8FFbcR.js.map +0 -1
- package/dist/RichTextEditor-uXddgtlk.cjs +0 -2
- package/dist/RichTextEditor-uXddgtlk.cjs.map +0 -1
- package/dist/RootLayout-Cf7Rr9Iz.js +0 -515
- package/dist/RootLayout-kssj9exn.cjs +0 -2
- package/dist/Select-7vEGJCvA.cjs +0 -2
- package/dist/Select-7vEGJCvA.cjs.map +0 -1
- package/dist/Select-CdX3Ks7y.js +0 -338
- package/dist/Select-CdX3Ks7y.js.map +0 -1
- package/dist/Sidebar-DcKIEfhy.cjs +0 -2
- package/dist/Sidebar-DcKIEfhy.cjs.map +0 -1
- package/dist/Sidebar-YH-DoNG9.js.map +0 -1
- package/dist/Slider-dxYVXRev.cjs +0 -2
- package/dist/Slider-oGXd5e9X.js +0 -184
- package/dist/Stepper-B1z_u650.cjs +0 -2
- package/dist/Switch-DMPJ0fhB.js +0 -85
- package/dist/Switch-DRkZ6kHJ.cjs +0 -2
- package/dist/Table-BPit83Pn.cjs +0 -2
- package/dist/Table-BPit83Pn.cjs.map +0 -1
- package/dist/Table-Drdhfm99.js +0 -1090
- package/dist/Table-Drdhfm99.js.map +0 -1
- package/dist/Tabs-BiKDy_fv.cjs +0 -2
- package/dist/Tabs-ytbBzAxG.js +0 -190
- package/dist/TextField.module-QePvGeJ3.js +0 -27
- package/dist/TextField.module-QePvGeJ3.js.map +0 -1
- package/dist/TextField.module-m-UllwzG.cjs +0 -2
- package/dist/TextField.module-m-UllwzG.cjs.map +0 -1
- package/dist/Timeline-D3kzt1dy.js +0 -71
- package/dist/Timeline-ONU_3gi3.cjs +0 -2
- package/dist/Typography-BFatE1_A.cjs +0 -2
- package/dist/Typography-BFatE1_A.cjs.map +0 -1
- package/dist/Typography-Cta6Rg4L.js +0 -51
- package/dist/Typography-Cta6Rg4L.js.map +0 -1
- package/dist/UserCard-C1yFvVIc.cjs +0 -2
- package/dist/UserCard-C1yFvVIc.cjs.map +0 -1
- package/dist/UserCard-J8Bpbh3x.js +0 -74
- package/dist/UserCard-J8Bpbh3x.js.map +0 -1
- package/dist/messages-DKT0SRM0.cjs +0 -36
- package/dist/messages-DKT0SRM0.cjs.map +0 -1
- package/dist/messages-ogohLC5P.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge-
|
|
1
|
+
{"version":3,"file":"Badge-DVbe1rAI.cjs","sources":["../src/components/Badge/Badge.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport styles from './Badge.module.css'\n\nexport type BadgePlacement = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'\n\nexport interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color' | 'content'> {\n /** The element the badge decorates — e.g. a `Button` or `IconButton`. */\n children: ReactNode\n /** Count/text shown in the badge. A `number` renders as a count (capped by `max`); omit it for a dot. */\n content?: number | string\n /** Render a small dot instead of `content` (a plain notification indicator). */\n dot?: boolean\n /** Theme palette token that tints the badge. Defaults to `accent`. */\n color?: ThemeColor\n /** Cap for numeric `content` — anything above renders as `${max}+`. Defaults to `99`. */\n max?: number\n /** Keep the badge visible when numeric `content` is `0`. Defaults to `false` (hidden). */\n showZero?: boolean\n /** Corner the badge sits in. Defaults to `top-right`. */\n placement?: BadgePlacement\n}\n\nconst PLACEMENT: Record<BadgePlacement, string> = {\n 'top-right': styles.topRight,\n 'top-left': styles.topLeft,\n 'bottom-right': styles.bottomRight,\n 'bottom-left': styles.bottomLeft,\n}\n\n/**\n * Wraps a child (typically a `Button` or `IconButton`) and pins a small badge to one of its corners.\n * Pass a numeric `content` for a count (auto-capped to `${max}+`), or set `dot` for a plain dot.\n * A numeric `0` is hidden unless `showZero`. The fill is tinted by the `color` token via the shared\n * `--tz-btn-rgb` / `--tz-btn-on` pattern; styling is token-only.\n */\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\n {\n children,\n content,\n dot = false,\n color = 'accent',\n max = 99,\n showZero = false,\n placement = 'top-right',\n className,\n style,\n ...props\n },\n ref,\n) {\n const isNumber = typeof content === 'number'\n const hiddenZero = isNumber && content === 0 && !showZero\n const hasContent = content !== undefined && content !== null && content !== '' && !hiddenZero\n const showDot = !hasContent && dot\n const visible = hasContent || showDot\n const display = isNumber && (content as number) > max ? `${max}+` : content\n\n return (\n <span ref={ref} className={clsx(styles.root, className)} style={style} {...props}>\n {children}\n {visible && (\n <span\n className={clsx(styles.badge, showDot ? styles.dot : styles.value, PLACEMENT[placement])}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n } as CSSProperties\n }\n aria-hidden={showDot ? true : undefined}\n >\n {hasContent ? display : null}\n </span>\n )}\n </span>\n )\n})\n"],"names":["PLACEMENT","styles","Badge","forwardRef","children","content","dot","color","max","showZero","placement","className","style","props","ref","isNumber","hiddenZero","hasContent","showDot","visible","display","jsxs","clsx","jsx"],"mappings":"oVAwBMA,EAA4C,CAChD,YAAaC,EAAO,SACpB,WAAYA,EAAO,QACnB,eAAgBA,EAAO,YACvB,cAAeA,EAAO,UACxB,EAQaC,EAAQC,EAAAA,WAAwC,SAC3D,CACE,SAAAC,EACA,QAAAC,EACA,IAAAC,EAAM,GACN,MAAAC,EAAQ,SACR,IAAAC,EAAM,GACN,SAAAC,EAAW,GACX,UAAAC,EAAY,YACZ,UAAAC,EACA,MAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAW,OAAOV,GAAY,SAC9BW,EAAaD,GAAYV,IAAY,GAAK,CAACI,EAC3CQ,EAAsCZ,GAAY,MAAQA,IAAY,IAAM,CAACW,EAC7EE,EAAU,CAACD,GAAcX,EACzBa,EAAUF,GAAcC,EACxBE,EAAUL,GAAaV,EAAqBG,EAAM,GAAGA,CAAG,IAAMH,EAEpE,OACEgB,EAAAA,KAAC,OAAA,CAAK,IAAAP,EAAU,UAAWQ,EAAAA,KAAKrB,EAAO,KAAMU,CAAS,EAAG,MAAAC,EAAe,GAAGC,EACxE,SAAA,CAAAT,EACAe,GACCI,EAAAA,IAAC,OAAA,CACC,UAAWD,EAAAA,KAAKrB,EAAO,MAAOiB,EAAUjB,EAAO,IAAMA,EAAO,MAAOD,EAAUU,CAAS,CAAC,EACvF,MACE,CACE,eAAgB,kBAAkBH,CAAK,QACvC,cAAe,kBAAkBA,CAAK,kBAAA,EAG1C,cAAaW,EAAU,GAAO,OAE7B,WAAaE,EAAU,IAAA,CAAA,CAC1B,EAEJ,CAEJ,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),m=require("@tanstack/react-router"),t=require("./Icon-BVULqOJD.cjs"),b=require("./names-BJnFU_5m.cjs"),_=require("./Sidebar-
|
|
2
|
-
//# sourceMappingURL=Breadcrumbs-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),m=require("@tanstack/react-router"),t=require("./Icon-BVULqOJD.cjs"),b=require("./names-BJnFU_5m.cjs"),_=require("./Sidebar-NI5HGGYF.cjs"),d=require("./ConfigProvider-BElY0HuV.cjs"),h="_breadcrumbs_c3mqv_4",j="_list_c3mqv_8",N="_item_c3mqv_18",q="_home_c3mqv_27",x="_separator_c3mqv_39",v="_link_c3mqv_50",p="_current_c3mqv_61",s={breadcrumbs:h,list:j,item:N,home:q,separator:x,link:v,current:p},u=r=>r,k=new Set(b.ICON_NAMES);function f({separator:r}){return typeof r=="string"&&k.has(r)?e.jsx(t.Icon,{name:r,size:"sm",className:s.separator}):e.jsx("span",{className:s.separator,"aria-hidden":"true",children:r})}function g({separator:r="ArrowRight4"}={}){const{homeTo:i,items:n}=_.useBreadcrumbs(),a=d.useT();return n.length===0?null:e.jsx("nav",{"aria-label":a("breadcrumbs.label"),className:s.breadcrumbs,children:e.jsxs("ol",{className:s.list,children:[e.jsx("li",{className:s.item,children:i?e.jsx(m.Link,{to:u(i),className:s.home,"aria-label":a("breadcrumbs.home"),children:e.jsx(t.Icon,{name:"Home2",size:"sm"})}):e.jsx("span",{className:s.home,"aria-label":a("breadcrumbs.home"),children:e.jsx(t.Icon,{name:"Home2",size:"sm"})})}),n.map((c,o)=>{const l=o===n.length-1;return e.jsxs("li",{className:s.item,children:[e.jsx(f,{separator:r}),c.to&&!l?e.jsx(m.Link,{to:u(c.to),className:s.link,children:c.label}):e.jsx("span",{className:s.current,"aria-current":l?"page":void 0,children:c.label})]},`${c.label}-${o}`)})]})})}exports.Breadcrumbs=g;
|
|
2
|
+
//# sourceMappingURL=Breadcrumbs-3wHPNa0P.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs-
|
|
1
|
+
{"version":3,"file":"Breadcrumbs-3wHPNa0P.cjs","sources":["../src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { Link, type LinkProps } from '@tanstack/react-router'\nimport { useT } from '../../theme'\nimport { Icon } from '../Icon'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { useBreadcrumbs } from '../Sidebar/Sidebar'\nimport styles from './Breadcrumbs.module.css'\n\nconst linkTo = (to: string) => to as LinkProps['to']\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\nexport interface BreadcrumbsProps {\n /**\n * Separator between crumbs. A known `IconName` (the default `\"ArrowRight4\"`) renders as an icon; any\n * other string renders as plain text; or pass a node.\n */\n separator?: IconName | ReactNode\n}\n\nfunction Separator({ separator }: { separator: IconName | ReactNode }) {\n if (typeof separator === 'string' && ICON_NAME_SET.has(separator)) {\n return <Icon name={separator as IconName} size=\"sm\" className={styles.separator} />\n }\n return (\n <span className={styles.separator} aria-hidden=\"true\">\n {separator}\n </span>\n )\n}\n\n/**\n * Auto-generated breadcrumb trail for the current route, rendered at the top of `RootLayout`'s\n * content. It always starts with a home icon that links to the first allowed menu page (the same\n * target as `FirstRouteRedirect`), followed by one crumb per matched route that declares a\n * `staticData.name`. Intermediate crumbs link to their page when navigable; the current page is\n * plain text. Renders nothing when the current route has no named matches. Token-only styling.\n */\nexport function Breadcrumbs({ separator = 'ArrowRight4' }: BreadcrumbsProps = {}) {\n const { homeTo, items } = useBreadcrumbs()\n const t = useT()\n if (items.length === 0) return null\n\n return (\n <nav aria-label={t('breadcrumbs.label')} className={styles.breadcrumbs}>\n <ol className={styles.list}>\n <li className={styles.item}>\n {homeTo ? (\n <Link to={linkTo(homeTo)} className={styles.home} aria-label={t('breadcrumbs.home')}>\n <Icon name=\"Home2\" size=\"sm\" />\n </Link>\n ) : (\n <span className={styles.home} aria-label={t('breadcrumbs.home')}>\n <Icon name=\"Home2\" size=\"sm\" />\n </span>\n )}\n </li>\n {items.map((item, index) => {\n const isLast = index === items.length - 1\n return (\n <li className={styles.item} key={`${item.label}-${index}`}>\n <Separator separator={separator} />\n {item.to && !isLast ? (\n <Link to={linkTo(item.to)} className={styles.link}>\n {item.label}\n </Link>\n ) : (\n <span className={styles.current} aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n"],"names":["linkTo","to","ICON_NAME_SET","ICON_NAMES","Separator","separator","jsx","Icon","styles","Breadcrumbs","homeTo","items","useBreadcrumbs","t","useT","jsxs","Link","item","index","isLast"],"mappings":"8bAQMA,EAAUC,GAAeA,EACzBC,EAAgB,IAAI,IAAYC,YAAU,EAUhD,SAASC,EAAU,CAAE,UAAAC,GAAkD,CACrE,OAAI,OAAOA,GAAc,UAAYH,EAAc,IAAIG,CAAS,EACvDC,MAACC,EAAAA,MAAK,KAAMF,EAAuB,KAAK,KAAK,UAAWG,EAAO,UAAW,QAGhF,OAAA,CAAK,UAAWA,EAAO,UAAW,cAAY,OAC5C,SAAAH,EACH,CAEJ,CASO,SAASI,EAAY,CAAE,UAAAJ,EAAY,aAAA,EAAoC,CAAA,EAAI,CAChF,KAAM,CAAE,OAAAK,EAAQ,MAAAC,CAAA,EAAUC,iBAAA,EACpBC,EAAIC,EAAAA,KAAA,EACV,OAAIH,EAAM,SAAW,EAAU,KAG7BL,EAAAA,IAAC,MAAA,CAAI,aAAYO,EAAE,mBAAmB,EAAG,UAAWL,EAAO,YACzD,SAAAO,EAAAA,KAAC,KAAA,CAAG,UAAWP,EAAO,KACpB,SAAA,CAAAF,EAAAA,IAAC,MAAG,UAAWE,EAAO,KACnB,SAAAE,EACCJ,EAAAA,IAACU,EAAAA,MAAK,GAAIhB,EAAOU,CAAM,EAAG,UAAWF,EAAO,KAAM,aAAYK,EAAE,kBAAkB,EAChF,eAACN,EAAAA,KAAA,CAAK,KAAK,QAAQ,KAAK,KAAK,CAAA,CAC/B,QAEC,OAAA,CAAK,UAAWC,EAAO,KAAM,aAAYK,EAAE,kBAAkB,EAC5D,eAACN,EAAAA,KAAA,CAAK,KAAK,QAAQ,KAAK,KAAK,EAC/B,CAAA,CAEJ,EACCI,EAAM,IAAI,CAACM,EAAMC,IAAU,CAC1B,MAAMC,EAASD,IAAUP,EAAM,OAAS,EACxC,OACEI,EAAAA,KAAC,KAAA,CAAG,UAAWP,EAAO,KACpB,SAAA,CAAAF,MAACF,GAAU,UAAAC,EAAsB,EAChCY,EAAK,IAAM,CAACE,EACXb,EAAAA,IAACU,EAAAA,KAAA,CAAK,GAAIhB,EAAOiB,EAAK,EAAE,EAAG,UAAWT,EAAO,KAC1C,SAAAS,EAAK,KAAA,CACR,EAEAX,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAO,QAAS,eAAcW,EAAS,OAAS,OAC9D,SAAAF,EAAK,KAAA,CACR,CAAA,CAAA,EAT6B,GAAGA,EAAK,KAAK,IAAIC,CAAK,EAWvD,CAEJ,CAAC,CAAA,CAAA,CACH,CAAA,CACF,CAEJ"}
|
|
@@ -2,8 +2,8 @@ import { jsx as e, jsxs as i } from "react/jsx-runtime";
|
|
|
2
2
|
import { Link as u } from "@tanstack/react-router";
|
|
3
3
|
import { I as n } from "./Icon-DaTvzLBu.js";
|
|
4
4
|
import { a as b } from "./names-r21QPjcU.js";
|
|
5
|
-
import { u as h } from "./Sidebar-
|
|
6
|
-
import { a as d } from "./ConfigProvider-
|
|
5
|
+
import { u as h } from "./Sidebar-CsWcjSTx.js";
|
|
6
|
+
import { a as d } from "./ConfigProvider-B_RSn9bb.js";
|
|
7
7
|
const p = "_breadcrumbs_c3mqv_4", N = "_list_c3mqv_8", f = "_item_c3mqv_18", v = "_home_c3mqv_27", q = "_separator_c3mqv_39", k = "_link_c3mqv_50", g = "_current_c3mqv_61", r = {
|
|
8
8
|
breadcrumbs: p,
|
|
9
9
|
list: N,
|
|
@@ -32,4 +32,4 @@ function w({ separator: s = "ArrowRight4" } = {}) {
|
|
|
32
32
|
export {
|
|
33
33
|
w as B
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=Breadcrumbs-
|
|
35
|
+
//# sourceMappingURL=Breadcrumbs-Cgd-u3aK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs-
|
|
1
|
+
{"version":3,"file":"Breadcrumbs-Cgd-u3aK.js","sources":["../src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { Link, type LinkProps } from '@tanstack/react-router'\nimport { useT } from '../../theme'\nimport { Icon } from '../Icon'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { useBreadcrumbs } from '../Sidebar/Sidebar'\nimport styles from './Breadcrumbs.module.css'\n\nconst linkTo = (to: string) => to as LinkProps['to']\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\nexport interface BreadcrumbsProps {\n /**\n * Separator between crumbs. A known `IconName` (the default `\"ArrowRight4\"`) renders as an icon; any\n * other string renders as plain text; or pass a node.\n */\n separator?: IconName | ReactNode\n}\n\nfunction Separator({ separator }: { separator: IconName | ReactNode }) {\n if (typeof separator === 'string' && ICON_NAME_SET.has(separator)) {\n return <Icon name={separator as IconName} size=\"sm\" className={styles.separator} />\n }\n return (\n <span className={styles.separator} aria-hidden=\"true\">\n {separator}\n </span>\n )\n}\n\n/**\n * Auto-generated breadcrumb trail for the current route, rendered at the top of `RootLayout`'s\n * content. It always starts with a home icon that links to the first allowed menu page (the same\n * target as `FirstRouteRedirect`), followed by one crumb per matched route that declares a\n * `staticData.name`. Intermediate crumbs link to their page when navigable; the current page is\n * plain text. Renders nothing when the current route has no named matches. Token-only styling.\n */\nexport function Breadcrumbs({ separator = 'ArrowRight4' }: BreadcrumbsProps = {}) {\n const { homeTo, items } = useBreadcrumbs()\n const t = useT()\n if (items.length === 0) return null\n\n return (\n <nav aria-label={t('breadcrumbs.label')} className={styles.breadcrumbs}>\n <ol className={styles.list}>\n <li className={styles.item}>\n {homeTo ? (\n <Link to={linkTo(homeTo)} className={styles.home} aria-label={t('breadcrumbs.home')}>\n <Icon name=\"Home2\" size=\"sm\" />\n </Link>\n ) : (\n <span className={styles.home} aria-label={t('breadcrumbs.home')}>\n <Icon name=\"Home2\" size=\"sm\" />\n </span>\n )}\n </li>\n {items.map((item, index) => {\n const isLast = index === items.length - 1\n return (\n <li className={styles.item} key={`${item.label}-${index}`}>\n <Separator separator={separator} />\n {item.to && !isLast ? (\n <Link to={linkTo(item.to)} className={styles.link}>\n {item.label}\n </Link>\n ) : (\n <span className={styles.current} aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n"],"names":["linkTo","to","ICON_NAME_SET","ICON_NAMES","Separator","separator","jsx","Icon","styles","Breadcrumbs","homeTo","items","useBreadcrumbs","t","useT","jsxs","Link","item","index","isLast"],"mappings":";;;;;;;;;;;;;;GAQMA,IAAS,CAACC,MAAeA,GACzBC,IAAgB,IAAI,IAAYC,CAAU;AAUhD,SAASC,EAAU,EAAE,WAAAC,KAAkD;AACrE,SAAI,OAAOA,KAAc,YAAYH,EAAc,IAAIG,CAAS,IACvD,gBAAAC,EAACC,KAAK,MAAMF,GAAuB,MAAK,MAAK,WAAWG,EAAO,WAAW,sBAGhF,QAAA,EAAK,WAAWA,EAAO,WAAW,eAAY,QAC5C,UAAAH,GACH;AAEJ;AASO,SAASI,EAAY,EAAE,WAAAJ,IAAY,cAAA,IAAoC,CAAA,GAAI;AAChF,QAAM,EAAE,QAAAK,GAAQ,OAAAC,EAAA,IAAUC,EAAA,GACpBC,IAAIC,EAAA;AACV,SAAIH,EAAM,WAAW,IAAU,OAG7B,gBAAAL,EAAC,OAAA,EAAI,cAAYO,EAAE,mBAAmB,GAAG,WAAWL,EAAO,aACzD,UAAA,gBAAAO,EAAC,MAAA,EAAG,WAAWP,EAAO,MACpB,UAAA;AAAA,IAAA,gBAAAF,EAAC,QAAG,WAAWE,EAAO,MACnB,UAAAE,IACC,gBAAAJ,EAACU,KAAK,IAAIhB,EAAOU,CAAM,GAAG,WAAWF,EAAO,MAAM,cAAYK,EAAE,kBAAkB,GAChF,4BAACN,GAAA,EAAK,MAAK,SAAQ,MAAK,MAAK,EAAA,CAC/B,sBAEC,QAAA,EAAK,WAAWC,EAAO,MAAM,cAAYK,EAAE,kBAAkB,GAC5D,4BAACN,GAAA,EAAK,MAAK,SAAQ,MAAK,MAAK,GAC/B,EAAA,CAEJ;AAAA,IACCI,EAAM,IAAI,CAACM,GAAMC,MAAU;AAC1B,YAAMC,IAASD,MAAUP,EAAM,SAAS;AACxC,aACE,gBAAAI,EAAC,MAAA,EAAG,WAAWP,EAAO,MACpB,UAAA;AAAA,QAAA,gBAAAF,EAACF,KAAU,WAAAC,GAAsB;AAAA,QAChCY,EAAK,MAAM,CAACE,IACX,gBAAAb,EAACU,GAAA,EAAK,IAAIhB,EAAOiB,EAAK,EAAE,GAAG,WAAWT,EAAO,MAC1C,UAAAS,EAAK,MAAA,CACR,IAEA,gBAAAX,EAAC,QAAA,EAAK,WAAWE,EAAO,SAAS,gBAAcW,IAAS,SAAS,QAC9D,UAAAF,EAAK,MAAA,CACR;AAAA,MAAA,EAAA,GAT6B,GAAGA,EAAK,KAAK,IAAIC,CAAK,EAWvD;AAAA,IAEJ,CAAC;AAAA,EAAA,EAAA,CACH,EAAA,CACF;AAEJ;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsxs as h, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as z, isValidElement as W, cloneElement as v } from "react";
|
|
3
|
+
import { clsx as B } from "clsx";
|
|
4
|
+
import { L as i } from "./Loader-CwyoKoWY.js";
|
|
5
|
+
const E = "_button_jyfg4_1", L = "_sm_jyfg4_23", N = "_md_jyfg4_29", $ = "_lg_jyfg4_35", w = "_contained_jyfg4_42", A = "_filled_jyfg4_52", R = "_outlined_jyfg4_61", V = "_text_jyfg4_72", k = "_fullWidth_jyfg4_82", q = "_rounded_jyfg4_86", C = "_disabled_jyfg4_94", D = "_loading_jyfg4_98", F = "_label_jyfg4_103", t = {
|
|
6
|
+
button: E,
|
|
7
|
+
sm: L,
|
|
8
|
+
md: N,
|
|
9
|
+
lg: $,
|
|
10
|
+
contained: w,
|
|
11
|
+
filled: A,
|
|
12
|
+
outlined: R,
|
|
13
|
+
text: V,
|
|
14
|
+
fullWidth: k,
|
|
15
|
+
rounded: q,
|
|
16
|
+
disabled: C,
|
|
17
|
+
loading: D,
|
|
18
|
+
label: F
|
|
19
|
+
}, M = z(function({
|
|
20
|
+
variant: r = "contained",
|
|
21
|
+
color: d = "accent",
|
|
22
|
+
size: n = "md",
|
|
23
|
+
loading: o = !1,
|
|
24
|
+
fullWidth: u = !1,
|
|
25
|
+
rounded: b = !1,
|
|
26
|
+
disabled: _ = !1,
|
|
27
|
+
startIcon: a,
|
|
28
|
+
endIcon: m,
|
|
29
|
+
className: g,
|
|
30
|
+
style: y,
|
|
31
|
+
type: j = "button",
|
|
32
|
+
children: s,
|
|
33
|
+
...p
|
|
34
|
+
}, x) {
|
|
35
|
+
const f = o && !a, c = (l) => W(l) ? v(l, {
|
|
36
|
+
size: l.props.size ?? n
|
|
37
|
+
}) : l;
|
|
38
|
+
return /* @__PURE__ */ h(
|
|
39
|
+
"button",
|
|
40
|
+
{
|
|
41
|
+
ref: x,
|
|
42
|
+
type: j,
|
|
43
|
+
disabled: _ || o,
|
|
44
|
+
"aria-busy": o || void 0,
|
|
45
|
+
className: B(
|
|
46
|
+
t.button,
|
|
47
|
+
t[r],
|
|
48
|
+
t[n],
|
|
49
|
+
u && t.fullWidth,
|
|
50
|
+
b && t.rounded,
|
|
51
|
+
o && t.loading,
|
|
52
|
+
_ && t.disabled,
|
|
53
|
+
g
|
|
54
|
+
),
|
|
55
|
+
style: {
|
|
56
|
+
"--tz-btn-rgb": `var(--tz-color-${d}-rgb)`,
|
|
57
|
+
"--tz-btn-on": `var(--tz-color-${d}-contrast, #fff)`,
|
|
58
|
+
...y
|
|
59
|
+
},
|
|
60
|
+
...p,
|
|
61
|
+
children: [
|
|
62
|
+
o && !f ? /* @__PURE__ */ e(i, { size: n, "aria-hidden": "true" }) : c(a),
|
|
63
|
+
s != null && s !== !1 && /* @__PURE__ */ e("span", { className: t.label, children: s }),
|
|
64
|
+
f ? /* @__PURE__ */ e(i, { size: n, "aria-hidden": "true" }) : !o && c(m)
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
});
|
|
69
|
+
export {
|
|
70
|
+
M as B
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=Button-BLW9yV8W.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-
|
|
1
|
+
{"version":3,"file":"Button-BLW9yV8W.js","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import {\n cloneElement,\n forwardRef,\n isValidElement,\n type ButtonHTMLAttributes,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { Loader } from '../Loader'\nimport styles from './Button.module.css'\n\nexport type ButtonVariant = 'contained' | 'filled' | 'outlined' | 'text'\nexport type ButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {\n /** Visual style. `contained` solid · `filled` soft tint · `outlined` border · `text` bare. */\n variant?: ButtonVariant\n /** Theme palette token that tints the button. Defaults to `accent`. */\n color?: ThemeColor\n /** Preset size — drives height (`--tz-control-height-*`), padding and font size. */\n size?: ButtonSize\n /** Shows the loader and blocks interaction (also sets the native `disabled`). The loader replaces the `startIcon` when present, otherwise it trails the label at the end (right) — so a plain button shows the spinner on the right. The text stays visible. */\n loading?: boolean\n /** Stretches the button to fill its container. */\n fullWidth?: boolean\n /** Pill shape (fully rounded corners). */\n rounded?: boolean\n /** Icon before the label. Replaced by the loader while `loading`. */\n startIcon?: ReactNode\n /** Icon after the label. Replaced by the loader while `loading` when no `startIcon` is set. */\n endIcon?: ReactNode\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = 'contained',\n color = 'accent',\n size = 'md',\n loading = false,\n fullWidth = false,\n rounded = false,\n disabled = false,\n startIcon,\n endIcon,\n className,\n style,\n type = 'button',\n children,\n ...props\n },\n ref,\n) {\n // The loader replaces the start icon when there is one; otherwise it sits at the end (right) —\n // including a plain button with no icons, so the spinner trails the label.\n const loaderAtEnd = loading && !startIcon\n\n // size an icon slot to match the button (an explicit icon `size` still wins)\n const sizeIcon = (node: ReactNode): ReactNode =>\n isValidElement(node)\n ? cloneElement(node as ReactElement<{ size?: ButtonSize }>, {\n size: (node.props as { size?: ButtonSize }).size ?? size,\n })\n : node\n\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={clsx(\n styles.button,\n styles[variant],\n styles[size],\n fullWidth && styles.fullWidth,\n rounded && styles.rounded,\n loading && styles.loading,\n disabled && styles.disabled,\n className,\n )}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {/* leading slot — the loader takes the start icon's place while loading */}\n {loading && !loaderAtEnd ? <Loader size={size} aria-hidden=\"true\" /> : sizeIcon(startIcon)}\n {children != null && children !== false && <span className={styles.label}>{children}</span>}\n {/* trailing slot — the loader takes the end icon's place when there's no start icon */}\n {loaderAtEnd ? <Loader size={size} aria-hidden=\"true\" /> : !loading && sizeIcon(endIcon)}\n </button>\n )\n})\n"],"names":["Button","forwardRef","variant","color","size","loading","fullWidth","rounded","disabled","startIcon","endIcon","className","style","type","children","props","ref","loaderAtEnd","sizeIcon","node","isValidElement","cloneElement","jsxs","clsx","styles","jsx","Loader"],"mappings":";;;;;;;;;;;;;;;;;;GAoCaA,IAASC,EAA2C,SAC/D;AAAA,EACE,SAAAC,IAAU;AAAA,EACV,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AAGA,QAAMC,IAAcZ,KAAW,CAACI,GAG1BS,IAAW,CAACC,MAChBC,EAAeD,CAAI,IACfE,EAAaF,GAA6C;AAAA,IACxD,MAAOA,EAAK,MAAgC,QAAQf;AAAA,EAAA,CACrD,IACDe;AAEN,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAN;AAAA,MACA,MAAAH;AAAA,MACA,UAAUL,KAAYH;AAAA,MACtB,aAAWA,KAAW;AAAA,MACtB,WAAWkB;AAAA,QACTC,EAAO;AAAA,QACPA,EAAOtB,CAAO;AAAA,QACdsB,EAAOpB,CAAI;AAAA,QACXE,KAAakB,EAAO;AAAA,QACpBjB,KAAWiB,EAAO;AAAA,QAClBnB,KAAWmB,EAAO;AAAA,QAClBhB,KAAYgB,EAAO;AAAA,QACnBb;AAAA,MAAA;AAAA,MAEF,OACE;AAAA,QACE,gBAAgB,kBAAkBR,CAAK;AAAA,QACvC,eAAe,kBAAkBA,CAAK;AAAA,QACtC,GAAGS;AAAA,MAAA;AAAA,MAGN,GAAGG;AAAA,MAGH,UAAA;AAAA,QAAAV,KAAW,CAACY,IAAc,gBAAAQ,EAACC,GAAA,EAAO,MAAAtB,GAAY,eAAY,OAAA,CAAO,IAAKc,EAAST,CAAS;AAAA,QACxFK,KAAY,QAAQA,MAAa,wBAAU,QAAA,EAAK,WAAWU,EAAO,OAAQ,UAAAV,EAAA,CAAS;AAAA,QAEnFG,IAAc,gBAAAQ,EAACC,GAAA,EAAO,MAAAtB,GAAY,eAAY,QAAO,IAAK,CAACC,KAAWa,EAASR,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG7F,CAAC;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const o=require("react/jsx-runtime"),d=require("react"),z=require("clsx"),f=require("./Loader-D9nteBXt.cjs"),W="_button_jyfg4_1",p="_sm_jyfg4_23",v="_md_jyfg4_29",B="_lg_jyfg4_35",E="_contained_jyfg4_42",L="_filled_jyfg4_52",N="_outlined_jyfg4_61",R="_text_jyfg4_72",$="_fullWidth_jyfg4_82",w="_rounded_jyfg4_86",A="_disabled_jyfg4_94",V="_loading_jyfg4_98",k="_label_jyfg4_103",t={button:W,sm:p,md:v,lg:B,contained:E,filled:L,outlined:N,text:R,fullWidth:$,rounded:w,disabled:A,loading:V,label:k},C=d.forwardRef(function({variant:i="contained",color:_="accent",size:n="md",loading:e=!1,fullWidth:b=!1,rounded:j=!1,disabled:a=!1,startIcon:c,endIcon:g,className:y,style:m,type:x="button",children:l,...h},q){const r=e&&!c,u=s=>d.isValidElement(s)?d.cloneElement(s,{size:s.props.size??n}):s;return o.jsxs("button",{ref:q,type:x,disabled:a||e,"aria-busy":e||void 0,className:z.clsx(t.button,t[i],t[n],b&&t.fullWidth,j&&t.rounded,e&&t.loading,a&&t.disabled,y),style:{"--tz-btn-rgb":`var(--tz-color-${_}-rgb)`,"--tz-btn-on":`var(--tz-color-${_}-contrast, #fff)`,...m},...h,children:[e&&!r?o.jsx(f.Loader,{size:n,"aria-hidden":"true"}):u(c),l!=null&&l!==!1&&o.jsx("span",{className:t.label,children:l}),r?o.jsx(f.Loader,{size:n,"aria-hidden":"true"}):!e&&u(g)]})});exports.Button=C;
|
|
2
|
+
//# sourceMappingURL=Button-KRGjJdMV.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-
|
|
1
|
+
{"version":3,"file":"Button-KRGjJdMV.cjs","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import {\n cloneElement,\n forwardRef,\n isValidElement,\n type ButtonHTMLAttributes,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { Loader } from '../Loader'\nimport styles from './Button.module.css'\n\nexport type ButtonVariant = 'contained' | 'filled' | 'outlined' | 'text'\nexport type ButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {\n /** Visual style. `contained` solid · `filled` soft tint · `outlined` border · `text` bare. */\n variant?: ButtonVariant\n /** Theme palette token that tints the button. Defaults to `accent`. */\n color?: ThemeColor\n /** Preset size — drives height (`--tz-control-height-*`), padding and font size. */\n size?: ButtonSize\n /** Shows the loader and blocks interaction (also sets the native `disabled`). The loader replaces the `startIcon` when present, otherwise it trails the label at the end (right) — so a plain button shows the spinner on the right. The text stays visible. */\n loading?: boolean\n /** Stretches the button to fill its container. */\n fullWidth?: boolean\n /** Pill shape (fully rounded corners). */\n rounded?: boolean\n /** Icon before the label. Replaced by the loader while `loading`. */\n startIcon?: ReactNode\n /** Icon after the label. Replaced by the loader while `loading` when no `startIcon` is set. */\n endIcon?: ReactNode\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = 'contained',\n color = 'accent',\n size = 'md',\n loading = false,\n fullWidth = false,\n rounded = false,\n disabled = false,\n startIcon,\n endIcon,\n className,\n style,\n type = 'button',\n children,\n ...props\n },\n ref,\n) {\n // The loader replaces the start icon when there is one; otherwise it sits at the end (right) —\n // including a plain button with no icons, so the spinner trails the label.\n const loaderAtEnd = loading && !startIcon\n\n // size an icon slot to match the button (an explicit icon `size` still wins)\n const sizeIcon = (node: ReactNode): ReactNode =>\n isValidElement(node)\n ? cloneElement(node as ReactElement<{ size?: ButtonSize }>, {\n size: (node.props as { size?: ButtonSize }).size ?? size,\n })\n : node\n\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={clsx(\n styles.button,\n styles[variant],\n styles[size],\n fullWidth && styles.fullWidth,\n rounded && styles.rounded,\n loading && styles.loading,\n disabled && styles.disabled,\n className,\n )}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {/* leading slot — the loader takes the start icon's place while loading */}\n {loading && !loaderAtEnd ? <Loader size={size} aria-hidden=\"true\" /> : sizeIcon(startIcon)}\n {children != null && children !== false && <span className={styles.label}>{children}</span>}\n {/* trailing slot — the loader takes the end icon's place when there's no start icon */}\n {loaderAtEnd ? <Loader size={size} aria-hidden=\"true\" /> : !loading && sizeIcon(endIcon)}\n </button>\n )\n})\n"],"names":["Button","forwardRef","variant","color","size","loading","fullWidth","rounded","disabled","startIcon","endIcon","className","style","type","children","props","ref","loaderAtEnd","sizeIcon","node","isValidElement","cloneElement","jsxs","clsx","styles","jsx","Loader"],"mappings":"8fAoCaA,EAASC,EAAAA,WAA2C,SAC/D,CACE,QAAAC,EAAU,YACV,MAAAC,EAAQ,SACR,KAAAC,EAAO,KACP,QAAAC,EAAU,GACV,UAAAC,EAAY,GACZ,QAAAC,EAAU,GACV,SAAAC,EAAW,GACX,UAAAC,EACA,QAAAC,EACA,UAAAC,EACA,MAAAC,EACA,KAAAC,EAAO,SACP,SAAAC,EACA,GAAGC,CACL,EACAC,EACA,CAGA,MAAMC,EAAcZ,GAAW,CAACI,EAG1BS,EAAYC,GAChBC,EAAAA,eAAeD,CAAI,EACfE,EAAAA,aAAaF,EAA6C,CACxD,KAAOA,EAAK,MAAgC,MAAQf,CAAA,CACrD,EACDe,EAEN,OACEG,EAAAA,KAAC,SAAA,CACC,IAAAN,EACA,KAAAH,EACA,SAAUL,GAAYH,EACtB,YAAWA,GAAW,OACtB,UAAWkB,EAAAA,KACTC,EAAO,OACPA,EAAOtB,CAAO,EACdsB,EAAOpB,CAAI,EACXE,GAAakB,EAAO,UACpBjB,GAAWiB,EAAO,QAClBnB,GAAWmB,EAAO,QAClBhB,GAAYgB,EAAO,SACnBb,CAAA,EAEF,MACE,CACE,eAAgB,kBAAkBR,CAAK,QACvC,cAAe,kBAAkBA,CAAK,mBACtC,GAAGS,CAAA,EAGN,GAAGG,EAGH,SAAA,CAAAV,GAAW,CAACY,EAAcQ,EAAAA,IAACC,SAAA,CAAO,KAAAtB,EAAY,cAAY,MAAA,CAAO,EAAKc,EAAST,CAAS,EACxFK,GAAY,MAAQA,IAAa,UAAU,OAAA,CAAK,UAAWU,EAAO,MAAQ,SAAAV,CAAA,CAAS,EAEnFG,EAAcQ,EAAAA,IAACC,SAAA,CAAO,KAAAtB,EAAY,cAAY,OAAO,EAAK,CAACC,GAAWa,EAASR,CAAO,CAAA,CAAA,CAAA,CAG7F,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const o=require("react/jsx-runtime"),f=require("react"),j=require("clsx"),E=require("./Icon-BVULqOJD.cjs"),L=require("./IconButton-
|
|
2
|
-
//# sourceMappingURL=Calendar-
|
|
1
|
+
"use strict";const o=require("react/jsx-runtime"),f=require("react"),j=require("clsx"),E=require("./Icon-BVULqOJD.cjs"),L=require("./IconButton-A2B0bqC-.cjs"),r=require("./DatePicker.module-BDtTsg8M.cjs"),z=require("./ConfigProvider-BElY0HuV.cjs");function T(n,s){if(n&&n.isSame(s,"month"))return n;const i=r.today();return i.isSame(s,"month")?i:s.startOf("month")}const A=3;function H({value:n,month:s,onMonthChange:i,onSelect:I,min:p,max:b,disabledDate:K,weekStartsOn:S,autoFocus:O,labelId:k}){const m=z.useT(),[l,N]=f.useState("day"),[a,u]=f.useState(()=>T(n,s)),h=f.useRef(null),d=f.useRef(!!O);f.useEffect(()=>{u(e=>e.isSame(s,"month")?e:T(n,s))},[s]),f.useEffect(()=>{var t,c;if(!d.current)return;d.current=!1;const e=(t=h.current)==null?void 0:t.querySelector('[tabindex="0"]');e==null||e.focus(),(c=e==null?void 0:e.scrollIntoView)==null||c.call(e,{block:"nearest"})},[a,l,s]);const R=e=>{d.current=!0,N(e)},y=e=>{d.current=!0,e.isSame(s,"month")||i(e.startOf("month")),u(e)},w=e=>{const t=a.add(e,"month");d.current=!0,u(t),i(t.startOf("month"))},D=e=>{let t=a.year()+e;p&&(t=Math.max(t,p.year())),b&&(t=Math.min(t,b.year()));const c=a.year(t);d.current=!0,u(c),i(c.startOf("month"))},q=e=>{const t=s.year(e);d.current=!0,u(t),i(t),N("month")},g=e=>{const t=s.month(e);d.current=!0,u(T(n,t)),i(t),N("day")},G=e=>{const t=(a.day()-S+7)%7;switch(e.key){case"ArrowLeft":e.preventDefault(),y(a.subtract(1,"day"));break;case"ArrowRight":e.preventDefault(),y(a.add(1,"day"));break;case"ArrowUp":e.preventDefault(),y(a.subtract(7,"day"));break;case"ArrowDown":e.preventDefault(),y(a.add(7,"day"));break;case"Home":e.preventDefault(),y(a.subtract(t,"day"));break;case"End":e.preventDefault(),y(a.add(6-t,"day"));break;case"PageUp":e.preventDefault(),y(a.subtract(1,e.shiftKey?"year":"month"));break;case"PageDown":e.preventDefault(),y(a.add(1,e.shiftKey?"year":"month"));break;case"Enter":case" ":e.preventDefault(),r.isDisabled(a,p,b,K)||I(r.toISO(a));break}},P=e=>{switch(e.key){case"ArrowLeft":e.preventDefault(),w(-1);break;case"ArrowRight":e.preventDefault(),w(1);break;case"ArrowUp":e.preventDefault(),w(-A);break;case"ArrowDown":e.preventDefault(),w(A);break;case"Enter":case" ":e.preventDefault(),g(a.month());break}},_=e=>{switch(e.key){case"ArrowLeft":e.preventDefault(),D(-1);break;case"ArrowRight":e.preventDefault(),D(1);break;case"ArrowUp":e.preventDefault(),D(-A);break;case"ArrowDown":e.preventDefault(),D(A);break;case"Enter":case" ":e.preventDefault(),q(a.year());break}},B=r.today(),Y=e=>m(`calendar.month${e}`),v=Array.from({length:7},(e,t)=>m(`calendar.weekday${(S+t)%7}`)),U=l==="day"?r.buildMonthGrid(s,S):[],$=l==="month"?Array.from({length:12},(e,t)=>Y(t)):[],M=l==="year"?r.yearList(p,b,s.year()):[];return o.jsxs("div",{className:r.styles.calendar,children:[o.jsxs("div",{className:r.styles.calHeader,children:[l==="day"&&o.jsx(L.IconButton,{variant:"text",color:"primary",size:"sm","aria-label":m("calendar.prevMonth"),onClick:()=>i(s.subtract(1,"month")),children:o.jsx(E.Icon,{name:"ArrowCircleLeft"})}),o.jsxs("div",{className:r.styles.calTitleGroup,children:[(l==="day"||l==="month")&&o.jsx("button",{type:"button",id:k,className:r.styles.calTitle,onClick:()=>R("year"),children:s.format("YYYY")}),l==="day"&&o.jsx("button",{type:"button",className:r.styles.calTitle,onClick:()=>R("month"),children:Y(s.month())}),l==="year"&&o.jsx("span",{id:k,className:r.styles.calTitleStatic,children:m("calendar.selectYear")})]}),l==="day"&&o.jsx(L.IconButton,{variant:"text",color:"primary",size:"sm","aria-label":m("calendar.nextMonth"),onClick:()=>i(s.add(1,"month")),children:o.jsx(E.Icon,{name:"ArrowCircleRight"})})]}),l==="year"?o.jsx("div",{ref:h,className:j.clsx(r.styles.pickGrid,r.styles.pickScroll),role:"listbox","aria-labelledby":k,onKeyDown:_,children:M.map(e=>{const t=n?n.year()===e:!1;return o.jsx("button",{type:"button",role:"option",className:j.clsx(r.styles.pickCell,t&&r.styles.pickSelected,!t&&e===B.year()&&r.styles.pickToday),tabIndex:e===a.year()?0:-1,"aria-selected":t,onClick:()=>q(e),children:e},e)})}):l==="month"?o.jsx("div",{ref:h,className:r.styles.pickGrid,role:"listbox","aria-labelledby":k,onKeyDown:P,children:$.map((e,t)=>{const c=n?n.isSame(s.month(t),"month"):!1,x=B.isSame(s.month(t),"month");return o.jsx("button",{type:"button",role:"option",className:j.clsx(r.styles.pickCell,c&&r.styles.pickSelected,!c&&x&&r.styles.pickToday),tabIndex:t===a.month()?0:-1,"aria-selected":c,onClick:()=>g(t),children:e},e)})}):o.jsxs("div",{ref:h,className:r.styles.grid,role:"grid","aria-label":`${Y(s.month())} ${s.format("YYYY")}`,onKeyDown:G,children:[o.jsx("div",{className:r.styles.weekdays,role:"row",children:v.map((e,t)=>o.jsx("span",{role:"columnheader",className:r.styles.weekday,children:e},t))}),Array.from({length:6},(e,t)=>o.jsx("div",{role:"row",className:r.styles.week,children:U.slice(t*7,t*7+7).map(c=>{const x=n?c.date.isSame(n,"day"):!1,C=r.isDisabled(c.date,p,b,K);return o.jsx("button",{type:"button",role:"gridcell",className:j.clsx(r.styles.day,!c.inMonth&&r.styles.dayOutside,x&&r.styles.daySelected,c.isToday&&r.styles.dayToday,C&&r.styles.dayDisabled),tabIndex:c.date.isSame(a,"day")?0:-1,"aria-selected":x,"aria-disabled":C||void 0,"aria-current":c.isToday?"date":void 0,onClick:()=>!C&&I(c.iso),children:c.date.date()},c.iso)})},t))]})]})}exports.Calendar=H;
|
|
2
|
+
//# sourceMappingURL=Calendar-CoTCOOUu.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar-B2nMXk4C.cjs","sources":["../src/components/DatePicker/Calendar.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type KeyboardEvent } from 'react'\nimport { clsx } from 'clsx'\nimport { useT, type MessageKey } from '../../theme'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { buildMonthGrid, isDisabled, today, toISO, yearList, type Dayjs } from './dateUtils'\nimport styles from './DatePicker.module.css'\n\nexport interface CalendarProps {\n /** Currently selected date (UTC dayjs) or null. */\n value: Dayjs | null\n /** The month currently shown (UTC dayjs). */\n month: Dayjs\n /** Change the shown month. */\n onMonthChange: (month: Dayjs) => void\n /** Commit a selected date as an ISO `'YYYY-MM-DD'` string. */\n onSelect: (iso: string) => void\n min: Dayjs | null\n max: Dayjs | null\n disabledDate?: (iso: string) => boolean\n /** 0 = Sunday … 6 = Saturday. */\n weekStartsOn: number\n /** Focus the active cell on mount (when the popover opens). */\n autoFocus?: boolean\n /** Id of the element labelling the grid. */\n labelId?: string\n}\n\ntype View = 'day' | 'month' | 'year'\n\n/** Picks the day that should hold roving focus for a given month. */\nfunction focusableDay(value: Dayjs | null, month: Dayjs): Dayjs {\n if (value && value.isSame(month, 'month')) return value\n const now = today()\n if (now.isSame(month, 'month')) return now\n return month.startOf('month')\n}\n\n/** Number of columns in the month / year picker grids (drives Up/Down arrow steps). */\nconst PICK_COLS = 3\n\n/**\n * The calendar grid used by the date components. Three views — a `role=\"grid\"` **day** view with full\n * keyboard navigation (Arrows move days, Home/End the week, PageUp/Down the month, Shift+PageUp/Down\n * the year, Enter/Space to select), plus separate **month** and **year** picker views reached from the\n * header (the month and year labels are independently clickable). Picking a year advances to the month\n * view; picking a month returns to the day view. The year view lists every year in range and scrolls.\n * Controlled: the consumer owns `value` + `month`; `onSelect`/`onMonthChange` lift changes up.\n */\nexport function Calendar({\n value,\n month,\n onMonthChange,\n onSelect,\n min,\n max,\n disabledDate,\n weekStartsOn,\n autoFocus,\n labelId,\n}: CalendarProps) {\n const t = useT()\n const [view, setView] = useState<View>('day')\n const [focused, setFocused] = useState<Dayjs>(() => focusableDay(value, month))\n const bodyRef = useRef<HTMLDivElement | null>(null)\n const focusOnRender = useRef(Boolean(autoFocus))\n\n // re-anchor the roving focus into the month whenever it changes from outside (nav buttons, pickers)\n useEffect(() => {\n setFocused((f) => (f.isSame(month, 'month') ? f : focusableDay(value, month)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [month])\n\n // move DOM focus to the roving cell after a keyboard move, a view switch, or the initial autoFocus\n useEffect(() => {\n if (!focusOnRender.current) return\n focusOnRender.current = false\n const el = bodyRef.current?.querySelector<HTMLElement>('[tabindex=\"0\"]')\n el?.focus()\n el?.scrollIntoView?.({ block: 'nearest' })\n }, [focused, view, month])\n\n const switchTo = (next: View) => {\n focusOnRender.current = true\n setView(next)\n }\n\n // ── navigation helpers ─────────────────────────────────────────────────────────────────────────\n const moveDay = (next: Dayjs) => {\n focusOnRender.current = true\n if (!next.isSame(month, 'month')) onMonthChange(next.startOf('month'))\n setFocused(next)\n }\n const stepMonthBy = (delta: number) => {\n const next = focused.add(delta, 'month')\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next.startOf('month')) // keep the rendered grid + header in sync with focus\n }\n const stepYearBy = (delta: number) => {\n let year = focused.year() + delta\n if (min) year = Math.max(year, min.year())\n if (max) year = Math.min(year, max.year())\n const next = focused.year(year)\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next.startOf('month')) // re-anchor the year window so focus never leaves it\n }\n\n const pickYear = (y: number) => {\n const next = month.year(y)\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next)\n setView('month') // picking a year advances to the month view\n }\n const pickMonth = (m: number) => {\n const next = month.month(m)\n focusOnRender.current = true\n setFocused(focusableDay(value, next))\n onMonthChange(next)\n setView('day') // picking a month returns to the day view\n }\n\n // ── keyboard ─────────────────────────────────────────────────────────────────────────────────────\n const handleDayKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const offsetInWeek = (focused.day() - weekStartsOn + 7) % 7\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n moveDay(focused.subtract(1, 'day'))\n break\n case 'ArrowRight':\n event.preventDefault()\n moveDay(focused.add(1, 'day'))\n break\n case 'ArrowUp':\n event.preventDefault()\n moveDay(focused.subtract(7, 'day'))\n break\n case 'ArrowDown':\n event.preventDefault()\n moveDay(focused.add(7, 'day'))\n break\n case 'Home':\n event.preventDefault()\n moveDay(focused.subtract(offsetInWeek, 'day'))\n break\n case 'End':\n event.preventDefault()\n moveDay(focused.add(6 - offsetInWeek, 'day'))\n break\n case 'PageUp':\n event.preventDefault()\n moveDay(focused.subtract(1, event.shiftKey ? 'year' : 'month'))\n break\n case 'PageDown':\n event.preventDefault()\n moveDay(focused.add(1, event.shiftKey ? 'year' : 'month'))\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n if (!isDisabled(focused, min, max, disabledDate)) onSelect(toISO(focused))\n break\n }\n }\n\n const handleMonthKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n stepMonthBy(-1)\n break\n case 'ArrowRight':\n event.preventDefault()\n stepMonthBy(1)\n break\n case 'ArrowUp':\n event.preventDefault()\n stepMonthBy(-PICK_COLS)\n break\n case 'ArrowDown':\n event.preventDefault()\n stepMonthBy(PICK_COLS)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n pickMonth(focused.month())\n break\n }\n }\n\n const handleYearKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n stepYearBy(-1)\n break\n case 'ArrowRight':\n event.preventDefault()\n stepYearBy(1)\n break\n case 'ArrowUp':\n event.preventDefault()\n stepYearBy(-PICK_COLS)\n break\n case 'ArrowDown':\n event.preventDefault()\n stepYearBy(PICK_COLS)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n pickYear(focused.year())\n break\n }\n }\n\n // ── derived data (built once per render) ─────────────────────────────────────────────────────────\n const now = today()\n // month names + short weekday labels come from the i18n catalog (localized), not dayjs\n const monthName = (m: number) => t(`calendar.month${m}` as MessageKey)\n const weekdays = Array.from({ length: 7 }, (_, i) =>\n t(`calendar.weekday${(weekStartsOn + i) % 7}` as MessageKey),\n )\n const monthGrid = view === 'day' ? buildMonthGrid(month, weekStartsOn) : []\n const months = view === 'month' ? Array.from({ length: 12 }, (_, m) => monthName(m)) : []\n const years = view === 'year' ? yearList(min, max, month.year()) : []\n\n return (\n <div className={styles.calendar}>\n <div className={styles.calHeader}>\n {view === 'day' && (\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-label={t('calendar.prevMonth')}\n onClick={() => onMonthChange(month.subtract(1, 'month'))}\n >\n <Icon name=\"ArrowCircleLeft\" />\n </IconButton>\n )}\n\n <div className={styles.calTitleGroup}>\n {(view === 'day' || view === 'month') && (\n <button\n type=\"button\"\n id={labelId}\n className={styles.calTitle}\n onClick={() => switchTo('year')}\n >\n {month.format('YYYY')}\n </button>\n )}\n {view === 'day' && (\n <button type=\"button\" className={styles.calTitle} onClick={() => switchTo('month')}>\n {monthName(month.month())}\n </button>\n )}\n {view === 'year' && (\n <span id={labelId} className={styles.calTitleStatic}>\n {t('calendar.selectYear')}\n </span>\n )}\n </div>\n\n {view === 'day' && (\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-label={t('calendar.nextMonth')}\n onClick={() => onMonthChange(month.add(1, 'month'))}\n >\n <Icon name=\"ArrowCircleRight\" />\n </IconButton>\n )}\n </div>\n\n {view === 'year' ? (\n <div\n ref={bodyRef}\n className={clsx(styles.pickGrid, styles.pickScroll)}\n role=\"listbox\"\n aria-labelledby={labelId}\n onKeyDown={handleYearKeyDown}\n >\n {years.map((y) => {\n const isSelected = value ? value.year() === y : false\n return (\n <button\n key={y}\n type=\"button\"\n role=\"option\"\n className={clsx(\n styles.pickCell,\n isSelected && styles.pickSelected,\n !isSelected && y === now.year() && styles.pickToday,\n )}\n tabIndex={y === focused.year() ? 0 : -1}\n aria-selected={isSelected}\n onClick={() => pickYear(y)}\n >\n {y}\n </button>\n )\n })}\n </div>\n ) : view === 'month' ? (\n <div\n ref={bodyRef}\n className={styles.pickGrid}\n role=\"listbox\"\n aria-labelledby={labelId}\n onKeyDown={handleMonthKeyDown}\n >\n {months.map((label, m) => {\n const isSelected = value ? value.isSame(month.month(m), 'month') : false\n const isCurrent = now.isSame(month.month(m), 'month')\n return (\n <button\n key={label}\n type=\"button\"\n role=\"option\"\n className={clsx(\n styles.pickCell,\n isSelected && styles.pickSelected,\n !isSelected && isCurrent && styles.pickToday,\n )}\n tabIndex={m === focused.month() ? 0 : -1}\n aria-selected={isSelected}\n onClick={() => pickMonth(m)}\n >\n {label}\n </button>\n )\n })}\n </div>\n ) : (\n <div\n ref={bodyRef}\n className={styles.grid}\n role=\"grid\"\n aria-label={`${monthName(month.month())} ${month.format('YYYY')}`}\n onKeyDown={handleDayKeyDown}\n >\n <div className={styles.weekdays} role=\"row\">\n {weekdays.map((w, i) => (\n <span key={i} role=\"columnheader\" className={styles.weekday}>\n {w}\n </span>\n ))}\n </div>\n {Array.from({ length: 6 }, (_, wk) => (\n <div key={wk} role=\"row\" className={styles.week}>\n {monthGrid.slice(wk * 7, wk * 7 + 7).map((d) => {\n const selected = value ? d.date.isSame(value, 'day') : false\n const disabled = isDisabled(d.date, min, max, disabledDate)\n return (\n <button\n key={d.iso}\n type=\"button\"\n role=\"gridcell\"\n className={clsx(\n styles.day,\n !d.inMonth && styles.dayOutside,\n selected && styles.daySelected,\n d.isToday && styles.dayToday,\n disabled && styles.dayDisabled,\n )}\n tabIndex={d.date.isSame(focused, 'day') ? 0 : -1}\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n aria-current={d.isToday ? 'date' : undefined}\n onClick={() => !disabled && onSelect(d.iso)}\n >\n {d.date.date()}\n </button>\n )\n })}\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"names":["focusableDay","value","month","now","today","PICK_COLS","Calendar","onMonthChange","onSelect","min","max","disabledDate","weekStartsOn","autoFocus","labelId","t","useT","view","setView","useState","focused","setFocused","bodyRef","useRef","focusOnRender","useEffect","f","el","_a","_b","switchTo","next","moveDay","stepMonthBy","delta","stepYearBy","year","pickYear","y","pickMonth","m","handleDayKeyDown","event","offsetInWeek","isDisabled","toISO","handleMonthKeyDown","handleYearKeyDown","monthName","weekdays","_","i","monthGrid","buildMonthGrid","months","years","yearList","jsxs","styles","jsx","IconButton","Icon","clsx","isSelected","label","isCurrent","w","wk","d","selected","disabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Calendar-CoTCOOUu.cjs","sources":["../src/components/DatePicker/Calendar.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type KeyboardEvent } from 'react'\nimport { clsx } from 'clsx'\nimport { useT, type MessageKey } from '../../theme'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { buildMonthGrid, isDisabled, today, toISO, yearList, type Dayjs } from './dateUtils'\nimport styles from './DatePicker.module.css'\n\nexport interface CalendarProps {\n /** Currently selected date (UTC dayjs) or null. */\n value: Dayjs | null\n /** The month currently shown (UTC dayjs). */\n month: Dayjs\n /** Change the shown month. */\n onMonthChange: (month: Dayjs) => void\n /** Commit a selected date as an ISO `'YYYY-MM-DD'` string. */\n onSelect: (iso: string) => void\n min: Dayjs | null\n max: Dayjs | null\n disabledDate?: (iso: string) => boolean\n /** 0 = Sunday … 6 = Saturday. */\n weekStartsOn: number\n /** Focus the active cell on mount (when the popover opens). */\n autoFocus?: boolean\n /** Id of the element labelling the grid. */\n labelId?: string\n}\n\ntype View = 'day' | 'month' | 'year'\n\n/** Picks the day that should hold roving focus for a given month. */\nfunction focusableDay(value: Dayjs | null, month: Dayjs): Dayjs {\n if (value && value.isSame(month, 'month')) return value\n const now = today()\n if (now.isSame(month, 'month')) return now\n return month.startOf('month')\n}\n\n/** Number of columns in the month / year picker grids (drives Up/Down arrow steps). */\nconst PICK_COLS = 3\n\n/**\n * The calendar grid used by the date components. Three views — a `role=\"grid\"` **day** view with full\n * keyboard navigation (Arrows move days, Home/End the week, PageUp/Down the month, Shift+PageUp/Down\n * the year, Enter/Space to select), plus separate **month** and **year** picker views reached from the\n * header (the month and year labels are independently clickable). Picking a year advances to the month\n * view; picking a month returns to the day view. The year view lists every year in range and scrolls.\n * Controlled: the consumer owns `value` + `month`; `onSelect`/`onMonthChange` lift changes up.\n */\nexport function Calendar({\n value,\n month,\n onMonthChange,\n onSelect,\n min,\n max,\n disabledDate,\n weekStartsOn,\n autoFocus,\n labelId,\n}: CalendarProps) {\n const t = useT()\n const [view, setView] = useState<View>('day')\n const [focused, setFocused] = useState<Dayjs>(() => focusableDay(value, month))\n const bodyRef = useRef<HTMLDivElement | null>(null)\n const focusOnRender = useRef(Boolean(autoFocus))\n\n // re-anchor the roving focus into the month whenever it changes from outside (nav buttons, pickers)\n useEffect(() => {\n setFocused((f) => (f.isSame(month, 'month') ? f : focusableDay(value, month)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [month])\n\n // move DOM focus to the roving cell after a keyboard move, a view switch, or the initial autoFocus\n useEffect(() => {\n if (!focusOnRender.current) return\n focusOnRender.current = false\n const el = bodyRef.current?.querySelector<HTMLElement>('[tabindex=\"0\"]')\n el?.focus()\n el?.scrollIntoView?.({ block: 'nearest' })\n }, [focused, view, month])\n\n const switchTo = (next: View) => {\n focusOnRender.current = true\n setView(next)\n }\n\n // ── navigation helpers ─────────────────────────────────────────────────────────────────────────\n const moveDay = (next: Dayjs) => {\n focusOnRender.current = true\n if (!next.isSame(month, 'month')) onMonthChange(next.startOf('month'))\n setFocused(next)\n }\n const stepMonthBy = (delta: number) => {\n const next = focused.add(delta, 'month')\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next.startOf('month')) // keep the rendered grid + header in sync with focus\n }\n const stepYearBy = (delta: number) => {\n let year = focused.year() + delta\n if (min) year = Math.max(year, min.year())\n if (max) year = Math.min(year, max.year())\n const next = focused.year(year)\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next.startOf('month')) // re-anchor the year window so focus never leaves it\n }\n\n const pickYear = (y: number) => {\n const next = month.year(y)\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next)\n setView('month') // picking a year advances to the month view\n }\n const pickMonth = (m: number) => {\n const next = month.month(m)\n focusOnRender.current = true\n setFocused(focusableDay(value, next))\n onMonthChange(next)\n setView('day') // picking a month returns to the day view\n }\n\n // ── keyboard ─────────────────────────────────────────────────────────────────────────────────────\n const handleDayKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const offsetInWeek = (focused.day() - weekStartsOn + 7) % 7\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n moveDay(focused.subtract(1, 'day'))\n break\n case 'ArrowRight':\n event.preventDefault()\n moveDay(focused.add(1, 'day'))\n break\n case 'ArrowUp':\n event.preventDefault()\n moveDay(focused.subtract(7, 'day'))\n break\n case 'ArrowDown':\n event.preventDefault()\n moveDay(focused.add(7, 'day'))\n break\n case 'Home':\n event.preventDefault()\n moveDay(focused.subtract(offsetInWeek, 'day'))\n break\n case 'End':\n event.preventDefault()\n moveDay(focused.add(6 - offsetInWeek, 'day'))\n break\n case 'PageUp':\n event.preventDefault()\n moveDay(focused.subtract(1, event.shiftKey ? 'year' : 'month'))\n break\n case 'PageDown':\n event.preventDefault()\n moveDay(focused.add(1, event.shiftKey ? 'year' : 'month'))\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n if (!isDisabled(focused, min, max, disabledDate)) onSelect(toISO(focused))\n break\n }\n }\n\n const handleMonthKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n stepMonthBy(-1)\n break\n case 'ArrowRight':\n event.preventDefault()\n stepMonthBy(1)\n break\n case 'ArrowUp':\n event.preventDefault()\n stepMonthBy(-PICK_COLS)\n break\n case 'ArrowDown':\n event.preventDefault()\n stepMonthBy(PICK_COLS)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n pickMonth(focused.month())\n break\n }\n }\n\n const handleYearKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n stepYearBy(-1)\n break\n case 'ArrowRight':\n event.preventDefault()\n stepYearBy(1)\n break\n case 'ArrowUp':\n event.preventDefault()\n stepYearBy(-PICK_COLS)\n break\n case 'ArrowDown':\n event.preventDefault()\n stepYearBy(PICK_COLS)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n pickYear(focused.year())\n break\n }\n }\n\n // ── derived data (built once per render) ─────────────────────────────────────────────────────────\n const now = today()\n // month names + short weekday labels come from the i18n catalog (localized), not dayjs\n const monthName = (m: number) => t(`calendar.month${m}` as MessageKey)\n const weekdays = Array.from({ length: 7 }, (_, i) =>\n t(`calendar.weekday${(weekStartsOn + i) % 7}` as MessageKey),\n )\n const monthGrid = view === 'day' ? buildMonthGrid(month, weekStartsOn) : []\n const months = view === 'month' ? Array.from({ length: 12 }, (_, m) => monthName(m)) : []\n const years = view === 'year' ? yearList(min, max, month.year()) : []\n\n return (\n <div className={styles.calendar}>\n <div className={styles.calHeader}>\n {view === 'day' && (\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-label={t('calendar.prevMonth')}\n onClick={() => onMonthChange(month.subtract(1, 'month'))}\n >\n <Icon name=\"ArrowCircleLeft\" />\n </IconButton>\n )}\n\n <div className={styles.calTitleGroup}>\n {(view === 'day' || view === 'month') && (\n <button\n type=\"button\"\n id={labelId}\n className={styles.calTitle}\n onClick={() => switchTo('year')}\n >\n {month.format('YYYY')}\n </button>\n )}\n {view === 'day' && (\n <button type=\"button\" className={styles.calTitle} onClick={() => switchTo('month')}>\n {monthName(month.month())}\n </button>\n )}\n {view === 'year' && (\n <span id={labelId} className={styles.calTitleStatic}>\n {t('calendar.selectYear')}\n </span>\n )}\n </div>\n\n {view === 'day' && (\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-label={t('calendar.nextMonth')}\n onClick={() => onMonthChange(month.add(1, 'month'))}\n >\n <Icon name=\"ArrowCircleRight\" />\n </IconButton>\n )}\n </div>\n\n {view === 'year' ? (\n <div\n ref={bodyRef}\n className={clsx(styles.pickGrid, styles.pickScroll)}\n role=\"listbox\"\n aria-labelledby={labelId}\n onKeyDown={handleYearKeyDown}\n >\n {years.map((y) => {\n const isSelected = value ? value.year() === y : false\n return (\n <button\n key={y}\n type=\"button\"\n role=\"option\"\n className={clsx(\n styles.pickCell,\n isSelected && styles.pickSelected,\n !isSelected && y === now.year() && styles.pickToday,\n )}\n tabIndex={y === focused.year() ? 0 : -1}\n aria-selected={isSelected}\n onClick={() => pickYear(y)}\n >\n {y}\n </button>\n )\n })}\n </div>\n ) : view === 'month' ? (\n <div\n ref={bodyRef}\n className={styles.pickGrid}\n role=\"listbox\"\n aria-labelledby={labelId}\n onKeyDown={handleMonthKeyDown}\n >\n {months.map((label, m) => {\n const isSelected = value ? value.isSame(month.month(m), 'month') : false\n const isCurrent = now.isSame(month.month(m), 'month')\n return (\n <button\n key={label}\n type=\"button\"\n role=\"option\"\n className={clsx(\n styles.pickCell,\n isSelected && styles.pickSelected,\n !isSelected && isCurrent && styles.pickToday,\n )}\n tabIndex={m === focused.month() ? 0 : -1}\n aria-selected={isSelected}\n onClick={() => pickMonth(m)}\n >\n {label}\n </button>\n )\n })}\n </div>\n ) : (\n <div\n ref={bodyRef}\n className={styles.grid}\n role=\"grid\"\n aria-label={`${monthName(month.month())} ${month.format('YYYY')}`}\n onKeyDown={handleDayKeyDown}\n >\n <div className={styles.weekdays} role=\"row\">\n {weekdays.map((w, i) => (\n <span key={i} role=\"columnheader\" className={styles.weekday}>\n {w}\n </span>\n ))}\n </div>\n {Array.from({ length: 6 }, (_, wk) => (\n <div key={wk} role=\"row\" className={styles.week}>\n {monthGrid.slice(wk * 7, wk * 7 + 7).map((d) => {\n const selected = value ? d.date.isSame(value, 'day') : false\n const disabled = isDisabled(d.date, min, max, disabledDate)\n return (\n <button\n key={d.iso}\n type=\"button\"\n role=\"gridcell\"\n className={clsx(\n styles.day,\n !d.inMonth && styles.dayOutside,\n selected && styles.daySelected,\n d.isToday && styles.dayToday,\n disabled && styles.dayDisabled,\n )}\n tabIndex={d.date.isSame(focused, 'day') ? 0 : -1}\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n aria-current={d.isToday ? 'date' : undefined}\n onClick={() => !disabled && onSelect(d.iso)}\n >\n {d.date.date()}\n </button>\n )\n })}\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"names":["focusableDay","value","month","now","today","PICK_COLS","Calendar","onMonthChange","onSelect","min","max","disabledDate","weekStartsOn","autoFocus","labelId","t","useT","view","setView","useState","focused","setFocused","bodyRef","useRef","focusOnRender","useEffect","f","el","_a","_b","switchTo","next","moveDay","stepMonthBy","delta","stepYearBy","year","pickYear","y","pickMonth","m","handleDayKeyDown","event","offsetInWeek","isDisabled","toISO","handleMonthKeyDown","handleYearKeyDown","monthName","weekdays","_","i","monthGrid","buildMonthGrid","months","years","yearList","jsxs","styles","jsx","IconButton","Icon","clsx","isSelected","label","isCurrent","w","wk","d","selected","disabled"],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@ import { jsxs as A, jsx as o } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as G, useRef as B, useEffect as U } from "react";
|
|
3
3
|
import { clsx as N } from "clsx";
|
|
4
4
|
import { I as _ } from "./Icon-DaTvzLBu.js";
|
|
5
|
-
import { I as $ } from "./IconButton-
|
|
6
|
-
import { t as M, e as J, y as Q, s as r, i as v, d as X } from "./DatePicker.module-
|
|
7
|
-
import { a as Z } from "./ConfigProvider-
|
|
5
|
+
import { I as $ } from "./IconButton-Dq17Fekm.js";
|
|
6
|
+
import { t as M, e as J, y as Q, s as r, i as v, d as X } from "./DatePicker.module-CMMQyEhG.js";
|
|
7
|
+
import { a as Z } from "./ConfigProvider-B_RSn9bb.js";
|
|
8
8
|
function K(n, t) {
|
|
9
9
|
if (n && n.isSame(t, "month")) return n;
|
|
10
10
|
const l = M();
|
|
@@ -264,4 +264,4 @@ function ne({
|
|
|
264
264
|
export {
|
|
265
265
|
ne as C
|
|
266
266
|
};
|
|
267
|
-
//# sourceMappingURL=Calendar-
|
|
267
|
+
//# sourceMappingURL=Calendar-sLA-xa0B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar-CtteUt82.js","sources":["../src/components/DatePicker/Calendar.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type KeyboardEvent } from 'react'\nimport { clsx } from 'clsx'\nimport { useT, type MessageKey } from '../../theme'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { buildMonthGrid, isDisabled, today, toISO, yearList, type Dayjs } from './dateUtils'\nimport styles from './DatePicker.module.css'\n\nexport interface CalendarProps {\n /** Currently selected date (UTC dayjs) or null. */\n value: Dayjs | null\n /** The month currently shown (UTC dayjs). */\n month: Dayjs\n /** Change the shown month. */\n onMonthChange: (month: Dayjs) => void\n /** Commit a selected date as an ISO `'YYYY-MM-DD'` string. */\n onSelect: (iso: string) => void\n min: Dayjs | null\n max: Dayjs | null\n disabledDate?: (iso: string) => boolean\n /** 0 = Sunday … 6 = Saturday. */\n weekStartsOn: number\n /** Focus the active cell on mount (when the popover opens). */\n autoFocus?: boolean\n /** Id of the element labelling the grid. */\n labelId?: string\n}\n\ntype View = 'day' | 'month' | 'year'\n\n/** Picks the day that should hold roving focus for a given month. */\nfunction focusableDay(value: Dayjs | null, month: Dayjs): Dayjs {\n if (value && value.isSame(month, 'month')) return value\n const now = today()\n if (now.isSame(month, 'month')) return now\n return month.startOf('month')\n}\n\n/** Number of columns in the month / year picker grids (drives Up/Down arrow steps). */\nconst PICK_COLS = 3\n\n/**\n * The calendar grid used by the date components. Three views — a `role=\"grid\"` **day** view with full\n * keyboard navigation (Arrows move days, Home/End the week, PageUp/Down the month, Shift+PageUp/Down\n * the year, Enter/Space to select), plus separate **month** and **year** picker views reached from the\n * header (the month and year labels are independently clickable). Picking a year advances to the month\n * view; picking a month returns to the day view. The year view lists every year in range and scrolls.\n * Controlled: the consumer owns `value` + `month`; `onSelect`/`onMonthChange` lift changes up.\n */\nexport function Calendar({\n value,\n month,\n onMonthChange,\n onSelect,\n min,\n max,\n disabledDate,\n weekStartsOn,\n autoFocus,\n labelId,\n}: CalendarProps) {\n const t = useT()\n const [view, setView] = useState<View>('day')\n const [focused, setFocused] = useState<Dayjs>(() => focusableDay(value, month))\n const bodyRef = useRef<HTMLDivElement | null>(null)\n const focusOnRender = useRef(Boolean(autoFocus))\n\n // re-anchor the roving focus into the month whenever it changes from outside (nav buttons, pickers)\n useEffect(() => {\n setFocused((f) => (f.isSame(month, 'month') ? f : focusableDay(value, month)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [month])\n\n // move DOM focus to the roving cell after a keyboard move, a view switch, or the initial autoFocus\n useEffect(() => {\n if (!focusOnRender.current) return\n focusOnRender.current = false\n const el = bodyRef.current?.querySelector<HTMLElement>('[tabindex=\"0\"]')\n el?.focus()\n el?.scrollIntoView?.({ block: 'nearest' })\n }, [focused, view, month])\n\n const switchTo = (next: View) => {\n focusOnRender.current = true\n setView(next)\n }\n\n // ── navigation helpers ─────────────────────────────────────────────────────────────────────────\n const moveDay = (next: Dayjs) => {\n focusOnRender.current = true\n if (!next.isSame(month, 'month')) onMonthChange(next.startOf('month'))\n setFocused(next)\n }\n const stepMonthBy = (delta: number) => {\n const next = focused.add(delta, 'month')\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next.startOf('month')) // keep the rendered grid + header in sync with focus\n }\n const stepYearBy = (delta: number) => {\n let year = focused.year() + delta\n if (min) year = Math.max(year, min.year())\n if (max) year = Math.min(year, max.year())\n const next = focused.year(year)\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next.startOf('month')) // re-anchor the year window so focus never leaves it\n }\n\n const pickYear = (y: number) => {\n const next = month.year(y)\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next)\n setView('month') // picking a year advances to the month view\n }\n const pickMonth = (m: number) => {\n const next = month.month(m)\n focusOnRender.current = true\n setFocused(focusableDay(value, next))\n onMonthChange(next)\n setView('day') // picking a month returns to the day view\n }\n\n // ── keyboard ─────────────────────────────────────────────────────────────────────────────────────\n const handleDayKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const offsetInWeek = (focused.day() - weekStartsOn + 7) % 7\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n moveDay(focused.subtract(1, 'day'))\n break\n case 'ArrowRight':\n event.preventDefault()\n moveDay(focused.add(1, 'day'))\n break\n case 'ArrowUp':\n event.preventDefault()\n moveDay(focused.subtract(7, 'day'))\n break\n case 'ArrowDown':\n event.preventDefault()\n moveDay(focused.add(7, 'day'))\n break\n case 'Home':\n event.preventDefault()\n moveDay(focused.subtract(offsetInWeek, 'day'))\n break\n case 'End':\n event.preventDefault()\n moveDay(focused.add(6 - offsetInWeek, 'day'))\n break\n case 'PageUp':\n event.preventDefault()\n moveDay(focused.subtract(1, event.shiftKey ? 'year' : 'month'))\n break\n case 'PageDown':\n event.preventDefault()\n moveDay(focused.add(1, event.shiftKey ? 'year' : 'month'))\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n if (!isDisabled(focused, min, max, disabledDate)) onSelect(toISO(focused))\n break\n }\n }\n\n const handleMonthKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n stepMonthBy(-1)\n break\n case 'ArrowRight':\n event.preventDefault()\n stepMonthBy(1)\n break\n case 'ArrowUp':\n event.preventDefault()\n stepMonthBy(-PICK_COLS)\n break\n case 'ArrowDown':\n event.preventDefault()\n stepMonthBy(PICK_COLS)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n pickMonth(focused.month())\n break\n }\n }\n\n const handleYearKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n stepYearBy(-1)\n break\n case 'ArrowRight':\n event.preventDefault()\n stepYearBy(1)\n break\n case 'ArrowUp':\n event.preventDefault()\n stepYearBy(-PICK_COLS)\n break\n case 'ArrowDown':\n event.preventDefault()\n stepYearBy(PICK_COLS)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n pickYear(focused.year())\n break\n }\n }\n\n // ── derived data (built once per render) ─────────────────────────────────────────────────────────\n const now = today()\n // month names + short weekday labels come from the i18n catalog (localized), not dayjs\n const monthName = (m: number) => t(`calendar.month${m}` as MessageKey)\n const weekdays = Array.from({ length: 7 }, (_, i) =>\n t(`calendar.weekday${(weekStartsOn + i) % 7}` as MessageKey),\n )\n const monthGrid = view === 'day' ? buildMonthGrid(month, weekStartsOn) : []\n const months = view === 'month' ? Array.from({ length: 12 }, (_, m) => monthName(m)) : []\n const years = view === 'year' ? yearList(min, max, month.year()) : []\n\n return (\n <div className={styles.calendar}>\n <div className={styles.calHeader}>\n {view === 'day' && (\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-label={t('calendar.prevMonth')}\n onClick={() => onMonthChange(month.subtract(1, 'month'))}\n >\n <Icon name=\"ArrowCircleLeft\" />\n </IconButton>\n )}\n\n <div className={styles.calTitleGroup}>\n {(view === 'day' || view === 'month') && (\n <button\n type=\"button\"\n id={labelId}\n className={styles.calTitle}\n onClick={() => switchTo('year')}\n >\n {month.format('YYYY')}\n </button>\n )}\n {view === 'day' && (\n <button type=\"button\" className={styles.calTitle} onClick={() => switchTo('month')}>\n {monthName(month.month())}\n </button>\n )}\n {view === 'year' && (\n <span id={labelId} className={styles.calTitleStatic}>\n {t('calendar.selectYear')}\n </span>\n )}\n </div>\n\n {view === 'day' && (\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-label={t('calendar.nextMonth')}\n onClick={() => onMonthChange(month.add(1, 'month'))}\n >\n <Icon name=\"ArrowCircleRight\" />\n </IconButton>\n )}\n </div>\n\n {view === 'year' ? (\n <div\n ref={bodyRef}\n className={clsx(styles.pickGrid, styles.pickScroll)}\n role=\"listbox\"\n aria-labelledby={labelId}\n onKeyDown={handleYearKeyDown}\n >\n {years.map((y) => {\n const isSelected = value ? value.year() === y : false\n return (\n <button\n key={y}\n type=\"button\"\n role=\"option\"\n className={clsx(\n styles.pickCell,\n isSelected && styles.pickSelected,\n !isSelected && y === now.year() && styles.pickToday,\n )}\n tabIndex={y === focused.year() ? 0 : -1}\n aria-selected={isSelected}\n onClick={() => pickYear(y)}\n >\n {y}\n </button>\n )\n })}\n </div>\n ) : view === 'month' ? (\n <div\n ref={bodyRef}\n className={styles.pickGrid}\n role=\"listbox\"\n aria-labelledby={labelId}\n onKeyDown={handleMonthKeyDown}\n >\n {months.map((label, m) => {\n const isSelected = value ? value.isSame(month.month(m), 'month') : false\n const isCurrent = now.isSame(month.month(m), 'month')\n return (\n <button\n key={label}\n type=\"button\"\n role=\"option\"\n className={clsx(\n styles.pickCell,\n isSelected && styles.pickSelected,\n !isSelected && isCurrent && styles.pickToday,\n )}\n tabIndex={m === focused.month() ? 0 : -1}\n aria-selected={isSelected}\n onClick={() => pickMonth(m)}\n >\n {label}\n </button>\n )\n })}\n </div>\n ) : (\n <div\n ref={bodyRef}\n className={styles.grid}\n role=\"grid\"\n aria-label={`${monthName(month.month())} ${month.format('YYYY')}`}\n onKeyDown={handleDayKeyDown}\n >\n <div className={styles.weekdays} role=\"row\">\n {weekdays.map((w, i) => (\n <span key={i} role=\"columnheader\" className={styles.weekday}>\n {w}\n </span>\n ))}\n </div>\n {Array.from({ length: 6 }, (_, wk) => (\n <div key={wk} role=\"row\" className={styles.week}>\n {monthGrid.slice(wk * 7, wk * 7 + 7).map((d) => {\n const selected = value ? d.date.isSame(value, 'day') : false\n const disabled = isDisabled(d.date, min, max, disabledDate)\n return (\n <button\n key={d.iso}\n type=\"button\"\n role=\"gridcell\"\n className={clsx(\n styles.day,\n !d.inMonth && styles.dayOutside,\n selected && styles.daySelected,\n d.isToday && styles.dayToday,\n disabled && styles.dayDisabled,\n )}\n tabIndex={d.date.isSame(focused, 'day') ? 0 : -1}\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n aria-current={d.isToday ? 'date' : undefined}\n onClick={() => !disabled && onSelect(d.iso)}\n >\n {d.date.date()}\n </button>\n )\n })}\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"names":["focusableDay","value","month","now","today","PICK_COLS","Calendar","onMonthChange","onSelect","min","max","disabledDate","weekStartsOn","autoFocus","labelId","t","useT","view","setView","useState","focused","setFocused","bodyRef","useRef","focusOnRender","useEffect","f","el","_a","_b","switchTo","next","moveDay","stepMonthBy","delta","stepYearBy","year","pickYear","y","pickMonth","m","handleDayKeyDown","event","offsetInWeek","isDisabled","toISO","handleMonthKeyDown","handleYearKeyDown","monthName","weekdays","_","i","monthGrid","buildMonthGrid","months","years","yearList","jsxs","styles","jsx","IconButton","Icon","clsx","isSelected","label","isCurrent","w","wk","d","selected","disabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Calendar-sLA-xa0B.js","sources":["../src/components/DatePicker/Calendar.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type KeyboardEvent } from 'react'\nimport { clsx } from 'clsx'\nimport { useT, type MessageKey } from '../../theme'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { buildMonthGrid, isDisabled, today, toISO, yearList, type Dayjs } from './dateUtils'\nimport styles from './DatePicker.module.css'\n\nexport interface CalendarProps {\n /** Currently selected date (UTC dayjs) or null. */\n value: Dayjs | null\n /** The month currently shown (UTC dayjs). */\n month: Dayjs\n /** Change the shown month. */\n onMonthChange: (month: Dayjs) => void\n /** Commit a selected date as an ISO `'YYYY-MM-DD'` string. */\n onSelect: (iso: string) => void\n min: Dayjs | null\n max: Dayjs | null\n disabledDate?: (iso: string) => boolean\n /** 0 = Sunday … 6 = Saturday. */\n weekStartsOn: number\n /** Focus the active cell on mount (when the popover opens). */\n autoFocus?: boolean\n /** Id of the element labelling the grid. */\n labelId?: string\n}\n\ntype View = 'day' | 'month' | 'year'\n\n/** Picks the day that should hold roving focus for a given month. */\nfunction focusableDay(value: Dayjs | null, month: Dayjs): Dayjs {\n if (value && value.isSame(month, 'month')) return value\n const now = today()\n if (now.isSame(month, 'month')) return now\n return month.startOf('month')\n}\n\n/** Number of columns in the month / year picker grids (drives Up/Down arrow steps). */\nconst PICK_COLS = 3\n\n/**\n * The calendar grid used by the date components. Three views — a `role=\"grid\"` **day** view with full\n * keyboard navigation (Arrows move days, Home/End the week, PageUp/Down the month, Shift+PageUp/Down\n * the year, Enter/Space to select), plus separate **month** and **year** picker views reached from the\n * header (the month and year labels are independently clickable). Picking a year advances to the month\n * view; picking a month returns to the day view. The year view lists every year in range and scrolls.\n * Controlled: the consumer owns `value` + `month`; `onSelect`/`onMonthChange` lift changes up.\n */\nexport function Calendar({\n value,\n month,\n onMonthChange,\n onSelect,\n min,\n max,\n disabledDate,\n weekStartsOn,\n autoFocus,\n labelId,\n}: CalendarProps) {\n const t = useT()\n const [view, setView] = useState<View>('day')\n const [focused, setFocused] = useState<Dayjs>(() => focusableDay(value, month))\n const bodyRef = useRef<HTMLDivElement | null>(null)\n const focusOnRender = useRef(Boolean(autoFocus))\n\n // re-anchor the roving focus into the month whenever it changes from outside (nav buttons, pickers)\n useEffect(() => {\n setFocused((f) => (f.isSame(month, 'month') ? f : focusableDay(value, month)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [month])\n\n // move DOM focus to the roving cell after a keyboard move, a view switch, or the initial autoFocus\n useEffect(() => {\n if (!focusOnRender.current) return\n focusOnRender.current = false\n const el = bodyRef.current?.querySelector<HTMLElement>('[tabindex=\"0\"]')\n el?.focus()\n el?.scrollIntoView?.({ block: 'nearest' })\n }, [focused, view, month])\n\n const switchTo = (next: View) => {\n focusOnRender.current = true\n setView(next)\n }\n\n // ── navigation helpers ─────────────────────────────────────────────────────────────────────────\n const moveDay = (next: Dayjs) => {\n focusOnRender.current = true\n if (!next.isSame(month, 'month')) onMonthChange(next.startOf('month'))\n setFocused(next)\n }\n const stepMonthBy = (delta: number) => {\n const next = focused.add(delta, 'month')\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next.startOf('month')) // keep the rendered grid + header in sync with focus\n }\n const stepYearBy = (delta: number) => {\n let year = focused.year() + delta\n if (min) year = Math.max(year, min.year())\n if (max) year = Math.min(year, max.year())\n const next = focused.year(year)\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next.startOf('month')) // re-anchor the year window so focus never leaves it\n }\n\n const pickYear = (y: number) => {\n const next = month.year(y)\n focusOnRender.current = true\n setFocused(next)\n onMonthChange(next)\n setView('month') // picking a year advances to the month view\n }\n const pickMonth = (m: number) => {\n const next = month.month(m)\n focusOnRender.current = true\n setFocused(focusableDay(value, next))\n onMonthChange(next)\n setView('day') // picking a month returns to the day view\n }\n\n // ── keyboard ─────────────────────────────────────────────────────────────────────────────────────\n const handleDayKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const offsetInWeek = (focused.day() - weekStartsOn + 7) % 7\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n moveDay(focused.subtract(1, 'day'))\n break\n case 'ArrowRight':\n event.preventDefault()\n moveDay(focused.add(1, 'day'))\n break\n case 'ArrowUp':\n event.preventDefault()\n moveDay(focused.subtract(7, 'day'))\n break\n case 'ArrowDown':\n event.preventDefault()\n moveDay(focused.add(7, 'day'))\n break\n case 'Home':\n event.preventDefault()\n moveDay(focused.subtract(offsetInWeek, 'day'))\n break\n case 'End':\n event.preventDefault()\n moveDay(focused.add(6 - offsetInWeek, 'day'))\n break\n case 'PageUp':\n event.preventDefault()\n moveDay(focused.subtract(1, event.shiftKey ? 'year' : 'month'))\n break\n case 'PageDown':\n event.preventDefault()\n moveDay(focused.add(1, event.shiftKey ? 'year' : 'month'))\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n if (!isDisabled(focused, min, max, disabledDate)) onSelect(toISO(focused))\n break\n }\n }\n\n const handleMonthKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n stepMonthBy(-1)\n break\n case 'ArrowRight':\n event.preventDefault()\n stepMonthBy(1)\n break\n case 'ArrowUp':\n event.preventDefault()\n stepMonthBy(-PICK_COLS)\n break\n case 'ArrowDown':\n event.preventDefault()\n stepMonthBy(PICK_COLS)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n pickMonth(focused.month())\n break\n }\n }\n\n const handleYearKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n stepYearBy(-1)\n break\n case 'ArrowRight':\n event.preventDefault()\n stepYearBy(1)\n break\n case 'ArrowUp':\n event.preventDefault()\n stepYearBy(-PICK_COLS)\n break\n case 'ArrowDown':\n event.preventDefault()\n stepYearBy(PICK_COLS)\n break\n case 'Enter':\n case ' ':\n event.preventDefault()\n pickYear(focused.year())\n break\n }\n }\n\n // ── derived data (built once per render) ─────────────────────────────────────────────────────────\n const now = today()\n // month names + short weekday labels come from the i18n catalog (localized), not dayjs\n const monthName = (m: number) => t(`calendar.month${m}` as MessageKey)\n const weekdays = Array.from({ length: 7 }, (_, i) =>\n t(`calendar.weekday${(weekStartsOn + i) % 7}` as MessageKey),\n )\n const monthGrid = view === 'day' ? buildMonthGrid(month, weekStartsOn) : []\n const months = view === 'month' ? Array.from({ length: 12 }, (_, m) => monthName(m)) : []\n const years = view === 'year' ? yearList(min, max, month.year()) : []\n\n return (\n <div className={styles.calendar}>\n <div className={styles.calHeader}>\n {view === 'day' && (\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-label={t('calendar.prevMonth')}\n onClick={() => onMonthChange(month.subtract(1, 'month'))}\n >\n <Icon name=\"ArrowCircleLeft\" />\n </IconButton>\n )}\n\n <div className={styles.calTitleGroup}>\n {(view === 'day' || view === 'month') && (\n <button\n type=\"button\"\n id={labelId}\n className={styles.calTitle}\n onClick={() => switchTo('year')}\n >\n {month.format('YYYY')}\n </button>\n )}\n {view === 'day' && (\n <button type=\"button\" className={styles.calTitle} onClick={() => switchTo('month')}>\n {monthName(month.month())}\n </button>\n )}\n {view === 'year' && (\n <span id={labelId} className={styles.calTitleStatic}>\n {t('calendar.selectYear')}\n </span>\n )}\n </div>\n\n {view === 'day' && (\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size=\"sm\"\n aria-label={t('calendar.nextMonth')}\n onClick={() => onMonthChange(month.add(1, 'month'))}\n >\n <Icon name=\"ArrowCircleRight\" />\n </IconButton>\n )}\n </div>\n\n {view === 'year' ? (\n <div\n ref={bodyRef}\n className={clsx(styles.pickGrid, styles.pickScroll)}\n role=\"listbox\"\n aria-labelledby={labelId}\n onKeyDown={handleYearKeyDown}\n >\n {years.map((y) => {\n const isSelected = value ? value.year() === y : false\n return (\n <button\n key={y}\n type=\"button\"\n role=\"option\"\n className={clsx(\n styles.pickCell,\n isSelected && styles.pickSelected,\n !isSelected && y === now.year() && styles.pickToday,\n )}\n tabIndex={y === focused.year() ? 0 : -1}\n aria-selected={isSelected}\n onClick={() => pickYear(y)}\n >\n {y}\n </button>\n )\n })}\n </div>\n ) : view === 'month' ? (\n <div\n ref={bodyRef}\n className={styles.pickGrid}\n role=\"listbox\"\n aria-labelledby={labelId}\n onKeyDown={handleMonthKeyDown}\n >\n {months.map((label, m) => {\n const isSelected = value ? value.isSame(month.month(m), 'month') : false\n const isCurrent = now.isSame(month.month(m), 'month')\n return (\n <button\n key={label}\n type=\"button\"\n role=\"option\"\n className={clsx(\n styles.pickCell,\n isSelected && styles.pickSelected,\n !isSelected && isCurrent && styles.pickToday,\n )}\n tabIndex={m === focused.month() ? 0 : -1}\n aria-selected={isSelected}\n onClick={() => pickMonth(m)}\n >\n {label}\n </button>\n )\n })}\n </div>\n ) : (\n <div\n ref={bodyRef}\n className={styles.grid}\n role=\"grid\"\n aria-label={`${monthName(month.month())} ${month.format('YYYY')}`}\n onKeyDown={handleDayKeyDown}\n >\n <div className={styles.weekdays} role=\"row\">\n {weekdays.map((w, i) => (\n <span key={i} role=\"columnheader\" className={styles.weekday}>\n {w}\n </span>\n ))}\n </div>\n {Array.from({ length: 6 }, (_, wk) => (\n <div key={wk} role=\"row\" className={styles.week}>\n {monthGrid.slice(wk * 7, wk * 7 + 7).map((d) => {\n const selected = value ? d.date.isSame(value, 'day') : false\n const disabled = isDisabled(d.date, min, max, disabledDate)\n return (\n <button\n key={d.iso}\n type=\"button\"\n role=\"gridcell\"\n className={clsx(\n styles.day,\n !d.inMonth && styles.dayOutside,\n selected && styles.daySelected,\n d.isToday && styles.dayToday,\n disabled && styles.dayDisabled,\n )}\n tabIndex={d.date.isSame(focused, 'day') ? 0 : -1}\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n aria-current={d.isToday ? 'date' : undefined}\n onClick={() => !disabled && onSelect(d.iso)}\n >\n {d.date.date()}\n </button>\n )\n })}\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"names":["focusableDay","value","month","now","today","PICK_COLS","Calendar","onMonthChange","onSelect","min","max","disabledDate","weekStartsOn","autoFocus","labelId","t","useT","view","setView","useState","focused","setFocused","bodyRef","useRef","focusOnRender","useEffect","f","el","_a","_b","switchTo","next","moveDay","stepMonthBy","delta","stepYearBy","year","pickYear","y","pickMonth","m","handleDayKeyDown","event","offsetInWeek","isDisabled","toISO","handleMonthKeyDown","handleYearKeyDown","monthName","weekdays","_","i","monthGrid","buildMonthGrid","months","years","yearList","jsxs","styles","jsx","IconButton","Icon","clsx","isSelected","label","isCurrent","w","wk","d","selected","disabled"],"mappings":"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"}
|