admin-ui-starter-kit 0.6.4 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/component-library-rules/references/components/base__cards.md +3 -4
- package/.agents/skills/component-library-rules/references/components/base__table.md +32 -11
- package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +2 -2
- package/dist/_shared/accordion-BRj4TDQx.js +135 -0
- package/dist/_shared/accordion-BRj4TDQx.js.map +1 -0
- package/dist/_shared/accordion-DvlDjk29.cjs +2 -0
- package/dist/_shared/accordion-DvlDjk29.cjs.map +1 -0
- package/dist/_shared/action-menu-BrHF4nss.cjs +2 -0
- package/dist/_shared/action-menu-BrHF4nss.cjs.map +1 -0
- package/dist/_shared/action-menu-Crn22LKo.js +96 -0
- package/dist/_shared/action-menu-Crn22LKo.js.map +1 -0
- package/dist/_shared/ai-artifact-BHgd3agA.js +1099 -0
- package/dist/_shared/ai-artifact-BHgd3agA.js.map +1 -0
- package/dist/_shared/ai-artifact-BRM5cvGv.cjs +3 -0
- package/dist/_shared/ai-artifact-BRM5cvGv.cjs.map +1 -0
- package/dist/_shared/alert-CMVVt2Br.js +81 -0
- package/dist/_shared/alert-CMVVt2Br.js.map +1 -0
- package/dist/_shared/alert-Dmhtbmpg.cjs +2 -0
- package/dist/_shared/alert-Dmhtbmpg.cjs.map +1 -0
- package/dist/_shared/app-shell-BZQJfTkf.cjs +2 -0
- package/dist/_shared/app-shell-BZQJfTkf.cjs.map +1 -0
- package/dist/_shared/app-shell-Da6GHxTZ.js +69 -0
- package/dist/_shared/app-shell-Da6GHxTZ.js.map +1 -0
- package/dist/_shared/auth-DZW6NkJx.cjs +2 -0
- package/dist/_shared/auth-DZW6NkJx.cjs.map +1 -0
- package/dist/_shared/auth-Dh790NI_.js +643 -0
- package/dist/_shared/auth-Dh790NI_.js.map +1 -0
- package/dist/_shared/badge-B8xGFpfM.cjs +2 -0
- package/dist/_shared/badge-B8xGFpfM.cjs.map +1 -0
- package/dist/_shared/badge-BYNwSWh5.js +110 -0
- package/dist/_shared/badge-BYNwSWh5.js.map +1 -0
- package/dist/_shared/breadcrumbs-CuT0YIfo.js +105 -0
- package/dist/_shared/breadcrumbs-CuT0YIfo.js.map +1 -0
- package/dist/_shared/breadcrumbs-jNzlYqS9.cjs +2 -0
- package/dist/_shared/breadcrumbs-jNzlYqS9.cjs.map +1 -0
- package/dist/_shared/button-BMiPFJIb.cjs +2 -0
- package/dist/_shared/button-BMiPFJIb.cjs.map +1 -0
- package/dist/_shared/button-vv59_uS_.js +189 -0
- package/dist/_shared/button-vv59_uS_.js.map +1 -0
- package/dist/_shared/buttons-CvqIMv3I.js +137 -0
- package/dist/_shared/buttons-CvqIMv3I.js.map +1 -0
- package/dist/_shared/buttons-tCkWktN3.cjs +2 -0
- package/dist/_shared/buttons-tCkWktN3.cjs.map +1 -0
- package/dist/_shared/card-radio-group-Bhe8gAbH.js +150 -0
- package/dist/_shared/card-radio-group-Bhe8gAbH.js.map +1 -0
- package/dist/_shared/card-radio-group-CdG1zr8M.cjs +2 -0
- package/dist/_shared/card-radio-group-CdG1zr8M.cjs.map +1 -0
- package/dist/_shared/cards-Cu6p1Brd.cjs +2 -0
- package/dist/_shared/cards-Cu6p1Brd.cjs.map +1 -0
- package/dist/_shared/cards-cQ9lL6zy.js +354 -0
- package/dist/_shared/cards-cQ9lL6zy.js.map +1 -0
- package/dist/_shared/combobox-BGYjyXeN.cjs +2 -0
- package/dist/_shared/combobox-BGYjyXeN.cjs.map +1 -0
- package/dist/_shared/combobox-DTwomOBt.js +954 -0
- package/dist/_shared/combobox-DTwomOBt.js.map +1 -0
- package/dist/_shared/comments-C97vL5km.js +952 -0
- package/dist/_shared/comments-C97vL5km.js.map +1 -0
- package/dist/_shared/comments-DBe6dP-d.cjs +2 -0
- package/dist/_shared/comments-DBe6dP-d.cjs.map +1 -0
- package/dist/_shared/containers-CB7zaAvN.cjs +2 -0
- package/dist/_shared/containers-CB7zaAvN.cjs.map +1 -0
- package/dist/_shared/containers-CLBmhGfs.js +48 -0
- package/dist/_shared/containers-CLBmhGfs.js.map +1 -0
- package/dist/_shared/copyable-BgFdERqs.js +38 -0
- package/dist/_shared/copyable-BgFdERqs.js.map +1 -0
- package/dist/_shared/copyable-Ce8rmE-V.cjs +2 -0
- package/dist/_shared/copyable-Ce8rmE-V.cjs.map +1 -0
- package/dist/_shared/data-display-DUWxoDKq.js +1873 -0
- package/dist/_shared/data-display-DUWxoDKq.js.map +1 -0
- package/dist/_shared/data-display-o-rbMuIA.cjs +2 -0
- package/dist/_shared/data-display-o-rbMuIA.cjs.map +1 -0
- package/dist/_shared/date-picker-Cxx9jllA.js +1361 -0
- package/dist/_shared/date-picker-Cxx9jllA.js.map +1 -0
- package/dist/_shared/date-picker-DE5A8yqN.cjs +2 -0
- package/dist/_shared/date-picker-DE5A8yqN.cjs.map +1 -0
- package/dist/_shared/date-pickers-Dex1Mfye.cjs +2 -0
- package/dist/_shared/date-pickers-Dex1Mfye.cjs.map +1 -0
- package/dist/_shared/date-pickers-m0dpDcqH.js +329 -0
- package/dist/_shared/date-pickers-m0dpDcqH.js.map +1 -0
- package/dist/_shared/display-Bro3Kufg.js +986 -0
- package/dist/_shared/display-Bro3Kufg.js.map +1 -0
- package/dist/_shared/display-CRQjSjgB.cjs +2 -0
- package/dist/_shared/display-CRQjSjgB.cjs.map +1 -0
- package/dist/_shared/form-sizing-DJus3nK3.cjs +2 -0
- package/dist/_shared/form-sizing-DJus3nK3.cjs.map +1 -0
- package/dist/_shared/form-sizing-DWjJsQSR.js +42 -0
- package/dist/_shared/form-sizing-DWjJsQSR.js.map +1 -0
- package/dist/_shared/forms-D-SNQmtB.cjs +2 -0
- package/dist/_shared/forms-D-SNQmtB.cjs.map +1 -0
- package/dist/_shared/forms-p7cfzJwf.js +3533 -0
- package/dist/_shared/forms-p7cfzJwf.js.map +1 -0
- package/dist/_shared/header-8C71wVRp.js +447 -0
- package/dist/_shared/header-8C71wVRp.js.map +1 -0
- package/dist/_shared/header-CYgFCnjZ.cjs +2 -0
- package/dist/_shared/header-CYgFCnjZ.cjs.map +1 -0
- package/dist/_shared/hooks-Ci1LFWRG.js +95 -0
- package/dist/_shared/hooks-Ci1LFWRG.js.map +1 -0
- package/dist/_shared/hooks-Cjl7LJpn.cjs +2 -0
- package/dist/_shared/hooks-Cjl7LJpn.cjs.map +1 -0
- package/dist/_shared/input-BgcP6x4C.js +182 -0
- package/dist/_shared/input-BgcP6x4C.js.map +1 -0
- package/dist/_shared/input-DV3g7Fm5.cjs +2 -0
- package/dist/_shared/input-DV3g7Fm5.cjs.map +1 -0
- package/dist/_shared/item-D7GTzvhf.js +226 -0
- package/dist/_shared/item-D7GTzvhf.js.map +1 -0
- package/dist/_shared/item-DTrnHpfm.cjs +2 -0
- package/dist/_shared/item-DTrnHpfm.cjs.map +1 -0
- package/dist/_shared/layout-BExg7Vlx.js +261 -0
- package/dist/_shared/layout-BExg7Vlx.js.map +1 -0
- package/dist/_shared/layout-CKRD_goE.cjs +2 -0
- package/dist/_shared/layout-CKRD_goE.cjs.map +1 -0
- package/dist/_shared/layout.types-CXFAjJCj.cjs +2 -0
- package/dist/_shared/layout.types-CXFAjJCj.cjs.map +1 -0
- package/dist/_shared/layout.types-ip8BYRa7.js +28 -0
- package/dist/_shared/layout.types-ip8BYRa7.js.map +1 -0
- package/dist/_shared/mentions-BtGhYisA.js +506 -0
- package/dist/_shared/mentions-BtGhYisA.js.map +1 -0
- package/dist/_shared/mentions-CnVOuQJU.cjs +2 -0
- package/dist/_shared/mentions-CnVOuQJU.cjs.map +1 -0
- package/dist/_shared/money-display-BvVpRUs5.cjs +2 -0
- package/dist/_shared/money-display-BvVpRUs5.cjs.map +1 -0
- package/dist/_shared/money-display-D6Qtvyyv.js +198 -0
- package/dist/_shared/money-display-D6Qtvyyv.js.map +1 -0
- package/dist/_shared/navigation-C4dO1I82.cjs +2 -0
- package/dist/_shared/navigation-C4dO1I82.cjs.map +1 -0
- package/dist/_shared/navigation-Ct-LFlpY.js +436 -0
- package/dist/_shared/navigation-Ct-LFlpY.js.map +1 -0
- package/dist/_shared/overlays-ChyqXn0n.js +735 -0
- package/dist/_shared/overlays-ChyqXn0n.js.map +1 -0
- package/dist/_shared/overlays-Dn2bt3CL.cjs +2 -0
- package/dist/_shared/overlays-Dn2bt3CL.cjs.map +1 -0
- package/dist/_shared/popover-menu-17Dxn25O.js +93 -0
- package/dist/_shared/popover-menu-17Dxn25O.js.map +1 -0
- package/dist/_shared/popover-menu-DXVN0bvj.cjs +2 -0
- package/dist/_shared/popover-menu-DXVN0bvj.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-BRpcNkj1.js +620 -0
- package/dist/_shared/rich-text-editor-BRpcNkj1.js.map +1 -0
- package/dist/_shared/rich-text-editor-BXxGNbmI.cjs +2 -0
- package/dist/_shared/rich-text-editor-BXxGNbmI.cjs.map +1 -0
- package/dist/_shared/settings-CW9yzfQM.js +143 -0
- package/dist/_shared/settings-CW9yzfQM.js.map +1 -0
- package/dist/_shared/settings-cCPrw7si.cjs +2 -0
- package/dist/_shared/settings-cCPrw7si.cjs.map +1 -0
- package/dist/_shared/sidebar-Cq6J_I4l.cjs +2 -0
- package/dist/_shared/sidebar-Cq6J_I4l.cjs.map +1 -0
- package/dist/_shared/sidebar-DtF_ihE3.js +548 -0
- package/dist/_shared/sidebar-DtF_ihE3.js.map +1 -0
- package/dist/_shared/spinner-DY2de3Wt.cjs +2 -0
- package/dist/_shared/spinner-DY2de3Wt.cjs.map +1 -0
- package/dist/_shared/spinner-ZmIq_zsx.js +67 -0
- package/dist/_shared/spinner-ZmIq_zsx.js.map +1 -0
- package/dist/_shared/table-BBWc-wIw.js +1377 -0
- package/dist/_shared/table-BBWc-wIw.js.map +1 -0
- package/dist/_shared/table-DMDkdLzV.cjs +2 -0
- package/dist/_shared/table-DMDkdLzV.cjs.map +1 -0
- package/dist/_shared/textarea-C1TeJ7Vt.cjs +2 -0
- package/dist/_shared/textarea-C1TeJ7Vt.cjs.map +1 -0
- package/dist/_shared/textarea-CGRkgH5z.js +118 -0
- package/dist/_shared/textarea-CGRkgH5z.js.map +1 -0
- package/dist/_shared/typography-CzFVA1w1.js +201 -0
- package/dist/_shared/typography-CzFVA1w1.js.map +1 -0
- package/dist/_shared/typography-GtkgK9QX.cjs +2 -0
- package/dist/_shared/typography-GtkgK9QX.cjs.map +1 -0
- package/dist/_shared/workspace-BF5BtDhD.cjs +2 -0
- package/dist/_shared/workspace-BF5BtDhD.cjs.map +1 -0
- package/dist/_shared/workspace-IvsczduM.js +357 -0
- package/dist/_shared/workspace-IvsczduM.js.map +1 -0
- package/dist/components/base/accordion/index.cjs +1 -1
- package/dist/components/base/accordion/index.js +1 -1
- package/dist/components/base/badge/badge.d.ts.map +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.types.d.ts +3 -3
- package/dist/components/base/carousel/index.cjs +1 -1
- package/dist/components/base/carousel/index.js +1 -1
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/copyable/index.cjs +1 -1
- package/dist/components/base/copyable/index.js +1 -1
- package/dist/components/base/currency/index.cjs +1 -1
- package/dist/components/base/currency/index.js +1 -1
- package/dist/components/base/date-pickers/index.cjs +1 -1
- package/dist/components/base/date-pickers/index.js +2 -2
- package/dist/components/base/display/chart.cjs +1 -1
- package/dist/components/base/display/chart.js +1 -1
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.js +3 -3
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.js +3 -3
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +5 -5
- package/dist/components/base/item/index.cjs +1 -1
- package/dist/components/base/item/index.js +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.js +2 -2
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +3 -3
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +1 -1
- package/dist/components/base/spinner/index.cjs +1 -1
- package/dist/components/base/spinner/index.js +1 -1
- package/dist/components/base/table/data-table.d.ts.map +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.js +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.js +11 -11
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +8 -8
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.js +3 -3
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.js +7 -7
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.js +8 -8
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.js +4 -4
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +1 -1
- package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +5 -5
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +3 -3
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +3 -3
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +4 -4
- package/dist/components/features/ai-chat/index.cjs +1 -1
- package/dist/components/features/ai-chat/index.js +5 -5
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +4 -4
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/data-view/index.cjs +1 -1
- package/dist/components/features/data-view/index.js +2 -2
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +4 -4
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.js +6 -6
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +4 -4
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +3 -3
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.js +8 -8
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.js +11 -11
- package/dist/components/features/resource/index.cjs +1 -1
- package/dist/components/features/resource/index.js +4 -4
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.js +8 -8
- package/dist/components/features/suggestions/index.cjs +1 -1
- package/dist/components/features/suggestions/index.js +1 -1
- package/dist/components/features/sync/index.cjs +1 -1
- package/dist/components/features/sync/index.js +2 -2
- package/dist/components/layout/app-shell/index.cjs +1 -1
- package/dist/components/layout/app-shell/index.js +1 -1
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/containers/containers.types.d.ts +2 -2
- package/dist/components/layout/containers/containers.types.d.ts.map +1 -1
- package/dist/components/layout/containers/content-container.d.ts.map +1 -1
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +1 -2
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/hooks/index.cjs +1 -1
- package/dist/components/layout/hooks/index.js +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +11 -12
- package/dist/components/layout/layout.types.d.ts.map +1 -1
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +2 -2
- package/dist/components/layout/settings/index.cjs +1 -1
- package/dist/components/layout/settings/index.js +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/components/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +1 -1
- package/dist/services/actions/index.cjs +1 -1
- package/dist/services/actions/index.js +1 -1
- package/dist/showcase/assets/AreaChart-CsIm9z7Y.js +6 -0
- package/dist/showcase/assets/CompositeItem-D9zznn01.js +1 -0
- package/dist/showcase/assets/CompositeRoot-CvxtZ81W.js +1 -0
- package/dist/showcase/assets/DialogTrigger-C-osQGHu.js +1 -0
- package/dist/showcase/assets/LabelableContext-_EE-HBND.js +1 -0
- package/dist/showcase/assets/PreviewLayout-KdEsSl3b.js +1 -0
- package/dist/showcase/assets/RadioGroup-4jOeNTc1.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-CXTdUcaE.js +1 -0
- package/dist/showcase/assets/Separator-CHVXO6nj.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-CM5tQGGX.js +1 -0
- package/dist/showcase/assets/accordion-CA84bxb2.js +171 -0
- package/dist/showcase/assets/accordion-variants-DqWzAOO3.js +1 -0
- package/dist/showcase/assets/action-menu-D0q5z-Kq.js +1 -0
- package/dist/showcase/assets/actions-DnqxABJU.js +310 -0
- package/dist/showcase/assets/activities-BC9hoMy9.js +500 -0
- package/dist/showcase/assets/activities-feed-card-D6wGLpbH.js +1 -0
- package/dist/showcase/assets/admin-CMnMsugJ.js +140 -0
- package/dist/showcase/assets/ai-B6_sE9Zg.js +207 -0
- package/dist/showcase/assets/ai-artifact-BVvbsSJB.js +2 -0
- package/dist/showcase/assets/ai-chat-lcXeqJrA.js +568 -0
- package/dist/showcase/assets/ai-elements-B32o_UjE.js +387 -0
- package/dist/showcase/assets/ai-tool-call-BLrAioKz.js +1 -0
- package/dist/showcase/assets/alert-B1p1Grce.js +62 -0
- package/dist/showcase/assets/alert-BBiffYsY.js +93 -0
- package/dist/showcase/assets/alert-vH0nJ8J9.js +1 -0
- package/dist/showcase/assets/api-key-list-BrSc6V1y.js +1 -0
- package/dist/showcase/assets/api-key-list-CoKe_PaL.js +73 -0
- package/dist/showcase/assets/app-sidebar-R93lRPB4.js +1 -0
- package/dist/showcase/assets/arrow-down-xxVIADbv.js +1 -0
- package/dist/showcase/assets/arrow-left-DxnlnN8R.js +1 -0
- package/dist/showcase/assets/arrow-right-S5k93UPM.js +1 -0
- package/dist/showcase/assets/arrow-up-OlEVG7a-.js +1 -0
- package/dist/showcase/assets/arrow-up-right-j55bbl4b.js +1 -0
- package/dist/showcase/assets/avatar-BbiXvZq7.js +67 -0
- package/dist/showcase/assets/avatar-Bwpw-hQo.js +57 -0
- package/dist/showcase/assets/avatar-D0DKQ1lK.js +1 -0
- package/dist/showcase/assets/avatar-WyjSBov9.js +1 -0
- package/dist/showcase/assets/badge-BzLZQO3L.js +31 -0
- package/dist/showcase/assets/badge-check-TFWm1m3F.js +1 -0
- package/dist/showcase/assets/bell-CmuQlO_k.js +1 -0
- package/dist/showcase/assets/bot-Bu518AJB.js +1 -0
- package/dist/showcase/assets/box-D-wrSdOJ.js +1 -0
- package/dist/showcase/assets/braces-CgCdmdAl.js +1 -0
- package/dist/showcase/assets/brain-DkHdwgHO.js +1 -0
- package/dist/showcase/assets/brand-CpovnVoG.js +36 -0
- package/dist/showcase/assets/breadcrumb-BUc0WC5d.js +1 -0
- package/dist/showcase/assets/breadcrumb-Do_Dazt1.js +52 -0
- package/dist/showcase/assets/breadcrumbs-Bj21o2zm.js +1 -0
- package/dist/showcase/assets/briefcase-CQBh2kok.js +1 -0
- package/dist/showcase/assets/building-2-D07Ej6iR.js +1 -0
- package/dist/showcase/assets/button-CCZ4KEGQ.js +44 -0
- package/dist/showcase/assets/button-group-BTjeHOvz.js +1 -0
- package/dist/showcase/assets/buttons-D45Wwiwn.js +272 -0
- package/dist/showcase/assets/calendar-BsEWULmZ.js +16 -0
- package/dist/showcase/assets/calendar-CkPefzIO.js +1 -0
- package/dist/showcase/assets/calendar-DZlT3qTq.js +1 -0
- package/dist/showcase/assets/calendar-days-C9awTMru.js +1 -0
- package/dist/showcase/assets/camera-CQhMw-RD.js +1 -0
- package/dist/showcase/assets/card-CKrz_UHt.js +1 -0
- package/dist/showcase/assets/card-DZgZgjXO.js +188 -0
- package/dist/showcase/assets/card-primitives-CpkDLK3Y.js +1 -0
- package/dist/showcase/assets/card-radio-group-BjXwMI4v.js +1 -0
- package/dist/showcase/assets/cards-Cd24XZ9l.js +353 -0
- package/dist/showcase/assets/carousel-Doon04yO.js +449 -0
- package/dist/showcase/assets/cell-renderers-CTay3duH.js +1 -0
- package/dist/showcase/assets/chart-CkvbdpWw.js +358 -0
- package/dist/showcase/assets/chart-column-Dz57kUMl.js +1 -0
- package/dist/showcase/assets/checkbox-L-L4-wvA.js +1 -0
- package/dist/showcase/assets/checkbox-sP254E7e.js +1 -0
- package/dist/showcase/assets/chevron-down-CLc_a2Ua.js +1 -0
- package/dist/showcase/assets/chevron-left-CMRIGOJt.js +1 -0
- package/dist/showcase/assets/chevron-up-BDw6LdDZ.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-C519RKki.js +1 -0
- package/dist/showcase/assets/circle-B_tOHWTY.js +1 -0
- package/dist/showcase/assets/circle-alert-B56AFULT.js +1 -0
- package/dist/showcase/assets/circle-check-B4XZj4Ty.js +1 -0
- package/dist/showcase/assets/circle-check-big-C0iEkwPB.js +1 -0
- package/dist/showcase/assets/circle-dot-DPdJZkc6.js +1 -0
- package/dist/showcase/assets/circle-question-mark-LTetdrq6.js +1 -0
- package/dist/showcase/assets/circle-x-B4FwM-sI.js +1 -0
- package/dist/showcase/assets/clock-3-DZhjBuw8.js +1 -0
- package/dist/showcase/assets/clock-B9Fna2Q3.js +1 -0
- package/dist/showcase/assets/code-xml-B6Xb_vIg.js +1 -0
- package/dist/showcase/assets/collapsible-Bf7Oo37i.js +27 -0
- package/dist/showcase/assets/collapsible-BfLeooy8.js +1 -0
- package/dist/showcase/assets/combobox-4NYfJznY.js +685 -0
- package/dist/showcase/assets/command-7jRRucHf.js +1 -0
- package/dist/showcase/assets/command-D56CjgNc.js +1 -0
- package/dist/showcase/assets/comment-composer-BWeXIZfK.js +1 -0
- package/dist/showcase/assets/comment-item-ChkiK-ut.js +1 -0
- package/dist/showcase/assets/comments-YnEop7v3.js +357 -0
- package/dist/showcase/assets/commerce-7XxWJChs.js +267 -0
- package/dist/showcase/assets/composite-CHcyYCsk.js +1 -0
- package/dist/showcase/assets/contact-card-BXw-VuBm.js +65 -0
- package/dist/showcase/assets/content-container-C4uopCBg.js +1 -0
- package/dist/showcase/assets/copyable-CjVYEJ0P.js +1 -0
- package/dist/showcase/assets/copyable-Cz2jW7yL.js +96 -0
- package/dist/showcase/assets/course-card-CvK3dw9W.js +77 -0
- package/dist/showcase/assets/cpu-Vk5WgcC1.js +1 -0
- package/dist/showcase/assets/credit-card-CaigqZGk.js +1 -0
- package/dist/showcase/assets/css-variables-hLaBmeMt.js +1190 -0
- package/dist/showcase/assets/currency-yO1giHp1.js +149 -0
- package/dist/showcase/assets/dark-surfaces-BPQnyk9a.js +90 -0
- package/dist/showcase/assets/data-view-CjjXn5VT.js +124 -0
- package/dist/showcase/assets/data-view-DF0n8uva.js +4 -0
- package/dist/showcase/assets/database-ChUBDe8E.js +1 -0
- package/dist/showcase/assets/date-block-DUg1Oyn4.js +1 -0
- package/dist/showcase/assets/date-picker-CoQPZa34.js +1 -0
- package/dist/showcase/assets/date-pickers-B-IUbyXw.js +73 -0
- package/dist/showcase/assets/dense-info-zVQSWqOU.js +106 -0
- package/dist/showcase/assets/design-system-consistency-Bnz_h3-6.js +264 -0
- package/dist/showcase/assets/dialog-BtilpgxJ.js +1 -0
- package/dist/showcase/assets/dialog-kf9WwmTC.js +1 -0
- package/dist/showcase/assets/display-utilities-BBzG5EPX.js +267 -0
- package/dist/showcase/assets/dist-9gFIhkw-.js +45 -0
- package/dist/showcase/assets/dist-CGpz_7Mu.js +1 -0
- package/dist/showcase/assets/dollar-sign-CWbYI3Pd.js +1 -0
- package/dist/showcase/assets/download-Bt_z-poH.js +1 -0
- package/dist/showcase/assets/dropdown-menu-C1_SYTHm.js +1 -0
- package/dist/showcase/assets/dropzone-D5BGVTnl.js +1 -0
- package/dist/showcase/assets/earth-sP5mIgG3.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-BD7kMOzj.js +1 -0
- package/dist/showcase/assets/ellipsis-yqIF49C8.js +1 -0
- package/dist/showcase/assets/empty-DIrJgtrh.js +1 -0
- package/dist/showcase/assets/empty-item-GgnZk2yf.js +49 -0
- package/dist/showcase/assets/empty-state-ZGKkJ6sf.js +190 -0
- package/dist/showcase/assets/empty-state-n_Fspzt-.js +1 -0
- package/dist/showcase/assets/enhanced-activities-CCw_hZnZ.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-bBF-ADDs.js +1 -0
- package/dist/showcase/assets/esm-CyFPn936.js +2 -0
- package/dist/showcase/assets/event-calendar-Czo7yBDx.js +138 -0
- package/dist/showcase/assets/event-log-DJ3B3nMV.js +330 -0
- package/dist/showcase/assets/example-eGsLGIcp.js +1 -0
- package/dist/showcase/assets/external-link-DPOQEVWH.js +1 -0
- package/dist/showcase/assets/eye-CN92NVL0.js +1 -0
- package/dist/showcase/assets/feature-announcement-BXkSW17e.js +34 -0
- package/dist/showcase/assets/file-CFHePlKG.js +1 -0
- package/dist/showcase/assets/file-text--WYCYQMw.js +1 -0
- package/dist/showcase/assets/filter-layout-B35gGmcO.js +1 -0
- package/dist/showcase/assets/filters-GDW_oiT3.js +139 -0
- package/dist/showcase/assets/flag-XsT9XFPr.js +1 -0
- package/dist/showcase/assets/folder-open-RtsQ8vxf.js +1 -0
- package/dist/showcase/assets/form-field-Bijd1Gex.js +1 -0
- package/dist/showcase/assets/form-sizing-Dltt6Fj-.js +1 -0
- package/dist/showcase/assets/format-Ckw4OM66.js +1 -0
- package/dist/showcase/assets/forms-00bU7LN8.js +915 -0
- package/dist/showcase/assets/funnel-qu25WlXD.js +1 -0
- package/dist/showcase/assets/generic-Bf82Wiol.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-BR4_m2HH.js +1 -0
- package/dist/showcase/assets/gift-D4GQoqzV.js +1 -0
- package/dist/showcase/assets/giftcard-cards-CMutwaAY.js +85 -0
- package/dist/showcase/assets/git-branch-B2QG2zRg.js +1 -0
- package/dist/showcase/assets/global-search-CRAB9TSF.js +1 -0
- package/dist/showcase/assets/global-search-DY0cKfhY.js +215 -0
- package/dist/showcase/assets/globe-BxZW28rG.js +1 -0
- package/dist/showcase/assets/gradient-card-CQGnXG8r.js +58 -0
- package/dist/showcase/assets/hash-CsRtIoKK.js +1 -0
- package/dist/showcase/assets/header-DzYOgZLP.js +1 -0
- package/dist/showcase/assets/header-notifications-D_CJPbvs.js +1 -0
- package/dist/showcase/assets/heart-B2YsYprq.js +1 -0
- package/dist/showcase/assets/hooks-BhUMA4Tb.js +220 -0
- package/dist/showcase/assets/house-HeRFNhI0.js +1 -0
- package/dist/showcase/assets/icon-badge-CpDkc-S0.js +37 -0
- package/dist/showcase/assets/icon-badge-eNEGgpAV.js +1 -0
- package/dist/showcase/assets/image-T88JyDag.js +1 -0
- package/dist/showcase/assets/inbox-DLrLLnTR.js +1 -0
- package/dist/showcase/assets/index-DDZl6kOS.js +10 -0
- package/dist/showcase/assets/index-nOkXemgw.css +2 -0
- package/dist/showcase/assets/inertValue-BajuuRy4.js +1 -0
- package/dist/showcase/assets/info-CNYfw2Yz.js +1 -0
- package/dist/showcase/assets/inline-stat-BN6yhDR5.js +15 -0
- package/dist/showcase/assets/inline-stat-Bqw3lVfk.js +1 -0
- package/dist/showcase/assets/input-C-9K6F0N.js +1 -0
- package/dist/showcase/assets/input-DaZzfkZV.js +1 -0
- package/dist/showcase/assets/input-group-DE-Xdhv4.js +1 -0
- package/dist/showcase/assets/input-group-DIQZnytn.js +47 -0
- package/dist/showcase/assets/inputs-Cl_JgSR4.js +155 -0
- package/dist/showcase/assets/installation-DdhD4Dkq.js +134 -0
- package/dist/showcase/assets/invoice-header-DOs2ACqQ.js +36 -0
- package/dist/showcase/assets/invoice-items-1EuA62mF.js +36 -0
- package/dist/showcase/assets/invoice-mini-vCrYEtWp.js +14 -0
- package/dist/showcase/assets/invoice-table--mDTs1Iz.js +30 -0
- package/dist/showcase/assets/isSameDay-BNB1yam4.js +1 -0
- package/dist/showcase/assets/isToday-BugOpGJC.js +1 -0
- package/dist/showcase/assets/italic-Ck4UD2ZT.js +1 -0
- package/dist/showcase/assets/item-BcesxqFS.js +139 -0
- package/dist/showcase/assets/item-BgPlwUMv.js +1 -0
- package/dist/showcase/assets/item-CB9k_rmo.js +1 -0
- package/dist/showcase/assets/kanban-cPuSVqWY.js +188 -0
- package/dist/showcase/assets/key-round-BmYjd5dk.js +1 -0
- package/dist/showcase/assets/label-BTIBJBqN.js +1 -0
- package/dist/showcase/assets/languages-he6FNXRs.js +1 -0
- package/dist/showcase/assets/layers-B_48DtOz.js +1 -0
- package/dist/showcase/assets/layout-app-shell-zwLv6jTP.js +608 -0
- package/dist/showcase/assets/layout-auth-2Zv5lr52.js +790 -0
- package/dist/showcase/assets/layout-containers-Dzw3xlKn.js +101 -0
- package/dist/showcase/assets/layout-header-TJ-WVmG3.js +203 -0
- package/dist/showcase/assets/layout-page-CIVQCKXK.js +314 -0
- package/dist/showcase/assets/layout-primitives-i_O81fzT.js +34 -0
- package/dist/showcase/assets/layout-sidebar-eH_pwBq_.js +224 -0
- package/dist/showcase/assets/layout-users-CWSaFBLj.js +117 -0
- package/dist/showcase/assets/layout-workspace-w3oe32GE.js +191 -0
- package/dist/showcase/assets/lib-CoS0xjP8.js +1 -0
- package/dist/showcase/assets/list-checks-DecRPpK3.js +1 -0
- package/dist/showcase/assets/lock-D9f8uXol.js +1 -0
- package/dist/showcase/assets/lock-keyhole-C20eixH6.js +1 -0
- package/dist/showcase/assets/mail-CVgP8Qlo.js +1 -0
- package/dist/showcase/assets/mail-check-mplTKcSH.js +1 -0
- package/dist/showcase/assets/map-B6OGeOup.js +124 -0
- package/dist/showcase/assets/map-pin-BZXSwrzT.js +1 -0
- package/dist/showcase/assets/media-library-DSlVIM1Q.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-CNAEeXgy.js +1 -0
- package/dist/showcase/assets/mentions-Cb3g4hDN.js +138 -0
- package/dist/showcase/assets/menus-CE0Hlj8N.js +171 -0
- package/dist/showcase/assets/message-square-HliU8vbW.js +1 -0
- package/dist/showcase/assets/metadata-list-CJ5v5Bvc.js +286 -0
- package/dist/showcase/assets/metadata-list-DY92-pw2.js +1 -0
- package/dist/showcase/assets/metric-DxMTjIvU.js +1 -0
- package/dist/showcase/assets/metric-bar-cW9nWCRl.js +1 -0
- package/dist/showcase/assets/metric-grid-CvfO52X1.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-BmjQdRus.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-BZqB5d1y.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-jAhlrQCI.js +50 -0
- package/dist/showcase/assets/metrics-comparison-DURZ6qEL.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-HhJDBguh.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-Dq5k-P6F.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-DXzhwa6z.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-C6O5b0wP.js +42 -0
- package/dist/showcase/assets/metrics-overview-Hv2mseb3.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-CW42vBCS.js +54 -0
- package/dist/showcase/assets/minus-BW62vCxf.js +1 -0
- package/dist/showcase/assets/money-display-CAdGk5Lr.js +1 -0
- package/dist/showcase/assets/month-year-picker-dHuvgz1E.js +1 -0
- package/dist/showcase/assets/navigation-C4uSLvbZ.js +90 -0
- package/dist/showcase/assets/navigation-SjsZrtIc.js +231 -0
- package/dist/showcase/assets/navigation-extras-CMVNVskk.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-C1jwRdMU.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-BYFLpl5w.js +1 -0
- package/dist/showcase/assets/overlays-0Y8MAz39.js +159 -0
- package/dist/showcase/assets/overlays-ClOnjahL.js +408 -0
- package/dist/showcase/assets/overview-B5ztGmTp.js +184 -0
- package/dist/showcase/assets/package-check-MeSw6bS4.js +1 -0
- package/dist/showcase/assets/package-vYJ0q0QM.js +1 -0
- package/dist/showcase/assets/page-4lMKtBQ7.js +1 -0
- package/dist/showcase/assets/page-action-button-C5-TGSzy.js +1 -0
- package/dist/showcase/assets/page-header-C_-KYryO.js +1 -0
- package/dist/showcase/assets/pagination-D3L3Iwus.js +1 -0
- package/dist/showcase/assets/pagination-dZXPxwHx.js +42 -0
- package/dist/showcase/assets/paperclip-BZhdPOw8.js +1 -0
- package/dist/showcase/assets/password-input-CDSMtGxt.js +1 -0
- package/dist/showcase/assets/pencil-DiYr3CZ9.js +1 -0
- package/dist/showcase/assets/phone-Dm5qzlG8.js +1 -0
- package/dist/showcase/assets/plus-pfGaA3St.js +1 -0
- package/dist/showcase/assets/popover-CjVWDO7C.js +1 -0
- package/dist/showcase/assets/popover-menu-JcZyGV3Y.js +1 -0
- package/dist/showcase/assets/popover-pZ4Jbp0s.js +1 -0
- package/dist/showcase/assets/products-C62MKtAR.js +423 -0
- package/dist/showcase/assets/progress-Btw-ZUaU.js +18 -0
- package/dist/showcase/assets/progress-DpB5LL6R.js +1 -0
- package/dist/showcase/assets/props-table-Bjc9IHmp.js +1 -0
- package/dist/showcase/assets/quote-DcxVd1fj.js +1 -0
- package/dist/showcase/assets/receipt-BHns-S5Q.js +1 -0
- package/dist/showcase/assets/receipt-text-L0aYasyt.js +1 -0
- package/dist/showcase/assets/refinement-guide-BBOGBJ4I.js +189 -0
- package/dist/showcase/assets/refresh-cw-z6mlm0HI.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-hsarzg5A.js +1 -0
- package/dist/showcase/assets/resource-CIn_zKZ4.js +139 -0
- package/dist/showcase/assets/resource-DxktLgEK.js +1 -0
- package/dist/showcase/assets/resource-selector-card-dkcEQ6bl.js +43 -0
- package/dist/showcase/assets/rich-text-editor-Dd-rWisw.js +124 -0
- package/dist/showcase/assets/rich-text-editor-DvJMFj48.js +143 -0
- package/dist/showcase/assets/rotate-ccw-DEz6nb5P.js +1 -0
- package/dist/showcase/assets/route-BeXaXTk8.js +1 -0
- package/dist/showcase/assets/save-EE7Tc5OT.js +1 -0
- package/dist/showcase/assets/schema-form-RK9Zpz1E.js +327 -0
- package/dist/showcase/assets/scroll-area-BejQJ0Q1.js +32 -0
- package/dist/showcase/assets/scroll-area-DS8LJ7LG.js +1 -0
- package/dist/showcase/assets/section-Cv8i4DIx.js +1 -0
- package/dist/showcase/assets/select-Cuy3YKW9.js +1 -0
- package/dist/showcase/assets/select-qFy1jm91.js +1 -0
- package/dist/showcase/assets/send-CXv0ST9u.js +1 -0
- package/dist/showcase/assets/separator-CecGyBaV.js +1 -0
- package/dist/showcase/assets/separator-CqtFQXrk.js +28 -0
- package/dist/showcase/assets/settings-2-CCeMwMOj.js +1 -0
- package/dist/showcase/assets/settings-CXjN6wTC.js +1 -0
- package/dist/showcase/assets/sheet-Csyrmkqp.js +1 -0
- package/dist/showcase/assets/shield-DR0ZfAFA.js +1 -0
- package/dist/showcase/assets/shield-alert-Bp1iFJ2q.js +1 -0
- package/dist/showcase/assets/shield-check-ClL4B_Cd.js +1 -0
- package/dist/showcase/assets/shopping-bag-DnSmbPUX.js +1 -0
- package/dist/showcase/assets/showcase-CQKt5VGi.js +132 -0
- package/dist/showcase/assets/sidebar-CXy94md1.js +1 -0
- package/dist/showcase/assets/sidebar.context-C8gkOwJ5.js +1 -0
- package/dist/showcase/assets/skeleton-B8wC5P66.js +29 -0
- package/dist/showcase/assets/skeleton-DBlCLlBC.js +1 -0
- package/dist/showcase/assets/slider-BcjkNx6W.js +1 -0
- package/dist/showcase/assets/smart-card-Cg6rtWH9.js +1 -0
- package/dist/showcase/assets/sonner-ZGBQ13wS.js +22 -0
- package/dist/showcase/assets/sortable.esm-CGFWc-Cn.js +5 -0
- package/dist/showcase/assets/sparkles-q1-9JZqa.js +1 -0
- package/dist/showcase/assets/spinner-CKg8QLHu.js +1 -0
- package/dist/showcase/assets/spinner-D1Ao9j9T.js +49 -0
- package/dist/showcase/assets/spinner-oahLIkgb.js +30 -0
- package/dist/showcase/assets/square-pen-DZ3bQJia.js +1 -0
- package/dist/showcase/assets/stacked-avatars-CKPtb3Hj.js +1 -0
- package/dist/showcase/assets/star-suetD-KI.js +1 -0
- package/dist/showcase/assets/startOfDay-OjIsUeiv.js +1 -0
- package/dist/showcase/assets/styles-1mYOoC2k.js +1 -0
- package/dist/showcase/assets/suggestions-DLYaI-In.js +126 -0
- package/dist/showcase/assets/switch-CTTrJNwo.js +1 -0
- package/dist/showcase/assets/switch-ChJWWmxN.js +1 -0
- package/dist/showcase/assets/sync-DsHYydvo.js +124 -0
- package/dist/showcase/assets/table-Ck2ptin2.js +686 -0
- package/dist/showcase/assets/table-DyJ9oADQ.js +1 -0
- package/dist/showcase/assets/table-actions-COU4zHfh.js +1 -0
- package/dist/showcase/assets/tabs-Bl_RHGIw.js +1 -0
- package/dist/showcase/assets/tabs-DS-4VSkb.js +19 -0
- package/dist/showcase/assets/tags-input-BlYzb5fF.js +1 -0
- package/dist/showcase/assets/text-button-OPdNs3fb.js +1 -0
- package/dist/showcase/assets/text-link-D27gqGeg.js +1 -0
- package/dist/showcase/assets/textarea-DpC7J5F-.js +1 -0
- package/dist/showcase/assets/textarea-JtXUjxvc.js +1 -0
- package/dist/showcase/assets/timelines-DQM-B4Xo.js +200 -0
- package/dist/showcase/assets/toggle-group-CMneKREH.js +1 -0
- package/dist/showcase/assets/toggles-CAXXgjO_.js +71 -0
- package/dist/showcase/assets/toggles-group-CHRqrpoM.js +32 -0
- package/dist/showcase/assets/tooltip-CwGZAioX.js +31 -0
- package/dist/showcase/assets/trash-2-BpMb9Zbb.js +1 -0
- package/dist/showcase/assets/trending-up-B1BzitCg.js +1 -0
- package/dist/showcase/assets/truck-CDSE5-HZ.js +1 -0
- package/dist/showcase/assets/typography-BoNJ1hRZ.js +223 -0
- package/dist/showcase/assets/ui-badge-Djh6NiB2.js +28 -0
- package/dist/showcase/assets/ui-card-QC_rl_H2.js +30 -0
- package/dist/showcase/assets/ui-table-qAGsc3qN.js +42 -0
- package/dist/showcase/assets/upload-tray-DKCJgW5u.js +138 -0
- package/dist/showcase/assets/use-layout-link-BPlsZ8Ys.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-526MebAC.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-CqySZiH9.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-DWX7LbGX.js +1 -0
- package/dist/showcase/assets/useCompositeItem-DGEBUXgE.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-B2nuNlc2.js +1 -0
- package/dist/showcase/assets/useLabelableId-DY4O1lpt.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-DxwujDvt.js +1 -0
- package/dist/showcase/assets/useRender-BPoNv-Lm.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-BnOSAjfy.js +1 -0
- package/dist/showcase/assets/useValueChanged-CXmDOWxx.js +1 -0
- package/dist/showcase/assets/user-BGchdtV_.js +1 -0
- package/dist/showcase/assets/user-plus-BifI_xVA.js +1 -0
- package/dist/showcase/assets/users-Cl5yYqdg.js +1 -0
- package/dist/showcase/assets/vendor-profile-BNW4FYna.js +37 -0
- package/dist/showcase/assets/video-BtQPixYN.js +1 -0
- package/dist/showcase/assets/wrench-CRalc5fG.js +1 -0
- package/dist/showcase/assets/x-D6hUY89S.js +1 -0
- package/dist/showcase/assets/zap-v_qbqeI5.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/css/themes/shadcn.default.css +6 -6
- package/src/css/tokens/foundation.css +6 -6
- package/dist/_shared/accordion-B9EjlZLY.js +0 -135
- package/dist/_shared/accordion-B9EjlZLY.js.map +0 -1
- package/dist/_shared/accordion-IFDIc0E7.cjs +0 -2
- package/dist/_shared/accordion-IFDIc0E7.cjs.map +0 -1
- package/dist/_shared/action-menu-B6yFRDz1.cjs +0 -2
- package/dist/_shared/action-menu-B6yFRDz1.cjs.map +0 -1
- package/dist/_shared/action-menu-CNS-fwQr.js +0 -96
- package/dist/_shared/action-menu-CNS-fwQr.js.map +0 -1
- package/dist/_shared/ai-artifact-B3qhuiKC.js +0 -1099
- package/dist/_shared/ai-artifact-B3qhuiKC.js.map +0 -1
- package/dist/_shared/ai-artifact-Dtr0bnVq.cjs +0 -3
- package/dist/_shared/ai-artifact-Dtr0bnVq.cjs.map +0 -1
- package/dist/_shared/alert-V0V36Sny.cjs +0 -2
- package/dist/_shared/alert-V0V36Sny.cjs.map +0 -1
- package/dist/_shared/alert-m-4s0Hqq.js +0 -81
- package/dist/_shared/alert-m-4s0Hqq.js.map +0 -1
- package/dist/_shared/app-shell-D3eGUtL-.js +0 -69
- package/dist/_shared/app-shell-D3eGUtL-.js.map +0 -1
- package/dist/_shared/app-shell-QJHARDMB.cjs +0 -2
- package/dist/_shared/app-shell-QJHARDMB.cjs.map +0 -1
- package/dist/_shared/auth-DdezEtKK.cjs +0 -2
- package/dist/_shared/auth-DdezEtKK.cjs.map +0 -1
- package/dist/_shared/auth-e7yab9pK.js +0 -643
- package/dist/_shared/auth-e7yab9pK.js.map +0 -1
- package/dist/_shared/badge-BeSKxX1u.cjs +0 -2
- package/dist/_shared/badge-BeSKxX1u.cjs.map +0 -1
- package/dist/_shared/badge-a2Z3K5aQ.js +0 -110
- package/dist/_shared/badge-a2Z3K5aQ.js.map +0 -1
- package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs +0 -2
- package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-B57Unsoe.js +0 -105
- package/dist/_shared/breadcrumbs-B57Unsoe.js.map +0 -1
- package/dist/_shared/button-Bd5bEIiB.cjs +0 -2
- package/dist/_shared/button-Bd5bEIiB.cjs.map +0 -1
- package/dist/_shared/button-DHksjMvc.js +0 -189
- package/dist/_shared/button-DHksjMvc.js.map +0 -1
- package/dist/_shared/buttons-Bek9F7qK.cjs +0 -2
- package/dist/_shared/buttons-Bek9F7qK.cjs.map +0 -1
- package/dist/_shared/buttons-DcynMPnE.js +0 -137
- package/dist/_shared/buttons-DcynMPnE.js.map +0 -1
- package/dist/_shared/card-radio-group-C2p_iBal.cjs +0 -2
- package/dist/_shared/card-radio-group-C2p_iBal.cjs.map +0 -1
- package/dist/_shared/card-radio-group-Fdi1Cz1j.js +0 -150
- package/dist/_shared/card-radio-group-Fdi1Cz1j.js.map +0 -1
- package/dist/_shared/cards-CbbHly7W.cjs +0 -2
- package/dist/_shared/cards-CbbHly7W.cjs.map +0 -1
- package/dist/_shared/cards-RZxRLx3f.js +0 -355
- package/dist/_shared/cards-RZxRLx3f.js.map +0 -1
- package/dist/_shared/combobox-BIe72dV3.js +0 -954
- package/dist/_shared/combobox-BIe72dV3.js.map +0 -1
- package/dist/_shared/combobox-CJiFDoTi.cjs +0 -2
- package/dist/_shared/combobox-CJiFDoTi.cjs.map +0 -1
- package/dist/_shared/comments-BJqgvSFY.js +0 -952
- package/dist/_shared/comments-BJqgvSFY.js.map +0 -1
- package/dist/_shared/comments-BjPciQfo.cjs +0 -2
- package/dist/_shared/comments-BjPciQfo.cjs.map +0 -1
- package/dist/_shared/containers-D7oZE4XI.cjs +0 -2
- package/dist/_shared/containers-D7oZE4XI.cjs.map +0 -1
- package/dist/_shared/containers-anBivbL9.js +0 -19
- package/dist/_shared/containers-anBivbL9.js.map +0 -1
- package/dist/_shared/content-container-CVUJCLhn.cjs +0 -2
- package/dist/_shared/content-container-CVUJCLhn.cjs.map +0 -1
- package/dist/_shared/content-container-Dv8XsAw4.js +0 -33
- package/dist/_shared/content-container-Dv8XsAw4.js.map +0 -1
- package/dist/_shared/copyable-Dopk9pEJ.js +0 -38
- package/dist/_shared/copyable-Dopk9pEJ.js.map +0 -1
- package/dist/_shared/copyable-rQwxsTJ3.cjs +0 -2
- package/dist/_shared/copyable-rQwxsTJ3.cjs.map +0 -1
- package/dist/_shared/data-display-C21skrV4.cjs +0 -2
- package/dist/_shared/data-display-C21skrV4.cjs.map +0 -1
- package/dist/_shared/data-display-C5-1dZua.js +0 -1873
- package/dist/_shared/data-display-C5-1dZua.js.map +0 -1
- package/dist/_shared/date-picker-BiUgIkjP.cjs +0 -2
- package/dist/_shared/date-picker-BiUgIkjP.cjs.map +0 -1
- package/dist/_shared/date-picker-DFkLiveH.js +0 -1361
- package/dist/_shared/date-picker-DFkLiveH.js.map +0 -1
- package/dist/_shared/date-pickers-C86tVD8e.cjs +0 -2
- package/dist/_shared/date-pickers-C86tVD8e.cjs.map +0 -1
- package/dist/_shared/date-pickers-D4oxOOHE.js +0 -329
- package/dist/_shared/date-pickers-D4oxOOHE.js.map +0 -1
- package/dist/_shared/display-B0wLVN8t.js +0 -986
- package/dist/_shared/display-B0wLVN8t.js.map +0 -1
- package/dist/_shared/display-Bin2vVex.cjs +0 -2
- package/dist/_shared/display-Bin2vVex.cjs.map +0 -1
- package/dist/_shared/form-sizing-C51oI3Di.js +0 -42
- package/dist/_shared/form-sizing-C51oI3Di.js.map +0 -1
- package/dist/_shared/form-sizing-Co53Drri.cjs +0 -2
- package/dist/_shared/form-sizing-Co53Drri.cjs.map +0 -1
- package/dist/_shared/forms-BoquZE2Y.js +0 -3533
- package/dist/_shared/forms-BoquZE2Y.js.map +0 -1
- package/dist/_shared/forms-CzrEYejY.cjs +0 -2
- package/dist/_shared/forms-CzrEYejY.cjs.map +0 -1
- package/dist/_shared/header-CxhEtk9M.cjs +0 -2
- package/dist/_shared/header-CxhEtk9M.cjs.map +0 -1
- package/dist/_shared/header-h3f14vQx.js +0 -447
- package/dist/_shared/header-h3f14vQx.js.map +0 -1
- package/dist/_shared/hooks-CS55-w3h.js +0 -95
- package/dist/_shared/hooks-CS55-w3h.js.map +0 -1
- package/dist/_shared/hooks-sfHAyDgD.cjs +0 -2
- package/dist/_shared/hooks-sfHAyDgD.cjs.map +0 -1
- package/dist/_shared/input-CB6hxh-5.cjs +0 -2
- package/dist/_shared/input-CB6hxh-5.cjs.map +0 -1
- package/dist/_shared/input-CfnHBT--.js +0 -182
- package/dist/_shared/input-CfnHBT--.js.map +0 -1
- package/dist/_shared/item-Xs-fgzaT.js +0 -226
- package/dist/_shared/item-Xs-fgzaT.js.map +0 -1
- package/dist/_shared/item-eUP9Rtmg.cjs +0 -2
- package/dist/_shared/item-eUP9Rtmg.cjs.map +0 -1
- package/dist/_shared/layout.types-CYuDZ_4h.cjs +0 -2
- package/dist/_shared/layout.types-CYuDZ_4h.cjs.map +0 -1
- package/dist/_shared/layout.types-j7zZAPtg.js +0 -28
- package/dist/_shared/layout.types-j7zZAPtg.js.map +0 -1
- package/dist/_shared/mentions-BahbwDwU.js +0 -506
- package/dist/_shared/mentions-BahbwDwU.js.map +0 -1
- package/dist/_shared/mentions-aHalksbt.cjs +0 -2
- package/dist/_shared/mentions-aHalksbt.cjs.map +0 -1
- package/dist/_shared/money-display-BLPNMmiT.cjs +0 -2
- package/dist/_shared/money-display-BLPNMmiT.cjs.map +0 -1
- package/dist/_shared/money-display-D_-Cb8-9.js +0 -198
- package/dist/_shared/money-display-D_-Cb8-9.js.map +0 -1
- package/dist/_shared/navigation-BcYAwgzo.js +0 -436
- package/dist/_shared/navigation-BcYAwgzo.js.map +0 -1
- package/dist/_shared/navigation-DAB7uuBj.cjs +0 -2
- package/dist/_shared/navigation-DAB7uuBj.cjs.map +0 -1
- package/dist/_shared/overlays-DW8OIK5R.js +0 -735
- package/dist/_shared/overlays-DW8OIK5R.js.map +0 -1
- package/dist/_shared/overlays-Du65iCkx.cjs +0 -2
- package/dist/_shared/overlays-Du65iCkx.cjs.map +0 -1
- package/dist/_shared/page-D8UMXREv.cjs +0 -2
- package/dist/_shared/page-D8UMXREv.cjs.map +0 -1
- package/dist/_shared/page-D9LNsHMN.js +0 -262
- package/dist/_shared/page-D9LNsHMN.js.map +0 -1
- package/dist/_shared/popover-menu-qxBZlTck.js +0 -93
- package/dist/_shared/popover-menu-qxBZlTck.js.map +0 -1
- package/dist/_shared/popover-menu-z9QTjl4o.cjs +0 -2
- package/dist/_shared/popover-menu-z9QTjl4o.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-DeIiIDn7.cjs +0 -2
- package/dist/_shared/rich-text-editor-DeIiIDn7.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-VIBlL0x3.js +0 -620
- package/dist/_shared/rich-text-editor-VIBlL0x3.js.map +0 -1
- package/dist/_shared/settings-BeZOIEJB.js +0 -143
- package/dist/_shared/settings-BeZOIEJB.js.map +0 -1
- package/dist/_shared/settings-DI-K34bW.cjs +0 -2
- package/dist/_shared/settings-DI-K34bW.cjs.map +0 -1
- package/dist/_shared/sidebar-DfToCaiC.cjs +0 -2
- package/dist/_shared/sidebar-DfToCaiC.cjs.map +0 -1
- package/dist/_shared/sidebar-DhpRdTZH.js +0 -541
- package/dist/_shared/sidebar-DhpRdTZH.js.map +0 -1
- package/dist/_shared/spinner-D35zNriU.cjs +0 -2
- package/dist/_shared/spinner-D35zNriU.cjs.map +0 -1
- package/dist/_shared/spinner-DMC2IIml.js +0 -67
- package/dist/_shared/spinner-DMC2IIml.js.map +0 -1
- package/dist/_shared/table-B_pqCQxC.js +0 -1377
- package/dist/_shared/table-B_pqCQxC.js.map +0 -1
- package/dist/_shared/table-CGVOXtdv.cjs +0 -2
- package/dist/_shared/table-CGVOXtdv.cjs.map +0 -1
- package/dist/_shared/textarea-B24qgdmd.cjs +0 -2
- package/dist/_shared/textarea-B24qgdmd.cjs.map +0 -1
- package/dist/_shared/textarea-ChLRmmVU.js +0 -118
- package/dist/_shared/textarea-ChLRmmVU.js.map +0 -1
- package/dist/_shared/typography-CO9uwZhF.cjs +0 -2
- package/dist/_shared/typography-CO9uwZhF.cjs.map +0 -1
- package/dist/_shared/typography-DE0NGEIE.js +0 -201
- package/dist/_shared/typography-DE0NGEIE.js.map +0 -1
- package/dist/_shared/workspace-BgtWS9fA.cjs +0 -2
- package/dist/_shared/workspace-BgtWS9fA.cjs.map +0 -1
- package/dist/_shared/workspace-D2jJ0PlS.js +0 -357
- package/dist/_shared/workspace-D2jJ0PlS.js.map +0 -1
- package/dist/showcase/assets/AreaChart-Y0ZwblHU.js +0 -6
- package/dist/showcase/assets/CompositeItem-BIY_Cp7P.js +0 -1
- package/dist/showcase/assets/CompositeRoot-DSPvBRQr.js +0 -1
- package/dist/showcase/assets/DialogTrigger-DHUp8vXe.js +0 -1
- package/dist/showcase/assets/LabelableContext-CasUI4hR.js +0 -1
- package/dist/showcase/assets/PreviewLayout-B_l930k0.js +0 -1
- package/dist/showcase/assets/RadioGroup-BgZ-UH79.js +0 -1
- package/dist/showcase/assets/ScrollAreaCorner-BbwFElLA.js +0 -1
- package/dist/showcase/assets/Separator-dQuencsA.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-BE0hbejq.js +0 -1
- package/dist/showcase/assets/accordion-D93ZNsLn.js +0 -171
- package/dist/showcase/assets/accordion-variants-Bl4bIQH4.js +0 -1
- package/dist/showcase/assets/action-menu--rEgMzDi.js +0 -1
- package/dist/showcase/assets/actions-3iedOWD9.js +0 -310
- package/dist/showcase/assets/activities-CyrAWFlu.js +0 -500
- package/dist/showcase/assets/activities-feed-card-bhIATc2O.js +0 -1
- package/dist/showcase/assets/admin-CZzNsj2q.js +0 -140
- package/dist/showcase/assets/ai-CasHwkW4.js +0 -207
- package/dist/showcase/assets/ai-artifact-BgWvrLAb.js +0 -2
- package/dist/showcase/assets/ai-chat-seS9aW-1.js +0 -568
- package/dist/showcase/assets/ai-elements-Tku5_ous.js +0 -387
- package/dist/showcase/assets/ai-tool-call-BU6xbmXG.js +0 -1
- package/dist/showcase/assets/alert-6Emt6KX2.js +0 -1
- package/dist/showcase/assets/alert-B6aLWiRW.js +0 -62
- package/dist/showcase/assets/alert-CtoTQ0vN.js +0 -93
- package/dist/showcase/assets/api-key-list-C0glWR3z.js +0 -1
- package/dist/showcase/assets/api-key-list-DcWSbY3u.js +0 -73
- package/dist/showcase/assets/app-sidebar-D_eNP_jh.js +0 -1
- package/dist/showcase/assets/arrow-down-qyKZ1H5j.js +0 -1
- package/dist/showcase/assets/arrow-left-C9I0h_su.js +0 -1
- package/dist/showcase/assets/arrow-right-DswaRsr6.js +0 -1
- package/dist/showcase/assets/arrow-up-5BijPOxK.js +0 -1
- package/dist/showcase/assets/arrow-up-right-CbVVNT6g.js +0 -1
- package/dist/showcase/assets/avatar-BYHVCvVW.js +0 -67
- package/dist/showcase/assets/avatar-BlLAVC87.js +0 -1
- package/dist/showcase/assets/avatar-DQTXjcS4.js +0 -1
- package/dist/showcase/assets/avatar-DveZy09C.js +0 -57
- package/dist/showcase/assets/badge-Bth3mRTh.js +0 -31
- package/dist/showcase/assets/badge-check-DocF8Ho3.js +0 -1
- package/dist/showcase/assets/bell-DXBoeAzi.js +0 -1
- package/dist/showcase/assets/bot-Ch-Y1HK8.js +0 -1
- package/dist/showcase/assets/box-72m9QSDa.js +0 -1
- package/dist/showcase/assets/braces-CC17X3TE.js +0 -1
- package/dist/showcase/assets/brain-Dvbla_5x.js +0 -1
- package/dist/showcase/assets/brand-D5ciAq8v.js +0 -36
- package/dist/showcase/assets/breadcrumb-BBCaOVyz.js +0 -52
- package/dist/showcase/assets/breadcrumb-Bt8yVTCj.js +0 -1
- package/dist/showcase/assets/breadcrumbs-CkVWfcAN.js +0 -1
- package/dist/showcase/assets/briefcase-8rQTJwpE.js +0 -1
- package/dist/showcase/assets/building-2-CV7gTtXz.js +0 -1
- package/dist/showcase/assets/button-HGjoBio3.js +0 -44
- package/dist/showcase/assets/button-group-LWToSCrp.js +0 -1
- package/dist/showcase/assets/buttons-Bn_dX6Kk.js +0 -272
- package/dist/showcase/assets/calendar-BTsffmY8.js +0 -1
- package/dist/showcase/assets/calendar-Bhpyn4u0.js +0 -1
- package/dist/showcase/assets/calendar-DjrUTKcD.js +0 -16
- package/dist/showcase/assets/calendar-days-BKCkzWjV.js +0 -1
- package/dist/showcase/assets/camera-EjpDG3mc.js +0 -1
- package/dist/showcase/assets/card-Bp6iGuOF.js +0 -188
- package/dist/showcase/assets/card-CHc6AVFt.js +0 -1
- package/dist/showcase/assets/card-primitives-Bv6XGPJd.js +0 -1
- package/dist/showcase/assets/card-radio-group-Ce9FsiSv.js +0 -1
- package/dist/showcase/assets/cards-_CGG9zir.js +0 -354
- package/dist/showcase/assets/carousel-BVbsKH2W.js +0 -449
- package/dist/showcase/assets/cell-renderers-CosD6Gby.js +0 -1
- package/dist/showcase/assets/chart-CwOp8Sf8.js +0 -358
- package/dist/showcase/assets/chart-column-sz871NdJ.js +0 -1
- package/dist/showcase/assets/checkbox-BO38TYqr.js +0 -1
- package/dist/showcase/assets/checkbox-W4MhlPlJ.js +0 -1
- package/dist/showcase/assets/chevron-down-BFh1Fz2P.js +0 -1
- package/dist/showcase/assets/chevron-left-C5_X5glO.js +0 -1
- package/dist/showcase/assets/chevron-up-DPH3boVS.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-CM5mIDaw.js +0 -1
- package/dist/showcase/assets/circle-BFDzL1iF.js +0 -1
- package/dist/showcase/assets/circle-alert-C6MbOB0m.js +0 -1
- package/dist/showcase/assets/circle-check-C0X85t4j.js +0 -1
- package/dist/showcase/assets/circle-check-big-CBaodck_.js +0 -1
- package/dist/showcase/assets/circle-dot-DdRpIhnL.js +0 -1
- package/dist/showcase/assets/circle-question-mark-CKlcead7.js +0 -1
- package/dist/showcase/assets/circle-x-MO44aKHe.js +0 -1
- package/dist/showcase/assets/clock-3-CXQJFcbh.js +0 -1
- package/dist/showcase/assets/clock-GhBJJ6n1.js +0 -1
- package/dist/showcase/assets/code-xml-BSX7Qyi5.js +0 -1
- package/dist/showcase/assets/collapsible-CZLTO5EH.js +0 -1
- package/dist/showcase/assets/collapsible-LrDO_sSQ.js +0 -27
- package/dist/showcase/assets/combobox-TmDBXkM-.js +0 -685
- package/dist/showcase/assets/command-9-r1qrJt.js +0 -1
- package/dist/showcase/assets/command-DGne3l9s.js +0 -1
- package/dist/showcase/assets/comment-composer-BI0qnvuY.js +0 -1
- package/dist/showcase/assets/comment-item-Cedds6Lm.js +0 -1
- package/dist/showcase/assets/comments-De02NOns.js +0 -357
- package/dist/showcase/assets/commerce-DldtS83o.js +0 -267
- package/dist/showcase/assets/composite-BjZZlzzb.js +0 -1
- package/dist/showcase/assets/contact-card-muCZ3uXV.js +0 -65
- package/dist/showcase/assets/content-container-BxSLICeL.js +0 -1
- package/dist/showcase/assets/copyable-DYhhmTqM.js +0 -1
- package/dist/showcase/assets/copyable-MNU75-J9.js +0 -96
- package/dist/showcase/assets/course-card-Dl1wsuJx.js +0 -77
- package/dist/showcase/assets/cpu-CsWq4fcX.js +0 -1
- package/dist/showcase/assets/credit-card-B0AUZiWw.js +0 -1
- package/dist/showcase/assets/css-variables-Be7DzahT.js +0 -1190
- package/dist/showcase/assets/currency-BtPM_Xtw.js +0 -149
- package/dist/showcase/assets/dark-surfaces-DRFERSEv.js +0 -90
- package/dist/showcase/assets/data-view-DmWd0h7G.js +0 -4
- package/dist/showcase/assets/data-view-DnLH2o0i.js +0 -124
- package/dist/showcase/assets/database-C0YqGaQ_.js +0 -1
- package/dist/showcase/assets/date-block-BQH25FLS.js +0 -1
- package/dist/showcase/assets/date-picker-BF-jevhh.js +0 -1
- package/dist/showcase/assets/date-pickers-q2v3ajJm.js +0 -73
- package/dist/showcase/assets/dense-info-Cb-roqDU.js +0 -106
- package/dist/showcase/assets/design-system-consistency-DMSJknaM.js +0 -264
- package/dist/showcase/assets/dialog-C0ALRmbP.js +0 -1
- package/dist/showcase/assets/dialog-CbXon08k.js +0 -1
- package/dist/showcase/assets/display-utilities-kBUVw7o3.js +0 -267
- package/dist/showcase/assets/dist-CTSkWj_M.js +0 -45
- package/dist/showcase/assets/dist-W8bxVfew.js +0 -1
- package/dist/showcase/assets/dollar-sign-VNxVZleW.js +0 -1
- package/dist/showcase/assets/download-Ds_6eIpx.js +0 -1
- package/dist/showcase/assets/dropdown-menu-C1G_y9dv.js +0 -1
- package/dist/showcase/assets/dropzone-CxOLmdkt.js +0 -1
- package/dist/showcase/assets/earth-HLyEI1oq.js +0 -1
- package/dist/showcase/assets/ellipsis-BLyAd9A-.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-TG4mYU2J.js +0 -1
- package/dist/showcase/assets/empty-B54k9xAG.js +0 -1
- package/dist/showcase/assets/empty-item-BmA4rmq7.js +0 -49
- package/dist/showcase/assets/empty-state-CH7gjjg7.js +0 -190
- package/dist/showcase/assets/empty-state-hUKvmKa-.js +0 -1
- package/dist/showcase/assets/enhanced-activities-BRDVL9RR.js +0 -357
- package/dist/showcase/assets/enhanced-combobox-2wbQJS6R.js +0 -1
- package/dist/showcase/assets/esm-CUTefMLr.js +0 -2
- package/dist/showcase/assets/event-calendar-Bf9xFZlt.js +0 -138
- package/dist/showcase/assets/event-log-CeRDSL-h.js +0 -330
- package/dist/showcase/assets/example-CJMJcnb4.js +0 -1
- package/dist/showcase/assets/external-link-CvXhYrnd.js +0 -1
- package/dist/showcase/assets/eye-Cl_GfUKH.js +0 -1
- package/dist/showcase/assets/feature-announcement-Dw0SokLo.js +0 -34
- package/dist/showcase/assets/file-CJFWrwy1.js +0 -1
- package/dist/showcase/assets/file-text-BTTFP8Jo.js +0 -1
- package/dist/showcase/assets/filter-layout-DUVqG5Ql.js +0 -1
- package/dist/showcase/assets/filters-BLcCaplV.js +0 -139
- package/dist/showcase/assets/flag-BxI3EGPG.js +0 -1
- package/dist/showcase/assets/folder-open-4d8qsiAj.js +0 -1
- package/dist/showcase/assets/form-field-Dhy0eM5B.js +0 -1
- package/dist/showcase/assets/form-sizing-C3UG5WKC.js +0 -1
- package/dist/showcase/assets/format-zGqa9Olc.js +0 -1
- package/dist/showcase/assets/forms-D99qG5Gb.js +0 -915
- package/dist/showcase/assets/funnel-Cg7SOShf.js +0 -1
- package/dist/showcase/assets/generic-CfrG943t.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-lw5shsdM.js +0 -1
- package/dist/showcase/assets/gift-BXtKbzvA.js +0 -1
- package/dist/showcase/assets/giftcard-cards-CqYaN0jC.js +0 -85
- package/dist/showcase/assets/git-branch-BWAuIMOQ.js +0 -1
- package/dist/showcase/assets/global-search-CHUva8pR.js +0 -1
- package/dist/showcase/assets/global-search-Df7JovOG.js +0 -215
- package/dist/showcase/assets/globe-CvIW_foU.js +0 -1
- package/dist/showcase/assets/gradient-card-CdM2J1Hv.js +0 -58
- package/dist/showcase/assets/hash-wBs5gyr_.js +0 -1
- package/dist/showcase/assets/header-DXPFmpUT.js +0 -1
- package/dist/showcase/assets/header-notifications-FsnCJLpe.js +0 -1
- package/dist/showcase/assets/heart-B4fOMIr6.js +0 -1
- package/dist/showcase/assets/hooks-DtMOMalj.js +0 -220
- package/dist/showcase/assets/house-hebmAxEE.js +0 -1
- package/dist/showcase/assets/icon-badge-DrZ5qGpa.js +0 -1
- package/dist/showcase/assets/icon-badge-JEug_P_U.js +0 -37
- package/dist/showcase/assets/image-CxNywgkb.js +0 -1
- package/dist/showcase/assets/inbox-DqAmGdDd.js +0 -1
- package/dist/showcase/assets/index-DujM0kEF.css +0 -2
- package/dist/showcase/assets/index-jD-KSiHu.js +0 -10
- package/dist/showcase/assets/inertValue-Dg9TwvOb.js +0 -1
- package/dist/showcase/assets/info-B5fZn_ZC.js +0 -1
- package/dist/showcase/assets/inline-stat-CklKufoA.js +0 -1
- package/dist/showcase/assets/inline-stat-Dep7oHIi.js +0 -15
- package/dist/showcase/assets/input-CkNgwwCs.js +0 -1
- package/dist/showcase/assets/input-DAPMRlKO.js +0 -1
- package/dist/showcase/assets/input-group-06D68uB6.js +0 -47
- package/dist/showcase/assets/input-group-Bq9aXQPG.js +0 -1
- package/dist/showcase/assets/inputs-C8G3y-zR.js +0 -155
- package/dist/showcase/assets/installation-BV5xOvoE.js +0 -134
- package/dist/showcase/assets/invoice-header-BcUxzT68.js +0 -36
- package/dist/showcase/assets/invoice-items-B42Jfxl7.js +0 -36
- package/dist/showcase/assets/invoice-mini-RJGdlErg.js +0 -14
- package/dist/showcase/assets/invoice-table--MdP6ysv.js +0 -30
- package/dist/showcase/assets/isSameDay-srttAIjD.js +0 -1
- package/dist/showcase/assets/isToday-BPub5Zvi.js +0 -1
- package/dist/showcase/assets/italic-1BNA_XlU.js +0 -1
- package/dist/showcase/assets/item-B9KyqUGa.js +0 -139
- package/dist/showcase/assets/item-DoIlPm6J.js +0 -1
- package/dist/showcase/assets/item-ffIfXEGd.js +0 -1
- package/dist/showcase/assets/kanban-Cfad3edR.js +0 -188
- package/dist/showcase/assets/key-round-J11Zc216.js +0 -1
- package/dist/showcase/assets/label-DqaB8ZB2.js +0 -1
- package/dist/showcase/assets/languages-D9UaP3QU.js +0 -1
- package/dist/showcase/assets/layers-QXZ9Jfej.js +0 -1
- package/dist/showcase/assets/layout-app-shell-CW1eRJmU.js +0 -608
- package/dist/showcase/assets/layout-auth-j4K6lveg.js +0 -790
- package/dist/showcase/assets/layout-containers-NclLtsV0.js +0 -101
- package/dist/showcase/assets/layout-header-B8AOTiwL.js +0 -203
- package/dist/showcase/assets/layout-page-DM79QHyW.js +0 -314
- package/dist/showcase/assets/layout-primitives-Dyop-WMt.js +0 -34
- package/dist/showcase/assets/layout-sidebar-uBNaHqjD.js +0 -224
- package/dist/showcase/assets/layout-users-BkhDiOOz.js +0 -117
- package/dist/showcase/assets/layout-workspace-C2hSimZW.js +0 -191
- package/dist/showcase/assets/lib-CDssULuD.js +0 -1
- package/dist/showcase/assets/list-checks-DA2jqXdm.js +0 -1
- package/dist/showcase/assets/lock-BDZLNQLR.js +0 -1
- package/dist/showcase/assets/lock-keyhole-CWYENd9O.js +0 -1
- package/dist/showcase/assets/mail-CCdaRmft.js +0 -1
- package/dist/showcase/assets/mail-check-DZF1VbCX.js +0 -1
- package/dist/showcase/assets/map-CDFEmmZH.js +0 -124
- package/dist/showcase/assets/map-pin-CdV-R6nt.js +0 -1
- package/dist/showcase/assets/media-library-BJyn1s9d.js +0 -699
- package/dist/showcase/assets/mention-inline-suggestions-DPO6FhXx.js +0 -1
- package/dist/showcase/assets/mentions-DtWHbcS6.js +0 -138
- package/dist/showcase/assets/menus-BmjngFE4.js +0 -171
- package/dist/showcase/assets/message-square-bM29txT3.js +0 -1
- package/dist/showcase/assets/metadata-list-DvYTAJri.js +0 -286
- package/dist/showcase/assets/metadata-list-xVUTVyy9.js +0 -1
- package/dist/showcase/assets/metric-BPNCh4eA.js +0 -1
- package/dist/showcase/assets/metric-bar-BX4sCMrM.js +0 -1
- package/dist/showcase/assets/metric-grid-IyHP3nmU.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-Dih8eR17.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-DK16RNMs.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-Byyl13YT.js +0 -50
- package/dist/showcase/assets/metrics-comparison-DGHFMBL-.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-Bl6C7i0j.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-Bz79zbNK.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-DzZ9dRFY.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-DyoQiuzr.js +0 -42
- package/dist/showcase/assets/metrics-overview-DoyHPEZw.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-B1b7NFqW.js +0 -54
- package/dist/showcase/assets/minus-BE2L5hVc.js +0 -1
- package/dist/showcase/assets/money-display-CXQ_8LfA.js +0 -1
- package/dist/showcase/assets/month-year-picker-ra8FEN8F.js +0 -1
- package/dist/showcase/assets/navigation-CFfVZQJ1.js +0 -231
- package/dist/showcase/assets/navigation-Da0MVkqr.js +0 -90
- package/dist/showcase/assets/navigation-extras-LpsdoXfx.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-DPNatNOk.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-C0vTzcEY.js +0 -1
- package/dist/showcase/assets/overlays-Blmbun0J.js +0 -408
- package/dist/showcase/assets/overlays-t0joc10Y.js +0 -159
- package/dist/showcase/assets/overview-Ckq8vbOR.js +0 -184
- package/dist/showcase/assets/package-Cjod_a06.js +0 -1
- package/dist/showcase/assets/package-check-JRHaNnkl.js +0 -1
- package/dist/showcase/assets/page-9xr7xnuW.js +0 -1
- package/dist/showcase/assets/page-action-button-BRXnfsEx.js +0 -1
- package/dist/showcase/assets/page-header-Bdlxfn_9.js +0 -1
- package/dist/showcase/assets/pagination-CeaYhOvv.js +0 -42
- package/dist/showcase/assets/pagination-DdZZHvNF.js +0 -1
- package/dist/showcase/assets/paperclip-BRM-yXTB.js +0 -1
- package/dist/showcase/assets/password-input-1FVEugoO.js +0 -1
- package/dist/showcase/assets/pencil-DiG2dQ8F.js +0 -1
- package/dist/showcase/assets/phone-BREyNZN-.js +0 -1
- package/dist/showcase/assets/plus-CQcelTNc.js +0 -1
- package/dist/showcase/assets/popover-Czmwspmc.js +0 -1
- package/dist/showcase/assets/popover-menu-beuCaiLt.js +0 -1
- package/dist/showcase/assets/popover-uqk7myG2.js +0 -1
- package/dist/showcase/assets/products-DGNqIbLs.js +0 -423
- package/dist/showcase/assets/progress-D76Df908.js +0 -1
- package/dist/showcase/assets/progress-DjUprSDD.js +0 -18
- package/dist/showcase/assets/props-table-DoDq8Mvr.js +0 -1
- package/dist/showcase/assets/quote-BvGGgyJ0.js +0 -1
- package/dist/showcase/assets/receipt-rgnlMgyi.js +0 -1
- package/dist/showcase/assets/receipt-text-CBQrVlnU.js +0 -1
- package/dist/showcase/assets/refinement-guide-B_BpIMxm.js +0 -189
- package/dist/showcase/assets/refresh-cw-C-yHy6B7.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-0bwEvIG-.js +0 -1
- package/dist/showcase/assets/resource-8f61BZ8t.js +0 -1
- package/dist/showcase/assets/resource-BEh6R0gu.js +0 -139
- package/dist/showcase/assets/resource-selector-card-DJwXY_Ms.js +0 -43
- package/dist/showcase/assets/rich-text-editor-D433iv0N.js +0 -143
- package/dist/showcase/assets/rich-text-editor-vTRfWsOK.js +0 -124
- package/dist/showcase/assets/rotate-ccw-JuE4H14F.js +0 -1
- package/dist/showcase/assets/route-eSu1bFNn.js +0 -1
- package/dist/showcase/assets/save-Bpjj-rBP.js +0 -1
- package/dist/showcase/assets/schema-form-DmOpxd96.js +0 -327
- package/dist/showcase/assets/scroll-area-B9OdCBy9.js +0 -32
- package/dist/showcase/assets/scroll-area-BH80l2As.js +0 -1
- package/dist/showcase/assets/section-BPNIPavy.js +0 -1
- package/dist/showcase/assets/select-BauiG1a3.js +0 -1
- package/dist/showcase/assets/select-CPopSr5c.js +0 -1
- package/dist/showcase/assets/send-DNCcBKXs.js +0 -1
- package/dist/showcase/assets/separator-BK0beCOv.js +0 -28
- package/dist/showcase/assets/separator-CKM9A-mm.js +0 -1
- package/dist/showcase/assets/settings-2-B8fz7JZB.js +0 -1
- package/dist/showcase/assets/settings-Cy2y3sQw.js +0 -1
- package/dist/showcase/assets/sheet-C7VWkXE1.js +0 -1
- package/dist/showcase/assets/shield-ClPev4gS.js +0 -1
- package/dist/showcase/assets/shield-alert-6XO5YZ5u.js +0 -1
- package/dist/showcase/assets/shield-check-DSfGVZq0.js +0 -1
- package/dist/showcase/assets/shopping-bag-DzMrGvpF.js +0 -1
- package/dist/showcase/assets/showcase-DuZaO6q9.js +0 -132
- package/dist/showcase/assets/sidebar-7y9EQYWf.js +0 -1
- package/dist/showcase/assets/sidebar.context-DUheJD8t.js +0 -1
- package/dist/showcase/assets/skeleton-Dgr8Vabr.js +0 -29
- package/dist/showcase/assets/skeleton-HSpErFqw.js +0 -1
- package/dist/showcase/assets/slider-B7f81APg.js +0 -1
- package/dist/showcase/assets/smart-card-p97LLZCW.js +0 -1
- package/dist/showcase/assets/sonner-CWazrN19.js +0 -22
- package/dist/showcase/assets/sortable.esm-uufol7Mz.js +0 -5
- package/dist/showcase/assets/sparkles-Z4V23xKK.js +0 -1
- package/dist/showcase/assets/spinner-BUgjAjWE.js +0 -49
- package/dist/showcase/assets/spinner-CXu7z8-j.js +0 -1
- package/dist/showcase/assets/spinner-DCwR0mnD.js +0 -30
- package/dist/showcase/assets/square-pen-jwp_OWMQ.js +0 -1
- package/dist/showcase/assets/stacked-avatars-CHEpTotO.js +0 -1
- package/dist/showcase/assets/star-Ck8Lg5hm.js +0 -1
- package/dist/showcase/assets/startOfDay-BzULZHy4.js +0 -1
- package/dist/showcase/assets/styles-CNYitflH.js +0 -1
- package/dist/showcase/assets/suggestions-CSF9MlKl.js +0 -126
- package/dist/showcase/assets/switch-BX9KSLIF.js +0 -1
- package/dist/showcase/assets/switch-Bn0WaWa9.js +0 -1
- package/dist/showcase/assets/sync-BuKBnqWW.js +0 -124
- package/dist/showcase/assets/table-DNJcLaud.js +0 -686
- package/dist/showcase/assets/table-NfpOWGsG.js +0 -1
- package/dist/showcase/assets/table-actions-Ci9Yszp0.js +0 -1
- package/dist/showcase/assets/tabs-CYNFQdIr.js +0 -19
- package/dist/showcase/assets/tabs-Cm_p6znb.js +0 -1
- package/dist/showcase/assets/tags-input-DE4QZqS_.js +0 -1
- package/dist/showcase/assets/text-button-D9llh4pU.js +0 -1
- package/dist/showcase/assets/text-link-ZT6QGJOL.js +0 -1
- package/dist/showcase/assets/textarea-CgcHuGVq.js +0 -1
- package/dist/showcase/assets/textarea-D2uT_GJt.js +0 -1
- package/dist/showcase/assets/timelines-BEFO7tJ0.js +0 -200
- package/dist/showcase/assets/toggle-group-oYpa59lN.js +0 -1
- package/dist/showcase/assets/toggles-BL93YmQo.js +0 -71
- package/dist/showcase/assets/toggles-group-BG-xiQCY.js +0 -32
- package/dist/showcase/assets/tooltip-BMI7zHwP.js +0 -31
- package/dist/showcase/assets/trash-2-CtRtVsCy.js +0 -1
- package/dist/showcase/assets/trending-up-2NQ-P8vB.js +0 -1
- package/dist/showcase/assets/truck-Cl0nyN_j.js +0 -1
- package/dist/showcase/assets/typography-C7pCPhg7.js +0 -223
- package/dist/showcase/assets/ui-badge-BvmuMzSq.js +0 -28
- package/dist/showcase/assets/ui-card-B7ziOMAn.js +0 -30
- package/dist/showcase/assets/ui-table-BEFHakBU.js +0 -42
- package/dist/showcase/assets/upload-tray-CMKqTtEp.js +0 -138
- package/dist/showcase/assets/use-layout-link-nEU6ctSs.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-B1xyKMh7.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-BMlFgz-H.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-BEzH6TC2.js +0 -1
- package/dist/showcase/assets/useCompositeItem-CIuww7-p.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-PrMTh4tz.js +0 -1
- package/dist/showcase/assets/useLabelableId-BBLkeLGr.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CW0quo3l.js +0 -1
- package/dist/showcase/assets/useRender-6NNMHJJU.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-DEza_iee.js +0 -1
- package/dist/showcase/assets/useValueChanged-BmWIb3SN.js +0 -1
- package/dist/showcase/assets/user-BDIP5UPS.js +0 -1
- package/dist/showcase/assets/user-plus-BCqHFh2h.js +0 -1
- package/dist/showcase/assets/users-Bh7xGRX2.js +0 -1
- package/dist/showcase/assets/vendor-profile-BlYcRbPI.js +0 -37
- package/dist/showcase/assets/video-BucshqNW.js +0 -1
- package/dist/showcase/assets/wrench-DQvhyTEb.js +0 -1
- package/dist/showcase/assets/x-DyuS4YRT.js +0 -1
- package/dist/showcase/assets/zap-Dpn8_pnQ.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker-DFkLiveH.js","names":[],"sources":["../../src/components/ui/calendar.tsx","../../src/components/base/date-pickers/date-picker-footer.tsx","../../src/components/base/date-pickers/date-picker-header.tsx","../../src/components/base/date-pickers/date-picker-helpers.ts","../../src/components/base/date-pickers/date-pickers.strings.ts","../../src/components/ui/toggle.tsx","../../src/components/ui/toggle-group.tsx","../../src/components/base/date-pickers/segmented-time-input.tsx","../../src/components/base/date-pickers/date-picker.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n type Locale,\n} from \"react-day-picker\"\n\nimport { Button, buttonVariants } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n locale,\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] bg-background group/calendar [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n locale={locale}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(locale?.code, { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n month_grid: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: ({ ...props }) => (\n <CalendarDayButton locale={locale} {...props} />\n ),\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n locale,\n ...props\n}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString(locale?.code)}\n data-selected-single={\n !!modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","import * as React from 'react';\nimport { Button, type ButtonStyle, type ButtonVariant } from '@/components/base/buttons';\nimport { Separator } from '@/components/base/display/separator';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\nimport type {\n\tDatePickerFooter as DatePickerFooterConfig,\n\tDateOutput,\n\tDateRangeOutput,\n\tMultipleDatesOutput\n} from './datepicker.types';\n\ninterface DatePickerFooterProps {\n\tconfig: DatePickerFooterConfig;\n\toutput: DateOutput | DateRangeOutput | MultipleDatesOutput;\n\thasSelection: boolean;\n\tautoSummary?: string;\n\tclassName?: string;\n}\n\nexport function DatePickerFooter({\n\tconfig,\n\toutput,\n\thasSelection,\n\tautoSummary,\n\tclassName\n}: DatePickerFooterProps) {\n\tconst { text, actions, showOnlyWhenSelected = false, showSummary = false } = config;\n\n\t// Resolve custom text\n\tconst customText = React.useMemo(() => {\n\t\tif (!text) return undefined;\n\t\treturn typeof text === 'function' ? text(output) : text;\n\t}, [text, output]);\n\n\t// Determine what text to show\n\tconst displayText = customText || (showSummary ? autoSummary : undefined);\n\n\t// Don't render if showOnlyWhenSelected is true and no selection\n\tif (showOnlyWhenSelected && !hasSelection) {\n\t\treturn null;\n\t}\n\n\t// Don't render if no text and no actions\n\tif (!displayText && (!actions || actions.length === 0)) {\n\t\treturn null;\n\t}\n\n\tconst resolveActionButton = (\n\t\tactionVariant?: string | null\n\t): { variant: ButtonVariant; buttonStyle: ButtonStyle } => {\n\t\tif (actionVariant === 'destructive') {\n\t\t\treturn { variant: 'error', buttonStyle: 'solid' };\n\t\t}\n\t\tif (actionVariant === 'outline') {\n\t\t\treturn { variant: 'secondary', buttonStyle: 'outline' };\n\t\t}\n\t\tif (actionVariant === 'ghost') {\n\t\t\treturn { variant: 'secondary', buttonStyle: 'ghost' };\n\t\t}\n\t\tif (actionVariant === 'secondary') {\n\t\t\treturn { variant: 'secondary', buttonStyle: 'solid' };\n\t\t}\n\t\treturn { variant: 'primary', buttonStyle: 'solid' };\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Separator />\n\t\t\t<div className={cn('flex flex-col gap-3 p-3', className)}>\n\t\t\t\t{/* Text content */}\n\t\t\t\t{!!displayText && (\n <div className=\"text-sm\">\n\t\t\t\t\t\t{!!showSummary && !!customText && !!autoSummary && <>\n\t\t\t\t\t\t\t\t<Text type=\"secondary\">{autoSummary}</Text>\n\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"mt-1\">{customText}</Text>\n\t\t\t\t\t\t\t</>}\n\t\t\t\t\t\t{!showSummary && !!customText && <Text weight=\"medium\">{customText}</Text>}\n\t\t\t\t\t\t{!!showSummary && !customText && !!autoSummary && <Text type=\"secondary\">{autoSummary}</Text>}\n\t\t\t\t\t</div>\n )}\n\n\t\t\t\t{/* Action buttons */}\n\t\t\t\t{!!actions && actions.length > 0 && (\n <div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t{actions.map((action) => {\n\t\t\t\t\t\t\tconst isDisabled =\n\t\t\t\t\t\t\t\ttypeof action.disabled === 'function'\n\t\t\t\t\t\t\t\t\t? action.disabled(output)\n\t\t\t\t\t\t\t\t\t: action.disabled;\n\t\t\t\t\t\t\tconst resolved = resolveActionButton(action.variant ?? null);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={action.label}\n\t\t\t\t\t\t\t\t\tvariant={resolved.variant}\n\t\t\t\t\t\t\t\t\tbuttonStyle={resolved.buttonStyle}\n\t\t\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\t\t\tonClick={() => action.onClick(output)}\n\t\t\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n )}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nDatePickerFooter.displayName = 'DatePickerFooter';\n","import { Text } from '@/components/typography';\nimport Heading from '@/components/typography/heading';\nimport { cn } from '@/lib/utils';\nimport type { DatePickerHeader as DatePickerHeaderConfig } from './datepicker.types';\n\ninterface DatePickerHeaderProps {\n\tconfig: DatePickerHeaderConfig;\n\tclassName?: string;\n}\n\nexport function DatePickerHeader({ config, className }: DatePickerHeaderProps) {\n\tconst { title, description, icon: Icon, align = 'left' } = config;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('date-picker-header--component', \n\t\t\t\t'border-b p-4',\n\t\t\t\talign === 'center' ? 'text-center' : 'text-left',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex items-center justify-start gap-3\">\n\t\t\t\t{!!Icon && (\n <div className=\"flex-shrink-0\">\n\t\t\t\t\t\t<Icon className=\"h-5 w-5 text-primary\" />\n\t\t\t\t\t</div>\n )}\n\t\t\t\t<div className={cn('flex-1', align === 'center' && !Icon && 'text-center')}>\n\t\t\t\t\t<Heading tag=\"h3\" containerClassName=\"space-y-0\" className=\"font-semibold text-base leading-none\">\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!description && <Text type=\"secondary\" className=\"mt-2\">{description}</Text>}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nDatePickerHeader.displayName = 'DatePickerHeader';\n","import { format } from 'date-fns';\nimport type { Locale as DateFnsLocale } from 'date-fns/locale';\nimport type { DateRange } from 'react-day-picker';\nimport type {\n\tDateOutput,\n\tMultipleDatesOutput,\n\tDateRangeOutput,\n\tDatePickerTranslations,\n\tYearSelectionConfig\n} from './datepicker.types';\n\nexport type TimePeriod = 'AM' | 'PM';\n\nexport interface NormalizedTime {\n\thours: number;\n\tminutes: number;\n\tseconds: number;\n}\n\nexport interface DisplayTimeSegments {\n\thours: string;\n\tminutes: string;\n\tseconds?: string;\n\tperiod?: TimePeriod;\n}\n\nexport interface TimeDisplayLabels {\n\tam?: string;\n\tpm?: string;\n}\n\nexport const HOURS_24_MAX = 23;\nexport const HOURS_12_MAX = 12;\nexport const MINUTES_MAX = 59;\nexport const SECONDS_MAX = 59;\n\nexport function padTimeSegment(value: number): string {\n\treturn value.toString().padStart(2, '0');\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n\treturn Math.min(Math.max(value, min), max);\n}\n\nfunction alignSecondsToStep(totalSeconds: number, step: number): number {\n\tif (step <= 0) {\n\t\treturn totalSeconds;\n\t}\n\tconst aligned = Math.floor(totalSeconds / step) * step;\n\treturn Math.max(0, Math.min(aligned, 24 * 60 * 60 - 1));\n}\n\nexport function parseTimeString(timeString: string | undefined): NormalizedTime | null {\n\tif (!timeString) {\n\t\treturn null;\n\t}\n\tconst parts = timeString.split(':');\n\tif (parts.length < 2 || parts.length > 3) {\n\t\treturn null;\n\t}\n\tconst [hRaw, mRaw, sRaw] = parts;\n\tconst hours = clamp(Number.parseInt(hRaw, 10), 0, HOURS_24_MAX);\n\tconst minutes = clamp(Number.parseInt(mRaw, 10), 0, MINUTES_MAX);\n\tconst seconds = clamp(Number.parseInt(sRaw ?? '0', 10), 0, SECONDS_MAX);\n\tif (Number.isNaN(hours) || Number.isNaN(minutes) || Number.isNaN(seconds)) {\n\t\treturn null;\n\t}\n\treturn { hours, minutes, seconds };\n}\n\nexport function normalizedTimeToString(time: NormalizedTime, includeSeconds: boolean): string {\n\tconst secondsPart = includeSeconds ? `:${padTimeSegment(time.seconds)}` : '';\n\treturn `${padTimeSegment(time.hours)}:${padTimeSegment(time.minutes)}${secondsPart}`;\n}\n\nexport function createDefaultNormalizedTime(\n\tdate: Date | undefined,\n\tincludeSeconds: boolean,\n\tstep: number\n): NormalizedTime {\n\tconst source = Number.isFinite(date?.getTime?.()) ? (date as Date) : new Date();\n\tconst hours = source.getHours();\n\tconst minutes = source.getMinutes();\n\tconst seconds = includeSeconds ? source.getSeconds() : 0;\n\tconst totalSeconds = hours * 3600 + minutes * 60 + seconds;\n\tconst alignedSeconds = alignSecondsToStep(totalSeconds, step);\n\tconst alignedHours = Math.floor(alignedSeconds / 3600);\n\tconst alignedMinutes = Math.floor((alignedSeconds % 3600) / 60);\n\tconst alignedSecondsRemainder = alignedSeconds % 60;\n\treturn {\n\t\thours: alignedHours,\n\t\tminutes: alignedMinutes,\n\t\tseconds: includeSeconds ? alignedSecondsRemainder : 0,\n\t};\n}\n\nexport function normalizedTimeToDisplaySegments(\n\ttime: NormalizedTime,\n\tformat: '12' | '24',\n\tincludeSeconds: boolean\n): DisplayTimeSegments {\n\tif (format === '12') {\n\t\tconst period: TimePeriod = time.hours >= 12 ? 'PM' : 'AM';\n\t\tlet displayHour = time.hours % 12;\n\t\tif (displayHour === 0) {\n\t\t\tdisplayHour = 12;\n\t\t}\n\t\treturn {\n\t\t\thours: padTimeSegment(displayHour),\n\t\t\tminutes: padTimeSegment(time.minutes),\n\t\t\tseconds: includeSeconds ? padTimeSegment(time.seconds) : undefined,\n\t\t\tperiod,\n\t\t};\n\t}\n\treturn {\n\t\thours: padTimeSegment(time.hours),\n\t\tminutes: padTimeSegment(time.minutes),\n\t\tseconds: includeSeconds ? padTimeSegment(time.seconds) : undefined,\n\t};\n}\n\nexport function displaySegmentsToNormalizedTime(\n\tsegments: DisplayTimeSegments,\n\tformat: '12' | '24',\n\tincludeSeconds: boolean\n): NormalizedTime {\n\tconst parseSegment = (value: string | undefined): number => {\n\t\tconst numeric = Number.parseInt(value ?? '0', 10);\n\t\treturn Number.isNaN(numeric) ? 0 : numeric;\n\t};\n\tlet hours = parseSegment(segments.hours);\n\tconst minutes = clamp(parseSegment(segments.minutes), 0, MINUTES_MAX);\n\tconst seconds = includeSeconds ? clamp(parseSegment(segments.seconds), 0, SECONDS_MAX) : 0;\n\tif (format === '12') {\n\t\thours = clamp(hours, 1, HOURS_12_MAX);\n\t\tconst period = segments.period ?? 'AM';\n\t\tconst isPM = period === 'PM';\n\t\thours = hours % 12;\n\t\tif (isPM) {\n\t\t\thours += 12;\n\t\t}\n\t} else {\n\t\thours = clamp(hours, 0, HOURS_24_MAX);\n\t}\n\treturn { hours, minutes, seconds };\n}\n\nexport function alignNormalizedTimeToStep(\n\ttime: NormalizedTime,\n\tstep: number,\n\tincludeSeconds: boolean\n): NormalizedTime {\n\tconst totalSeconds = time.hours * 3600 + time.minutes * 60 + time.seconds;\n\tconst alignedSeconds = alignSecondsToStep(totalSeconds, step);\n\tconst hours = Math.floor(alignedSeconds / 3600);\n\tconst minutes = Math.floor((alignedSeconds % 3600) / 60);\n\tconst seconds = includeSeconds ? alignedSeconds % 60 : 0;\n\treturn { hours, minutes, seconds };\n}\n\nexport function formatNormalizedTimeForDisplay(\n\ttime: NormalizedTime,\n\tincludeSeconds: boolean,\n\tformat: '12' | '24',\n\tlabels?: TimeDisplayLabels\n): string {\n\tconst minutes = padTimeSegment(time.minutes);\n\tconst secondsPart = includeSeconds ? `:${padTimeSegment(time.seconds)}` : '';\n\tif (format === '24') {\n\t\treturn `${padTimeSegment(time.hours)}:${minutes}${secondsPart}`;\n\t}\n\tconst period: TimePeriod = time.hours >= 12 ? 'PM' : 'AM';\n\tlet displayHour = time.hours % 12;\n\tif (displayHour === 0) {\n\t\tdisplayHour = 12;\n\t}\n\tconst periodLabel = period === 'AM' ? labels?.am ?? 'AM' : labels?.pm ?? 'PM';\n\treturn `${padTimeSegment(displayHour)}:${minutes}${secondsPart} ${periodLabel}`;\n}\n\nconst QUOTED_TEXT_REGEX = /'[^']*'/g;\nconst TIME_TOKEN_REGEX = /[HKhk]|\\bp\\b|\\bt\\b|\\ba\\b/;\n\nexport function readableFormatIncludesTime(format: string | undefined): boolean {\n\tif (!format) {\n\t\treturn false;\n\t}\n\tconst sanitized = format.replace(QUOTED_TEXT_REGEX, '');\n\treturn TIME_TOKEN_REGEX.test(sanitized);\n}\n\nexport function getDayPickerYearBounds(\n\tyearSelection: YearSelectionConfig | undefined\n): { startMonth?: Date; endMonth?: Date } {\n\treturn {\n\t\tstartMonth: typeof yearSelection?.fromYear === 'number' ? new Date(yearSelection.fromYear, 0) : undefined,\n\t\tendMonth: typeof yearSelection?.toYear === 'number' ? new Date(yearSelection.toYear, 11) : undefined,\n\t};\n}\n\n/**\n * Create date output object with formatted strings\n */\nexport function createDateOutput(\n\tdate: Date | undefined,\n\tdateFormat: string,\n\treadableFormat: string,\n\tlocale?: DateFnsLocale\n): DateOutput {\n\tconst options = locale ? { locale } : undefined;\n\treturn {\n\t\tdate,\n\t\tformatted: date ? format(date, dateFormat, options) : undefined,\n\t\treadable: date ? format(date, readableFormat, options) : undefined,\n\t};\n}\n\n/**\n * Create multiple dates output object with formatted strings\n */\nexport function createMultipleDatesOutput(\n\tdates: Date[],\n\tdateFormat: string,\n\treadableFormat: string,\n\tlocale?: DateFnsLocale\n): MultipleDatesOutput {\n\tconst options = locale ? { locale } : undefined;\n\treturn {\n\t\tdates,\n\t\tformatted: dates.map(d => format(d, dateFormat, options)),\n\t\treadable: dates.map(d => format(d, readableFormat, options)),\n\t};\n}\n\n/**\n * Create date range output object with formatted strings\n */\nexport function createDateRangeOutput(\n\trange: DateRange | undefined,\n\tdateFormat: string,\n\treadableFormat: string,\n\tlocale?: DateFnsLocale\n): DateRangeOutput {\n\tconst options = locale ? { locale } : undefined;\n\treturn {\n\t\trange,\n\t\tformatted: {\n\t\t\tfrom: range?.from ? format(range.from, dateFormat, options) : undefined,\n\t\t\tto: range?.to ? format(range.to, dateFormat, options) : undefined,\n\t\t},\n\t\treadable: {\n\t\t\tfrom: range?.from ? format(range.from, readableFormat, options) : undefined,\n\t\t\tto: range?.to ? format(range.to, readableFormat, options) : undefined,\n\t\t},\n\t};\n}\n\n/**\n * Apply time to a date\n */\nexport function applyTimeToDate(date: Date, time: string | NormalizedTime): Date {\n\tconst normalized = typeof time === 'string' ? parseTimeString(time) : time;\n\tconst newDate = new Date(date);\n\tif (!Number.isFinite(newDate.getTime()) || !normalized) {\n\t\treturn new Date(NaN);\n\t}\n\tnewDate.setHours(normalized.hours, normalized.minutes, normalized.seconds, 0);\n\treturn newDate;\n}\n\n/**\n * Apply time to date range\n */\nexport function applyTimeToRange(\n\trange: DateRange,\n\tstartTime: string | NormalizedTime,\n\tendTime: string | NormalizedTime\n): DateRange {\n\tlet finalRange = range;\n\n\tif (range.from) {\n\t\tfinalRange = { ...finalRange, from: applyTimeToDate(range.from, startTime) };\n\t}\n\n\tif (range.to && finalRange) {\n\t\tfinalRange = { ...finalRange, to: applyTimeToDate(range.to, endTime) };\n\t}\n\n\treturn finalRange;\n}\n\n/**\n * Calculate days difference between two dates\n */\nexport function calculateDaysDifference(from: Date, to: Date): number {\n\treturn Math.ceil((to.getTime() - from.getTime()) / (1000 * 60 * 60 * 24)) + 1;\n}\n\n/**\n * Validate date range constraints\n */\nexport function validateDateRange(\n\trange: DateRange | undefined,\n\tmin?: number,\n\tmax?: number\n): { isValid: boolean; daysDiff?: number } {\n\tif (!range?.from || !range?.to) {\n\t\treturn { isValid: true };\n\t}\n\n\tconst daysDiff = calculateDaysDifference(range.from, range.to);\n\n\tif (min && daysDiff < min) {\n\t\treturn { isValid: false, daysDiff };\n\t}\n\n\tif (max && daysDiff > max) {\n\t\treturn { isValid: false, daysDiff };\n\t}\n\n\treturn { isValid: true, daysDiff };\n}\n\n/**\n * Get validation message for date range\n */\nexport function getRangeValidationMessage(\n\trange: DateRange | undefined,\n\tmin: number | undefined,\n\tmax: number | undefined,\n\ttranslations: DatePickerTranslations\n): string | null {\n\tif (!range?.from || !range?.to) return null;\n\n\tconst daysDiff = calculateDaysDifference(range.from, range.to);\n\n\tif (min && daysDiff < min) {\n\t\treturn translations.minimumDays(min);\n\t}\n\n\tif (max && daysDiff > max) {\n\t\treturn translations.maximumDays(max);\n\t}\n\n\treturn null;\n}\n\n/**\n * Get validation message for multiple dates\n */\nexport function getMultipleDatesValidationMessage(\n\tdates: Date[],\n\tmin: number | undefined,\n\tmax: number | undefined,\n\trequired: boolean | undefined,\n\ttranslations: DatePickerTranslations\n): string | null {\n\tif (required && dates.length === 0) {\n\t\treturn 'At least one date must be selected';\n\t}\n\n\tif (min && dates.length < min) {\n\t\treturn `Select at least ${min} dates`;\n\t}\n\n\tif (max) {\n\t\treturn translations.maximumDates(max);\n\t}\n\n\treturn null;\n}\n\n/**\n * Format button text for single date\n */\nexport function formatDateButtonText(\n\tdate: Date | undefined,\n\treadableFormat: string,\n\tplaceholder: string | undefined,\n\tdefaultPlaceholder: string,\n\ttime?: string,\n\tlocale?: DateFnsLocale\n): string {\n\tif (date) {\n\t\tconst options = locale ? { locale } : undefined;\n\t\tlet text = format(date, readableFormat, options);\n\t\tif (time) {\n\t\t\ttext += ` ${time}`;\n\t\t}\n\t\treturn text;\n\t}\n\treturn placeholder ?? defaultPlaceholder;\n}\n\n/**\n * Format button text for multiple dates\n */\nexport function formatMultipleDatesButtonText(\n\tdates: Date[],\n\treadableFormat: string,\n\tplaceholder: string | undefined,\n\tdefaultPlaceholder: string,\n\ttranslations: DatePickerTranslations,\n\tlocale?: DateFnsLocale\n): string {\n\tif (dates.length > 0) {\n\t\tif (dates.length === 1) {\n\t\t\tconst options = locale ? { locale } : undefined;\n\t\t\treturn format(dates[0], readableFormat, options);\n\t\t}\n\t\treturn translations.datesSelected(dates.length);\n\t}\n\treturn placeholder ?? defaultPlaceholder;\n}\n\n/**\n * Format button text for date range\n */\nexport function formatRangeButtonText(\n\trange: DateRange | undefined,\n\treadableFormat: string,\n\tplaceholder: string | undefined,\n\tdefaultPlaceholder: string,\n\tlocale?: DateFnsLocale\n): string {\n\tif (range?.from) {\n\t\tconst options = locale ? { locale } : undefined;\n\t\tif (range.to) {\n\t\t\treturn `${format(range.from, readableFormat, options)} - ${format(range.to, readableFormat, options)}`;\n\t\t}\n\t\treturn format(range.from, readableFormat, options);\n\t}\n\treturn placeholder ?? defaultPlaceholder;\n}\n","/**\n * Default user-facing strings for the date-picker family\n * (`<DatePicker>`, `<DateRangePicker>`, `<MonthYearPicker>`).\n *\n * Library is locale-agnostic — consumers wire backend i18n via the\n * `strings` prop and pass a `Locale` object from `date-fns/locale` (or\n * any equivalent) via the `locale` prop:\n *\n * import { bg } from 'date-fns/locale';\n * <DatePicker locale={bg} strings={{ today: t('date.today') }} />\n */\nimport type { DatePickerTranslations } from './datepicker.types';\n\nexport const defaultDatePickerStrings: DatePickerTranslations = {\n\tselectDate: 'Select a date',\n\tselectDates: 'Select dates',\n\tselectDateRange: 'Select date range',\n\tfrom: 'From',\n\tto: 'To',\n\tconfirm: 'Confirm',\n\tclear: 'Clear',\n\ttoday: 'Today',\n\tstartDate: 'Start date',\n\tendDate: 'End date',\n\tstartTime: 'Start time',\n\tendTime: 'End time',\n\thours: 'Hours',\n\tminutes: 'Minutes',\n\tseconds: 'Seconds',\n\tam: 'AM',\n\tpm: 'PM',\n\tminimumDays: (days: number) => `A minimum of ${days} days is required`,\n\tmaximumDays: (days: number) => `A maximum of ${days} days is allowed`,\n\tmaximumDates: (max: number) => `Select up to ${max} dates`,\n\tdatesSelected: (count: number) => `${count} dates selected`,\n\tlastWeek: 'Last week',\n\tlastMonth: 'Last month',\n\tlastYear: 'Last year',\n\tnextWeek: 'Next week',\n\tnextMonth: 'Next month',\n\tnextYear: 'Next year',\n\tthisWeek: 'This Week',\n\tthisMonth: 'This Month',\n\tlast30Days: 'Last 30 Days',\n\tselectMonthYear: 'Select month and year',\n\tmonth: 'Month',\n\tyear: 'Year',\n};\n\nexport type { DatePickerTranslations };\n","import { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst toggleVariants = cva(\n \"hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-input hover:bg-muted border bg-transparent shadow-xs\",\n },\n size: {\n default: \"h-9 min-w-9 px-2\",\n sm: \"h-8 min-w-8 px-1.5\",\n lg: \"h-10 min-w-10 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-ui/react/toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { toggleVariants } from \"@/components/ui/toggle\"\nimport { cn } from \"@/lib/utils\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nexport type ToggleGroupProps = ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupProps) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"rounded-md data-[spacing=0]:data-[variant=outline]:shadow-xs group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","import * as React from 'react';\n\nimport { Input } from '@/components/base/forms/fields';\nimport { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport type { NormalizedTime, DisplayTimeSegments, TimePeriod } from './date-picker-helpers';\nimport {\n\talignNormalizedTimeToStep,\n\tdisplaySegmentsToNormalizedTime,\n\tHOURS_12_MAX,\n\tHOURS_24_MAX,\n\tMINUTES_MAX,\n\tnormalizedTimeToDisplaySegments,\n\tSECONDS_MAX,\n} from './date-picker-helpers';\n\ntype TimeSegmentKey = 'hours' | 'minutes' | 'seconds';\n\ninterface SegmentedTimeInputLabels {\n\thours: string;\n\tminutes: string;\n\tseconds?: string;\n}\n\ninterface SegmentedTimeInputProps {\n\tvalue: NormalizedTime;\n\tonChange: (time: NormalizedTime) => void;\n\tformat: '12' | '24';\n\tincludeSeconds: boolean;\n\tstep: number;\n\tdisabled?: boolean;\n\tclassName?: string;\n\tlabels: SegmentedTimeInputLabels;\n\tperiodLabels: { am: string; pm: string };\n}\n\nconst SEGMENT_ORDER: TimeSegmentKey[] = ['hours', 'minutes', 'seconds'];\nconst DEFAULT_24H = '00';\nconst DEFAULT_12H = '12';\n\nfunction sanitizeNumeric(value: string): string {\n\treturn value.replace(/\\D/g, '').slice(-2);\n}\n\nfunction ensureTwoDigits(value: string): string {\n\tif (value.length === 0) return '00';\n\tif (value.length === 1) return `0${value}`;\n\treturn value;\n}\n\nfunction getNextKey(key: TimeSegmentKey, includeSeconds: boolean): TimeSegmentKey | null {\n\tconst activeOrder = includeSeconds ? SEGMENT_ORDER : SEGMENT_ORDER.slice(0, 2);\n\tconst idx = activeOrder.indexOf(key);\n\treturn idx > -1 && idx < activeOrder.length - 1 ? activeOrder[idx + 1] : null;\n}\n\nfunction getPreviousKey(key: TimeSegmentKey, includeSeconds: boolean): TimeSegmentKey | null {\n\tconst activeOrder = includeSeconds ? SEGMENT_ORDER : SEGMENT_ORDER.slice(0, 2);\n\tconst idx = activeOrder.indexOf(key);\n\treturn idx > 0 ? activeOrder[idx - 1] : null;\n}\n\nfunction hoursToDisplay(hours: number, format: '12' | '24'): number {\n\tif (format === '24') {\n\t\treturn hours;\n\t}\n\treturn hours % 12 || 12;\n}\n\nfunction determinePeriodFromHours(hours: number): TimePeriod {\n\treturn hours >= 12 ? 'PM' : 'AM';\n}\n\nfunction segmentsWithDefaults(\n\tsegments: DisplayTimeSegments,\n\tformat: '12' | '24'\n): DisplayTimeSegments {\n\tif (format === '12') {\n\t\treturn { ...segments, period: segments.period ?? 'AM' };\n\t}\n\treturn { ...segments, period: undefined };\n}\n\nexport function SegmentedTimeInput({\n\tvalue,\n\tonChange,\n\tformat,\n\tincludeSeconds,\n\tstep,\n\tdisabled,\n\tclassName,\n\tlabels,\n\tperiodLabels\n}: SegmentedTimeInputProps) {\n\tconst activeOrder = React.useMemo(\n\t\t() => (includeSeconds ? SEGMENT_ORDER : SEGMENT_ORDER.slice(0, 2)),\n\t\t[includeSeconds]\n\t);\n\n\tconst [segments, setSegments] = React.useState<DisplayTimeSegments>(() =>\n\t\tsegmentsWithDefaults(\n\t\t\tnormalizedTimeToDisplaySegments(value, format, includeSeconds),\n\t\t\tformat\n\t\t)\n\t);\n\n\t// Ref always holds the latest segments so rapid keystrokes read fresh values.\n\tconst segmentsRef = React.useRef(segments);\n\t// Flag to skip the value-sync useEffect when we emit raw values ourselves.\n\tconst isLocalEditRef = React.useRef(false);\n\tconst updateSegments = React.useCallback((next: DisplayTimeSegments) => {\n\t\tsegmentsRef.current = next;\n\t\tsetSegments(next);\n\t}, []);\n\n\tconst inputRefs = React.useRef<Record<TimeSegmentKey, HTMLInputElement | null>>({\n\t\thours: null,\n\t\tminutes: null,\n\t\tseconds: null,\n\t});\n\n\t// Sync from parent prop (e.g. external reset or date selection).\n\t// Skip when the change originated from our own emitRaw call to avoid\n\t// snapping the display to the aligned value mid-typing.\n\tReact.useEffect(() => {\n\t\tif (isLocalEditRef.current) {\n\t\t\tisLocalEditRef.current = false;\n\t\t\treturn;\n\t\t}\n\t\tupdateSegments(\n\t\t\tsegmentsWithDefaults(\n\t\t\t\tnormalizedTimeToDisplaySegments(value, format, includeSeconds),\n\t\t\t\tformat\n\t\t\t)\n\t\t);\n\t}, [value, format, includeSeconds, updateSegments]);\n\n\t// Emit unaligned time to the parent so the form value stays current even\n\t// before blur. Does NOT align — the display segments are left as-is so\n\t// intermediate keystrokes (e.g. \"03\" on the way to \"30\") aren't snapped.\n\tconst emitRaw = React.useCallback(\n\t\t(segs: DisplayTimeSegments) => {\n\t\t\tisLocalEditRef.current = true;\n\t\t\tconst normalized = displaySegmentsToNormalizedTime(segs, format, includeSeconds);\n\t\t\tonChange(normalized);\n\t\t},\n\t\t[format, includeSeconds, onChange]\n\t);\n\n\t// Commit: align to step, notify parent, and snap the display.\n\t// Called on blur so the user sees the rounded value when done typing.\n\tconst commitSegments = React.useCallback(\n\t\t(segs: DisplayTimeSegments) => {\n\t\t\tconst normalized = displaySegmentsToNormalizedTime(segs, format, includeSeconds);\n\t\t\tconst aligned = alignNormalizedTimeToStep(normalized, step, includeSeconds);\n\t\t\tonChange(aligned);\n\t\t\tconst alignedDisplay = segmentsWithDefaults(\n\t\t\t\tnormalizedTimeToDisplaySegments(aligned, format, includeSeconds),\n\t\t\t\tformat\n\t\t\t);\n\t\t\tupdateSegments(alignedDisplay);\n\t\t},\n\t\t[format, includeSeconds, onChange, step, updateSegments]\n\t);\n\n\tconst focusSegment = React.useCallback(\n\t\t(key: TimeSegmentKey | null) => {\n\t\t\tif (!key) return;\n\t\t\tconst ref = inputRefs.current[key];\n\t\t\tif (ref) {\n\t\t\t\tref.focus();\n\t\t\t\tref.select();\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\t// Digit-by-digit input: shifts the last digit left and appends the new one.\n\t// Updates display only — does NOT align or emit to parent.\n\tconst applyDigitInput = React.useCallback(\n\t\t(segmentKey: TimeSegmentKey, digit: number) => {\n\t\t\tconst current = segmentsRef.current;\n\t\t\tconst currentValue = current[segmentKey] ??\n\t\t\t\t(segmentKey === 'hours' && format === '12' ? DEFAULT_12H : DEFAULT_24H);\n\t\t\tconst ones = Number.parseInt(currentValue.slice(-1), 10) || 0;\n\t\t\tconst candidate = (ones * 10) + digit;\n\t\t\tconst next: DisplayTimeSegments = { ...current };\n\t\t\tlet nextPeriod = next.period ?? 'AM';\n\n\t\t\tif (segmentKey === 'hours') {\n\t\t\t\tif (format === '24') {\n\t\t\t\t\tconst clamped = Math.min(Math.max(candidate, 0), HOURS_24_MAX);\n\t\t\t\t\tnext.hours = ensureTwoDigits(clamped.toString());\n\t\t\t\t} else {\n\t\t\t\t\tif (candidate === 0) {\n\t\t\t\t\t\tnextPeriod = 'AM';\n\t\t\t\t\t\tnext.hours = DEFAULT_12H;\n\t\t\t\t\t} else if (candidate > 12) {\n\t\t\t\t\t\tnextPeriod = determinePeriodFromHours(candidate);\n\t\t\t\t\t\tnext.hours = ensureTwoDigits(hoursToDisplay(candidate, '12').toString());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst clamped = Math.min(Math.max(candidate, 1), HOURS_12_MAX);\n\t\t\t\t\t\tnext.hours = ensureTwoDigits(clamped.toString());\n\t\t\t\t\t\tnextPeriod = current.period ?? determinePeriodFromHours(candidate);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (segmentKey === 'minutes') {\n\t\t\t\tnext.minutes = ensureTwoDigits(Math.min(Math.max(candidate, 0), MINUTES_MAX).toString());\n\t\t\t} else if (segmentKey === 'seconds') {\n\t\t\t\tnext.seconds = ensureTwoDigits(Math.min(Math.max(candidate, 0), SECONDS_MAX).toString());\n\t\t\t}\n\n\t\t\tconst updated = { ...next, period: nextPeriod };\n\t\t\tupdateSegments(updated);\n\t\t\temitRaw(updated);\n\t\t},\n\t\t[format, updateSegments, emitRaw]\n\t);\n\n\t// Fallback for paste / IME: parses the raw input string.\n\tconst handleNumericChange = React.useCallback(\n\t\t(key: TimeSegmentKey, rawValue: string) => {\n\t\t\tconst sanitized = sanitizeNumeric(rawValue);\n\t\t\tconst next: DisplayTimeSegments = { ...segmentsRef.current };\n\t\t\tlet nextPeriod = next.period ?? 'AM';\n\n\t\t\tif (key === 'hours') {\n\t\t\t\tif (format === '24') {\n\t\t\t\t\tconst v = Number.parseInt(sanitized || '0', 10);\n\t\t\t\t\tconst clamped = Number.isNaN(v) ? 0 : Math.min(Math.max(v, 0), HOURS_24_MAX);\n\t\t\t\t\tnext.hours = ensureTwoDigits(clamped.toString());\n\t\t\t\t} else {\n\t\t\t\t\tconst v = Number.parseInt(sanitized || '0', 10);\n\t\t\t\t\tif (Number.isNaN(v)) {\n\t\t\t\t\t\tnext.hours = '12';\n\t\t\t\t\t\tnextPeriod = segmentsRef.current.period ?? 'AM';\n\t\t\t\t\t} else if (sanitized.length === 2 && v > 12) {\n\t\t\t\t\t\tnextPeriod = determinePeriodFromHours(v);\n\t\t\t\t\t\tnext.hours = ensureTwoDigits(hoursToDisplay(v, '12').toString());\n\t\t\t\t\t} else if (v === 0) {\n\t\t\t\t\t\tnextPeriod = 'AM';\n\t\t\t\t\t\tnext.hours = '12';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst clamped = Math.min(Math.max(v, 1), HOURS_12_MAX);\n\t\t\t\t\t\tnext.hours = ensureTwoDigits(clamped.toString());\n\t\t\t\t\t\tif (sanitized.length === 2) {\n\t\t\t\t\t\t\tnextPeriod = segmentsRef.current.period ?? determinePeriodFromHours(v);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (key === 'minutes') {\n\t\t\t\tconst v = Number.parseInt(sanitized || '0', 10);\n\t\t\t\tconst clamped = Number.isNaN(v) ? 0 : Math.min(Math.max(v, 0), MINUTES_MAX);\n\t\t\t\tnext.minutes = ensureTwoDigits(clamped.toString());\n\t\t\t} else if (key === 'seconds') {\n\t\t\t\tconst v = Number.parseInt(sanitized || '0', 10);\n\t\t\t\tconst clamped = Number.isNaN(v) ? 0 : Math.min(Math.max(v, 0), SECONDS_MAX);\n\t\t\t\tnext.seconds = ensureTwoDigits(clamped.toString());\n\t\t\t}\n\n\t\t\tconst updated = { ...next, period: nextPeriod };\n\t\t\tupdateSegments(updated);\n\t\t\temitRaw(updated);\n\t\t},\n\t\t[format, updateSegments, emitRaw]\n\t);\n\n\tconst handlePeriodChange = React.useCallback(\n\t\t(period: TimePeriod) => {\n\t\t\tif (format !== '12') return;\n\t\t\tconst next = { ...segmentsRef.current, period };\n\t\t\tcommitSegments(next);\n\t\t},\n\t\t[commitSegments, format]\n\t);\n\n\t// On blur: commit the current segments (align to step + notify parent).\n\tconst handleBlur = React.useCallback(() => {\n\t\tcommitSegments(segmentsRef.current);\n\t}, [commitSegments]);\n\n\tconst handleKeyDown = React.useCallback(\n\t\t(event: React.KeyboardEvent<HTMLInputElement>, key: TimeSegmentKey) => {\n\t\t\tconst isDigitKey = event.key.length === 1 && /\\d/.test(event.key);\n\t\t\tif (isDigitKey && !event.metaKey && !event.ctrlKey && !event.altKey) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tapplyDigitInput(key, Number.parseInt(event.key, 10));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (event.key === 'ArrowRight') {\n\t\t\t\tfocusSegment(getNextKey(key, includeSeconds));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (event.key === 'ArrowLeft') {\n\t\t\t\tfocusSegment(getPreviousKey(key, includeSeconds));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (event.key === 'Backspace') {\n\t\t\t\tconst target = event.currentTarget;\n\t\t\t\tif (target.selectionStart === 0 && target.selectionEnd === 0) {\n\t\t\t\t\tfocusSegment(getPreviousKey(key, includeSeconds));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[applyDigitInput, focusSegment, includeSeconds]\n\t);\n\n\tconst periodToggleValue = React.useMemo<TimePeriod[] | undefined>(() => {\n\t\tif (format !== '12') return undefined;\n\t\treturn segments.period ? [segments.period] : undefined;\n\t}, [format, segments.period]);\n\n\treturn (\n\t\t<div className={cn('segmented-time-input--component', 'flex items-center gap-2', className)}>\n\t\t\t{activeOrder.map((segmentKey, index) => {\n\t\t\t\tconst fallbackValue = segmentKey === 'hours' && format === '12' ? DEFAULT_12H : DEFAULT_24H;\n\t\t\t\tconst displayValue = segments[segmentKey] ?? fallbackValue;\n\t\t\t\tconst ariaLabel = segmentKey === 'hours'\n\t\t\t\t\t? labels.hours\n\t\t\t\t\t: segmentKey === 'minutes'\n\t\t\t\t\t\t? labels.minutes\n\t\t\t\t\t\t: labels.seconds ?? labels.minutes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<React.Fragment key={segmentKey}>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tref={(node) => {\n\t\t\t\t\t\t\t\tinputRefs.current[segmentKey] = node;\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tvalue={displayValue}\n\t\t\t\t\t\t\tonChange={(event) => handleNumericChange(segmentKey, event.target.value)}\n\t\t\t\t\t\t\tonFocus={(event) => event.target.select()}\n\t\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\t\tonKeyDown={(event) => handleKeyDown(event, segmentKey)}\n\t\t\t\t\t\t\tinputMode=\"numeric\"\n\t\t\t\t\t\t\tpattern=\"\\d*\"\n\t\t\t\t\t\t\tmaxLength={2}\n\t\t\t\t\t\t\tshowCharacterCount={false}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\taria-label={ariaLabel}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tclassName=\"w-12 text-center\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{index < activeOrder.length - 1 && (\n\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">:</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{format === '12' && (\n\t\t\t\t<ToggleGroup\n\t\t\t\t\tvalue={periodToggleValue}\n\t\t\t\t\tonValueChange={(values) => {\n\t\t\t\t\t\tconst period = values[0];\n\t\t\t\t\t\tif (!period) return;\n\t\t\t\t\t\thandlePeriodChange(period as TimePeriod);\n\t\t\t\t\t}}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName=\"ml-1\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupItem\n\t\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t\taria-label={periodLabels.am}\n\t\t\t\t\t>\n\t\t\t\t\t\t{periodLabels.am}\n\t\t\t\t\t</ToggleGroupItem>\n\t\t\t\t\t<ToggleGroupItem\n\t\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t\taria-label={periodLabels.pm}\n\t\t\t\t\t>\n\t\t\t\t\t\t{periodLabels.pm}\n\t\t\t\t\t</ToggleGroupItem>\n\t\t\t\t</ToggleGroup>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nSegmentedTimeInput.displayName = 'SegmentedTimeInput';\n","import { format, addDays, startOfWeek, endOfWeek, startOfMonth, endOfMonth } from 'date-fns';\nimport type { Locale as DateFnsLocale } from 'date-fns/locale';\nimport { Calendar as CalendarIcon, Clock } from 'lucide-react';\nimport * as React from 'react';\nimport type { DateRange } from 'react-day-picker';\n\nimport { Button, type ButtonVariant, type ButtonStyle } from '@/components/base/buttons';\nimport { Calendar } from '@/components/ui/calendar';\nimport { useDatesConfig } from '@/lib/ui-provider';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '@/components/base/popover';\nimport { Separator } from '@/components/base/display/separator';\nimport { Label, Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport {\n\tcreateDateOutput,\n\tcreateMultipleDatesOutput,\n\tcreateDateRangeOutput,\n\tapplyTimeToDate,\n\tapplyTimeToRange,\n\tvalidateDateRange,\n\tgetRangeValidationMessage,\n\tgetMultipleDatesValidationMessage,\n\tformatDateButtonText,\n\tformatMultipleDatesButtonText,\n\tformatRangeButtonText,\n\tcreateDefaultNormalizedTime,\n\tformatNormalizedTimeForDisplay,\n\treadableFormatIncludesTime,\n\talignNormalizedTimeToStep,\n\tgetDayPickerYearBounds\n} from './date-picker-helpers';\nimport type { NormalizedTime } from './date-picker-helpers';\nimport { useStrings } from '@/lib/strings';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport { enUS } from 'date-fns/locale';\nimport type {\n\tDatePickerProps,\n\tDatepickerProps,\n\tMultipleDatepickerProps,\n\tDateRangePickerProps,\n\tDateOutput,\n\tMultipleDatesOutput,\n\tDateRangeOutput,\n\tDatePickerTranslations,\n\tPresetDateRange\n} from './datepicker.types';\nimport { SegmentedTimeInput } from './segmented-time-input';\n\ntype PickerButtonVariant = 'outline' | 'ghost' | 'secondary';\n\nfunction resolvePickerButtonVariant(variant: unknown): PickerButtonVariant {\n\tif (variant === 'ghost') return 'ghost';\n\tif (variant === 'secondary') return 'secondary';\n\treturn 'outline';\n}\n\nfunction resolvePickerButtonProps(variant: unknown): { variant: ButtonVariant; buttonStyle: ButtonStyle } {\n\tconst resolved = resolvePickerButtonVariant(variant);\n\tif (resolved === 'ghost') return { variant: 'secondary', buttonStyle: 'ghost' };\n\tif (resolved === 'secondary') return { variant: 'secondary', buttonStyle: 'solid' };\n\treturn { variant: 'secondary', buttonStyle: 'outline' };\n}\n\n/**\n * Field-style chrome override applied on top of `<Button>` so the\n * picker trigger reads as a form field — visually identical to\n * `<Input>` (same height, border, padding, focus ring, typography).\n *\n * Mirrors the `Input` component's chrome:\n * - `border-input` border, `rounded-md`, `bg-transparent`\n * - `h-control` + `px-control` + `py-space-xs`\n * - `text-sm` body text, normal weight, `text-foreground`\n * - `focus-visible:border-ring ring-ring/50 ring-[3px]`\n * - `aria-invalid:` destructive ring + border\n * - flat (no shadow) — library is intentionally flat\n *\n * `!` prefix wins against the global `<Button>`'s pill-shaped default\n * + `data-[size=*]` attribute selectors. Caret-icon sits in\n * library-default left padding equal to `<Input startIcon>` rules.\n */\nexport const PICKER_TRIGGER_CHROME = [\n\t'!h-control !px-control !py-space-xs !rounded-radius !border !border-input !bg-transparent !shadow-none',\n\t'!text-sm !font-normal !text-foreground',\n\t'hover:!bg-transparent',\n\t'focus-visible:!border-ring focus-visible:!ring-ring/50 focus-visible:!ring-[3px]',\n\t'aria-invalid:!ring-destructive/20 dark:aria-invalid:!ring-destructive/40 aria-invalid:!border-destructive',\n\t'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n].join(' ');\n\n// Type guards\nfunction isSingleMode(props: DatePickerProps): props is DatepickerProps {\n\treturn !props.mode || props.mode === 'single';\n}\n\nfunction isMultipleMode(props: DatePickerProps): props is MultipleDatepickerProps {\n\treturn props.mode === 'multiple';\n}\n\nfunction isRangeMode(props: DatePickerProps): props is DateRangePickerProps {\n\treturn props.mode === 'range';\n}\n\n// Default preset ranges — labels resolved from DatePickerTranslations.\n// `weekStartsOn` is the resolved value from the resolution chain\n// (`prop ?? useDatesConfig().weekStartsOn ?? 1`); passed in by the\n// caller so this stays a pure function.\nfunction getDefaultPresets(\n\tt: DatePickerTranslations,\n\tweekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n): PresetDateRange[] {\n\treturn [\n\t\t{\n\t\t\tlabel: t.today,\n\t\t\tgetValue: () => ({ from: new Date(), to: new Date() }),\n\t\t},\n\t\t{\n\t\t\tlabel: t.thisWeek,\n\t\t\tgetValue: () => ({\n\t\t\t\tfrom: startOfWeek(new Date(), { weekStartsOn }),\n\t\t\t\tto: endOfWeek(new Date(), { weekStartsOn })\n\t\t\t}),\n\t\t},\n\t\t{\n\t\t\tlabel: t.thisMonth,\n\t\t\tgetValue: () => ({\n\t\t\t\tfrom: startOfMonth(new Date()),\n\t\t\t\tto: endOfMonth(new Date())\n\t\t\t}),\n\t\t},\n\t\t{\n\t\t\tlabel: t.last30Days,\n\t\t\tgetValue: () => ({\n\t\t\t\tfrom: addDays(new Date(), -30),\n\t\t\t\tto: new Date()\n\t\t\t}),\n\t\t},\n\t];\n}\n\nexport function DatePicker(props: DatePickerProps) {\n\tconst [open, setOpen] = React.useState(false);\n\n\t// Resolve locale (date-fns Locale object). Defaults to enUS when the\n\t// consumer doesn't pass one.\n\tconst dateFnsLocale = props.locale ?? enUS;\n\n\t// Strings — deep-merge consumer overrides (`strings` preferred,\n\t// `translations` accepted as legacy alias) over the English defaults.\n\tconst t = useStrings(defaultDatePickerStrings, props.strings ?? props.translations);\n\n\t// Resolve year selection config\n\tconst captionLayout = React.useMemo(() => {\n\t\tif (props.enableYearDropdown || props.yearSelection?.enabled) {\n\t\t\treturn 'dropdown' as const;\n\t\t}\n\t\treturn 'label' as const;\n\t}, [props.enableYearDropdown, props.yearSelection]);\n\tconst yearBounds = React.useMemo(\n\t\t() => getDayPickerYearBounds(props.yearSelection),\n\t\t[props.yearSelection]\n\t);\n\n\t// Render based on mode\n\tif (isSingleMode(props)) {\n\t\treturn (\n\t\t\t<SingleDatePicker className=\"date-picker--component\"\n\t\t\t\t{...props}\n\t\t\t\topen={open}\n\t\t\t\tsetOpen={setOpen}\n\t\t\t\tt={t}\n\t\t\t\tdateFnsLocale={dateFnsLocale}\n\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\tyearBounds={yearBounds}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (isMultipleMode(props)) {\n\t\treturn (\n\t\t\t<MultipleDatePicker\n\t\t\t\t{...props}\n\t\t\t\topen={open}\n\t\t\t\tsetOpen={setOpen}\n\t\t\t\tt={t}\n\t\t\t\tdateFnsLocale={dateFnsLocale}\n\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\tyearBounds={yearBounds}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (isRangeMode(props)) {\n\t\treturn (\n\t\t\t<RangeDatePicker\n\t\t\t\t{...props}\n\t\t\t\topen={open}\n\t\t\t\tsetOpen={setOpen}\n\t\t\t\tt={t}\n\t\t\t\tdateFnsLocale={dateFnsLocale}\n\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\tyearBounds={yearBounds}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\n// Single Date Picker Component\nfunction SingleDatePicker({\n\tvalue,\n\tdefaultValue,\n\tonChange,\n\tformat: dateFormat = 'yyyy-MM-dd',\n\treadableFormat = 'PPP',\n\tplaceholder,\n\tcloseOnSelect = true,\n\twithTime,\n\tdisabledDates,\n\tcalendarProps,\n\topen,\n\tsetOpen,\n\tt,\n\tdateFnsLocale,\n\tcaptionLayout,\n\tyearBounds,\n\t...baseProps\n}: DatepickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\n\tyearBounds: ReturnType<typeof getDayPickerYearBounds>;\n}) {\n\tconst triggerId = React.useId();\n\tconst describedBy = `${triggerId}-description`;\n\tconst hasError = baseProps.error !== undefined && baseProps.error !== null && baseProps.error !== '';\n\tconst ariaDescribedBy = hasError ? describedBy : undefined;\n\tconst hasHint = baseProps.hint !== undefined && baseProps.hint !== null && baseProps.hint !== '';\n\tconst errorText = typeof baseProps.error === 'string' ? baseProps.error : '';\n\tconst hintText = typeof baseProps.hint === 'string' ? baseProps.hint : '';\n\tconst timeFormat = withTime?.format ?? '24';\n\tconst timeStep = withTime?.step ?? 60;\n\tconst includeSeconds = withTime?.showSeconds ?? false;\n\tconst readableHasTime = readableFormatIncludesTime(readableFormat);\n\tconst showTimeInButton = withTime?.showTimeInButton ?? !readableHasTime;\n\tconst [date, setDate] = React.useState<Date | undefined>(() => {\n\t\treturn value ?? defaultValue;\n\t});\n\n\tconst [time, setTime] = React.useState<NormalizedTime>(() =>\n\t\tcreateDefaultNormalizedTime(value ?? defaultValue, includeSeconds, timeStep)\n\t);\n\tconst previousValueRef = React.useRef<Date | undefined>(value ?? defaultValue ?? undefined);\n\tconst defaultInitializedRef = React.useRef(false);\n\tconst lastValueDefinedRef = React.useRef(value !== undefined);\n\n\t// Create output helper\n\tconst createOutput = React.useCallback(\n\t\t(selectedDate: Date | undefined, overrideTime?: NormalizedTime): DateOutput => {\n\t\t\tlet finalDate = selectedDate;\n\t\t\tif (selectedDate && withTime?.enabled) {\n\t\t\t\tconst applied = applyTimeToDate(selectedDate, overrideTime ?? time);\n\t\t\t\tfinalDate = Number.isFinite(applied.getTime()) ? applied : undefined;\n\t\t\t}\n\t\t\treturn createDateOutput(finalDate, dateFormat, readableFormat, dateFnsLocale);\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale, withTime, time]\n\t);\n\n\tReact.useEffect(() => {\n\t\tconst isTimeEnabled = Boolean(withTime?.enabled);\n\t\tconst wasValueDefined = lastValueDefinedRef.current;\n\t\tconst isValueDefined = value !== undefined;\n\n\t\tconst applyState = (baseDate: Date, emitChange: boolean) => {\n\t\t\tconst normalized = alignNormalizedTimeToStep(\n\t\t\t\tcreateDefaultNormalizedTime(baseDate, includeSeconds, timeStep),\n\t\t\t\ttimeStep,\n\t\t\t\tincludeSeconds\n\t\t\t);\n\t\t\tsetDate((current) => {\n\t\t\t\tconst currentTime = current?.getTime?.();\n\t\t\t\tconst nextTime = baseDate.getTime();\n\t\t\t\treturn currentTime !== nextTime ? baseDate : current;\n\t\t\t});\n\t\t\tsetTime((current) => {\n\t\t\t\tif (\n\t\t\t\t\tcurrent.hours === normalized.hours &&\n\t\t\t\t\tcurrent.minutes === normalized.minutes &&\n\t\t\t\t\tcurrent.seconds === normalized.seconds\n\t\t\t\t) {\n\t\t\t\t\treturn current;\n\t\t\t\t}\n\t\t\t\treturn normalized;\n\t\t\t});\n\t\t\tpreviousValueRef.current = baseDate;\n\t\t\tdefaultInitializedRef.current = true;\n\t\t\tif (emitChange && isTimeEnabled) {\n\t\t\t\tconst applied = applyTimeToDate(baseDate, normalized);\n\t\t\t\tonChange?.(createDateOutput(applied, dateFormat, readableFormat, dateFnsLocale));\n\t\t\t}\n\t\t};\n\n\t\tif (!isTimeEnabled) {\n\t\t\tdefaultInitializedRef.current = false;\n\t\t\tpreviousValueRef.current = value ?? defaultValue ?? undefined;\n\t\t\tsetDate(value ?? defaultValue);\n\t\t\tlastValueDefinedRef.current = isValueDefined;\n\t\t\treturn;\n\t\t}\n\n\t\tconst prev = previousValueRef.current;\n\t\tconst prevTime = prev?.getTime?.();\n\t\tconst valueTime = value?.getTime?.();\n\n\t\tif (!isValueDefined && wasValueDefined && defaultValue === undefined) {\n\t\t\tdefaultInitializedRef.current = false;\n\t\t\tpreviousValueRef.current = undefined;\n\t\t}\n\n\t\tif (value !== undefined && valueTime !== prevTime) {\n\t\t\tapplyState(value, false);\n\t\t\tlastValueDefinedRef.current = isValueDefined;\n\t\t\treturn;\n\t\t}\n\n\t\tif (value === undefined && defaultValue !== undefined) {\n\t\t\tconst defaultMillis = defaultValue.getTime();\n\t\t\tif (prevTime !== defaultMillis || !defaultInitializedRef.current) {\n\t\t\t\tapplyState(defaultValue, false);\n\t\t\t}\n\t\t\tlastValueDefinedRef.current = isValueDefined;\n\t\t\treturn;\n\t\t}\n\n\t\tif (value === undefined && defaultValue === undefined && !defaultInitializedRef.current) {\n\t\t\tdefaultInitializedRef.current = true;\n\t\t\tlastValueDefinedRef.current = isValueDefined;\n\t\t\treturn;\n\t\t}\n\n\t\tlastValueDefinedRef.current = isValueDefined;\n\t}, [\n\t\twithTime?.enabled,\n\t\tvalue,\n\t\tdefaultValue,\n\t\tincludeSeconds,\n\t\ttimeStep,\n\t\tonChange,\n\t\tdateFormat,\n\t\treadableFormat,\n\t\tdateFnsLocale,\n\t]);\n\n\tReact.useEffect(() => {\n\t\tif (!withTime?.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tsetTime((current) => {\n\t\t\tconst aligned = alignNormalizedTimeToStep(current, timeStep, includeSeconds);\n\t\t\tif (\n\t\t\t\tcurrent.hours === aligned.hours &&\n\t\t\t\tcurrent.minutes === aligned.minutes &&\n\t\t\t\tcurrent.seconds === aligned.seconds\n\t\t\t) {\n\t\t\t\treturn current;\n\t\t\t}\n\t\t\treturn aligned;\n\t\t});\n\t}, [withTime?.enabled, timeStep, includeSeconds]);\n\n\t// Handle selection\n\tconst handleSelect = React.useCallback(\n\t\t(newDate: Date | undefined) => {\n\t\t\tsetDate(newDate);\n\t\t\tif (withTime?.enabled && newDate) {\n\t\t\t\tdefaultInitializedRef.current = true;\n\t\t\t\tpreviousValueRef.current = newDate;\n\t\t\t}\n\t\t\tif (withTime?.enabled) {\n\t\t\t\tonChange?.(createOutput(newDate));\n\t\t\t\tif (closeOnSelect && newDate) {\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonChange?.(createOutput(newDate));\n\t\t\tif (closeOnSelect && newDate) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t},\n\t\t[onChange, createOutput, closeOnSelect, setOpen, withTime]\n\t);\n\n\t// Handle time change\n\tconst handleTimeChange = React.useCallback(\n\t\t(nextTime: NormalizedTime) => {\n\t\t\tsetTime(nextTime);\n\t\t\tif (date) {\n\t\t\t\tonChange?.(createOutput(date, nextTime));\n\t\t\t}\n\t\t},\n\t\t[date, onChange, createOutput]\n\t);\n\n\tconst timeDisplay = React.useMemo(() => {\n\t\tif (!withTime?.enabled) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn formatNormalizedTimeForDisplay(time, includeSeconds, timeFormat, {\n\t\t\tam: t.am,\n\t\t\tpm: t.pm,\n\t\t});\n\t}, [withTime?.enabled, time, includeSeconds, timeFormat, t]);\n\n\t// Button text\n\tconst buttonText = React.useMemo(\n\t\t() => formatDateButtonText(\n\t\t\tdate,\n\t\t\treadableFormat,\n\t\t\tplaceholder,\n\t\t\tt.selectDate,\n\t\t\tshowTimeInButton ? timeDisplay : undefined,\n\t\t\tdateFnsLocale\n\t\t),\n\t\t[date, readableFormat, placeholder, t, timeDisplay, showTimeInButton, dateFnsLocale]\n\t);\n\n\tconst footerSummary = React.useMemo(\n\t\t() => (date ? format(date, readableFormat, { locale: dateFnsLocale }) : undefined),\n\t\t[date, readableFormat, dateFnsLocale]\n\t);\n\n\treturn (\n\t\t<div className={cn('space-y-2', baseProps.className)}>\n\t\t\t{!!(baseProps.label || hasHint) && (\n <div className=\"flex items-center justify-between gap-1\">\n\t\t\t\t\t{!!baseProps.label && (\n <Label\n\t\t\t\t\t\t\thtmlFor={triggerId}\n\t\t\t\t\t\t\tclassName={cn('leading-6', hasError && 'text-destructive')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{baseProps.label}\n\t\t\t\t\t\t</Label>\n )}\n\t\t\t\t\t{!hasError && !!hasHint && (\n <Text tag=\"span\" type=\"secondary\">\n\t\t\t\t\t\t\t{hintText}\n\t\t\t\t\t\t</Text>\n )}\n\t\t\t\t</div>\n )}\n\n\t\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t\t<PopoverTrigger\n\t\t\t\t\t\trender={(triggerProps) => {\n\t\t\t\t\t\t\tconst resolved = resolvePickerButtonProps(baseProps.buttonVariant);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\t\t\tvariant={resolved.variant}\n\t\t\t\t\t\t\t\t\tbuttonStyle={resolved.buttonStyle}\n\t\t\t\t\t\t\t\t\taria-invalid={hasError}\n\t\t\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t\t\t!date && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tbaseProps.error && 'border-destructive focus-visible:ring-destructive',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CalendarIcon className=\"mr-control-gap size-icon\" />\n\t\t\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tclassName=\"w-auto p-0\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!baseProps.header && <DatePickerHeader config={baseProps.header} />}\n\n\t\t\t\t\t{/* Calendar */}\n\t\t\t\t\t<Calendar\n\t\t\t\t\t\tmode=\"single\"\n\t\t\t\t\t\tselected={date}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tdefaultMonth={date}\n\t\t\t\t\t\tnumberOfMonths={baseProps.numberOfMonths}\n\t\t\t\t\t\tshowOutsideDays={baseProps.showOutsideDays}\n\t\t\t\t\t\tdisabled={disabledDates ?? baseProps.disabled}\n\t\t\t\t\t\tlocale={dateFnsLocale}\n\t\t\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\t\t\tstartMonth={yearBounds.startMonth}\n\t\t\t\t\t\tendMonth={yearBounds.endMonth}\n\t\t\t\t\t\t{...calendarProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Time Selection */}\n\t\t\t\t\t{!!withTime?.enabled && <>\n\t\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t\t<div className=\"p-3\">\n\t\t\t\t\t\t\t\t<Label size=\"default\">{t.startTime}</Label>\n\t\t\t\t\t\t\t\t<div className=\"mt-2 flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<Clock className=\"h-4 w-4 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t<SegmentedTimeInput\n\t\t\t\t\t\t\t\t\t\tvalue={time}\n\t\t\t\t\t\t\t\t\t\tonChange={handleTimeChange}\n\t\t\t\t\t\t\t\t\t\tformat={timeFormat}\n\t\t\t\t\t\t\t\t\t\tincludeSeconds={includeSeconds}\n\t\t\t\t\t\t\t\t\t\tstep={timeStep}\n\t\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t\t\tlabels={{\n\t\t\t\t\t\t\t\t\t\t\thours: t.hours,\n\t\t\t\t\t\t\t\t\t\t\tminutes: t.minutes,\n\t\t\t\t\t\t\t\t\t\t\tseconds: includeSeconds ? t.seconds : undefined,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tperiodLabels={{ am: t.am, pm: t.pm }}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>}\n\n\t\t\t\t\t{/* Footer */}\n\t\t\t\t\t{!!baseProps.footer && (\n <DatePickerFooter\n\t\t\t\t\t\t\tconfig={baseProps.footer}\n\t\t\t\t\t\t\toutput={createOutput(date)}\n\t\t\t\t\t\t\thasSelection={!!date}\n\t\t\t\t\t\t\tautoSummary={footerSummary}\n\t\t\t\t\t\t/>\n )}\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t\t{!!hasError && <Text id={describedBy} size=\"xs\" type=\"error\" content={errorText} />}\n\t\t</div>\n\t);\n}\n\n// Multiple Date Picker Component\nfunction MultipleDatePicker({\n\tvalue,\n\tdefaultValue,\n\t\tonChange,\n\t\tformat: dateFormat = 'yyyy-MM-dd',\n\t\treadableFormat = 'PPP',\n\t\tplaceholder,\n\t\tmin,\n\tmax,\n\trequired,\n\tdisabledDates,\n\tcalendarProps,\n\topen,\n\tsetOpen,\n\tt,\n\tdateFnsLocale,\n\tcaptionLayout,\n\tyearBounds,\n\t...baseProps\n}: MultipleDatepickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\n\tyearBounds: ReturnType<typeof getDayPickerYearBounds>;\n}) {\n\tconst triggerId = React.useId();\n\tconst describedBy = `${triggerId}-description`;\n\tconst hasError = baseProps.error !== undefined && baseProps.error !== null && baseProps.error !== '';\n\tconst ariaDescribedBy = hasError ? describedBy : undefined;\n\tconst hasHint = baseProps.hint !== undefined && baseProps.hint !== null && baseProps.hint !== '';\n\tconst errorText = typeof baseProps.error === 'string' ? baseProps.error : '';\n\tconst hintText = typeof baseProps.hint === 'string' ? baseProps.hint : '';\n\tconst [dates, setDates] = React.useState<Date[]>(value ?? defaultValue ?? []);\n\n\t// Sync with controlled value\n\tReact.useEffect(() => {\n\t\tif (value !== undefined) {\n\t\t\tsetDates(value);\n\t\t}\n\t}, [value]);\n\n\t// Create output helper\n\tconst createOutput = React.useCallback(\n\t\t(dates: Date[]): MultipleDatesOutput =>\n\t\t\tcreateMultipleDatesOutput(dates, dateFormat, readableFormat, dateFnsLocale),\n\t\t[dateFormat, readableFormat, dateFnsLocale]\n\t);\n\n\t// Handle selection\n\tconst handleSelect = React.useCallback(\n\t\t(newDates?: Date[] | Date) => {\n\t\t\tconst selectedDates = Array.isArray(newDates) ? newDates : newDates ? [newDates] : [];\n\n\t\t\tif (max && selectedDates.length > max) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetDates(selectedDates);\n\t\t\tonChange?.(createOutput(selectedDates));\n\t\t},\n\t\t[onChange, createOutput, max]\n\t);\n\n\t// Button text\n\tconst buttonText = React.useMemo(() =>\n\t\tformatMultipleDatesButtonText(dates, readableFormat, placeholder, t.selectDates, t, dateFnsLocale),\n\t\t[dates, readableFormat, placeholder, t, dateFnsLocale]\n\t);\n\n\t// Validation message\n\tconst validationMessage = React.useMemo(() =>\n\t\tgetMultipleDatesValidationMessage(dates, min, max, required, t),\n\t\t[dates, min, max, required, t]\n\t);\n\n\tconst footerSummary = React.useMemo(\n\t\t() => (dates.length > 0 ? t.datesSelected(dates.length) : undefined),\n\t\t[dates.length, t]\n\t);\n\n\treturn (\n\t\t<div className={cn('space-y-2', baseProps.className)}>\n\t\t\t{!!(baseProps.label || hasHint) && (\n <div className=\"flex items-center justify-between gap-1\">\n\t\t\t\t\t{!!baseProps.label && (\n <Label\n\t\t\t\t\t\t\thtmlFor={triggerId}\n\t\t\t\t\t\t\tclassName={cn('leading-6', hasError && 'text-destructive')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{baseProps.label}\n\t\t\t\t\t\t</Label>\n )}\n\t\t\t\t\t{!hasError && !!hasHint && (\n <Text tag=\"span\" type=\"secondary\">\n\t\t\t\t\t\t\t{hintText}\n\t\t\t\t\t\t</Text>\n )}\n\t\t\t\t</div>\n )}\n\n\t\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t\t<PopoverTrigger\n\t\t\t\t\t\trender={(triggerProps) => {\n\t\t\t\t\t\t\tconst resolved = resolvePickerButtonProps(baseProps.buttonVariant);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\t\t\tvariant={resolved.variant}\n\t\t\t\t\t\t\t\t\tbuttonStyle={resolved.buttonStyle}\n\t\t\t\t\t\t\t\t\taria-invalid={hasError}\n\t\t\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t\t\tdates.length === 0 && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tbaseProps.error && 'border-destructive focus-visible:ring-destructive',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CalendarIcon className=\"mr-control-gap size-icon\" />\n\t\t\t\t\t\t\t\t\t<span className=\"truncate\">{buttonText}</span>\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tclassName=\"w-auto p-0\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!baseProps.header && <DatePickerHeader config={baseProps.header} />}\n\n\t\t\t\t\t{/* Calendar */}\n\t\t\t\t\t<Calendar\n\t\t\t\t\t\tmode=\"multiple\"\n\t\t\t\t\t\tselected={dates}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tdefaultMonth={dates[0]}\n\t\t\t\t\t\tnumberOfMonths={baseProps.numberOfMonths}\n\t\t\t\t\t\tshowOutsideDays={baseProps.showOutsideDays}\n\t\t\t\t\t\tdisabled={disabledDates ?? baseProps.disabled}\n\t\t\t\t\t\tlocale={dateFnsLocale}\n\t\t\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\t\t\tstartMonth={yearBounds.startMonth}\n\t\t\t\t\t\tendMonth={yearBounds.endMonth}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tmax={max}\n\t\t\t\t\t\t{...calendarProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Validation Message */}\n\t\t\t\t\t{!!validationMessage && <>\n\t\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t\t<div className=\"p-3\">\n\t\t\t\t\t\t\t\t<Text type=\"secondary\">{validationMessage}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>}\n\n\t\t\t\t\t{/* Footer */}\n\t\t\t\t\t{!!baseProps.footer && (\n <DatePickerFooter\n\t\t\t\t\t\t\tconfig={baseProps.footer}\n\t\t\t\t\t\t\toutput={createOutput(dates)}\n\t\t\t\t\t\t\thasSelection={dates.length > 0}\n\t\t\t\t\t\t\tautoSummary={footerSummary}\n\t\t\t\t\t\t/>\n )}\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t\t{!!hasError && <Text id={describedBy} size=\"xs\" type=\"error\" content={errorText} />}\n\t\t</div>\n\t);\n}\n\n// Range Date Picker Component\nfunction RangeDatePicker({\n\tvalue,\n\tdefaultValue,\n\tonChange,\n\tformat: dateFormat = 'yyyy-MM-dd',\n\treadableFormat = 'PPP',\n\tplaceholder,\n\twithConfirm = false,\n\tmin,\n\tmax,\n\tcloseOnSelect = true,\n\twithTime,\n\tpresets: presetsProp,\n\tdisabledDates,\n\tcalendarProps,\n\topen,\n\tsetOpen,\n\tt,\n\tdateFnsLocale,\n\tcaptionLayout,\n\tyearBounds,\n\t...baseProps\n}: DateRangePickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\n\tyearBounds: ReturnType<typeof getDayPickerYearBounds>;\n}) {\n\t// Resolve the start-of-week so the \"This week\" preset honors the\n\t// consumer's <UIProvider dates={{ weekStartsOn: 0 }}> setting.\n\t// Library default is 1 (Monday).\n\tconst { weekStartsOn = 1 } = useDatesConfig();\n\tconst presets = presetsProp ?? getDefaultPresets(t, weekStartsOn);\n\tconst triggerId = React.useId();\n\tconst describedBy = `${triggerId}-description`;\n\tconst hasError = baseProps.error !== undefined && baseProps.error !== null && baseProps.error !== '';\n\tconst ariaDescribedBy = hasError ? describedBy : undefined;\n\tconst hasHint = baseProps.hint !== undefined && baseProps.hint !== null && baseProps.hint !== '';\n\tconst errorText = typeof baseProps.error === 'string' ? baseProps.error : '';\n\tconst hintText = typeof baseProps.hint === 'string' ? baseProps.hint : '';\n\tconst timeFormat = withTime?.format ?? '24';\n\tconst timeStep = withTime?.step ?? 60;\n\tconst includeSeconds = withTime?.showSeconds ?? false;\n\tconst readableHasTime = readableFormatIncludesTime(readableFormat);\n\tconst showTimeInButton = withTime?.showTimeInButton ?? !readableHasTime;\n\tconst showTimeInSummary = withTime?.showTimeInSummary ?? !readableHasTime;\n\tconst initialRange = value ?? defaultValue;\n\tconst [range, setRange] = React.useState<DateRange | undefined>(initialRange);\n\tconst [startTime, setStartTime] = React.useState<NormalizedTime>(() =>\n\t\tcreateDefaultNormalizedTime(initialRange?.from, includeSeconds, timeStep)\n\t);\n\tconst [endTime, setEndTime] = React.useState<NormalizedTime>(() =>\n\t\tcreateDefaultNormalizedTime(initialRange?.to, includeSeconds, timeStep)\n\t);\n\tconst previousValueRef = React.useRef<DateRange | undefined>(value);\n\n\t// Validation message\n\tconst validationMessage = React.useMemo(() =>\n\t\tgetRangeValidationMessage(range, min, max, t),\n\t\t[range, min, max, t]\n\t);\n\n\tconst hasValidationMessage = validationMessage !== undefined && validationMessage !== null && validationMessage !== '';\n\tconst validationText = typeof validationMessage === 'string' ? validationMessage : '';\n\n\t// Sync with controlled value\n\tReact.useEffect(() => {\n\t\tif (value !== undefined) {\n\t\t\tsetRange(value);\n\t\t}\n\t}, [value]);\n\n\t// Sync time segments when external range changes\n\tReact.useEffect(() => {\n\t\tif (!withTime?.enabled) {\n\t\t\tpreviousValueRef.current = value;\n\t\t\treturn;\n\t\t}\n\n\t\tconst prev = previousValueRef.current;\n\t\tconst nextFrom = value?.from;\n\t\tconst nextTo = value?.to;\n\n\t\tif (nextFrom) {\n\t\t\tsetStartTime(createDefaultNormalizedTime(nextFrom, includeSeconds, timeStep));\n\t\t} else if (prev?.from) {\n\t\t\tsetStartTime(createDefaultNormalizedTime(undefined, includeSeconds, timeStep));\n\t\t}\n\n\t\tif (nextTo) {\n\t\t\tsetEndTime(createDefaultNormalizedTime(nextTo, includeSeconds, timeStep));\n\t\t} else if (prev?.to) {\n\t\t\tsetEndTime(createDefaultNormalizedTime(undefined, includeSeconds, timeStep));\n\t\t}\n\n\t\tpreviousValueRef.current = value;\n\t}, [value, withTime?.enabled, includeSeconds, timeStep]);\n\n\tReact.useEffect(() => {\n\t\tif (!withTime?.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tsetStartTime((current) => {\n\t\t\tconst aligned = alignNormalizedTimeToStep(current, timeStep, includeSeconds);\n\t\t\tif (\n\t\t\t\tcurrent.hours === aligned.hours &&\n\t\t\t\tcurrent.minutes === aligned.minutes &&\n\t\t\t\tcurrent.seconds === aligned.seconds\n\t\t\t) {\n\t\t\t\treturn current;\n\t\t\t}\n\t\t\treturn aligned;\n\t\t});\n\t\tsetEndTime((current) => {\n\t\t\tconst aligned = alignNormalizedTimeToStep(current, timeStep, includeSeconds);\n\t\t\tif (\n\t\t\t\tcurrent.hours === aligned.hours &&\n\t\t\t\tcurrent.minutes === aligned.minutes &&\n\t\t\t\tcurrent.seconds === aligned.seconds\n\t\t\t) {\n\t\t\t\treturn current;\n\t\t\t}\n\t\t\treturn aligned;\n\t\t});\n\t}, [withTime?.enabled, timeStep, includeSeconds]);\n\n\t// Create output helper\n\tconst createOutput = React.useCallback(\n\t\t(currentRange: DateRange | undefined): DateRangeOutput => {\n\t\t\tlet finalRange = currentRange;\n\t\t\tif (currentRange && withTime?.enabled) {\n\t\t\t\tfinalRange = applyTimeToRange(currentRange, startTime, endTime);\n\t\t\t}\n\t\t\treturn createDateRangeOutput(finalRange, dateFormat, readableFormat, dateFnsLocale);\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale, withTime, startTime, endTime]\n\t);\n\n\tconst handleStartTimeChange = React.useCallback((next: NormalizedTime) => {\n\t\tsetStartTime(next);\n\t}, []);\n\n\tconst handleEndTimeChange = React.useCallback((next: NormalizedTime) => {\n\t\tsetEndTime(next);\n\t}, []);\n\n\t// Handle selection\n\tconst handleSelect = React.useCallback(\n\t\t(newRange: DateRange | undefined) => {\n\t\t\tconst validation = validateDateRange(newRange, min, max);\n\t\t\tif (newRange && !validation.isValid) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetRange(newRange);\n\n\t\t\tif (!withConfirm && !withTime?.enabled) {\n\t\t\t\tonChange?.(createOutput(newRange));\n\t\t\t\tif (closeOnSelect && newRange?.from && newRange?.to) {\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[withConfirm, withTime, onChange, createOutput, min, max, closeOnSelect, setOpen]\n\t);\n\n\t// Handle preset selection\n\tconst handlePresetSelect = React.useCallback(\n\t\t(preset: PresetDateRange) => {\n\t\t\tconst range = preset.getValue();\n\t\t\thandleSelect(range);\n\t\t},\n\t\t[handleSelect]\n\t);\n\n\t// Handle confirm\n\tconst handleConfirm = React.useCallback(() => {\n\t\tonChange?.(createOutput(range));\n\t\tsetOpen(false);\n\t}, [range, onChange, createOutput, setOpen]);\n\n\tconst startTimeDisplay = React.useMemo(() => {\n\t\tif (!withTime?.enabled) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn formatNormalizedTimeForDisplay(startTime, includeSeconds, timeFormat, {\n\t\t\tam: t.am,\n\t\t\tpm: t.pm,\n\t\t});\n\t}, [withTime?.enabled, startTime, includeSeconds, timeFormat, t]);\n\n\tconst endTimeDisplay = React.useMemo(() => {\n\t\tif (!withTime?.enabled) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn formatNormalizedTimeForDisplay(endTime, includeSeconds, timeFormat, {\n\t\t\tam: t.am,\n\t\t\tpm: t.pm,\n\t\t});\n\t}, [withTime?.enabled, endTime, includeSeconds, timeFormat, t]);\n\n\t// Button text\n\tconst buttonText = React.useMemo(() => {\n\t\tif (withTime?.enabled && range?.from) {\n\t\t\tconst fromBase = format(range.from, readableFormat, { locale: dateFnsLocale });\n\t\t\tconst fromText = showTimeInButton && startTimeDisplay ? `${fromBase} ${startTimeDisplay}` : fromBase;\n\t\t\tif (range.to) {\n\t\t\t\tconst toBase = format(range.to, readableFormat, { locale: dateFnsLocale });\n\t\t\t\tconst toText = showTimeInButton && endTimeDisplay ? `${toBase} ${endTimeDisplay}` : toBase;\n\t\t\t\treturn `${fromText} - ${toText}`;\n\t\t\t}\n\t\t\treturn fromText;\n\t\t}\n\t\treturn formatRangeButtonText(range, readableFormat, placeholder, t.selectDateRange, dateFnsLocale);\n\t}, [withTime?.enabled, range, readableFormat, showTimeInButton, startTimeDisplay, endTimeDisplay, placeholder, t, dateFnsLocale]);\n\n\tconst footerSummary = React.useMemo(() => {\n\t\tif (!range?.from || !range?.to) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst fromBase = format(range.from, readableFormat, { locale: dateFnsLocale });\n\t\tconst toBase = format(range.to, readableFormat, { locale: dateFnsLocale });\n\t\tconst fromText = showTimeInSummary && startTimeDisplay ? `${fromBase} ${startTimeDisplay}` : fromBase;\n\t\tconst toText = showTimeInSummary && endTimeDisplay ? `${toBase} ${endTimeDisplay}` : toBase;\n\n\t\treturn `${fromText} - ${toText}`;\n\t}, [range, readableFormat, dateFnsLocale, showTimeInSummary, startTimeDisplay, endTimeDisplay]);\n\n\treturn (\n\t\t<div className={cn('space-y-2', baseProps.className)}>\n\t\t\t{!!(baseProps.label || hasHint) && (\n <div className=\"flex items-center justify-between gap-1\">\n\t\t\t\t\t{!!baseProps.label && (\n <Label\n\t\t\t\t\t\t\thtmlFor={triggerId}\n\t\t\t\t\t\t\tclassName={cn('leading-6', hasError && 'text-destructive')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{baseProps.label}\n\t\t\t\t\t\t</Label>\n )}\n\t\t\t\t\t{!hasError && !!hasHint && (\n <Text tag=\"span\" type=\"secondary\">\n\t\t\t\t\t\t\t{hintText}\n\t\t\t\t\t\t</Text>\n )}\n\t\t\t\t</div>\n )}\n\n\t\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t\t<PopoverTrigger\n\t\t\t\t\t\trender={(triggerProps) => {\n\t\t\t\t\t\t\tconst resolved = resolvePickerButtonProps(baseProps.buttonVariant);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\t\t\tvariant={resolved.variant}\n\t\t\t\t\t\t\t\t\tbuttonStyle={resolved.buttonStyle}\n\t\t\t\t\t\t\t\t\taria-invalid={hasError}\n\t\t\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t\t\t!range && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tbaseProps.error && 'border-destructive focus-visible:ring-destructive',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CalendarIcon className=\"mr-control-gap size-icon shrink-0\" />\n\t\t\t\t\t\t\t\t\t<span className=\"truncate\">{buttonText}</span>\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tclassName=\"w-auto p-0\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!baseProps.header && <DatePickerHeader config={baseProps.header} />}\n\n\t\t\t\t\t<div className=\"flex\">\n\t\t\t\t\t\t{/* Presets sidebar */}\n\t\t\t\t\t\t{presets.length > 0 && (\n\t\t\t\t\t\t\t<div className=\"flex min-w-30 flex-col gap-0.5 border-r p-2\">\n\t\t\t\t\t\t\t\t{presets.map((preset) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={preset.label}\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => handlePresetSelect(preset)}\n\t\t\t\t\t\t\t\t\t\tclassName=\"justify-start font-normal text-muted-foreground hover:text-foreground\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{preset.label}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* Calendar */}\n\t\t\t\t\t\t<div className=\"flex flex-col\">\n\t\t\t\t\t\t\t<Calendar\n\t\t\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\t\t\tselected={range}\n\t\t\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\t\t\tdefaultMonth={range?.from}\n\t\t\t\t\t\t\t\tnumberOfMonths={baseProps.numberOfMonths ?? 2}\n\t\t\t\t\t\t\t\tshowOutsideDays={baseProps.showOutsideDays}\n\t\t\t\t\t\t\t\tdisabled={disabledDates ?? baseProps.disabled}\n\t\t\t\t\t\t\t\tlocale={dateFnsLocale}\n\t\t\t\t\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\t\t\t\t\tstartMonth={yearBounds.startMonth}\n\t\t\t\t\t\t\t\tendMonth={yearBounds.endMonth}\n\t\t\t\t\t\t\t\t{...calendarProps}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{/* Footer section */}\n\t\t\t\t\t\t\t{!!(range?.from || validationMessage || withConfirm || withTime?.enabled || baseProps.footer) && <>\n\t\t\t\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t\t\t\t<div className=\"flex flex-col gap-3 p-3\">\n\t\t\t\t\t\t\t\t\t\t{/* Date display (only show if no custom footer or if explicitly building default summary) */}\n\t\t\t\t\t\t\t\t\t\t{!!range?.from && !baseProps.footer && (\n <div className=\"flex items-center justify-between gap-4 text-sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">{t.from}:</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{format(range.from, readableFormat, { locale: dateFnsLocale })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{showTimeInSummary && startTimeDisplay ? ` ${startTimeDisplay}` : ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t{!!range.to && (\n <div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">{t.to}:</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{format(range.to, readableFormat, { locale: dateFnsLocale })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{showTimeInSummary && endTimeDisplay ? ` ${endTimeDisplay}` : ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n )}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n )}\n\n\t\t\t\t\t\t\t\t\t\t{/* Time inputs */}\n\t\t\t\t\t\t\t\t\t\t{!!withTime?.enabled && !!range?.from && (\n <div className=\"grid grid-cols-1 gap-3 sm:grid-cols-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Label size=\"small\">{t.startTime}</Label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mt-1 flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Clock className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SegmentedTimeInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={startTime}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleStartTimeChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformat={timeFormat}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tincludeSeconds={includeSeconds}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstep={timeStep}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabels={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thours: t.hours,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminutes: t.minutes,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tseconds: includeSeconds ? t.seconds : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tperiodLabels={{ am: t.am, pm: t.pm }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t{!!range.to && (\n <div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Label size=\"small\">{t.endTime}</Label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mt-1 flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Clock className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SegmentedTimeInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={endTime}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleEndTimeChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformat={timeFormat}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tincludeSeconds={includeSeconds}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstep={timeStep}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabels={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thours: t.hours,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminutes: t.minutes,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tseconds: includeSeconds ? t.seconds : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tperiodLabels={{ am: t.am, pm: t.pm }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n )}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n )}\n\n\t\t\t\t\t\t\t\t\t\t{/* Validation */}\n\t\t\t\t\t\t\t\t\t\t<Text type=\"error\" content={validationText} hidden={!hasValidationMessage} />\n\n\t\t\t\t\t\t\t\t\t\t{/* Confirm button (only if no custom footer) */}\n\t\t\t\t\t\t\t\t\t\t{!!(withConfirm || withTime?.enabled) && !baseProps.footer && (\n <Button\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!range?.from || !range?.to || !!validationMessage}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{t.confirm}\n\t\t\t\t\t\t\t\t\t\t\t</Button>\n )}\n\n\t\t\t\t\t\t\t\t\t\t{/* Custom footer */}\n\t\t\t\t\t\t\t\t\t\t{!!baseProps.footer && (\n <div className=\"-mx-3 -mb-3\">\n\t\t\t\t\t\t\t\t\t\t\t\t<DatePickerFooter\n\t\t\t\t\t\t\t\t\t\t\t\t\tconfig={baseProps.footer}\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput={createOutput(range)}\n\t\t\t\t\t\t\t\t\t\t\t\t\thasSelection={!!(range?.from && range?.to)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tautoSummary={footerSummary}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n )}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t\t{!!hasError && <Text id={describedBy} size=\"xs\" type=\"error\" content={errorText} />}\n\t\t</div>\n\t);\n}\n\nexport default DatePicker;\n\nDatePicker.displayName = 'DatePicker';\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("../lib/utils.cjs"),r=require("./button-Bd5bEIiB.cjs"),i=require("./typography-CO9uwZhF.cjs"),a=require("./select-CG5Yq-6A.cjs"),o=require("./date-picker-BiUgIkjP.cjs"),s=require("./popover-dWR7-MzY.cjs"),c=require("./separator-q42IlFFA.cjs");let l=require("react");l=e.t(l,1);let u=require("date-fns"),d=require("react/jsx-runtime"),f=require("lucide-react"),p=require("date-fns/locale");function m({value:e,defaultValue:a,onChange:m,format:h=`yyyy-MM-dd`,readableFormat:g=`PPP`,placeholder:_,label:v,hint:y,error:b,disabled:x=!1,className:S,withConfirm:C=!1,numberOfMonths:w=2,min:T,max:E,closeOnSelect:D=!0,calendarProps:O,translations:k,strings:A,locale:j,header:M,footer:N,enableYearDropdown:P,yearSelection:F}){let[I,L]=l.useState(!1),[R,z]=l.useState(e??a),B=j??p.enUS,V=t.useStrings(o.i,A??k),H=l.useMemo(()=>P||F?.enabled?`dropdown`:`label`,[P,F]),U=l.useMemo(()=>o.a(F),[F]);l.useEffect(()=>{e!==void 0&&z(e)},[e]);let W=l.useCallback(e=>{let t=B?{locale:B}:void 0;return{range:e,formatted:{from:e?.from?(0,u.format)(e.from,h,t):void 0,to:e?.to?(0,u.format)(e.to,h,t):void 0},readable:{from:e?.from?(0,u.format)(e.from,g,t):void 0,to:e?.to?(0,u.format)(e.to,g,t):void 0}}},[h,g,B]),G=l.useCallback(e=>{if(e?.from&&e?.to){let t=Math.ceil((e.to.getTime()-e.from.getTime())/(1e3*60*60*24))+1;if(T&&t<T||E&&t>E)return}z(e),C||(m?.(W(e)),D&&e?.from&&e?.to&&L(!1))},[C,m,W,T,E,D]),K=l.useCallback(()=>{m?.(W(R)),L(!1)},[R,m,W]),q=l.useMemo(()=>R?.from?R.to?`${(0,u.format)(R.from,g,{locale:B})} - ${(0,u.format)(R.to,g,{locale:B})}`:(0,u.format)(R.from,g,{locale:B}):_??V.selectDateRange,[R,g,B,_,V.selectDateRange]),J=l.useMemo(()=>{if(!R?.from||!R?.to)return null;let e=Math.ceil((R.to.getTime()-R.from.getTime())/(1e3*60*60*24))+1;return T&&e<T?V.minimumDays(T):E&&e>E?V.maximumDays(E):null},[R,T,E,V]),Y=l.useMemo(()=>{if(!(!R?.from||!R?.to))return`${(0,u.format)(R.from,g,{locale:B})} - ${(0,u.format)(R.to,g,{locale:B})}`},[R,g,B]);return(0,d.jsxs)(`div`,{className:n.cn(`date-range-picker--component`,`flex flex-col gap-2`,S),children:[!!v&&(0,d.jsx)(i.a,{htmlFor:`date-range-picker-trigger`,className:n.cn(b&&`text-destructive`),children:v}),(0,d.jsxs)(s.n,{open:I,onOpenChange:L,children:[(0,d.jsx)(s.s,{render:e=>(0,d.jsxs)(r.t,{...e,id:`date-range-picker-trigger`,variant:`secondary`,buttonStyle:`outline`,"aria-invalid":!!b,className:n.cn(`w-full justify-start text-left font-normal`,o.n,!R&&`text-muted-foreground`,e.className),disabled:x,children:[(0,d.jsx)(f.Calendar,{className:`mr-control-gap size-icon shrink-0`}),(0,d.jsx)(`span`,{className:`truncate`,children:q})]})}),(0,d.jsxs)(s.t,{className:`w-auto p-0`,align:`start`,children:[!!M&&(0,d.jsx)(o.o,{config:M}),(0,d.jsxs)(`div`,{className:`flex flex-col`,children:[(0,d.jsx)(o.c,{mode:`range`,selected:R,onSelect:G,defaultMonth:R?.from,numberOfMonths:w,disabled:x,locale:B,captionLayout:H,startMonth:U.startMonth,endMonth:U.endMonth,...O}),!!(R?.from||J||C||N)&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c.t,{}),(0,d.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[!!R?.from&&!N&&(0,d.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxs)(i.s,{tag:`span`,type:`secondary`,children:[V.from,`:`]}),(0,d.jsx)(i.s,{tag:`span`,weight:`medium`,children:(0,u.format)(R.from,g,{locale:B})})]}),!!R.to&&(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxs)(i.s,{tag:`span`,type:`secondary`,children:[V.to,`:`]}),(0,d.jsx)(i.s,{tag:`span`,weight:`medium`,children:(0,u.format)(R.to,g,{locale:B})})]})]}),!!J&&(0,d.jsx)(i.s,{type:`error`,children:J}),!!C&&!N&&(0,d.jsx)(r.t,{onClick:K,disabled:!R?.from||!R?.to||!!J,className:`w-full`,children:V.confirm}),!!N&&(0,d.jsx)(`div`,{className:`-mx-3 -mb-3`,children:(0,d.jsx)(o.s,{config:N,output:W(R),hasSelection:!!(R?.from&&R?.to),autoSummary:Y})})]})]})]})]})]}),!!b&&(0,d.jsx)(i.s,{type:`error`,children:b}),!!y&&!b&&(0,d.jsx)(i.s,{type:`secondary`,children:y})]})}m.displayName=`DateRangePicker`;function h({value:e,defaultValue:c,onChange:m,format:h=`yyyy-MM`,readableFormat:g=`MMMM yyyy`,placeholder:_,label:v,hint:y,error:b,disabled:x=!1,className:S,closeOnSelect:C=!0,translations:w,strings:T,locale:E,header:D,footer:O,fromYear:k,toYear:A}){let j=new Date().getFullYear(),[M,N]=l.useState(!1),[P,F]=l.useState(e??c),I=E??p.enUS,L=t.useStrings(o.i,T??w),R=l.useId(),z=l.useMemo(()=>{let e=k??2017,t=A??2035;return Array.from({length:t-e+1},(t,n)=>e+n)},[k,A]),B=l.useMemo(()=>Array.from({length:12},(e,t)=>(0,u.format)(new Date(2e3,t,1),`MMMM`,{locale:I})),[I]);l.useEffect(()=>{e!==void 0&&F(e)},[e]);let V=l.useCallback((e,t)=>{let n=new Date(t,e,1);return{month:e,year:t,formatted:(0,u.format)(n,h),readable:(0,u.format)(n,g,{locale:I}),date:n}},[h,g,I]),H=l.useCallback(e=>{F({month:parseInt(String(e),10),year:P?.year??j})},[P?.year,j]),U=l.useCallback(e=>{let t=parseInt(String(e),10);F({month:P?.month??0,year:t})},[P?.month]),W=l.useCallback(()=>{P&&(m?.(V(P.month,P.year)),C&&N(!1))},[P,m,V,C]),G=l.useMemo(()=>P?(0,u.format)(new Date(P.year,P.month,1),g,{locale:I}):_??L.selectMonthYear,[P,g,I,_,L.selectMonthYear]);return(0,d.jsxs)(`div`,{className:n.cn(`month-year-picker--component`,`flex flex-col gap-2`,S),children:[!!v&&(0,d.jsx)(i.a,{htmlFor:R,className:n.cn(b&&`text-destructive`),children:v}),(0,d.jsxs)(s.n,{open:M,onOpenChange:N,children:[(0,d.jsx)(s.s,{render:e=>(0,d.jsxs)(r.t,{...e,id:R,variant:`secondary`,buttonStyle:`outline`,"aria-invalid":!!b,className:n.cn(`w-full justify-start text-left font-normal`,o.n,!P&&`text-muted-foreground`,e.className),disabled:x,children:[(0,d.jsx)(f.Calendar,{className:`mr-control-gap size-icon`}),G]})}),(0,d.jsxs)(s.t,{className:`w-80 p-0`,align:`start`,children:[!!D&&(0,d.jsx)(o.o,{config:D}),(0,d.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,d.jsxs)(`div`,{className:`space-y-2`,children:[(0,d.jsx)(i.a,{htmlFor:`month-select`,children:L.month}),(0,d.jsxs)(a.t,{value:P?.month?.toString(),onValueChange:H,disabled:x,children:[(0,d.jsx)(a.a,{id:`month-select`,className:`w-full`,children:(0,d.jsx)(a.o,{placeholder:L.month})}),(0,d.jsx)(a.n,{children:B.map((e,t)=>(0,d.jsx)(a.i,{value:t.toString(),children:e},e))})]})]}),(0,d.jsxs)(`div`,{className:`space-y-2`,children:[(0,d.jsx)(i.a,{htmlFor:`year-select`,children:L.year}),(0,d.jsxs)(a.t,{value:P?.year?.toString(),onValueChange:U,disabled:x,children:[(0,d.jsx)(a.a,{id:`year-select`,className:`w-full`,children:(0,d.jsx)(a.o,{placeholder:L.year})}),(0,d.jsx)(a.n,{children:z.map(e=>(0,d.jsx)(a.i,{value:e.toString(),children:e},e))})]})]})]}),(0,d.jsx)(`div`,{className:`p-4 pt-0`,children:(0,d.jsx)(r.t,{className:`w-full`,onClick:W,disabled:x||!P,children:L.confirm})}),!!O&&!!P&&(0,d.jsx)(o.s,{config:O,output:V(P.month,P.year),hasSelection:!!P,autoSummary:G})]})]}),!!b&&(0,d.jsx)(i.s,{type:`error`,children:b}),!!y&&!b&&(0,d.jsx)(i.s,{type:`secondary`,children:y})]})}h.displayName=`MonthYearPicker`,Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});
|
|
2
|
-
//# sourceMappingURL=date-pickers-C86tVD8e.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-pickers-C86tVD8e.cjs","names":[],"sources":["../../src/components/base/date-pickers/date-range-picker.tsx","../../src/components/base/date-pickers/month-year-picker.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { Calendar as CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\nimport type { DateRange } from 'react-day-picker';\n\nimport { Button } from '@/components/base/buttons';\nimport { Calendar } from '@/components/ui/calendar';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '@/components/base/popover';\nimport { Separator } from '@/components/base/display/separator';\nimport { Label, Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useStrings } from '@/lib/strings';\n\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport { getDayPickerYearBounds } from './date-picker-helpers';\nimport { PICKER_TRIGGER_CHROME } from './date-picker';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type { DateRangePickerProps, DateRangeOutput } from './datepicker.types';\nimport { enUS } from 'date-fns/locale';\n\nexport function DateRangePicker({\n\tvalue,\n\tdefaultValue,\n\tonChange,\n\tformat: dateFormat = 'yyyy-MM-dd',\n\treadableFormat = 'PPP',\n\tplaceholder,\n\tlabel,\n\thint,\n\terror,\n\tdisabled = false,\n\tclassName,\n\twithConfirm = false,\n\tnumberOfMonths = 2,\n\tmin,\n\tmax,\n\tcloseOnSelect = true,\n\tcalendarProps,\n\ttranslations,\n\tstrings,\n\tlocale,\n\theader,\n\tfooter,\n\tenableYearDropdown,\n\tyearSelection\n}: DateRangePickerProps) {\n\tconst [open, setOpen] = React.useState(false);\n\tconst [range, setRange] = React.useState<DateRange | undefined>(\n\t\tvalue ?? defaultValue\n\t);\n\n\tconst dateFnsLocale = locale ?? enUS;\n\tconst t = useStrings(defaultDatePickerStrings, strings ?? translations);\n\n\t// Resolve year selection config\n\tconst captionLayout = React.useMemo(() => {\n\t\tif (enableYearDropdown || yearSelection?.enabled) {\n\t\t\treturn 'dropdown' as const;\n\t\t}\n\t\treturn 'label' as const;\n\t}, [enableYearDropdown, yearSelection]);\n\tconst yearBounds = React.useMemo(\n\t\t() => getDayPickerYearBounds(yearSelection),\n\t\t[yearSelection]\n\t);\n\n\t// Sync internal state with controlled value\n\tReact.useEffect(() => {\n\t\tif (value !== undefined) {\n\t\t\tsetRange(value);\n\t\t}\n\t}, [value]);\n\n\t// Helper to create the output object\n\tconst createOutput = React.useCallback(\n\t\t(range: DateRange | undefined): DateRangeOutput => {\n\t\t\tconst options = dateFnsLocale ? { locale: dateFnsLocale } : undefined;\n\t\t\treturn {\n\t\t\t\trange,\n\t\t\t\tformatted: {\n\t\t\t\t\tfrom: range?.from ? format(range.from, dateFormat, options) : undefined,\n\t\t\t\t\tto: range?.to ? format(range.to, dateFormat, options) : undefined,\n\t\t\t\t},\n\t\t\t\treadable: {\n\t\t\t\t\tfrom: range?.from ? format(range.from, readableFormat, options) : undefined,\n\t\t\t\t\tto: range?.to ? format(range.to, readableFormat, options) : undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale]\n\t);\n\n\t// Handle calendar selection\n\tconst handleSelect = React.useCallback(\n\t\t(newRange: DateRange | undefined) => {\n\t\t\t// Validate min/max constraints if provided\n\t\t\tif (newRange?.from && newRange?.to) {\n\t\t\t\tconst daysDiff = Math.ceil(\n\t\t\t\t\t(newRange.to.getTime() - newRange.from.getTime()) / (1000 * 60 * 60 * 24)\n\t\t\t\t) + 1;\n\n\t\t\t\tif (min && daysDiff < min) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (max && daysDiff > max) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetRange(newRange);\n\n\t\t\tif (!withConfirm) {\n\t\t\t\tonChange?.(createOutput(newRange));\n\n\t\t\t\tif (closeOnSelect && newRange?.from && newRange?.to) {\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[withConfirm, onChange, createOutput, min, max, closeOnSelect]\n\t);\n\n\t// Handle confirm button click\n\tconst handleConfirm = React.useCallback(() => {\n\t\tonChange?.(createOutput(range));\n\t\tsetOpen(false);\n\t}, [range, onChange, createOutput]);\n\n\t// Generate button text\n\tconst buttonText = React.useMemo(() => {\n\t\tif (range?.from) {\n\t\t\tif (range.to) {\n\t\t\t\treturn `${format(range.from, readableFormat, { locale: dateFnsLocale })} - ${format(range.to, readableFormat, { locale: dateFnsLocale })}`;\n\t\t\t}\n\t\t\treturn format(range.from, readableFormat, { locale: dateFnsLocale });\n\t\t}\n\t\treturn placeholder ?? t.selectDateRange;\n\t}, [range, readableFormat, dateFnsLocale, placeholder, t.selectDateRange]);\n\n\t// Calculate validation message if needed\n\tconst validationMessage = React.useMemo(() => {\n\t\tif (!range?.from || !range?.to) return null;\n\n\t\tconst daysDiff = Math.ceil(\n\t\t\t(range.to.getTime() - range.from.getTime()) / (1000 * 60 * 60 * 24)\n\t\t) + 1;\n\n\t\tif (min && daysDiff < min) {\n\t\t\treturn t.minimumDays(min);\n\t\t}\n\n\t\tif (max && daysDiff > max) {\n\t\t\treturn t.maximumDays(max);\n\t\t}\n\n\t\treturn null;\n\t}, [range, min, max, t]);\n\n\tconst footerSummary = React.useMemo(() => {\n\t\tif (!range?.from || !range?.to) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst fromText = format(range.from, readableFormat, { locale: dateFnsLocale });\n\t\tconst toText = format(range.to, readableFormat, { locale: dateFnsLocale });\n\n\t\treturn `${fromText} - ${toText}`;\n\t}, [range, readableFormat, dateFnsLocale]);\n\n\treturn (\n\t\t<div className={cn('date-range-picker--component', 'flex flex-col gap-2', className)}>\n\t\t\t{!!label && (\n <Label\n\t\t\t\t\thtmlFor=\"date-range-picker-trigger\"\n\t\t\t\t\tclassName={cn(error && 'text-destructive')}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Label>\n )}\n\n\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\tid=\"date-range-picker-trigger\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\taria-invalid={!!error}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t!range && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CalendarIcon className=\"mr-control-gap size-icon shrink-0\" />\n\t\t\t\t\t\t\t<span className=\"truncate\">{buttonText}</span>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tclassName=\"w-auto p-0\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!header && <DatePickerHeader config={header} />}\n\n\t\t\t\t\t<div className=\"flex flex-col\">\n\t\t\t\t\t\t<Calendar\n\t\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\t\tselected={range}\n\t\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\t\tdefaultMonth={range?.from}\n\t\t\t\t\t\t\tnumberOfMonths={numberOfMonths}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tlocale={dateFnsLocale}\n\t\t\t\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\t\t\t\tstartMonth={yearBounds.startMonth}\n\t\t\t\t\t\t\tendMonth={yearBounds.endMonth}\n\t\t\t\t\t\t\t{...calendarProps}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Display selected dates and validation */}\n\t\t\t\t\t\t{!!(range?.from || validationMessage || withConfirm || footer) && <>\n\t\t\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t\t\t<div className=\"flex flex-col gap-3 p-3\">\n\t\t\t\t\t\t\t\t\t{/* Selected date display (only if no footer) */}\n\t\t\t\t\t\t\t\t\t{!!range?.from && !footer && (\n <div className=\"flex items-center justify-between gap-4\">\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">{t.from}:</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{format(range.from, readableFormat, { locale: dateFnsLocale })}\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t{!!range.to && (\n <div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">{t.to}:</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{format(range.to, readableFormat, { locale: dateFnsLocale })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n )}\n\t\t\t\t\t\t\t\t\t\t</div>\n )}\n\n\t\t\t\t\t\t\t\t\t{/* Validation message */}\n\t\t\t\t\t\t\t\t\t{!!validationMessage && <Text type=\"error\">{validationMessage}</Text>}\n\n\t\t\t\t\t\t\t\t\t{/* Confirm button (only if no footer) */}\n\t\t\t\t\t\t\t\t\t{!!withConfirm && !footer && (\n <Button\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={!range?.from || !range?.to || !!validationMessage}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{t.confirm}\n\t\t\t\t\t\t\t\t\t\t</Button>\n )}\n\n\t\t\t\t\t\t\t\t\t{/* Custom footer */}\n\t\t\t\t\t\t\t\t\t{!!footer && (\n <div className=\"-mx-3 -mb-3\">\n\t\t\t\t\t\t\t\t\t\t\t<DatePickerFooter\n\t\t\t\t\t\t\t\t\t\t\t\tconfig={footer}\n\t\t\t\t\t\t\t\t\t\t\t\toutput={createOutput(range)}\n\t\t\t\t\t\t\t\t\t\t\t\thasSelection={!!(range?.from && range?.to)}\n\t\t\t\t\t\t\t\t\t\t\t\tautoSummary={footerSummary}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n )}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</>}\n\t\t\t\t\t</div>\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t\t{!!error && <Text type=\"error\">{error}</Text>}\n\n\t\t\t{!!hint && !error && <Text type=\"secondary\">{hint}</Text>}\n\t\t</div>\n\t);\n}\n\n// Convenience exports\nexport default DateRangePicker;\nexport type { DateRangePickerProps, DateRangeOutput };\n\nDateRangePicker.displayName = 'DateRangePicker';\n","import { format } from 'date-fns';\nimport { Calendar as CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '@/components/base/popover';\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue\n} from '@/components/ui/select';\nimport { Label, Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useStrings } from '@/lib/strings';\n\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport { PICKER_TRIGGER_CHROME } from './date-picker';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type { MonthYearPickerProps, MonthYearOutput } from './datepicker.types';\nimport { enUS } from 'date-fns/locale';\n\nexport function MonthYearPicker({\n\tvalue,\n\tdefaultValue,\n\tonChange,\n\tformat: dateFormat = 'yyyy-MM',\n\treadableFormat = 'MMMM yyyy',\n\tplaceholder,\n\tlabel,\n\thint,\n\terror,\n\tdisabled = false,\n\tclassName,\n\tcloseOnSelect = true,\n\ttranslations,\n\tstrings,\n\tlocale,\n\theader,\n\tfooter,\n\tfromYear,\n\ttoYear\n}: MonthYearPickerProps) {\n\tconst currentYear = new Date().getFullYear();\n\tconst [open, setOpen] = React.useState(false);\n\tconst [selection, setSelection] = React.useState<{\n\t\tmonth: number;\n\t\tyear: number;\n\t} | undefined>(value ?? defaultValue);\n\n\tconst dateFnsLocale = locale ?? enUS;\n\tconst t = useStrings(defaultDatePickerStrings, strings ?? translations);\n\tconst triggerId = React.useId();\n\n\t// Year range\n\tconst yearRange = React.useMemo(() => {\n\t\tconst start = fromYear ?? 2017;\n\t\tconst end = toYear ?? 2035;\n\t\treturn Array.from({ length: end - start + 1 }, (_, i) => start + i);\n\t}, [fromYear, toYear]);\n\n\t// Month names (localized)\n\tconst monthNames = React.useMemo(() => {\n\t\treturn Array.from({ length: 12 }, (_, i) => {\n\t\t\tconst date = new Date(2000, i, 1);\n\t\t\treturn format(date, 'MMMM', { locale: dateFnsLocale });\n\t\t});\n\t}, [dateFnsLocale]);\n\n\t// Sync internal state with controlled value\n\tReact.useEffect(() => {\n\t\tif (value !== undefined) {\n\t\t\tsetSelection(value);\n\t\t}\n\t}, [value]);\n\n\t// Helper to create the output object\n\tconst createOutput = React.useCallback(\n\t\t(month: number, year: number): MonthYearOutput => {\n\t\t\tconst date = new Date(year, month, 1);\n\t\t\treturn {\n\t\t\t\tmonth,\n\t\t\t\tyear,\n\t\t\t\tformatted: format(date, dateFormat),\n\t\t\t\treadable: format(date, readableFormat, { locale: dateFnsLocale }),\n\t\t\t\tdate\n\t\t\t};\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale]\n\t);\n\n\t// Handle selection change\n\tconst handleMonthChange = React.useCallback(\n\t\t(monthValue: unknown) => {\n\t\t\tconst monthStr = String(monthValue);\n\t\t\tconst month = parseInt(monthStr, 10);\n\t\t\tconst year = selection?.year ?? currentYear;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.year, currentYear]\n\t);\n\n\tconst handleYearChange = React.useCallback(\n\t\t(yearValue: unknown) => {\n\t\t\tconst yearStr = String(yearValue);\n\t\t\tconst year = parseInt(yearStr, 10);\n\t\t\tconst month = selection?.month ?? 0;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.month]\n\t);\n\n\t// Handle confirm button click\n\tconst handleConfirm = React.useCallback(() => {\n\t\tif (selection) {\n\t\t\tonChange?.(createOutput(selection.month, selection.year));\n\t\t\tif (closeOnSelect) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t}\n\t}, [selection, onChange, createOutput, closeOnSelect]);\n\n\t// Button display text\n\tconst buttonText = React.useMemo(() => {\n\t\tif (selection) {\n\t\t\tconst date = new Date(selection.year, selection.month, 1);\n\t\t\treturn format(date, readableFormat, { locale: dateFnsLocale });\n\t\t}\n\t\treturn placeholder ?? t.selectMonthYear;\n\t}, [selection, readableFormat, dateFnsLocale, placeholder, t.selectMonthYear]);\n\n\treturn (\n\t\t<div className={cn('month-year-picker--component', 'flex flex-col gap-2', className)}>\n\t\t\t{!!label && (\n\t\t\t\t<Label\n\t\t\t\t\thtmlFor={triggerId}\n\t\t\t\t\tclassName={cn(error && 'text-destructive')}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Label>\n )}\n\n\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\taria-invalid={!!error}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t!selection && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CalendarIcon className=\"mr-control-gap size-icon\" />\n\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tclassName=\"w-80 p-0\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!header && <DatePickerHeader config={header} />}\n\n\t\t\t\t\t{/* Month and Year Selectors */}\n\t\t\t\t\t<div className=\"p-4 space-y-4\">\n\t\t\t\t\t\t{/* Month Selector */}\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"month-select\">{t.month}</Label>\n\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\tvalue={selection?.month?.toString()}\n\t\t\t\t\t\t\t\tonValueChange={handleMonthChange}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SelectTrigger id=\"month-select\" className=\"w-full\">\n\t\t\t\t\t\t\t\t\t<SelectValue placeholder={t.month} />\n\t\t\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t\t\t{monthNames.map((name, index) => (\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={name} value={index.toString()}>\n\t\t\t\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Year Selector */}\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"year-select\">{t.year}</Label>\n\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\tvalue={selection?.year?.toString()}\n\t\t\t\t\t\t\t\tonValueChange={handleYearChange}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SelectTrigger id=\"year-select\" className=\"w-full\">\n\t\t\t\t\t\t\t\t\t<SelectValue placeholder={t.year} />\n\t\t\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t\t\t{yearRange.map((year) => (\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={year} value={year.toString()}>\n\t\t\t\t\t\t\t\t\t\t\t{year}\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Confirm Button */}\n\t\t\t\t\t<div className=\"p-4 pt-0\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\tdisabled={disabled || !selection}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t.confirm}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Footer */}\n\t\t\t\t\t{!!footer && !!selection && (\n <DatePickerFooter\n\t\t\t\t\t\t\tconfig={footer}\n\t\t\t\t\t\t\toutput={createOutput(selection.month, selection.year)}\n\t\t\t\t\t\t\thasSelection={!!selection}\n\t\t\t\t\t\t\tautoSummary={buttonText}\n\t\t\t\t\t\t/>\n )}\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t\t{!!error && <Text type=\"error\">{error}</Text>}\n\n\t\t\t{!!hint && !error && <Text type=\"secondary\">{hint}</Text>}\n\t\t</div>\n\t);\n}\n\n// Convenience export for type\nexport type { MonthYearPickerProps, MonthYearOutput };\n\nMonthYearPicker.displayName = 'MonthYearPicker';\n"],"mappings":"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"}
|