admin-ui-starter-kit 0.1.0 → 0.1.2
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/SKILL.md +24 -0
- package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +2 -2
- package/.agents/skills/component-library-rules/references/import-paths.md +27 -0
- package/AGENTS.md +8 -3
- package/INTEGRATION.md +33 -2
- package/PUBLISHING.md +3 -1
- package/README.md +33 -6
- package/dist/_shared/accordion-CztqyaIN.js +130 -0
- package/dist/_shared/accordion-CztqyaIN.js.map +1 -0
- package/dist/_shared/accordion-D5uTCLCB.cjs +2 -0
- package/dist/_shared/accordion-D5uTCLCB.cjs.map +1 -0
- package/dist/_shared/action-menu-Yrj6VzFS.js +96 -0
- package/dist/_shared/action-menu-Yrj6VzFS.js.map +1 -0
- package/dist/_shared/action-menu-eVP8GGlv.cjs +2 -0
- package/dist/_shared/action-menu-eVP8GGlv.cjs.map +1 -0
- package/dist/_shared/ai-artifact-DaHXJTKg.cjs +3 -0
- package/dist/_shared/ai-artifact-DaHXJTKg.cjs.map +1 -0
- package/dist/_shared/ai-artifact-DyLn3JAs.js +1068 -0
- package/dist/_shared/ai-artifact-DyLn3JAs.js.map +1 -0
- package/dist/_shared/alert-BVw4Mq6H.js +48 -0
- package/dist/_shared/alert-BVw4Mq6H.js.map +1 -0
- package/dist/_shared/alert-DXSlR9ja.cjs +2 -0
- package/dist/_shared/alert-DXSlR9ja.cjs.map +1 -0
- package/dist/_shared/avatar-CpBz9pTv.js +52 -0
- package/dist/_shared/avatar-CpBz9pTv.js.map +1 -0
- package/dist/_shared/avatar-dg20YFFs.cjs +2 -0
- package/dist/_shared/avatar-dg20YFFs.cjs.map +1 -0
- package/dist/_shared/badge-BVCh_hfL.js +108 -0
- package/dist/_shared/badge-BVCh_hfL.js.map +1 -0
- package/dist/_shared/badge-C49SSz-6.cjs +2 -0
- package/dist/_shared/badge-C49SSz-6.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs +2 -0
- package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-Dc93fqqE.js +111 -0
- package/dist/_shared/breadcrumbs-Dc93fqqE.js.map +1 -0
- package/dist/_shared/button-2xglT7yf.cjs +2 -0
- package/dist/_shared/button-2xglT7yf.cjs.map +1 -0
- package/dist/_shared/button-ChCkwoOD.js +176 -0
- package/dist/_shared/button-ChCkwoOD.js.map +1 -0
- package/dist/_shared/button-D0nF99a9.cjs +2 -0
- package/dist/_shared/button-D0nF99a9.cjs.map +1 -0
- package/dist/_shared/button-DBR4QI9E.js +46 -0
- package/dist/_shared/button-DBR4QI9E.js.map +1 -0
- package/dist/_shared/buttons-Bcnt1md_.js +143 -0
- package/dist/_shared/buttons-Bcnt1md_.js.map +1 -0
- package/dist/_shared/buttons-km9xqXJv.cjs +2 -0
- package/dist/_shared/buttons-km9xqXJv.cjs.map +1 -0
- package/dist/_shared/card-radio-group-BGH93O5-.js +158 -0
- package/dist/_shared/card-radio-group-BGH93O5-.js.map +1 -0
- package/dist/_shared/card-radio-group-Vq741uhL.cjs +2 -0
- package/dist/_shared/card-radio-group-Vq741uhL.cjs.map +1 -0
- package/dist/_shared/combobox-BgXAxjU2.js +746 -0
- package/dist/_shared/combobox-BgXAxjU2.js.map +1 -0
- package/dist/_shared/combobox-DuIyh3xJ.cjs +2 -0
- package/dist/_shared/combobox-DuIyh3xJ.cjs.map +1 -0
- package/dist/_shared/command-BbiijN61.js +39 -0
- package/dist/_shared/command-BbiijN61.js.map +1 -0
- package/dist/_shared/command-D7zTvyBJ.cjs +2 -0
- package/dist/_shared/command-D7zTvyBJ.cjs.map +1 -0
- package/dist/_shared/command-DGNtTI-V.cjs +2 -0
- package/dist/_shared/command-DGNtTI-V.cjs.map +1 -0
- package/dist/_shared/command-jKbwFRtS.js +123 -0
- package/dist/_shared/command-jKbwFRtS.js.map +1 -0
- package/dist/_shared/comments-CNUsdwGW.cjs +2 -0
- package/dist/_shared/comments-CNUsdwGW.cjs.map +1 -0
- package/dist/_shared/comments-CvmS7zG3.js +945 -0
- package/dist/_shared/comments-CvmS7zG3.js.map +1 -0
- package/dist/_shared/containers-BFDv7cCV.cjs +2 -0
- package/dist/_shared/containers-BFDv7cCV.cjs.map +1 -0
- package/dist/_shared/containers-C1-A_2PT.js +19 -0
- package/dist/_shared/containers-C1-A_2PT.js.map +1 -0
- package/dist/_shared/content-container-CwqFnaI0.cjs +2 -0
- package/dist/_shared/content-container-CwqFnaI0.cjs.map +1 -0
- package/dist/_shared/content-container-D_3JGBSc.js +33 -0
- package/dist/_shared/content-container-D_3JGBSc.js.map +1 -0
- package/dist/_shared/copyable-CHhCGMfW.js +38 -0
- package/dist/_shared/copyable-CHhCGMfW.js.map +1 -0
- package/dist/_shared/copyable-ndaiocYq.cjs +2 -0
- package/dist/_shared/copyable-ndaiocYq.cjs.map +1 -0
- package/dist/_shared/date-picker-B8O_qbik.js +1353 -0
- package/dist/_shared/date-picker-B8O_qbik.js.map +1 -0
- package/dist/_shared/date-picker-BnOjyuKS.cjs +2 -0
- package/dist/_shared/date-picker-BnOjyuKS.cjs.map +1 -0
- package/dist/_shared/date-pickers-Cas9cPlj.js +330 -0
- package/dist/_shared/date-pickers-Cas9cPlj.js.map +1 -0
- package/dist/_shared/date-pickers-Dk-G3RMy.cjs +2 -0
- package/dist/_shared/date-pickers-Dk-G3RMy.cjs.map +1 -0
- package/dist/_shared/dialog-67GmkMLC.js +101 -0
- package/dist/_shared/dialog-67GmkMLC.js.map +1 -0
- package/dist/_shared/dialog-BF_4uAhE.cjs +2 -0
- package/dist/_shared/dialog-BF_4uAhE.cjs.map +1 -0
- package/dist/_shared/display-B9xVWboG.cjs +8 -0
- package/dist/_shared/display-B9xVWboG.cjs.map +1 -0
- package/dist/_shared/display-BM_GxDAo.js +1237 -0
- package/dist/_shared/display-BM_GxDAo.js.map +1 -0
- package/dist/_shared/dropdown-menu-4nxEBMnd.js +147 -0
- package/dist/_shared/dropdown-menu-4nxEBMnd.js.map +1 -0
- package/dist/_shared/dropdown-menu-DZlWHqWS.cjs +2 -0
- package/dist/_shared/dropdown-menu-DZlWHqWS.cjs.map +1 -0
- package/dist/_shared/form-field-BQlki-8s.js +319 -0
- package/dist/_shared/form-field-BQlki-8s.js.map +1 -0
- package/dist/_shared/form-field-DzpwVS99.cjs +2 -0
- package/dist/_shared/form-field-DzpwVS99.cjs.map +1 -0
- package/dist/_shared/form-sizing-CcbB-OHF.js +21 -0
- package/dist/_shared/form-sizing-CcbB-OHF.js.map +1 -0
- package/dist/_shared/form-sizing-Cw12UeI6.cjs +2 -0
- package/dist/_shared/form-sizing-Cw12UeI6.cjs.map +1 -0
- package/dist/_shared/format-B2AdSQVn.cjs +2 -0
- package/dist/_shared/format-B2AdSQVn.cjs.map +1 -0
- package/dist/_shared/format-CP65h1vK.js +48 -0
- package/dist/_shared/format-CP65h1vK.js.map +1 -0
- package/dist/_shared/forms-B8aaNG44.cjs +2 -0
- package/dist/_shared/forms-B8aaNG44.cjs.map +1 -0
- package/dist/_shared/forms-BusuTZZ2.js +3374 -0
- package/dist/_shared/forms-BusuTZZ2.js.map +1 -0
- package/dist/_shared/header-DWfOUjFL.cjs +2 -0
- package/dist/_shared/header-DWfOUjFL.cjs.map +1 -0
- package/dist/_shared/header-KpdoLtP9.js +369 -0
- package/dist/_shared/header-KpdoLtP9.js.map +1 -0
- package/dist/_shared/heading-BprqyzDs.js +39 -0
- package/dist/_shared/heading-BprqyzDs.js.map +1 -0
- package/dist/_shared/heading-mZc_jan1.cjs +2 -0
- package/dist/_shared/heading-mZc_jan1.cjs.map +1 -0
- package/dist/_shared/hooks-C-uWoRq5.cjs +2 -0
- package/dist/_shared/hooks-C-uWoRq5.cjs.map +1 -0
- package/dist/_shared/hooks-D5HJtvvP.js +118 -0
- package/dist/_shared/hooks-D5HJtvvP.js.map +1 -0
- package/dist/_shared/icon-badge-BBqDyAUz.cjs +2 -0
- package/dist/_shared/icon-badge-BBqDyAUz.cjs.map +1 -0
- package/dist/_shared/icon-badge-Bi63T-bj.js +52 -0
- package/dist/_shared/icon-badge-Bi63T-bj.js.map +1 -0
- package/dist/_shared/input-B2YXTHqz.cjs +2 -0
- package/dist/_shared/input-B2YXTHqz.cjs.map +1 -0
- package/dist/_shared/input-BJb10xb9.cjs +2 -0
- package/dist/_shared/input-BJb10xb9.cjs.map +1 -0
- package/dist/_shared/input-CZxP5Xgj.js +17 -0
- package/dist/_shared/input-CZxP5Xgj.js.map +1 -0
- package/dist/_shared/input-DQahu2sm.js +182 -0
- package/dist/_shared/input-DQahu2sm.js.map +1 -0
- package/dist/_shared/item-Cu5JbZyZ.js +224 -0
- package/dist/_shared/item-Cu5JbZyZ.js.map +1 -0
- package/dist/_shared/item-Cx_7QZ2o.cjs +2 -0
- package/dist/_shared/item-Cx_7QZ2o.cjs.map +1 -0
- package/dist/_shared/mentions-CS3rIhze.js +493 -0
- package/dist/_shared/mentions-CS3rIhze.js.map +1 -0
- package/dist/_shared/mentions-D7gnP3Nf.cjs +2 -0
- package/dist/_shared/mentions-D7gnP3Nf.cjs.map +1 -0
- package/dist/_shared/metadata-CRsVWE8Y.cjs +2 -0
- package/dist/_shared/metadata-CRsVWE8Y.cjs.map +1 -0
- package/dist/_shared/metadata-CfG0FdFZ.js +236 -0
- package/dist/_shared/metadata-CfG0FdFZ.js.map +1 -0
- package/dist/_shared/money-display-Bd0rkjc9.js +198 -0
- package/dist/_shared/money-display-Bd0rkjc9.js.map +1 -0
- package/dist/_shared/money-display-DSFft9Mi.cjs +2 -0
- package/dist/_shared/money-display-DSFft9Mi.cjs.map +1 -0
- package/dist/_shared/navigation-Do9k5Xh1.js +420 -0
- package/dist/_shared/navigation-Do9k5Xh1.js.map +1 -0
- package/dist/_shared/navigation-QAAD3HJd.cjs +2 -0
- package/dist/_shared/navigation-QAAD3HJd.cjs.map +1 -0
- package/dist/_shared/overlays-B8AH8fNv.js +633 -0
- package/dist/_shared/overlays-B8AH8fNv.js.map +1 -0
- package/dist/_shared/overlays-DOcoRy8k.cjs +2 -0
- package/dist/_shared/overlays-DOcoRy8k.cjs.map +1 -0
- package/dist/_shared/page-BPCeKX9X.js +263 -0
- package/dist/_shared/page-BPCeKX9X.js.map +1 -0
- package/dist/_shared/page-DMM32sxi.cjs +2 -0
- package/dist/_shared/page-DMM32sxi.cjs.map +1 -0
- package/dist/_shared/popover-B1f_EUQS.cjs +2 -0
- package/dist/_shared/popover-B1f_EUQS.cjs.map +1 -0
- package/dist/_shared/popover-CgRGcFk9.js +83 -0
- package/dist/_shared/popover-CgRGcFk9.js.map +1 -0
- package/dist/_shared/popover-menu-BEKIT3LR.cjs +2 -0
- package/dist/_shared/popover-menu-BEKIT3LR.cjs.map +1 -0
- package/dist/_shared/popover-menu-BHdHLEVL.js +95 -0
- package/dist/_shared/popover-menu-BHdHLEVL.js.map +1 -0
- package/dist/_shared/rich-text-editor-0uoIoYXU.js +608 -0
- package/dist/_shared/rich-text-editor-0uoIoYXU.js.map +1 -0
- package/dist/_shared/rich-text-editor-wTiARGuB.cjs +2 -0
- package/dist/_shared/rich-text-editor-wTiARGuB.cjs.map +1 -0
- package/dist/_shared/scroll-area-Bo17wtZD.cjs +2 -0
- package/dist/_shared/scroll-area-Bo17wtZD.cjs.map +1 -0
- package/dist/_shared/scroll-area-Cj-hmB5D.js +41 -0
- package/dist/_shared/scroll-area-Cj-hmB5D.js.map +1 -0
- package/dist/_shared/select-07RRiTWc.js +85 -0
- package/dist/_shared/select-07RRiTWc.js.map +1 -0
- package/dist/_shared/select-BfiU7a4n.cjs +2 -0
- package/dist/_shared/select-BfiU7a4n.cjs.map +1 -0
- package/dist/_shared/separator-CN9zAJfs.cjs +2 -0
- package/dist/_shared/separator-CN9zAJfs.cjs.map +1 -0
- package/dist/_shared/separator-DR0uUMKa.js +16 -0
- package/dist/_shared/separator-DR0uUMKa.js.map +1 -0
- package/dist/_shared/sheet-B5FoGJAZ.cjs +2 -0
- package/dist/_shared/sheet-B5FoGJAZ.cjs.map +1 -0
- package/dist/_shared/sheet-cUI8cypP.js +100 -0
- package/dist/_shared/sheet-cUI8cypP.js.map +1 -0
- package/dist/_shared/sidebar-Bq7yKLrG.cjs +2 -0
- package/dist/_shared/sidebar-Bq7yKLrG.cjs.map +1 -0
- package/dist/_shared/sidebar-Da20tCUc.cjs +2 -0
- package/dist/_shared/sidebar-Da20tCUc.cjs.map +1 -0
- package/dist/_shared/sidebar-Q6TYE8Ux.js +371 -0
- package/dist/_shared/sidebar-Q6TYE8Ux.js.map +1 -0
- package/dist/_shared/sidebar-WmnQ55YY.js +537 -0
- package/dist/_shared/sidebar-WmnQ55YY.js.map +1 -0
- package/dist/_shared/skeleton-B3HWEc6G.js +14 -0
- package/dist/_shared/skeleton-B3HWEc6G.js.map +1 -0
- package/dist/_shared/skeleton-Cz_l8-fc.cjs +2 -0
- package/dist/_shared/skeleton-Cz_l8-fc.cjs.map +1 -0
- package/dist/_shared/slot-BgnZtKR5.js +18 -0
- package/dist/_shared/slot-BgnZtKR5.js.map +1 -0
- package/dist/_shared/slot-Dac1ipUC.cjs +2 -0
- package/dist/_shared/slot-Dac1ipUC.cjs.map +1 -0
- package/dist/_shared/smart-card-Bm_VxYUG.cjs +2 -0
- package/dist/_shared/smart-card-Bm_VxYUG.cjs.map +1 -0
- package/dist/_shared/smart-card-MT6JjkoI.js +360 -0
- package/dist/_shared/smart-card-MT6JjkoI.js.map +1 -0
- package/dist/_shared/spinner-BQjxJ_Kx.js +67 -0
- package/dist/_shared/spinner-BQjxJ_Kx.js.map +1 -0
- package/dist/_shared/spinner-Dvaa6GUm.cjs +2 -0
- package/dist/_shared/spinner-Dvaa6GUm.cjs.map +1 -0
- package/dist/_shared/switch-C0yyhsXZ.js +51 -0
- package/dist/_shared/switch-C0yyhsXZ.js.map +1 -0
- package/dist/_shared/switch-DozkSQNn.cjs +2 -0
- package/dist/_shared/switch-DozkSQNn.cjs.map +1 -0
- package/dist/_shared/textarea-Cgl-FPwu.js +119 -0
- package/dist/_shared/textarea-Cgl-FPwu.js.map +1 -0
- package/dist/_shared/textarea-D8wC0XlZ.cjs +2 -0
- package/dist/_shared/textarea-D8wC0XlZ.cjs.map +1 -0
- package/dist/_shared/tooltip-Cws4BiPT.js +49 -0
- package/dist/_shared/tooltip-Cws4BiPT.js.map +1 -0
- package/dist/_shared/tooltip-DyUi-Tac.cjs +2 -0
- package/dist/_shared/tooltip-DyUi-Tac.cjs.map +1 -0
- package/dist/_shared/typography-BW7iZBx7.cjs +2 -0
- package/dist/_shared/typography-BW7iZBx7.cjs.map +1 -0
- package/dist/_shared/typography-a3hydyvI.js +102 -0
- package/dist/_shared/typography-a3hydyvI.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/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/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/command/index.cjs +1 -1
- package/dist/components/base/command/index.js +2 -2
- 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/index.cjs +1 -1
- package/dist/components/base/display/index.js +12 -11
- package/dist/components/base/display/metadata/index.cjs +1 -0
- package/dist/components/base/display/metadata/index.js +2 -0
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.cjs.map +1 -1
- package/dist/components/base/event-calendar/index.js +4 -4
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +6 -6
- 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 +3 -3
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +4 -4
- package/dist/components/base/popover/index.cjs +1 -1
- package/dist/components/base/popover/index.js +1 -1
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +1 -1
- package/dist/components/base/sheet/index.cjs +1 -1
- package/dist/components/base/sheet/index.js +1 -1
- package/dist/components/base/sidebar/index.cjs +1 -1
- package/dist/components/base/sidebar/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/index.cjs +1 -1
- package/dist/components/base/table/index.js +7 -7
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.cjs.map +1 -1
- package/dist/components/composed/admin/index.js +12 -12
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +9 -9
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.cjs.map +1 -1
- package/dist/components/composed/analytics/index.js +4 -4
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.cjs.map +1 -1
- package/dist/components/composed/cards/index.js +8 -8
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.cjs.map +1 -1
- package/dist/components/composed/commerce/index.js +9 -9
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
- package/dist/components/composed/dark-surfaces/index.js +6 -6
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.cjs.map +1 -1
- package/dist/components/composed/data-display/index.js +7 -7
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +4 -4
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +2 -2
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +2 -2
- 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.cjs.map +1 -1
- package/dist/components/features/ai-chat/index.js +6 -6
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +3 -3
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +3 -3
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.js +9 -9
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +2 -2
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +1 -1
- 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/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- 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/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +2 -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 +6 -6
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +3 -2
- package/dist/showcase/assets/AreaChart-CJ57G5Ub.js +6 -0
- package/dist/showcase/assets/CSPContext-BA7DfnCI.js +1 -0
- package/dist/showcase/assets/CompositeItem-PwzgE4va.js +1 -0
- package/dist/showcase/assets/CompositeRoot-Du4CMlK7.js +1 -0
- package/dist/showcase/assets/DialogTrigger-FkENgwo6.js +1 -0
- package/dist/showcase/assets/FormContext-ChygLayp.js +1 -0
- package/dist/showcase/assets/PreviewLayout-z6vpJJGt.js +1 -0
- package/dist/showcase/assets/RadioGroup-CcDmbxOw.js +1 -0
- package/dist/showcase/assets/Separator-Dk4eN76U.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-D_KAA5hZ.js +1 -0
- package/dist/showcase/assets/accordion-dQszzfmw.js +172 -0
- package/dist/showcase/assets/accordion-variants-Dp4wxic-.js +1 -0
- package/dist/showcase/assets/action-menu-CBi2Eiy0.js +1 -0
- package/dist/showcase/assets/activities-DoXsgP4G.js +501 -0
- package/dist/showcase/assets/activities-feed-card-xz5FtkOm.js +1 -0
- package/dist/showcase/assets/admin-CxklUqAG.js +80 -0
- package/dist/showcase/assets/ai-artifact-DkhUdEbM.js +2 -0
- package/dist/showcase/assets/ai-chat-B6PuqkEu.js +568 -0
- package/dist/showcase/assets/ai-elements-D_rpj_ds.js +379 -0
- package/dist/showcase/assets/ai-new-CUPrAbOK.js +167 -0
- package/dist/showcase/assets/ai-tool-call-CEr-dGVx.js +1 -0
- package/dist/showcase/assets/ai-zxF_msJF.js +41 -0
- package/dist/showcase/assets/alert-771BE3Ny.js +59 -0
- package/dist/showcase/assets/alert-CG42DAlX.js +1 -0
- package/dist/showcase/assets/api-key-list-D6jUN7Fq.js +73 -0
- package/dist/showcase/assets/arrow-down-CUoXUyN1.js +1 -0
- package/dist/showcase/assets/arrow-left-Cdq69X6h.js +1 -0
- package/dist/showcase/assets/arrow-right-i25q9L2H.js +1 -0
- package/dist/showcase/assets/arrow-up-pnezegnF.js +1 -0
- package/dist/showcase/assets/arrow-up-right-CK3XnMah.js +1 -0
- package/dist/showcase/assets/avatar-LPmQqZQv.js +1 -0
- package/dist/showcase/assets/avatar-ZVFIQouy.js +57 -0
- package/dist/showcase/assets/badge-DK4bsgZC.js +28 -0
- package/dist/showcase/assets/badge-check-Cw5gkVcG.js +1 -0
- package/dist/showcase/assets/bell-BvJELoaV.js +1 -0
- package/dist/showcase/assets/bot-DRj6sdSR.js +1 -0
- package/dist/showcase/assets/box-BNND3M2m.js +1 -0
- package/dist/showcase/assets/brain-Cy3o-12l.js +1 -0
- package/dist/showcase/assets/brand-DvipEpFn.js +40 -0
- package/dist/showcase/assets/breadcrumb-B-LNuOyv.js +1 -0
- package/dist/showcase/assets/breadcrumb-Lzpc0yo4.js +52 -0
- package/dist/showcase/assets/breadcrumbs-DD6msKFZ.js +1 -0
- package/dist/showcase/assets/briefcase-LcAwoEmu.js +1 -0
- package/dist/showcase/assets/button-CuwcGzk1.js +44 -0
- package/dist/showcase/assets/button-group-CAImjDrl.js +1 -0
- package/dist/showcase/assets/buttons-DTjNHCMl.js +259 -0
- package/dist/showcase/assets/calendar-B1zW0q6I.js +1 -0
- package/dist/showcase/assets/calendar-Dlv72ytt.js +1 -0
- package/dist/showcase/assets/calendar-ls2A08Pn.js +16 -0
- package/dist/showcase/assets/card-BhtkM1BT.js +1 -0
- package/dist/showcase/assets/cards-BRpRXzGk.js +328 -0
- package/dist/showcase/assets/chart-column-BpQkEi1H.js +1 -0
- package/dist/showcase/assets/chevron-down-DyObdfSb.js +1 -0
- package/dist/showcase/assets/chevron-left-T7dHNxYM.js +1 -0
- package/dist/showcase/assets/chevron-right-D_EcqHpT.js +1 -0
- package/dist/showcase/assets/chevron-up-B38ivdGO.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-SdRARzoq.js +1 -0
- package/dist/showcase/assets/circle-BrCPAmDA.js +1 -0
- package/dist/showcase/assets/circle-alert-DdhzLPY_.js +1 -0
- package/dist/showcase/assets/circle-check-DlA6zidQ.js +1 -0
- package/dist/showcase/assets/circle-check-big-DFGJANQF.js +1 -0
- package/dist/showcase/assets/circle-dot-BKmnVUqM.js +1 -0
- package/dist/showcase/assets/circle-question-mark-BNREvgVC.js +1 -0
- package/dist/showcase/assets/circle-x-C45QjHEs.js +1 -0
- package/dist/showcase/assets/clock-D1nKQzQo.js +1 -0
- package/dist/showcase/assets/code-xml-B8N3GRSu.js +1 -0
- package/dist/showcase/assets/collapsible-4TfcWyNs.js +1 -0
- package/dist/showcase/assets/collapsible-CKbZtvTj.js +27 -0
- package/dist/showcase/assets/combobox-DTdGPaU0.js +622 -0
- package/dist/showcase/assets/command-DymTXwL1.js +1 -0
- package/dist/showcase/assets/command-ksVIHQKJ.js +45 -0
- package/dist/showcase/assets/comment-composer-DC9oS1Yy.js +1 -0
- package/dist/showcase/assets/comment-item-CAmKnJa7.js +1 -0
- package/dist/showcase/assets/comments-Benk-2mV.js +349 -0
- package/dist/showcase/assets/commerce-Qz-mq8mQ.js +78 -0
- package/dist/showcase/assets/commerce-extras-CQRc3Bna.js +179 -0
- package/dist/showcase/assets/composite-DBDXLPyz.js +1 -0
- package/dist/showcase/assets/contact-card-DkL2nI3r.js +65 -0
- package/dist/showcase/assets/content-container-mRm6oJEa.js +1 -0
- package/dist/showcase/assets/copyable-DmLlmwzy.js +96 -0
- package/dist/showcase/assets/course-card-CJJoeZj9.js +113 -0
- package/dist/showcase/assets/cpu-BXJnF2Xy.js +1 -0
- package/dist/showcase/assets/credit-card-BQK3KKb2.js +1 -0
- package/dist/showcase/assets/currency-DBPUh8ee.js +149 -0
- package/dist/showcase/assets/dark-surfaces-LpPuIeYy.js +90 -0
- package/dist/showcase/assets/database-BZerpzGE.js +1 -0
- package/dist/showcase/assets/date-block-iiHUpbNX.js +1 -0
- package/dist/showcase/assets/date-picker-BQeBGL7T.js +1 -0
- package/dist/showcase/assets/date-pickers-CKcUEMMF.js +110 -0
- package/dist/showcase/assets/dense-info-DATmxRU8.js +106 -0
- package/dist/showcase/assets/dialog-Bqu5KDYH.js +1 -0
- package/dist/showcase/assets/display-Bj7uPXD4.js +392 -0
- package/dist/showcase/assets/dist-QK7JxeYv.js +1 -0
- package/dist/showcase/assets/dollar-sign-DFZs6vfz.js +1 -0
- package/dist/showcase/assets/download-5oGw_WbW.js +1 -0
- package/dist/showcase/assets/dropdown-menu-1CJgYn0S.js +1 -0
- package/dist/showcase/assets/dropzone-Co1uhsDn.js +1 -0
- package/dist/showcase/assets/ellipsis-cKRcvuyL.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-B1RErEkj.js +1 -0
- package/dist/showcase/assets/empty-Y2-4nCBr.js +1 -0
- package/dist/showcase/assets/empty-item-USa6xcUv.js +49 -0
- package/dist/showcase/assets/empty-state-DfhZ9AT5.js +188 -0
- package/dist/showcase/assets/enhanced-activities-DmAPVUSu.js +359 -0
- package/dist/showcase/assets/esm-BeGQ_ZTM.js +2 -0
- package/dist/showcase/assets/event-calendar-D-jGrrZS.js +138 -0
- package/dist/showcase/assets/event-log-tA_i4eR9.js +326 -0
- package/dist/showcase/assets/example-6phCHGsN.js +1 -0
- package/dist/showcase/assets/external-link-BuVHkCy0.js +1 -0
- package/dist/showcase/assets/eye-DC5HfGm6.js +1 -0
- package/dist/showcase/assets/feature-announcement-DwvxLytd.js +34 -0
- package/dist/showcase/assets/file-D-xM4vLy.js +1 -0
- package/dist/showcase/assets/file-text-tmG5vNbr.js +1 -0
- package/dist/showcase/assets/filters-CrGRXmq6.js +78 -0
- package/dist/showcase/assets/flag-CWrEtkY5.js +1 -0
- package/dist/showcase/assets/folder-open-Br-x1pjP.js +1 -0
- package/dist/showcase/assets/form-sizing-Bb5hiM45.js +1 -0
- package/dist/showcase/assets/format-D_ETCyg4.js +1 -0
- package/dist/showcase/assets/forms-B_MkQ3rm.js +790 -0
- package/dist/showcase/assets/generic-CdmsyXV3.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-CZnCbCFP.js +1 -0
- package/dist/showcase/assets/gift-NkuklfU2.js +1 -0
- package/dist/showcase/assets/giftcard-cards-BAvevZ0i.js +85 -0
- package/dist/showcase/assets/git-branch-B_CBqPeO.js +1 -0
- package/dist/showcase/assets/global-search-D9teAbPe.js +90 -0
- package/dist/showcase/assets/globe-gzw45GU2.js +1 -0
- package/dist/showcase/assets/gradient-card-Xk2r7R5H.js +58 -0
- package/dist/showcase/assets/header-notifications-_aZCpE5A.js +1 -0
- package/dist/showcase/assets/heart-CEMKbRaZ.js +1 -0
- package/dist/showcase/assets/house-BlGXAcMH.js +1 -0
- package/dist/showcase/assets/icon-badge-z6N9reH_.js +1 -0
- package/dist/showcase/assets/image-B8mzmVBr.js +1 -0
- package/dist/showcase/assets/inbox-qdSnP4UV.js +1 -0
- package/dist/showcase/assets/index-B4ubXfly.js +10 -0
- package/dist/showcase/assets/inertValue-D5Q8cLku.js +1 -0
- package/dist/showcase/assets/info-DBvvNjc_.js +1 -0
- package/dist/showcase/assets/inline-stat-Bm1zVT8D.js +1 -0
- package/dist/showcase/assets/input-CBQR0aeX.js +1 -0
- package/dist/showcase/assets/input-OrUzpI55.js +1 -0
- package/dist/showcase/assets/input-group-DhqOen2N.js +47 -0
- package/dist/showcase/assets/input-group-l8xa5nUq.js +1 -0
- package/dist/showcase/assets/inputs-DbiJ0qy2.js +49 -0
- package/dist/showcase/assets/invoice-header-C6youIbL.js +36 -0
- package/dist/showcase/assets/invoice-items-g6dgryF-.js +36 -0
- package/dist/showcase/assets/invoice-mini-0iWhufpt.js +14 -0
- package/dist/showcase/assets/invoice-table-Bvdh3rRq.js +30 -0
- package/dist/showcase/assets/isSameDay-BpZEtJe8.js +1 -0
- package/dist/showcase/assets/isToday-F0CS28oK.js +1 -0
- package/dist/showcase/assets/italic-CJOEwjdc.js +1 -0
- package/dist/showcase/assets/item-BiMm1PPB.js +1 -0
- package/dist/showcase/assets/item-CN0cwdj_.js +1 -0
- package/dist/showcase/assets/item-DNqEUYLT.js +117 -0
- package/dist/showcase/assets/kanban-DxePEUiQ.js +175 -0
- package/dist/showcase/assets/label-Dx4WO-fg.js +1 -0
- package/dist/showcase/assets/layout-containers-DDl8rG8S.js +96 -0
- package/dist/showcase/assets/layout-header-Bu6IcDWu.js +170 -0
- package/dist/showcase/assets/layout-page-D-88Qnoy.js +122 -0
- package/dist/showcase/assets/layout-sidebar-Ctft10pk.js +224 -0
- package/dist/showcase/assets/layout-users-DtbZduBG.js +104 -0
- package/dist/showcase/assets/lib-D9BoOYUd.js +1 -0
- package/dist/showcase/assets/lock-CHurDI0n.js +1 -0
- package/dist/showcase/assets/mail-DZ1o1RLW.js +1 -0
- package/dist/showcase/assets/map-C8xiyT9X.js +124 -0
- package/dist/showcase/assets/map-pin-CAKaoYod.js +1 -0
- package/dist/showcase/assets/menus-C6mnp636.js +89 -0
- package/dist/showcase/assets/message-square-Zo5J_zU1.js +1 -0
- package/dist/showcase/assets/metadata-list-W83-UMhc.js +278 -0
- package/dist/showcase/assets/metric-BSvxidIX.js +1 -0
- package/dist/showcase/assets/metric-grid-Dtqx_3Lg.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-mtvcJ_M9.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-DQbyss7i.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-CEBu5Uw0.js +77 -0
- package/dist/showcase/assets/metrics-comparison-Bs-R6v4y.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-BKHWH8sM.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-BxVn0Y2p.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-DtACYEds.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-BkwUGOUR.js +42 -0
- package/dist/showcase/assets/metrics-overview-BAtrlzsI.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-iCRCNyHY.js +54 -0
- package/dist/showcase/assets/minus-C6eBW-2t.js +1 -0
- package/dist/showcase/assets/money-display-DjGRJ16l.js +1 -0
- package/dist/showcase/assets/month-year-picker-DTDebPqf.js +1 -0
- package/dist/showcase/assets/navigation-BrG8Chig.js +86 -0
- package/dist/showcase/assets/navigation-CfXQJbyM.js +230 -0
- package/dist/showcase/assets/navigation-extras-D_gzLlZ5.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-1EerUwAo.js +119 -0
- package/dist/showcase/assets/overlays-2AB9-S1Z.js +88 -0
- package/dist/showcase/assets/overlays-CYt9o3Xq.js +393 -0
- package/dist/showcase/assets/package-BJMP-Fcr.js +1 -0
- package/dist/showcase/assets/page-action-button-BZxJ0X1j.js +1 -0
- package/dist/showcase/assets/page-header-B_rqHJhe.js +1 -0
- package/dist/showcase/assets/pagination-BHiQvvka.js +1 -0
- package/dist/showcase/assets/pagination-Dq0GruQd.js +42 -0
- package/dist/showcase/assets/paperclip-BMYKrUQo.js +1 -0
- package/dist/showcase/assets/pencil-BJ3VS_FO.js +1 -0
- package/dist/showcase/assets/phone-CsRIyvep.js +1 -0
- package/dist/showcase/assets/plus-D2JuXYLg.js +1 -0
- package/dist/showcase/assets/popover-DNT9755r.js +1 -0
- package/dist/showcase/assets/popover-KvGgcPNg.js +1 -0
- package/dist/showcase/assets/popover-menu-CJx30R65.js +1 -0
- package/dist/showcase/assets/progress-B7WuXcJR.js +1 -0
- package/dist/showcase/assets/progress-CweCSAUv.js +18 -0
- package/dist/showcase/assets/props-table-uDY4eIzt.js +1 -0
- package/dist/showcase/assets/quote-DAyyfzQd.js +1 -0
- package/dist/showcase/assets/receipt-C0mMZGbF.js +1 -0
- package/dist/showcase/assets/refresh-cw-X06JbXb-.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-Bks7UDko.js +1 -0
- package/dist/showcase/assets/rich-text-editor-QJsb-qIe.js +124 -0
- package/dist/showcase/assets/rich-text-editor-h07VBNI9.js +141 -0
- package/dist/showcase/assets/rotate-ccw-D84bdX_x.js +1 -0
- package/dist/showcase/assets/scroll-area-0rT06pXZ.js +1 -0
- package/dist/showcase/assets/scroll-area-YXwdzGpN.js +32 -0
- package/dist/showcase/assets/select-BoWQDtUf.js +1 -0
- package/dist/showcase/assets/send-DJsk3cr1.js +1 -0
- package/dist/showcase/assets/separator-CLSnRcJa.js +28 -0
- package/dist/showcase/assets/separator-DWv-twD-.js +1 -0
- package/dist/showcase/assets/settings-Cb2MsAmN.js +1 -0
- package/dist/showcase/assets/sheet-Dn1-MYus.js +1 -0
- package/dist/showcase/assets/shield-DwLjF5ch.js +1 -0
- package/dist/showcase/assets/shield-alert-D8i6gzMK.js +1 -0
- package/dist/showcase/assets/shield-check-D5YRSBIz.js +1 -0
- package/dist/showcase/assets/shopping-bag-BqlAP4vn.js +1 -0
- package/dist/showcase/assets/sidebar.context-BAp_pBEB.js +1 -0
- package/dist/showcase/assets/skeleton-CeNPp4hr.js +1 -0
- package/dist/showcase/assets/skeleton-QPsnM_NR.js +29 -0
- package/dist/showcase/assets/smart-card-BisUbLPt.js +1 -0
- package/dist/showcase/assets/sonner-B7GzbBK2.js +22 -0
- package/dist/showcase/assets/sortable.esm-BDcEOHT7.js +5 -0
- package/dist/showcase/assets/sparkles-CF9P5Tqh.js +1 -0
- package/dist/showcase/assets/spinner-BeamEyJd.js +49 -0
- package/dist/showcase/assets/spinner-DoYBfalR.js +1 -0
- package/dist/showcase/assets/spinner-UsLsOYzn.js +30 -0
- package/dist/showcase/assets/square-pen-BGTVdnt1.js +1 -0
- package/dist/showcase/assets/stacked-avatars-BWfVX1Ov.js +1 -0
- package/dist/showcase/assets/star-NsPNO9gR.js +1 -0
- package/dist/showcase/assets/startOfDay-zJBpxLuW.js +1 -0
- package/dist/showcase/assets/styles-DA7a7hVy.js +1 -0
- package/dist/showcase/assets/switch-C62S4U2o.js +1 -0
- package/dist/showcase/assets/switch-CYQcinJZ.js +1 -0
- package/dist/showcase/assets/table-w4IABkpa.js +1 -0
- package/dist/showcase/assets/table-xgB63UrY.js +390 -0
- package/dist/showcase/assets/tabs-BFTEaTXj.js +19 -0
- package/dist/showcase/assets/tabs-oMJn9Ujq.js +1 -0
- package/dist/showcase/assets/text-button-BgcutPuu.js +1 -0
- package/dist/showcase/assets/text-link-CS9thOWL.js +1 -0
- package/dist/showcase/assets/textarea-BOBx4EM6.js +1 -0
- package/dist/showcase/assets/textarea-CTzYZZqa.js +1 -0
- package/dist/showcase/assets/timelines-CK07mEBK.js +186 -0
- package/dist/showcase/assets/toggle-group-CSPdPT6G.js +1 -0
- package/dist/showcase/assets/toggles-DDSdl-gA.js +71 -0
- package/dist/showcase/assets/toggles-group-Y2BdKEFB.js +32 -0
- package/dist/showcase/assets/trash-2-C-FAptQP.js +1 -0
- package/dist/showcase/assets/trending-up-BmLhdF_w.js +1 -0
- package/dist/showcase/assets/truck-pZdUS_as.js +1 -0
- package/dist/showcase/assets/typography-CnBH2z7f.js +214 -0
- package/dist/showcase/assets/ui-badge-Cl6INRO5.js +28 -0
- package/dist/showcase/assets/ui-card-B5P-thNu.js +30 -0
- package/dist/showcase/assets/ui-table-B32RILKk.js +42 -0
- package/dist/showcase/assets/upload-tray-mu6bR2ZE.js +138 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CzDaXxmM.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-B0DZvDFu.js +1 -0
- package/dist/showcase/assets/useCompositeItem-BVIVLT9X.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-JEMeTFPx.js +1 -0
- package/dist/showcase/assets/useControlled-ZjqBfPCn.js +1 -0
- package/dist/showcase/assets/useLabelableId-D8CZq8Bm.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-CopGCf3q.js +1 -0
- package/dist/showcase/assets/useRender-zuKv6JQF.js +1 -0
- package/dist/showcase/assets/useRole-08KeyiD3.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-DEuz5CGe.js +1 -0
- package/dist/showcase/assets/useValueChanged-BxFi_qyj.js +1 -0
- package/dist/showcase/assets/user-Bgc2t2_e.js +1 -0
- package/dist/showcase/assets/user-plus-F_TfagnP.js +1 -0
- package/dist/showcase/assets/users-B7G4yTCR.js +1 -0
- package/dist/showcase/assets/vendor-profile-BTQmsKM6.js +37 -0
- package/dist/showcase/assets/wrench-BdzICmjR.js +1 -0
- package/dist/showcase/assets/x-B156Wr-5.js +1 -0
- package/dist/showcase/assets/zap-B3iByjNV.js +1 -0
- package/dist/showcase/index.html +1 -1
- package/package.json +254 -19
- package/dist/_shared/accordion-7rwpgJ1k.cjs +0 -2
- package/dist/_shared/accordion-7rwpgJ1k.cjs.map +0 -1
- package/dist/_shared/accordion-DcduCEIo.js +0 -130
- package/dist/_shared/accordion-DcduCEIo.js.map +0 -1
- package/dist/_shared/action-menu-D0u-q0q-.cjs +0 -2
- package/dist/_shared/action-menu-D0u-q0q-.cjs.map +0 -1
- package/dist/_shared/action-menu-DUBXdReV.js +0 -96
- package/dist/_shared/action-menu-DUBXdReV.js.map +0 -1
- package/dist/_shared/ai-artifact-C3R0god0.cjs +0 -3
- package/dist/_shared/ai-artifact-C3R0god0.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DMjQv_Si.js +0 -1068
- package/dist/_shared/ai-artifact-DMjQv_Si.js.map +0 -1
- package/dist/_shared/alert-B2cuJGAA.cjs +0 -2
- package/dist/_shared/alert-B2cuJGAA.cjs.map +0 -1
- package/dist/_shared/alert-BKUmOI2e.js +0 -48
- package/dist/_shared/alert-BKUmOI2e.js.map +0 -1
- package/dist/_shared/avatar-BcYcRORH.cjs +0 -2
- package/dist/_shared/avatar-BcYcRORH.cjs.map +0 -1
- package/dist/_shared/avatar-CNzG6jSZ.js +0 -52
- package/dist/_shared/avatar-CNzG6jSZ.js.map +0 -1
- package/dist/_shared/badge-BbUN6W7E.js +0 -108
- package/dist/_shared/badge-BbUN6W7E.js.map +0 -1
- package/dist/_shared/badge-BjtDcU1M.cjs +0 -2
- package/dist/_shared/badge-BjtDcU1M.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-DctwTld5.js +0 -111
- package/dist/_shared/breadcrumbs-DctwTld5.js.map +0 -1
- package/dist/_shared/breadcrumbs-m0-gCdNj.cjs +0 -2
- package/dist/_shared/breadcrumbs-m0-gCdNj.cjs.map +0 -1
- package/dist/_shared/button-BCABTFLE.js +0 -46
- package/dist/_shared/button-BCABTFLE.js.map +0 -1
- package/dist/_shared/button-Ck2qS42n.js +0 -176
- package/dist/_shared/button-Ck2qS42n.js.map +0 -1
- package/dist/_shared/button-DjJ-mDI1.cjs +0 -2
- package/dist/_shared/button-DjJ-mDI1.cjs.map +0 -1
- package/dist/_shared/button-DjacsNTg.cjs +0 -2
- package/dist/_shared/button-DjacsNTg.cjs.map +0 -1
- package/dist/_shared/buttons-BVnjQ-uE.js +0 -143
- package/dist/_shared/buttons-BVnjQ-uE.js.map +0 -1
- package/dist/_shared/buttons-BdY6igTr.cjs +0 -2
- package/dist/_shared/buttons-BdY6igTr.cjs.map +0 -1
- package/dist/_shared/card-radio-group--GP1xrz_.js +0 -158
- package/dist/_shared/card-radio-group--GP1xrz_.js.map +0 -1
- package/dist/_shared/card-radio-group-DnQsWozr.cjs +0 -2
- package/dist/_shared/card-radio-group-DnQsWozr.cjs.map +0 -1
- package/dist/_shared/combobox-DBrRE1Dr.cjs +0 -2
- package/dist/_shared/combobox-DBrRE1Dr.cjs.map +0 -1
- package/dist/_shared/combobox-DYztEJaw.js +0 -746
- package/dist/_shared/combobox-DYztEJaw.js.map +0 -1
- package/dist/_shared/command-COvgXQ8r.cjs +0 -2
- package/dist/_shared/command-COvgXQ8r.cjs.map +0 -1
- package/dist/_shared/command-CvZ6Emb8.js +0 -39
- package/dist/_shared/command-CvZ6Emb8.js.map +0 -1
- package/dist/_shared/command-DTFQIUVG.cjs +0 -2
- package/dist/_shared/command-DTFQIUVG.cjs.map +0 -1
- package/dist/_shared/command-Sq8XbHbA.js +0 -123
- package/dist/_shared/command-Sq8XbHbA.js.map +0 -1
- package/dist/_shared/comments-BOFU1GYY.js +0 -945
- package/dist/_shared/comments-BOFU1GYY.js.map +0 -1
- package/dist/_shared/comments-BbTYFzx6.cjs +0 -2
- package/dist/_shared/comments-BbTYFzx6.cjs.map +0 -1
- package/dist/_shared/containers-BthqdOhA.cjs +0 -2
- package/dist/_shared/containers-BthqdOhA.cjs.map +0 -1
- package/dist/_shared/containers-CD2xs1nk.js +0 -19
- package/dist/_shared/containers-CD2xs1nk.js.map +0 -1
- package/dist/_shared/content-container-CFfYbWoa.js +0 -33
- package/dist/_shared/content-container-CFfYbWoa.js.map +0 -1
- package/dist/_shared/content-container-CReiVugL.cjs +0 -2
- package/dist/_shared/content-container-CReiVugL.cjs.map +0 -1
- package/dist/_shared/copyable-CweQ72QI.cjs +0 -2
- package/dist/_shared/copyable-CweQ72QI.cjs.map +0 -1
- package/dist/_shared/copyable-JgsTp6ev.js +0 -38
- package/dist/_shared/copyable-JgsTp6ev.js.map +0 -1
- package/dist/_shared/date-picker-DI4b-SeE.cjs +0 -2
- package/dist/_shared/date-picker-DI4b-SeE.cjs.map +0 -1
- package/dist/_shared/date-picker-DTazvODY.js +0 -1352
- package/dist/_shared/date-picker-DTazvODY.js.map +0 -1
- package/dist/_shared/date-pickers-CLzuzmuc.cjs +0 -2
- package/dist/_shared/date-pickers-CLzuzmuc.cjs.map +0 -1
- package/dist/_shared/date-pickers-CWPxP3zy.js +0 -330
- package/dist/_shared/date-pickers-CWPxP3zy.js.map +0 -1
- package/dist/_shared/dialog-2MJmaj_d.js +0 -101
- package/dist/_shared/dialog-2MJmaj_d.js.map +0 -1
- package/dist/_shared/dialog-KKD0i1T8.cjs +0 -2
- package/dist/_shared/dialog-KKD0i1T8.cjs.map +0 -1
- package/dist/_shared/display-BCy1Ti7T.cjs +0 -8
- package/dist/_shared/display-BCy1Ti7T.cjs.map +0 -1
- package/dist/_shared/display-DUpkE2aS.js +0 -1462
- package/dist/_shared/display-DUpkE2aS.js.map +0 -1
- package/dist/_shared/dropdown-menu-BebBffUH.cjs +0 -2
- package/dist/_shared/dropdown-menu-BebBffUH.cjs.map +0 -1
- package/dist/_shared/dropdown-menu-xdGEynC8.js +0 -147
- package/dist/_shared/dropdown-menu-xdGEynC8.js.map +0 -1
- package/dist/_shared/form-field-rOj3cm6C.js +0 -319
- package/dist/_shared/form-field-rOj3cm6C.js.map +0 -1
- package/dist/_shared/form-field-rcyIIHjR.cjs +0 -2
- package/dist/_shared/form-field-rcyIIHjR.cjs.map +0 -1
- package/dist/_shared/form-sizing--bs_xPe2.cjs +0 -2
- package/dist/_shared/form-sizing--bs_xPe2.cjs.map +0 -1
- package/dist/_shared/form-sizing-CkKcs5fi.js +0 -21
- package/dist/_shared/form-sizing-CkKcs5fi.js.map +0 -1
- package/dist/_shared/format-BlVEsPyT.js +0 -48
- package/dist/_shared/format-BlVEsPyT.js.map +0 -1
- package/dist/_shared/format-DYVtSA2I.cjs +0 -2
- package/dist/_shared/format-DYVtSA2I.cjs.map +0 -1
- package/dist/_shared/forms-BAVsxxRk.js +0 -3374
- package/dist/_shared/forms-BAVsxxRk.js.map +0 -1
- package/dist/_shared/forms-DaZ3LsYc.cjs +0 -2
- package/dist/_shared/forms-DaZ3LsYc.cjs.map +0 -1
- package/dist/_shared/header-BtTMsQ5P.cjs +0 -2
- package/dist/_shared/header-BtTMsQ5P.cjs.map +0 -1
- package/dist/_shared/header-DpW4UWV6.js +0 -369
- package/dist/_shared/header-DpW4UWV6.js.map +0 -1
- package/dist/_shared/hooks-Bsm917yh.cjs +0 -2
- package/dist/_shared/hooks-Bsm917yh.cjs.map +0 -1
- package/dist/_shared/hooks-CX-SICd4.js +0 -118
- package/dist/_shared/hooks-CX-SICd4.js.map +0 -1
- package/dist/_shared/icon-badge-DGKpbo9_.cjs +0 -2
- package/dist/_shared/icon-badge-DGKpbo9_.cjs.map +0 -1
- package/dist/_shared/icon-badge-DoClA_9q.js +0 -52
- package/dist/_shared/icon-badge-DoClA_9q.js.map +0 -1
- package/dist/_shared/input-BXt-YtVs.cjs +0 -2
- package/dist/_shared/input-BXt-YtVs.cjs.map +0 -1
- package/dist/_shared/input-Bx4LeLhn.js +0 -17
- package/dist/_shared/input-Bx4LeLhn.js.map +0 -1
- package/dist/_shared/input-ChZGIhtS.cjs +0 -2
- package/dist/_shared/input-ChZGIhtS.cjs.map +0 -1
- package/dist/_shared/input-Cwv1-5jt.js +0 -182
- package/dist/_shared/input-Cwv1-5jt.js.map +0 -1
- package/dist/_shared/item-BmTYKzEb.js +0 -224
- package/dist/_shared/item-BmTYKzEb.js.map +0 -1
- package/dist/_shared/item-BtR-bz96.cjs +0 -2
- package/dist/_shared/item-BtR-bz96.cjs.map +0 -1
- package/dist/_shared/mentions-DVCjaO_z.cjs +0 -2
- package/dist/_shared/mentions-DVCjaO_z.cjs.map +0 -1
- package/dist/_shared/mentions-DzG8mX5H.js +0 -493
- package/dist/_shared/mentions-DzG8mX5H.js.map +0 -1
- package/dist/_shared/money-display-B5oxCs_0.cjs +0 -2
- package/dist/_shared/money-display-B5oxCs_0.cjs.map +0 -1
- package/dist/_shared/money-display-C0wI02ou.js +0 -198
- package/dist/_shared/money-display-C0wI02ou.js.map +0 -1
- package/dist/_shared/navigation-BA2nsTgU.cjs +0 -2
- package/dist/_shared/navigation-BA2nsTgU.cjs.map +0 -1
- package/dist/_shared/navigation-DHyaf-RZ.js +0 -420
- package/dist/_shared/navigation-DHyaf-RZ.js.map +0 -1
- package/dist/_shared/overlays-Kl6Gp6WR.js +0 -633
- package/dist/_shared/overlays-Kl6Gp6WR.js.map +0 -1
- package/dist/_shared/overlays-W6j-Pe1L.cjs +0 -2
- package/dist/_shared/overlays-W6j-Pe1L.cjs.map +0 -1
- package/dist/_shared/page-DROZhtWT.js +0 -263
- package/dist/_shared/page-DROZhtWT.js.map +0 -1
- package/dist/_shared/page-lh9Rcx_d.cjs +0 -2
- package/dist/_shared/page-lh9Rcx_d.cjs.map +0 -1
- package/dist/_shared/popover-BTEwjJZS.cjs +0 -2
- package/dist/_shared/popover-BTEwjJZS.cjs.map +0 -1
- package/dist/_shared/popover-CF9VWt-l.js +0 -83
- package/dist/_shared/popover-CF9VWt-l.js.map +0 -1
- package/dist/_shared/popover-menu-BYesl29w.js +0 -95
- package/dist/_shared/popover-menu-BYesl29w.js.map +0 -1
- package/dist/_shared/popover-menu-DF9sWz61.cjs +0 -2
- package/dist/_shared/popover-menu-DF9sWz61.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-UZghkgsh.cjs +0 -2
- package/dist/_shared/rich-text-editor-UZghkgsh.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-fUeuK-rY.js +0 -608
- package/dist/_shared/rich-text-editor-fUeuK-rY.js.map +0 -1
- package/dist/_shared/scroll-area-XJLcCczs.js +0 -41
- package/dist/_shared/scroll-area-XJLcCczs.js.map +0 -1
- package/dist/_shared/scroll-area-y8ZJoS97.cjs +0 -2
- package/dist/_shared/scroll-area-y8ZJoS97.cjs.map +0 -1
- package/dist/_shared/select-D8MYF4f7.js +0 -85
- package/dist/_shared/select-D8MYF4f7.js.map +0 -1
- package/dist/_shared/select-DxAiUfpM.cjs +0 -2
- package/dist/_shared/select-DxAiUfpM.cjs.map +0 -1
- package/dist/_shared/separator-BazqiQ9s.js +0 -16
- package/dist/_shared/separator-BazqiQ9s.js.map +0 -1
- package/dist/_shared/separator-DSkXMOXq.cjs +0 -2
- package/dist/_shared/separator-DSkXMOXq.cjs.map +0 -1
- package/dist/_shared/sheet-7iHOs-IU.js +0 -100
- package/dist/_shared/sheet-7iHOs-IU.js.map +0 -1
- package/dist/_shared/sheet-qKtoyxgi.cjs +0 -2
- package/dist/_shared/sheet-qKtoyxgi.cjs.map +0 -1
- package/dist/_shared/sidebar-CaTUJ3t-.js +0 -537
- package/dist/_shared/sidebar-CaTUJ3t-.js.map +0 -1
- package/dist/_shared/sidebar-DVjfsm-f.cjs +0 -2
- package/dist/_shared/sidebar-DVjfsm-f.cjs.map +0 -1
- package/dist/_shared/sidebar-aV5DVAVg.js +0 -371
- package/dist/_shared/sidebar-aV5DVAVg.js.map +0 -1
- package/dist/_shared/sidebar-mL0jSJ8u.cjs +0 -2
- package/dist/_shared/sidebar-mL0jSJ8u.cjs.map +0 -1
- package/dist/_shared/skeleton-Bwv_j9jJ.cjs +0 -2
- package/dist/_shared/skeleton-Bwv_j9jJ.cjs.map +0 -1
- package/dist/_shared/skeleton-DyKa-Ed-.js +0 -14
- package/dist/_shared/skeleton-DyKa-Ed-.js.map +0 -1
- package/dist/_shared/slot-ClIPTht1.cjs +0 -2
- package/dist/_shared/slot-ClIPTht1.cjs.map +0 -1
- package/dist/_shared/slot-CrS_VEVl.js +0 -18
- package/dist/_shared/slot-CrS_VEVl.js.map +0 -1
- package/dist/_shared/smart-card-Ddsjvf7r.cjs +0 -2
- package/dist/_shared/smart-card-Ddsjvf7r.cjs.map +0 -1
- package/dist/_shared/smart-card-hJ01usWt.js +0 -360
- package/dist/_shared/smart-card-hJ01usWt.js.map +0 -1
- package/dist/_shared/spinner-D-pcMBt1.js +0 -67
- package/dist/_shared/spinner-D-pcMBt1.js.map +0 -1
- package/dist/_shared/spinner-zbmhn0vE.cjs +0 -2
- package/dist/_shared/spinner-zbmhn0vE.cjs.map +0 -1
- package/dist/_shared/switch-C5J37LMI.cjs +0 -2
- package/dist/_shared/switch-C5J37LMI.cjs.map +0 -1
- package/dist/_shared/switch-ClGgHcEb.js +0 -51
- package/dist/_shared/switch-ClGgHcEb.js.map +0 -1
- package/dist/_shared/textarea-DeISZfHw.js +0 -119
- package/dist/_shared/textarea-DeISZfHw.js.map +0 -1
- package/dist/_shared/textarea-iR9txrty.cjs +0 -2
- package/dist/_shared/textarea-iR9txrty.cjs.map +0 -1
- package/dist/_shared/tooltip-CEqxHWxQ.js +0 -49
- package/dist/_shared/tooltip-CEqxHWxQ.js.map +0 -1
- package/dist/_shared/tooltip-DPv0LGr9.cjs +0 -2
- package/dist/_shared/tooltip-DPv0LGr9.cjs.map +0 -1
- package/dist/_shared/typography-BtPQBvSm.js +0 -135
- package/dist/_shared/typography-BtPQBvSm.js.map +0 -1
- package/dist/_shared/typography-DClleVWi.cjs +0 -2
- package/dist/_shared/typography-DClleVWi.cjs.map +0 -1
- package/dist/showcase/assets/AreaChart-D-RqNtqG.js +0 -6
- package/dist/showcase/assets/CSPContext-t69BXyB7.js +0 -1
- package/dist/showcase/assets/CompositeItem-DHNLgEeV.js +0 -1
- package/dist/showcase/assets/CompositeRoot-xq_0ZFev.js +0 -1
- package/dist/showcase/assets/DialogTrigger-Cl7n_3xX.js +0 -1
- package/dist/showcase/assets/FormContext-CXdwDz7F.js +0 -1
- package/dist/showcase/assets/PreviewLayout-BHemtKEf.js +0 -1
- package/dist/showcase/assets/RadioGroup-DXAt4VZN.js +0 -1
- package/dist/showcase/assets/Separator-C9vXwWmZ.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-iF4ctnIz.js +0 -1
- package/dist/showcase/assets/accordion-DzkNgNcB.js +0 -172
- package/dist/showcase/assets/accordion-variants-DP5-oxLe.js +0 -1
- package/dist/showcase/assets/action-menu-CyA2e9TF.js +0 -1
- package/dist/showcase/assets/activities-Dt-dO5ew.js +0 -501
- package/dist/showcase/assets/activities-feed-card-DZdFekXl.js +0 -1
- package/dist/showcase/assets/admin-C2SeJmE7.js +0 -80
- package/dist/showcase/assets/ai-Cwo0h_Xn.js +0 -41
- package/dist/showcase/assets/ai-artifact-3UJofyU5.js +0 -2
- package/dist/showcase/assets/ai-chat-CrFtG_Vg.js +0 -568
- package/dist/showcase/assets/ai-elements-iJ15Y7pS.js +0 -379
- package/dist/showcase/assets/ai-new-DuznZydd.js +0 -167
- package/dist/showcase/assets/ai-tool-call-CTcGGAQU.js +0 -1
- package/dist/showcase/assets/alert-CUGGckOX.js +0 -1
- package/dist/showcase/assets/alert-tWped3Sw.js +0 -59
- package/dist/showcase/assets/api-key-list-Q5LAqzMn.js +0 -73
- package/dist/showcase/assets/arrow-down-CfwCPcHL.js +0 -1
- package/dist/showcase/assets/arrow-left-BKx9qNX6.js +0 -1
- package/dist/showcase/assets/arrow-right-DlEpbqEk.js +0 -1
- package/dist/showcase/assets/arrow-up-BYQ4F9L1.js +0 -1
- package/dist/showcase/assets/arrow-up-right-C8r6vYfE.js +0 -1
- package/dist/showcase/assets/avatar-BuZ3zTbH.js +0 -57
- package/dist/showcase/assets/avatar-DR2mqPpY.js +0 -1
- package/dist/showcase/assets/badge-D1HLfP93.js +0 -28
- package/dist/showcase/assets/badge-check-oP2z_95u.js +0 -1
- package/dist/showcase/assets/bell-BTX2D-ES.js +0 -1
- package/dist/showcase/assets/bot-CKh5XgUG.js +0 -1
- package/dist/showcase/assets/box-F1uaZ6iw.js +0 -1
- package/dist/showcase/assets/brain-dD_ppLUa.js +0 -1
- package/dist/showcase/assets/brand-zisZOFKf.js +0 -40
- package/dist/showcase/assets/breadcrumb-C7vv0L8K.js +0 -52
- package/dist/showcase/assets/breadcrumb-fay5sLba.js +0 -1
- package/dist/showcase/assets/breadcrumbs-DklRXepp.js +0 -1
- package/dist/showcase/assets/briefcase-D9M4aNmi.js +0 -1
- package/dist/showcase/assets/button-DbhXfR1N.js +0 -44
- package/dist/showcase/assets/button-group-BpdhyMif.js +0 -1
- package/dist/showcase/assets/buttons-XexbmUtN.js +0 -259
- package/dist/showcase/assets/calendar-BADJgjpI.js +0 -16
- package/dist/showcase/assets/calendar-Djh3xLVx.js +0 -1
- package/dist/showcase/assets/calendar-dWZ2-0gU.js +0 -1
- package/dist/showcase/assets/card-BUSAPPkx.js +0 -1
- package/dist/showcase/assets/cards-DHBPe01w.js +0 -328
- package/dist/showcase/assets/chart-column-6l5wIZ0h.js +0 -1
- package/dist/showcase/assets/chevron-down-at2vrt1V.js +0 -1
- package/dist/showcase/assets/chevron-left-DIs3WYNO.js +0 -1
- package/dist/showcase/assets/chevron-right-BNy0Or0x.js +0 -1
- package/dist/showcase/assets/chevron-up-CX7619BJ.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-Be6eciau.js +0 -1
- package/dist/showcase/assets/circle-C0Yd1DDS.js +0 -1
- package/dist/showcase/assets/circle-alert-DfQp_X3_.js +0 -1
- package/dist/showcase/assets/circle-check-BkqQe1tv.js +0 -1
- package/dist/showcase/assets/circle-check-big-BXxHUhuc.js +0 -1
- package/dist/showcase/assets/circle-dot-HeRgxZxN.js +0 -1
- package/dist/showcase/assets/circle-question-mark-BgS4fb6N.js +0 -1
- package/dist/showcase/assets/circle-x-CMzwDsaf.js +0 -1
- package/dist/showcase/assets/clock-ynCzs_rR.js +0 -1
- package/dist/showcase/assets/code-xml-B8aVstrJ.js +0 -1
- package/dist/showcase/assets/collapsible-C8CKdiRn.js +0 -27
- package/dist/showcase/assets/collapsible-u43HxDHB.js +0 -1
- package/dist/showcase/assets/combobox-D-6ff0VG.js +0 -622
- package/dist/showcase/assets/command-BsHudlBe.js +0 -1
- package/dist/showcase/assets/command-DZqmBolX.js +0 -45
- package/dist/showcase/assets/comment-composer-OnxlkC5y.js +0 -1
- package/dist/showcase/assets/comment-item-DmZ1AJ2Y.js +0 -1
- package/dist/showcase/assets/comments-BjIVksjE.js +0 -349
- package/dist/showcase/assets/commerce-3T1GxvrA.js +0 -78
- package/dist/showcase/assets/commerce-extras-CYv_uRQR.js +0 -179
- package/dist/showcase/assets/composite-mol0-2zZ.js +0 -1
- package/dist/showcase/assets/contact-card-CWAANJqn.js +0 -65
- package/dist/showcase/assets/content-container-D3Phw6h8.js +0 -1
- package/dist/showcase/assets/copyable-BdzUH3U3.js +0 -96
- package/dist/showcase/assets/course-card-Cb6Y2vJ6.js +0 -113
- package/dist/showcase/assets/cpu-CRrekbGQ.js +0 -1
- package/dist/showcase/assets/credit-card--5vg7bQy.js +0 -1
- package/dist/showcase/assets/currency-VuqnKj_Y.js +0 -149
- package/dist/showcase/assets/dark-surfaces-DEyBimFz.js +0 -90
- package/dist/showcase/assets/database-Bnvw0wVV.js +0 -1
- package/dist/showcase/assets/date-block-IhoCVl_d.js +0 -1
- package/dist/showcase/assets/date-picker-DnJpsnaF.js +0 -1
- package/dist/showcase/assets/date-pickers-CEbieq-R.js +0 -110
- package/dist/showcase/assets/dense-info-B04QmrOd.js +0 -106
- package/dist/showcase/assets/dialog-DotEO3IO.js +0 -1
- package/dist/showcase/assets/display-hK7Dtm-B.js +0 -392
- package/dist/showcase/assets/dist-DQgGKvzA.js +0 -1
- package/dist/showcase/assets/dollar-sign-gJtl-XaL.js +0 -1
- package/dist/showcase/assets/download-CMrNgeil.js +0 -1
- package/dist/showcase/assets/dropdown-menu-Cqv6D7Sb.js +0 -1
- package/dist/showcase/assets/dropzone-v69fWHZJ.js +0 -1
- package/dist/showcase/assets/ellipsis-CgqPlt6Z.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-CiJqC0n2.js +0 -1
- package/dist/showcase/assets/empty-DYHzk-Gb.js +0 -1
- package/dist/showcase/assets/empty-item-CTwvC_3M.js +0 -49
- package/dist/showcase/assets/empty-state-eUgJ4h41.js +0 -188
- package/dist/showcase/assets/enhanced-activities-XU2u5gO6.js +0 -359
- package/dist/showcase/assets/esm-B7xAMXnv.js +0 -2
- package/dist/showcase/assets/event-calendar-D2rjpzq1.js +0 -138
- package/dist/showcase/assets/event-log-BxER62Ds.js +0 -326
- package/dist/showcase/assets/example-DPfw-R7_.js +0 -1
- package/dist/showcase/assets/external-link-DJNGkjZ0.js +0 -1
- package/dist/showcase/assets/eye-BQU3UqWi.js +0 -1
- package/dist/showcase/assets/feature-announcement-CjGQEODB.js +0 -34
- package/dist/showcase/assets/file-DBpbC8g-.js +0 -1
- package/dist/showcase/assets/file-text-DokBif5V.js +0 -1
- package/dist/showcase/assets/filters-DM2olMKy.js +0 -78
- package/dist/showcase/assets/flag-hAuZbHU1.js +0 -1
- package/dist/showcase/assets/folder-open-DqubQ0ts.js +0 -1
- package/dist/showcase/assets/form-sizing-CfbZF8Ja.js +0 -1
- package/dist/showcase/assets/format-gCABLair.js +0 -1
- package/dist/showcase/assets/forms-FsAT0C-I.js +0 -790
- package/dist/showcase/assets/generic-BUuo7j09.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-l8uxcPNL.js +0 -1
- package/dist/showcase/assets/gift-CS7Tg3kD.js +0 -1
- package/dist/showcase/assets/giftcard-cards-h1ffLs9F.js +0 -85
- package/dist/showcase/assets/git-branch-D4-6vv6t.js +0 -1
- package/dist/showcase/assets/global-search-BUyhhsQv.js +0 -90
- package/dist/showcase/assets/globe-CqLYhUfl.js +0 -1
- package/dist/showcase/assets/gradient-card-Bwr9OLIL.js +0 -58
- package/dist/showcase/assets/header-notifications-BWla1yhM.js +0 -1
- package/dist/showcase/assets/heart-DfZtXfIP.js +0 -1
- package/dist/showcase/assets/house-DhIReDt8.js +0 -1
- package/dist/showcase/assets/icon-badge-BgRFYZEc.js +0 -1
- package/dist/showcase/assets/image-D_eNEZWQ.js +0 -1
- package/dist/showcase/assets/inbox-5sFkO7gC.js +0 -1
- package/dist/showcase/assets/index-B-Z7p0So.js +0 -10
- package/dist/showcase/assets/inertValue-NU_Amr-x.js +0 -1
- package/dist/showcase/assets/info-DyB6KH3Z.js +0 -1
- package/dist/showcase/assets/inline-stat-D2aaM1Vt.js +0 -1
- package/dist/showcase/assets/input-BS64kyoq.js +0 -1
- package/dist/showcase/assets/input-DWLyniGt.js +0 -1
- package/dist/showcase/assets/input-group-BS8j5Eek.js +0 -47
- package/dist/showcase/assets/input-group-B_E_3EGS.js +0 -1
- package/dist/showcase/assets/inputs-DOQ2foig.js +0 -49
- package/dist/showcase/assets/invoice-header-C2-uQE_s.js +0 -36
- package/dist/showcase/assets/invoice-items-BUunRJqA.js +0 -36
- package/dist/showcase/assets/invoice-mini-BrLMrzN6.js +0 -14
- package/dist/showcase/assets/invoice-table-CaB9Z8jI.js +0 -30
- package/dist/showcase/assets/isSameDay-rwvIyLOL.js +0 -1
- package/dist/showcase/assets/isToday-CIAzBrb5.js +0 -1
- package/dist/showcase/assets/italic-B02a4PdD.js +0 -1
- package/dist/showcase/assets/item-C-0RObvI.js +0 -117
- package/dist/showcase/assets/item-CCu0Ufaq.js +0 -1
- package/dist/showcase/assets/item-DF4m_56j.js +0 -1
- package/dist/showcase/assets/kanban-BgW23a7P.js +0 -175
- package/dist/showcase/assets/label-MdV7pglj.js +0 -1
- package/dist/showcase/assets/layout-containers-nKVReEJB.js +0 -96
- package/dist/showcase/assets/layout-header-CKyxHHPC.js +0 -170
- package/dist/showcase/assets/layout-page-ClD2yMnK.js +0 -122
- package/dist/showcase/assets/layout-sidebar-jdQnYDiT.js +0 -224
- package/dist/showcase/assets/layout-users-Cv849xnU.js +0 -104
- package/dist/showcase/assets/lib-BHW4JERQ.js +0 -1
- package/dist/showcase/assets/lock-B8bfl9sZ.js +0 -1
- package/dist/showcase/assets/mail-DmOBTX4I.js +0 -1
- package/dist/showcase/assets/map-ButgRl8f.js +0 -124
- package/dist/showcase/assets/map-pin-o3egisLq.js +0 -1
- package/dist/showcase/assets/menus-DdXgYKVA.js +0 -89
- package/dist/showcase/assets/message-square-Bl6P4TA0.js +0 -1
- package/dist/showcase/assets/metadata-list-aXo96h_U.js +0 -278
- package/dist/showcase/assets/metric-BLHKuZtE.js +0 -1
- package/dist/showcase/assets/metric-grid-6Dpj5eV3.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-m389ipmG.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-B-1IUlHf.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-B8tvK_RB.js +0 -77
- package/dist/showcase/assets/metrics-comparison-DKJ7Js3F.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-BlRnJoI0.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-COI7f64X.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-LRfmKhsy.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-DmqIQVVR.js +0 -42
- package/dist/showcase/assets/metrics-overview-Dbf5RM2k.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-D5oevQvv.js +0 -54
- package/dist/showcase/assets/minus-D-jmUi0G.js +0 -1
- package/dist/showcase/assets/money-display-C__61373.js +0 -1
- package/dist/showcase/assets/month-year-picker-BfBQePUY.js +0 -1
- package/dist/showcase/assets/navigation-DUAe-sQV.js +0 -86
- package/dist/showcase/assets/navigation-extras-itSAf6QT.js +0 -43
- package/dist/showcase/assets/navigation-fAOvwIlP.js +0 -230
- package/dist/showcase/assets/onboarding-checklist-1gmzk3_J.js +0 -119
- package/dist/showcase/assets/overlays-BMTBOIEI.js +0 -88
- package/dist/showcase/assets/overlays-Lu16yJWM.js +0 -393
- package/dist/showcase/assets/package-BIa1hPVQ.js +0 -1
- package/dist/showcase/assets/page-action-button-C5NiQHnP.js +0 -1
- package/dist/showcase/assets/page-header-Cwf9DuhD.js +0 -1
- package/dist/showcase/assets/pagination-9iSNmdCx.js +0 -1
- package/dist/showcase/assets/pagination-MjniF-7j.js +0 -42
- package/dist/showcase/assets/paperclip-CaNLUOIA.js +0 -1
- package/dist/showcase/assets/pencil-DTLGPoc_.js +0 -1
- package/dist/showcase/assets/phone-XvU6LndA.js +0 -1
- package/dist/showcase/assets/plus-BDSCn8ol.js +0 -1
- package/dist/showcase/assets/popover-CvhuubS6.js +0 -1
- package/dist/showcase/assets/popover-DUQqLZN2.js +0 -1
- package/dist/showcase/assets/popover-menu-DVGBuFpL.js +0 -1
- package/dist/showcase/assets/progress-BQopCRpV.js +0 -1
- package/dist/showcase/assets/progress-CvSUR260.js +0 -18
- package/dist/showcase/assets/props-table-BzUnIcv-.js +0 -1
- package/dist/showcase/assets/quote-D55lkoXn.js +0 -1
- package/dist/showcase/assets/receipt-D3ilhl9U.js +0 -1
- package/dist/showcase/assets/refresh-cw-Csl2LQ4l.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-CM5i142y.js +0 -1
- package/dist/showcase/assets/rich-text-editor-Bz7jWvPv.js +0 -124
- package/dist/showcase/assets/rich-text-editor-DWKFpgNI.js +0 -141
- package/dist/showcase/assets/rotate-ccw-BnkpK7eq.js +0 -1
- package/dist/showcase/assets/scroll-area-BTVLd58j.js +0 -1
- package/dist/showcase/assets/scroll-area-CgFEDepJ.js +0 -32
- package/dist/showcase/assets/select-B7-tZDlG.js +0 -1
- package/dist/showcase/assets/send-BhjEdZ06.js +0 -1
- package/dist/showcase/assets/separator-CJayjKGP.js +0 -28
- package/dist/showcase/assets/separator-CZ_sPWQj.js +0 -1
- package/dist/showcase/assets/settings-Duj7gAZe.js +0 -1
- package/dist/showcase/assets/sheet-BMabZ_Gj.js +0 -1
- package/dist/showcase/assets/shield-C22sWOf4.js +0 -1
- package/dist/showcase/assets/shield-alert-DgZ6UO46.js +0 -1
- package/dist/showcase/assets/shield-check-jGSgmijm.js +0 -1
- package/dist/showcase/assets/shopping-bag-Cd09Ga6D.js +0 -1
- package/dist/showcase/assets/sidebar.context-CXTHS3vn.js +0 -1
- package/dist/showcase/assets/skeleton-Dmp4eC1A.js +0 -1
- package/dist/showcase/assets/skeleton-FLNbc7QP.js +0 -29
- package/dist/showcase/assets/smart-card-50WN9sCI.js +0 -1
- package/dist/showcase/assets/sonner-DR_DYpqb.js +0 -22
- package/dist/showcase/assets/sortable.esm-C_l8_Iqt.js +0 -5
- package/dist/showcase/assets/sparkles-C-fyahzv.js +0 -1
- package/dist/showcase/assets/spinner-B8jgVQNj.js +0 -30
- package/dist/showcase/assets/spinner-C4zPRpI0.js +0 -49
- package/dist/showcase/assets/spinner-DFjHsQlR.js +0 -1
- package/dist/showcase/assets/square-pen-Dp7lCfI3.js +0 -1
- package/dist/showcase/assets/stacked-avatars-CTckbUiW.js +0 -1
- package/dist/showcase/assets/star-l00ivfkD.js +0 -1
- package/dist/showcase/assets/startOfDay-Xmododib.js +0 -1
- package/dist/showcase/assets/styles-zuwR0q1z.js +0 -1
- package/dist/showcase/assets/switch-D3LrIrTQ.js +0 -1
- package/dist/showcase/assets/switch-ylXVyh_N.js +0 -1
- package/dist/showcase/assets/table-Cn3-19zb.js +0 -1
- package/dist/showcase/assets/table-ao3IcAnF.js +0 -390
- package/dist/showcase/assets/tabs-CTLQKtiu.js +0 -19
- package/dist/showcase/assets/tabs-lc1fX94A.js +0 -1
- package/dist/showcase/assets/text-button-Fu8UY1A8.js +0 -1
- package/dist/showcase/assets/text-link--EyGasJN.js +0 -1
- package/dist/showcase/assets/textarea-BdhnlNrF.js +0 -1
- package/dist/showcase/assets/textarea-D1kG3a9B.js +0 -1
- package/dist/showcase/assets/timelines-DF3tNgyG.js +0 -186
- package/dist/showcase/assets/toggle-group-CfxuWsv9.js +0 -1
- package/dist/showcase/assets/toggles-CacdBPlV.js +0 -71
- package/dist/showcase/assets/toggles-group-CRhgTGmL.js +0 -32
- package/dist/showcase/assets/trash-2-B0_GprQM.js +0 -1
- package/dist/showcase/assets/trending-up-B202l1b6.js +0 -1
- package/dist/showcase/assets/truck-Bl1pNrHi.js +0 -1
- package/dist/showcase/assets/typography-DEtOxBlR.js +0 -214
- package/dist/showcase/assets/ui-badge-n4RA0J5b.js +0 -28
- package/dist/showcase/assets/ui-card-Ck-kzrTh.js +0 -30
- package/dist/showcase/assets/ui-table-gzOp82pf.js +0 -42
- package/dist/showcase/assets/upload-tray-VvKdTZSi.js +0 -138
- package/dist/showcase/assets/useAnchoredPopupScrollLock-Cu2ZwN7Z.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-C6_cdQ7B.js +0 -1
- package/dist/showcase/assets/useCompositeItem-BfUPqXoj.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-Cf2lpKB8.js +0 -1
- package/dist/showcase/assets/useControlled-C6q3nmcf.js +0 -1
- package/dist/showcase/assets/useLabelableId-CfPT16c1.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CGeqRuuY.js +0 -1
- package/dist/showcase/assets/useRender-CoUlh0uZ.js +0 -1
- package/dist/showcase/assets/useRole-DSPUSyVX.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-BwZ1HD24.js +0 -1
- package/dist/showcase/assets/useValueChanged-Dej794I1.js +0 -1
- package/dist/showcase/assets/user-3L762Mec.js +0 -1
- package/dist/showcase/assets/user-plus-9WRYjS04.js +0 -1
- package/dist/showcase/assets/users-CxKZ7gt8.js +0 -1
- package/dist/showcase/assets/vendor-profile-BaCptdMF.js +0 -37
- package/dist/showcase/assets/wrench-Duh91tnW.js +0 -1
- package/dist/showcase/assets/x-t42iKYpL.js +0 -1
- package/dist/showcase/assets/zap-D0z3Tv_L.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker-DTazvODY.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 table: \"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} 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\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\tclassName=\"h-8 w-12 text-center text-sm\"\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} 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-9` (matches `formControlSizeClasses.sm`) + `px-3`\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-9 !px-3 !rounded-md !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\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/>\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/>\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/>\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\t...baseProps\n}: DatepickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\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-2 h-4 w-4\" />\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\tfromYear={baseProps.yearSelection?.fromYear}\n\t\t\t\t\t\ttoYear={baseProps.yearSelection?.toYear}\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=\"sm\">{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\t...baseProps\n}: MultipleDatepickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\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-2 h-4 w-4\" />\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\tfromYear={baseProps.yearSelection?.fromYear}\n\t\t\t\t\t\ttoYear={baseProps.yearSelection?.toYear}\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\t...baseProps\n}: DateRangePickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\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-2 h-4 w-4 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 flex-col gap-0.5 border-r p-2 min-w-[7.5rem]\">\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\tfromYear={baseProps.yearSelection?.fromYear}\n\t\t\t\t\t\t\t\ttoYear={baseProps.yearSelection?.toYear}\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=\"xs\">{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=\"xs\">{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":";;;;;;;;;;;;;;;;;;;;AAcA,SAAS,GAAS,EAChB,cACA,eACA,qBAAkB,IAClB,mBAAgB,SAChB,mBAAgB,SAChB,WACA,eACA,eACA,GAAG,KAGF;CACD,IAAM,IAAoB,GAAsB;AAEhD,QACE,kBAAC,GAAD;EACmB;EACjB,WAAW,EACT,2LACA,OAAO,GAAG,6CACV,OAAO,GAAG,iDACV,EACD;EACc;EACP;EACR,YAAY;GACV,sBAAsB,MACpB,EAAK,eAAe,GAAQ,MAAM,EAAE,OAAO,SAAS,CAAC;GACvD,GAAG;GACJ;EACD,YAAY;GACV,MAAM,EAAG,SAAS,EAAkB,KAAK;GACzC,QAAQ,EACN,4CACA,EAAkB,OACnB;GACD,OAAO,EAAG,8BAA8B,EAAkB,MAAM;GAChE,KAAK,EACH,2EACA,EAAkB,IACnB;GACD,iBAAiB,EACf,EAAe,EAAE,SAAS,GAAe,CAAC,EAC1C,+DACA,EAAkB,gBACnB;GACD,aAAa,EACX,EAAe,EAAE,SAAS,GAAe,CAAC,EAC1C,+DACA,EAAkB,YACnB;GACD,eAAe,EACb,4EACA,EAAkB,cACnB;GACD,WAAW,EACT,uFACA,EAAkB,UACnB;GACD,eAAe,EACb,oCACA,EAAkB,cACnB;GACD,UAAU,EACR,yCACA,EAAkB,SACnB;GACD,eAAe,EACb,2BACA,MAAkB,UACd,YACA,0GACJ,EAAkB,cACnB;GACD,OAAO;GACP,UAAU,EAAG,QAAQ,EAAkB,SAAS;GAChD,SAAS,EACP,8FACA,EAAkB,QACnB;GACD,MAAM,EAAG,oBAAoB,EAAkB,KAAK;GACpD,oBAAoB,EAClB,+BACA,EAAkB,mBACnB;GACD,aAAa,EACX,mDACA,EAAkB,YACnB;GACD,KAAK,EACH,0KACA,EAAM,iBACF,0EACA,wEACJ,EAAkB,IACnB;GACD,aAAa,EACX,kIACA,EAAkB,YACnB;GACD,cAAc,EAAG,gBAAgB,EAAkB,aAAa;GAChE,WAAW,EACT,iIACA,EAAkB,UACnB;GACD,OAAO,EACL,sFACA,EAAkB,MACnB;GACD,SAAS,EACP,6DACA,EAAkB,QACnB;GACD,UAAU,EACR,oCACA,EAAkB,SACnB;GACD,QAAQ,EAAG,aAAa,EAAkB,OAAO;GACjD,GAAG;GACJ;EACD,YAAY;GACV,OAAO,EAAE,cAAW,YAAS,GAAG,QAE5B,kBAAC,OAAD;IACE,aAAU;IACV,KAAK;IACL,WAAW,EAAG,EAAU;IACxB,GAAI;IACJ,CAAA;GAGN,UAAU,EAAE,cAAW,gBAAa,GAAG,QAGjC,EAFA,MAAgB,SAEf,IAID,MAAgB,UAEf,IAKF,GAXC;IAAiB,WAAW,EAAG,UAAU,EAAU;IAAE,GAAI;IAAS,CAAA;GAcxE,YAAY,EAAE,GAAG,QACf,kBAAC,GAAD;IAA2B;IAAQ,GAAI;IAAS,CAAA;GAElD,aAAa,EAAE,aAAU,GAAG,QAExB,kBAAC,MAAD;IAAI,GAAI;cACN,kBAAC,OAAD;KAAK,WAAU;KACZ;KACG,CAAA;IACH,CAAA;GAGT,GAAG;GACJ;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,EAAkB,EACzB,cACA,QACA,cACA,WACA,GAAG,KACqE;CACxE,IAAM,IAAoB,GAAsB,EAE1C,IAAM,EAAM,OAA0B,KAAK;AAKjD,QAJA,EAAM,gBAAgB;AACpB,EAAI,EAAU,WAAS,EAAI,SAAS,OAAO;IAC1C,CAAC,EAAU,QAAQ,CAAC,EAGrB,kBAAC,GAAD;EACE,SAAQ;EACR,MAAK;EACL,YAAU,EAAI,KAAK,mBAAmB,GAAQ,KAAK;EACnD,wBACE,CAAC,CAAC,EAAU,YAAY,CAAC,EAAU,eAAe,CAAC,EAAU,aAAa,CAAC,EAAU;EAEvF,oBAAkB,EAAU;EAC5B,kBAAgB,EAAU;EAC1B,qBAAmB,EAAU;EAC7B,WAAW,EACT,65BACA,EAAkB,KAClB,EACD;EACD,GAAI;EACJ,CAAA;;;;ACjMN,SAAgB,GAAiB,EAChC,WACA,WACA,iBACA,gBACA,gBACyB;CACzB,IAAM,EAAE,SAAM,YAAS,0BAAuB,IAAO,iBAAc,OAAU,GAGvE,IAAa,EAAM,cAAc;AACjC,QACL,QAAO,OAAO,KAAS,aAAa,EAAK,EAAO,GAAG;IACjD,CAAC,GAAM,EAAO,CAAC,EAGZ,IAAc,MAAe,IAAc,IAAc,KAAA;AAQ/D,KALI,KAAwB,CAAC,KAKzB,CAAC,MAAgB,CAAC,KAAW,EAAQ,WAAW,GACnD,QAAO;CAGR,IAAM,KACL,MAEI,MAAkB,gBACd;EAAE,SAAS;EAAS,aAAa;EAAS,GAE9C,MAAkB,YACd;EAAE,SAAS;EAAa,aAAa;EAAW,GAEpD,MAAkB,UACd;EAAE,SAAS;EAAa,aAAa;EAAS,GAElD,MAAkB,cACd;EAAE,SAAS;EAAa,aAAa;EAAS,GAE/C;EAAE,SAAS;EAAW,aAAa;EAAS;AAGpD,QACC,kBAAA,GAAA,EAAA,UAAA,CACC,kBAAC,GAAD,EAAa,CAAA,EACb,kBAAC,OAAD;EAAK,WAAW,EAAG,2BAA2B,EAAU;YAAxD,CAEE,CAAC,CAAC,KACF,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,CAAC,CAAC,KAAe,CAAC,CAAC,KAAc,CAAC,CAAC,KAAe,kBAAA,GAAA,EAAA,UAAA,CACjD,kBAAC,GAAD;KAAM,MAAK;eAAa;KAAmB,CAAA,EAC3C,kBAAC,GAAD;KAAM,QAAO;KAAS,WAAU;eAAQ;KAAkB,CAAA,CACxD,EAAA,CAAA;IACH,CAAC,KAAe,CAAC,CAAC,KAAc,kBAAC,GAAD;KAAM,QAAO;eAAU;KAAkB,CAAA;IACzE,CAAC,CAAC,KAAe,CAAC,KAAc,CAAC,CAAC,KAAe,kBAAC,GAAD;KAAM,MAAK;eAAa;KAAmB,CAAA;IACxF;MAIN,CAAC,CAAC,KAAW,EAAQ,SAAS,KAC9B,kBAAC,OAAD;GAAK,WAAU;aACb,EAAQ,KAAK,MAAW;IACxB,IAAM,IACL,OAAO,EAAO,YAAa,aACxB,EAAO,SAAS,EAAO,GACvB,EAAO,UACL,IAAW,EAAoB,EAAO,WAAW,KAAK;AAE5D,WACC,kBAAC,GAAD;KAEC,SAAS,EAAS;KAClB,aAAa,EAAS;KACtB,UAAU;KACV,eAAe,EAAO,QAAQ,EAAO;KACrC,WAAU;eAET,EAAO;KACA,EARH,EAAO,MAQJ;KAET;GACG,CAAA,CAEF;IACJ,EAAA,CAAA;;AAIL,GAAiB,cAAc;;;ACtG/B,SAAgB,GAAiB,EAAE,WAAQ,gBAAoC;CAC9E,IAAM,EAAE,UAAO,gBAAa,MAAM,GAAM,WAAQ,WAAW;AAE3D,QACC,kBAAC,OAAD;EACC,WAAW,EAAG,iCACb,gBACA,MAAU,WAAW,gBAAgB,aACrC,EACA;YAED,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,CAAC,CAAC,KACF,kBAAC,OAAD;IAAK,WAAU;cACd,kBAAC,GAAD,EAAM,WAAU,wBAAyB,CAAA;IACpC,CAAA,EAEP,kBAAC,OAAD;IAAK,WAAW,EAAG,UAAU,MAAU,YAAY,CAAC,KAAQ,cAAc;cAA1E,CACC,kBAAC,GAAD;KAAS,KAAI;KAAK,oBAAmB;KAAY,WAAU;eACzD;KACQ,CAAA,EACT,CAAC,CAAC,KAAe,kBAAC,GAAD;KAAM,MAAK;KAAY,WAAU;eAAQ;KAAmB,CAAA,CACzE;MACD;;EACD,CAAA;;AAIR,GAAiB,cAAc;ACH/B,SAAgB,EAAe,GAAuB;AACrD,QAAO,EAAM,UAAU,CAAC,SAAS,GAAG,IAAI;;AAGzC,SAAS,EAAM,GAAe,GAAa,GAAqB;AAC/D,QAAO,KAAK,IAAI,KAAK,IAAI,GAAO,EAAI,EAAE,EAAI;;AAG3C,SAAS,EAAmB,GAAsB,GAAsB;AACvE,KAAI,KAAQ,EACX,QAAO;CAER,IAAM,IAAU,KAAK,MAAM,IAAe,EAAK,GAAG;AAClD,QAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAS,OAAU,KAAK,EAAE,CAAC;;AAGxD,SAAgB,EAAgB,GAAuD;AACtF,KAAI,CAAC,EACJ,QAAO;CAER,IAAM,IAAQ,EAAW,MAAM,IAAI;AACnC,KAAI,EAAM,SAAS,KAAK,EAAM,SAAS,EACtC,QAAO;CAER,IAAM,CAAC,GAAM,GAAM,KAAQ,GACrB,IAAQ,EAAM,OAAO,SAAS,GAAM,GAAG,EAAE,GAAA,GAAgB,EACzD,IAAU,EAAM,OAAO,SAAS,GAAM,GAAG,EAAE,GAAA,GAAe,EAC1D,IAAU,EAAM,OAAO,SAAS,KAAQ,KAAK,GAAG,EAAE,GAAA,GAAe;AAIvE,QAHI,OAAO,MAAM,EAAM,IAAI,OAAO,MAAM,EAAQ,IAAI,OAAO,MAAM,EAAQ,GACjE,OAED;EAAE;EAAO;EAAS;EAAS;;AAQnC,SAAgB,EACf,GACA,GACA,GACiB;CACjB,IAAM,IAAS,OAAO,SAAS,GAAM,WAAW,CAAC,GAAI,oBAAgB,IAAI,MAAM,EACzE,IAAQ,EAAO,UAAU,EACzB,IAAU,EAAO,YAAY,EAC7B,IAAU,IAAiB,EAAO,YAAY,GAAG,GAEjD,IAAiB,EADF,IAAQ,OAAO,IAAU,KAAK,GACK,EAAK,EACvD,IAAe,KAAK,MAAM,IAAiB,KAAK,EAChD,IAAiB,KAAK,MAAO,IAAiB,OAAQ,GAAG,EACzD,IAA0B,IAAiB;AACjD,QAAO;EACN,OAAO;EACP,SAAS;EACT,SAAS,IAAiB,IAA0B;EACpD;;AAGF,SAAgB,EACf,GACA,GACA,GACsB;AACtB,KAAI,MAAW,MAAM;EACpB,IAAM,IAAqB,EAAK,SAAS,KAAK,OAAO,MACjD,IAAc,EAAK,QAAQ;AAI/B,SAHI,MAAgB,MACnB,IAAc,KAER;GACN,OAAO,EAAe,EAAY;GAClC,SAAS,EAAe,EAAK,QAAQ;GACrC,SAAS,IAAiB,EAAe,EAAK,QAAQ,GAAG,KAAA;GACzD;GACA;;AAEF,QAAO;EACN,OAAO,EAAe,EAAK,MAAM;EACjC,SAAS,EAAe,EAAK,QAAQ;EACrC,SAAS,IAAiB,EAAe,EAAK,QAAQ,GAAG,KAAA;EACzD;;AAGF,SAAgB,GACf,GACA,GACA,GACiB;CACjB,IAAM,KAAgB,MAAsC;EAC3D,IAAM,IAAU,OAAO,SAAS,KAAS,KAAK,GAAG;AACjD,SAAO,OAAO,MAAM,EAAQ,GAAG,IAAI;IAEhC,IAAQ,EAAa,EAAS,MAAM,EAClC,IAAU,EAAM,EAAa,EAAS,QAAQ,EAAE,GAAA,GAAe,EAC/D,IAAU,IAAiB,EAAM,EAAa,EAAS,QAAQ,EAAE,GAAA,GAAe,GAAG;AACzF,KAAI,MAAW,MAAM;AACpB,MAAQ,EAAM,GAAO,GAAA,GAAgB;EAErC,IAAM,KADS,EAAS,UAAU,UACV;AAExB,EADA,KAAgB,IACZ,MACH,KAAS;OAGV,KAAQ,EAAM,GAAO,GAAA,GAAgB;AAEtC,QAAO;EAAE;EAAO;EAAS;EAAS;;AAGnC,SAAgB,GACf,GACA,GACA,GACiB;CAEjB,IAAM,IAAiB,EADF,EAAK,QAAQ,OAAO,EAAK,UAAU,KAAK,EAAK,SACV,EAAK;AAI7D,QAAO;EAAE,OAHK,KAAK,MAAM,IAAiB,KAGjC;EAAO,SAFA,KAAK,MAAO,IAAiB,OAAQ,GAErC;EAAS,SADT,IAAiB,IAAiB,KAAK;EACrB;;AAGnC,SAAgB,GACf,GACA,GACA,GACA,GACS;CACT,IAAM,IAAU,EAAe,EAAK,QAAQ,EACtC,IAAc,IAAiB,IAAI,EAAe,EAAK,QAAQ,KAAK;AAC1E,KAAI,MAAW,KACd,QAAO,GAAG,EAAe,EAAK,MAAM,CAAC,GAAG,IAAU;CAEnD,IAAM,IAAqB,EAAK,SAAS,KAAK,OAAO,MACjD,IAAc,EAAK,QAAQ;AAC/B,CAAI,MAAgB,MACnB,IAAc;CAEf,IAAM,IAAc,MAAW,OAAO,GAAQ,MAAM,OAAO,GAAQ,MAAM;AACzE,QAAO,GAAG,EAAe,EAAY,CAAC,GAAG,IAAU,EAAY,GAAG;;AAGnE,IAAM,KAAoB,YACpB,IAAmB;AAEzB,SAAgB,GAA2B,GAAqC;AAC/E,KAAI,CAAC,EACJ,QAAO;CAER,IAAM,IAAY,EAAO,QAAQ,IAAmB,GAAG;AACvD,QAAO,EAAiB,KAAK,EAAU;;AAMxC,SAAgB,GACf,GACA,GACA,GACA,GACa;CACb,IAAM,IAAU,IAAS,EAAE,WAAQ,GAAG,KAAA;AACtC,QAAO;EACN;EACA,WAAW,IAAO,EAAO,GAAM,GAAY,EAAQ,GAAG,KAAA;EACtD,UAAU,IAAO,EAAO,GAAM,GAAgB,EAAQ,GAAG,KAAA;EACzD;;AAMF,SAAgB,EACf,GACA,GACA,GACA,GACsB;CACtB,IAAM,IAAU,IAAS,EAAE,WAAQ,GAAG,KAAA;AACtC,QAAO;EACN;EACA,WAAW,EAAM,KAAI,MAAK,EAAO,GAAG,GAAY,EAAQ,CAAC;EACzD,UAAU,EAAM,KAAI,MAAK,EAAO,GAAG,GAAgB,EAAQ,CAAC;EAC5D;;AAMF,SAAgB,GACf,GACA,GACA,GACA,GACkB;CAClB,IAAM,IAAU,IAAS,EAAE,WAAQ,GAAG,KAAA;AACtC,QAAO;EACN;EACA,WAAW;GACV,MAAM,GAAO,OAAO,EAAO,EAAM,MAAM,GAAY,EAAQ,GAAG,KAAA;GAC9D,IAAI,GAAO,KAAK,EAAO,EAAM,IAAI,GAAY,EAAQ,GAAG,KAAA;GACxD;EACD,UAAU;GACT,MAAM,GAAO,OAAO,EAAO,EAAM,MAAM,GAAgB,EAAQ,GAAG,KAAA;GAClE,IAAI,GAAO,KAAK,EAAO,EAAM,IAAI,GAAgB,EAAQ,GAAG,KAAA;GAC5D;EACD;;AAMF,SAAgB,EAAgB,GAAY,GAAqC;CAChF,IAAM,IAAa,OAAO,KAAS,WAAW,EAAgB,EAAK,GAAG,GAChE,IAAU,IAAI,KAAK,EAAK;AAK9B,QAJI,CAAC,OAAO,SAAS,EAAQ,SAAS,CAAC,IAAI,CAAC,oBACpC,IAAI,KAAK,IAAI,IAErB,EAAQ,SAAS,EAAW,OAAO,EAAW,SAAS,EAAW,SAAS,EAAE,EACtE;;AAMR,SAAgB,GACf,GACA,GACA,GACY;CACZ,IAAI,IAAa;AAUjB,QARI,EAAM,SACT,IAAa;EAAE,GAAG;EAAY,MAAM,EAAgB,EAAM,MAAM,EAAU;EAAE,GAGzE,EAAM,MAAM,MACf,IAAa;EAAE,GAAG;EAAY,IAAI,EAAgB,EAAM,IAAI,EAAQ;EAAE,GAGhE;;AAMR,SAAgB,EAAwB,GAAY,GAAkB;AACrE,QAAO,KAAK,MAAM,EAAG,SAAS,GAAG,EAAK,SAAS,KAAK,MAAO,KAAK,KAAK,IAAI,GAAG;;AAM7E,SAAgB,EACf,GACA,GACA,GAC0C;AAC1C,KAAI,CAAC,GAAO,QAAQ,CAAC,GAAO,GAC3B,QAAO,EAAE,SAAS,IAAM;CAGzB,IAAM,IAAW,EAAwB,EAAM,MAAM,EAAM,GAAG;AAU9D,QARI,KAAO,IAAW,KAIlB,KAAO,IAAW,IACd;EAAE,SAAS;EAAO;EAAU,GAG7B;EAAE,SAAS;EAAM;EAAU;;AAMnC,SAAgB,EACf,GACA,GACA,GACA,GACgB;AAChB,KAAI,CAAC,GAAO,QAAQ,CAAC,GAAO,GAAI,QAAO;CAEvC,IAAM,IAAW,EAAwB,EAAM,MAAM,EAAM,GAAG;AAU9D,QARI,KAAO,IAAW,IACd,EAAa,YAAY,EAAI,GAGjC,KAAO,IAAW,IACd,EAAa,YAAY,EAAI,GAG9B;;AAMR,SAAgB,EACf,GACA,GACA,GACA,GACA,GACgB;AAahB,QAZI,KAAY,EAAM,WAAW,IACzB,uCAGJ,KAAO,EAAM,SAAS,IAClB,mBAAmB,EAAI,UAG3B,IACI,EAAa,aAAa,EAAI,GAG/B;;AAMR,SAAgB,GACf,GACA,GACA,GACA,GACA,GACA,GACS;AACT,KAAI,GAAM;EAET,IAAI,IAAO,EAAO,GAAM,GADR,IAAS,EAAE,WAAQ,GAAG,KAAA,EACU;AAIhD,SAHI,MACH,KAAQ,IAAI,MAEN;;AAER,QAAO,KAAe;;AAMvB,SAAgB,EACf,GACA,GACA,GACA,GACA,GACA,GACS;AACT,KAAI,EAAM,SAAS,GAAG;AACrB,MAAI,EAAM,WAAW,GAAG;GACvB,IAAM,IAAU,IAAS,EAAE,WAAQ,GAAG,KAAA;AACtC,UAAO,EAAO,EAAM,IAAI,GAAgB,EAAQ;;AAEjD,SAAO,EAAa,cAAc,EAAM,OAAO;;AAEhD,QAAO,KAAe;;AAMvB,SAAgB,GACf,GACA,GACA,GACA,GACA,GACS;AACT,KAAI,GAAO,MAAM;EAChB,IAAM,IAAU,IAAS,EAAE,WAAQ,GAAG,KAAA;AAItC,SAHI,EAAM,KACF,GAAG,EAAO,EAAM,MAAM,GAAgB,EAAQ,CAAC,KAAK,EAAO,EAAM,IAAI,GAAgB,EAAQ,KAE9F,EAAO,EAAM,MAAM,GAAgB,EAAQ;;AAEnD,QAAO,KAAe;;;;ACzZvB,IAAa,IAAmD;CAC/D,YAAY;CACZ,aAAa;CACb,iBAAiB;CACjB,MAAM;CACN,IAAI;CACJ,SAAS;CACT,OAAO;CACP,OAAO;CACP,WAAW;CACX,SAAS;CACT,WAAW;CACX,SAAS;CACT,OAAO;CACP,SAAS;CACT,SAAS;CACT,IAAI;CACJ,IAAI;CACJ,cAAc,MAAiB,gBAAgB,EAAK;CACpD,cAAc,MAAiB,gBAAgB,EAAK;CACpD,eAAe,MAAgB,gBAAgB,EAAI;CACnD,gBAAgB,MAAkB,GAAG,EAAM;CAC3C,UAAU;CACV,WAAW;CACX,UAAU;CACV,UAAU;CACV,WAAW;CACX,UAAU;CACV,UAAU;CACV,WAAW;CACX,YAAY;CACZ,iBAAiB;CACjB,OAAO;CACP,MAAM;CACN,EC1CK,IAAiB,EACrB,ueACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SAAS;GACV;EACD,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF,ECdK,KAAqB,EAAM,cAK/B;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,aAAa;CACd,CAAC;AAQF,SAAS,GAAY,EACnB,cACA,YACA,SACA,aAAU,GACV,iBAAc,cACd,aACA,GAAG,KACgB;AACnB,QACE,kBAAC,IAAD;EACE,aAAU;EACV,gBAAc;EACd,aAAW;EACX,gBAAc;EACd,oBAAkB;EAClB,OAAO,EAAE,SAAS,GAAS;EAC3B,WAAW,EACT,+NACA,EACD;EACD,GAAI;YAEJ,kBAAC,GAAmB,UAApB;GACE,OAAO;IAAE;IAAS;IAAM;IAAS;IAAa;GAE7C;GAC2B,CAAA;EACT,CAAA;;AAI3B,SAAS,GAAgB,EACvB,cACA,aACA,aAAU,WACV,UAAO,WACP,GAAG,KAC2D;CAC9D,IAAM,IAAU,EAAM,WAAW,GAAmB;AAEpD,QACE,kBAAC,GAAD;EACE,aAAU;EACV,gBAAc,EAAQ,WAAW;EACjC,aAAW,EAAQ,QAAQ;EAC3B,gBAAc,EAAQ;EACtB,WAAW,EACT,+zBACA,EAAe;GACb,SAAS,EAAQ,WAAW;GAC5B,MAAM,EAAQ,QAAQ;GACvB,CAAC,EACF,EACD;EACD,GAAI;EAEH;EACe,CAAA;;;;AChDtB,IAAM,IAAkC;CAAC;CAAS;CAAW;CAAU,EACjE,KAAc,MACd,KAAc;AAEpB,SAAS,EAAgB,GAAuB;AAC/C,QAAO,EAAM,QAAQ,OAAO,GAAG,CAAC,MAAM,GAAG;;AAG1C,SAAS,EAAgB,GAAuB;AAG/C,QAFI,EAAM,WAAW,IAAU,OAC3B,EAAM,WAAW,IAAU,IAAI,MAC5B;;AAGR,SAAS,GAAW,GAAqB,GAAgD;CACxF,IAAM,IAAc,IAAiB,IAAgB,EAAc,MAAM,GAAG,EAAE,EACxE,IAAM,EAAY,QAAQ,EAAI;AACpC,QAAO,IAAM,MAAM,IAAM,EAAY,SAAS,IAAI,EAAY,IAAM,KAAK;;AAG1E,SAAS,GAAe,GAAqB,GAAgD;CAC5F,IAAM,IAAc,IAAiB,IAAgB,EAAc,MAAM,GAAG,EAAE,EACxE,IAAM,EAAY,QAAQ,EAAI;AACpC,QAAO,IAAM,IAAI,EAAY,IAAM,KAAK;;AAGzC,SAAS,GAAe,GAAe,GAA6B;AAInE,QAHI,MAAW,OACP,IAED,IAAQ,MAAM;;AAGtB,SAAS,GAAyB,GAA2B;AAC5D,QAAO,KAAS,KAAK,OAAO;;AAG7B,SAAS,GACR,GACA,GACsB;AAItB,QAHI,MAAW,OACP;EAAE,GAAG;EAAU,QAAQ,EAAS,UAAU;EAAM,GAEjD;EAAE,GAAG;EAAU,QAAQ,KAAA;EAAW;;AAG1C,SAAgB,GAAmB,EAClC,UACA,aACA,WACA,mBACA,SACA,aACA,cACA,WACA,mBAC2B;CAC3B,IAAM,IAAc,EAAM,cAClB,IAAiB,IAAgB,EAAc,MAAM,GAAG,EAAE,EACjE,CAAC,EAAe,CAChB,EAEK,CAAC,GAAU,KAAe,EAAM,eACrC,GACC,EAAgC,GAAO,GAAQ,EAAe,EAC9D,EACA,CACD,EAGK,IAAc,EAAM,OAAO,EAAS,EAEpC,IAAiB,EAAM,OAAO,GAAM,EACpC,IAAiB,EAAM,aAAa,MAA8B;AAEvE,EADA,EAAY,UAAU,GACtB,EAAY,EAAK;IACf,EAAE,CAAC,EAEA,IAAY,EAAM,OAAwD;EAC/E,OAAO;EACP,SAAS;EACT,SAAS;EACT,CAAC;AAKF,GAAM,gBAAgB;AACrB,MAAI,EAAe,SAAS;AAC3B,KAAe,UAAU;AACzB;;AAED,IACC,GACC,EAAgC,GAAO,GAAQ,EAAe,EAC9D,EACA,CACD;IACC;EAAC;EAAO;EAAQ;EAAgB;EAAe,CAAC;CAKnD,IAAM,IAAU,EAAM,aACpB,MAA8B;AAG9B,EAFA,EAAe,UAAU,IAEzB,EADmB,GAAgC,GAAM,GAAQ,EACxD,CAAW;IAErB;EAAC;EAAQ;EAAgB;EAAS,CAClC,EAIK,IAAiB,EAAM,aAC3B,MAA8B;EAE9B,IAAM,IAAU,GADG,GAAgC,GAAM,GAAQ,EACvB,EAAY,GAAM,EAAe;AAM3E,EALA,EAAS,EAAQ,EAKjB,EAJuB,GACtB,EAAgC,GAAS,GAAQ,EAAe,EAChE,EAEc,CAAe;IAE/B;EAAC;EAAQ;EAAgB;EAAU;EAAM;EAAe,CACxD,EAEK,KAAe,EAAM,aACzB,MAA+B;AAC/B,MAAI,CAAC,EAAK;EACV,IAAM,IAAM,EAAU,QAAQ;AAC9B,EAAI,MACH,EAAI,OAAO,EACX,EAAI,QAAQ;IAGd,EAAE,CACF,EAIK,IAAkB,EAAM,aAC5B,GAA4B,MAAkB;EAC9C,IAAM,IAAU,EAAY,SACtB,IAAe,EAAQ,OAC3B,MAAe,WAAW,MAAW,OAAO,KAAc,KAEtD,KADO,OAAO,SAAS,EAAa,MAAM,GAAG,EAAE,GAAG,IAAI,KAClC,KAAM,GAC1B,IAA4B,EAAE,GAAG,GAAS,EAC5C,IAAa,EAAK,UAAU;AAEhC,EAAI,MAAe,UACd,MAAW,OAEd,EAAK,QAAQ,EADG,KAAK,IAAI,KAAK,IAAI,GAAW,EAAE,EAAA,GAClB,CAAQ,UAAU,CAAC,GAE5C,MAAc,KACjB,IAAa,MACb,EAAK,QAAQ,MACH,IAAY,MACtB,IAAa,GAAyB,EAAU,EAChD,EAAK,QAAQ,EAAgB,GAAe,GAAW,KAAK,CAAC,UAAU,CAAC,KAGxE,EAAK,QAAQ,EADG,KAAK,IAAI,KAAK,IAAI,GAAW,EAAE,EAAA,GAClB,CAAQ,UAAU,CAAC,EAChD,IAAa,EAAQ,UAAU,GAAyB,EAAU,IAG1D,MAAe,YACzB,EAAK,UAAU,EAAgB,KAAK,IAAI,KAAK,IAAI,GAAW,EAAE,EAAA,GAAc,CAAC,UAAU,CAAC,GAC9E,MAAe,cACzB,EAAK,UAAU,EAAgB,KAAK,IAAI,KAAK,IAAI,GAAW,EAAE,EAAA,GAAc,CAAC,UAAU,CAAC;EAGzF,IAAM,IAAU;GAAE,GAAG;GAAM,QAAQ;GAAY;AAE/C,EADA,EAAe,EAAQ,EACvB,EAAQ,EAAQ;IAEjB;EAAC;EAAQ;EAAgB;EAAQ,CACjC,EAGK,IAAsB,EAAM,aAChC,GAAqB,MAAqB;EAC1C,IAAM,IAAY,EAAgB,EAAS,EACrC,IAA4B,EAAE,GAAG,EAAY,SAAS,EACxD,IAAa,EAAK,UAAU;AAEhC,MAAI,MAAQ,QACX,KAAI,MAAW,MAAM;GACpB,IAAM,IAAI,OAAO,SAAS,KAAa,KAAK,GAAG;AAE/C,KAAK,QAAQ,GADG,OAAO,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,EAAA,GAAe,EACvC,UAAU,CAAC;SAC1C;GACN,IAAM,IAAI,OAAO,SAAS,KAAa,KAAK,GAAG;AAC/C,GAAI,OAAO,MAAM,EAAE,IAClB,EAAK,QAAQ,MACb,IAAa,EAAY,QAAQ,UAAU,QACjC,EAAU,WAAW,KAAK,IAAI,MACxC,IAAa,GAAyB,EAAE,EACxC,EAAK,QAAQ,EAAgB,GAAe,GAAG,KAAK,CAAC,UAAU,CAAC,IACtD,MAAM,KAChB,IAAa,MACb,EAAK,QAAQ,SAGb,EAAK,QAAQ,EADG,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,EAAA,GACV,CAAQ,UAAU,CAAC,EAC5C,EAAU,WAAW,MACxB,IAAa,EAAY,QAAQ,UAAU,GAAyB,EAAE;;WAI/D,MAAQ,WAAW;GAC7B,IAAM,IAAI,OAAO,SAAS,KAAa,KAAK,GAAG;AAE/C,KAAK,UAAU,GADC,OAAO,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,EAAA,GAAc,EACpC,UAAU,CAAC;aACxC,MAAQ,WAAW;GAC7B,IAAM,IAAI,OAAO,SAAS,KAAa,KAAK,GAAG;AAE/C,KAAK,UAAU,GADC,OAAO,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE,EAAA,GAAc,EACpC,UAAU,CAAC;;EAGnD,IAAM,IAAU;GAAE,GAAG;GAAM,QAAQ;GAAY;AAE/C,EADA,EAAe,EAAQ,EACvB,EAAQ,EAAQ;IAEjB;EAAC;EAAQ;EAAgB;EAAQ,CACjC,EAEK,IAAqB,EAAM,aAC/B,MAAuB;AACnB,QAAW,QAEf,EAAe;GADA,GAAG,EAAY;GAAS;GACxB,CAAK;IAErB,CAAC,GAAgB,EAAO,CACxB,EAGK,KAAa,EAAM,kBAAkB;AAC1C,IAAe,EAAY,QAAQ;IACjC,CAAC,EAAe,CAAC,EAEd,IAAgB,EAAM,aAC1B,GAA8C,MAAwB;AAEtE,MADmB,EAAM,IAAI,WAAW,KAAK,KAAK,KAAK,EAAM,IAAI,IAC/C,CAAC,EAAM,WAAW,CAAC,EAAM,WAAW,CAAC,EAAM,QAAQ;AAEpE,GADA,EAAM,gBAAgB,EACtB,EAAgB,GAAK,OAAO,SAAS,EAAM,KAAK,GAAG,CAAC;AACpD;;AAED,MAAI,EAAM,QAAQ,cAAc;AAC/B,MAAa,GAAW,GAAK,EAAe,CAAC;AAC7C;;AAED,MAAI,EAAM,QAAQ,aAAa;AAC9B,MAAa,GAAe,GAAK,EAAe,CAAC;AACjD;;AAED,MAAI,EAAM,QAAQ,aAAa;GAC9B,IAAM,IAAS,EAAM;AACrB,GAAI,EAAO,mBAAmB,KAAK,EAAO,iBAAiB,KAC1D,GAAa,GAAe,GAAK,EAAe,CAAC;;IAIpD;EAAC;EAAiB;EAAc;EAAe,CAC/C,EAEK,IAAoB,EAAM,cAAwC;AACnE,YAAW,KACf,QAAO,EAAS,SAAS,CAAC,EAAS,OAAO,GAAG,KAAA;IAC3C,CAAC,GAAQ,EAAS,OAAO,CAAC;AAE7B,QACC,kBAAC,OAAD;EAAK,WAAW,EAAG,mCAAmC,2BAA2B,EAAU;YAA3F,CACE,EAAY,KAAK,GAAY,MAAU;GACvC,IAAM,IAAgB,MAAe,WAAW,MAAW,OAAO,KAAc,IAC1E,IAAe,EAAS,MAAe,GACvC,IAAY,MAAe,UAC9B,EAAO,QACP,MAAe,YACd,EAAO,UACP,EAAO,WAAW,EAAO;AAE7B,UACC,kBAAC,EAAM,UAAP,EAAA,UAAA,CACC,kBAAC,GAAD;IACC,MAAM,MAAS;AACd,OAAU,QAAQ,KAAc;;IAEjC,OAAO;IACP,WAAW,MAAU,EAAoB,GAAY,EAAM,OAAO,MAAM;IACxE,UAAU,MAAU,EAAM,OAAO,QAAQ;IACzC,QAAQ;IACR,YAAY,MAAU,EAAc,GAAO,EAAW;IACtD,WAAU;IACV,SAAQ;IACR,WAAW;IACX,oBAAoB;IACV;IACV,cAAY;IACZ,WAAU;IACT,CAAA,EACD,IAAQ,EAAY,SAAS,KAC7B,kBAAC,GAAD;IAAM,KAAI;IAAO,MAAK;cAAY;IAAQ,CAAA,CAE3B,EAAA,EArBI,EAqBJ;IAEjB,EAED,MAAW,QACX,kBAAC,IAAD;GACC,OAAO;GACP,gBAAgB,MAAW;IAC1B,IAAM,IAAS,EAAO;AACjB,SACL,EAAmB,EAAqB;;GAE/B;GACV,MAAK;GACL,WAAU;aATX,CAWC,kBAAC,IAAD;IACC,OAAM;IACN,cAAY,EAAa;cAExB,EAAa;IACG,CAAA,EAClB,kBAAC,IAAD;IACC,OAAM;IACN,cAAY,EAAa;cAExB,EAAa;IACG,CAAA,CACL;KAEV;;;AAIR,GAAmB,cAAc;;;ACrUjC,SAAS,GAA2B,GAAuC;AAG1E,QAFI,MAAY,UAAgB,UAC5B,MAAY,cAAoB,cAC7B;;AAGR,SAAS,GAAyB,GAAwE;CACzG,IAAM,IAAW,GAA2B,EAAQ;AAGpD,QAFI,MAAa,UAAgB;EAAE,SAAS;EAAa,aAAa;EAAS,GAC3E,MAAa,cAAoB;EAAE,SAAS;EAAa,aAAa;EAAS,GAC5E;EAAE,SAAS;EAAa,aAAa;EAAW;;AAoBxD,IAAa,KAAwB;CACpC;CACA;CACA;CACA;CACA;CACA;CACA,CAAC,KAAK,IAAI;AAGX,SAAS,GAAa,GAAkD;AACvE,QAAO,CAAC,EAAM,QAAQ,EAAM,SAAS;;AAGtC,SAAS,EAAe,GAA0D;AACjF,QAAO,EAAM,SAAS;;AAGvB,SAAS,EAAY,GAAuD;AAC3E,QAAO,EAAM,SAAS;;AAOvB,SAAS,GACR,GACA,GACoB;AACpB,QAAO;EACN;GACC,OAAO,EAAE;GACT,iBAAiB;IAAE,sBAAM,IAAI,MAAM;IAAE,oBAAI,IAAI,MAAM;IAAE;GACrD;EACD;GACC,OAAO,EAAE;GACT,iBAAiB;IAChB,MAAM,kBAAY,IAAI,MAAM,EAAE,EAAE,iBAAc,CAAC;IAC/C,IAAI,kBAAU,IAAI,MAAM,EAAE,EAAE,iBAAc,CAAC;IAC3C;GACD;EACD;GACC,OAAO,EAAE;GACT,iBAAiB;IAChB,MAAM,kBAAa,IAAI,MAAM,CAAC;IAC9B,IAAI,kBAAW,IAAI,MAAM,CAAC;IAC1B;GACD;EACD;GACC,OAAO,EAAE;GACT,iBAAiB;IAChB,MAAM,kBAAQ,IAAI,MAAM,EAAE,IAAI;IAC9B,oBAAI,IAAI,MAAM;IACd;GACD;EACD;;AAGF,SAAgB,GAAW,GAAwB;CAClD,IAAM,CAAC,GAAM,KAAW,EAAM,SAAS,GAAM,EAIvC,IAAgB,EAAM,UAAU,GAIhC,IAAI,EAAW,GAA0B,EAAM,WAAW,EAAM,aAAa,EAG7E,IAAgB,EAAM,cACvB,EAAM,sBAAsB,EAAM,eAAe,UAC7C,aAED,SACL,CAAC,EAAM,oBAAoB,EAAM,cAAc,CAAC;AA0CnD,QAvCI,GAAa,EAAM,GAErB,kBAAC,IAAD;EAAkB,WAAU;EAC3B,GAAI;EACE;EACG;EACN;EACY;EACA;EACd,CAAA,GAIA,EAAe,EAAM,GAEvB,kBAAC,IAAD;EACC,GAAI;EACE;EACG;EACN;EACY;EACA;EACd,CAAA,GAIA,EAAY,EAAM,GAEpB,kBAAC,IAAD;EACC,GAAI;EACE;EACG;EACN;EACY;EACA;EACd,CAAA,GAIG;;AAIR,SAAS,GAAiB,EACzB,UACA,iBACA,aACA,QAAQ,IAAa,cACrB,oBAAiB,OACjB,gBACA,mBAAgB,IAChB,aACA,kBACA,kBACA,SACA,YACA,MACA,kBACA,kBACA,GAAG,KAOD;CACF,IAAM,IAAY,EAAM,OAAO,EACzB,IAAc,GAAG,EAAU,eAC3B,IAAW,EAAU,UAAU,KAAA,KAAa,EAAU,UAAU,QAAQ,EAAU,UAAU,IAC5F,KAAkB,IAAW,IAAc,KAAA,GAC3C,IAAU,EAAU,SAAS,KAAA,KAAa,EAAU,SAAS,QAAQ,EAAU,SAAS,IACxF,IAAY,OAAO,EAAU,SAAU,WAAW,EAAU,QAAQ,IACpE,IAAW,OAAO,EAAU,QAAS,WAAW,EAAU,OAAO,IACjE,IAAa,GAAU,UAAU,MACjC,IAAW,GAAU,QAAQ,IAC7B,IAAiB,GAAU,eAAe,IAC1C,KAAkB,GAA2B,EAAe,EAC5D,KAAmB,GAAU,oBAAoB,CAAC,IAClD,CAAC,GAAM,KAAW,EAAM,eACtB,KAAS,EACf,EAEI,CAAC,IAAM,MAAW,EAAM,eAC7B,EAA4B,KAAS,GAAc,GAAgB,EAAS,CAC5E,EACK,IAAmB,EAAM,OAAyB,KAAS,KAAgB,KAAA,EAAU,EACrF,IAAwB,EAAM,OAAO,GAAM,EAC3C,IAAsB,EAAM,OAAO,MAAU,KAAA,EAAU,EAGvD,IAAe,EAAM,aACzB,GAAgC,MAA8C;EAC9E,IAAI,IAAY;AAChB,MAAI,KAAgB,GAAU,SAAS;GACtC,IAAM,IAAU,EAAgB,GAAc,KAAgB,GAAK;AACnE,OAAY,OAAO,SAAS,EAAQ,SAAS,CAAC,GAAG,IAAU,KAAA;;AAE5D,SAAO,GAAiB,GAAW,GAAY,GAAgB,EAAc;IAE9E;EAAC;EAAY;EAAgB;EAAe;EAAU;EAAK,CAC3D;AAuFD,CArFA,EAAM,gBAAgB;EACrB,IAAM,IAAgB,EAAQ,GAAU,SAClC,IAAkB,EAAoB,SACtC,IAAiB,MAAU,KAAA,GAE3B,KAAc,GAAgB,MAAwB;GAC3D,IAAM,IAAa,GAClB,EAA4B,GAAU,GAAgB,EAAS,EAC/D,GACA,EACA;AAkBD,OAjBA,GAAS,MACY,GAAS,WAAW,KACvB,EAAS,SACH,GAAsB,IAAX,EACjC,EACF,IAAS,MAEP,EAAQ,UAAU,EAAW,SAC7B,EAAQ,YAAY,EAAW,WAC/B,EAAQ,YAAY,EAAW,UAExB,IAED,EACN,EACF,EAAiB,UAAU,GAC3B,EAAsB,UAAU,IAC5B,KAAc,GAAe;IAChC,IAAM,IAAU,EAAgB,GAAU,EAAW;AACrD,QAAW,GAAiB,GAAS,GAAY,GAAgB,EAAc,CAAC;;;AAIlF,MAAI,CAAC,GAAe;AAInB,GAHA,EAAsB,UAAU,IAChC,EAAiB,UAAU,KAAS,KAAgB,KAAA,GACpD,EAAQ,KAAS,EAAa,EAC9B,EAAoB,UAAU;AAC9B;;EAID,IAAM,IADO,EAAiB,SACP,WAAW,EAC5B,IAAY,GAAO,WAAW;AAOpC,MALI,CAAC,KAAkB,KAAmB,MAAiB,KAAA,MAC1D,EAAsB,UAAU,IAChC,EAAiB,UAAU,KAAA,IAGxB,MAAU,KAAA,KAAa,MAAc,GAAU;AAElD,GADA,EAAW,GAAO,GAAM,EACxB,EAAoB,UAAU;AAC9B;;AAGD,MAAI,MAAU,KAAA,KAAa,MAAiB,KAAA,GAAW;AAKtD,IAHI,MADkB,EAAa,SAClB,IAAiB,CAAC,EAAsB,YACxD,EAAW,GAAc,GAAM,EAEhC,EAAoB,UAAU;AAC9B;;AAGD,MAAI,MAAU,KAAA,KAAa,MAAiB,KAAA,KAAa,CAAC,EAAsB,SAAS;AAExF,GADA,EAAsB,UAAU,IAChC,EAAoB,UAAU;AAC9B;;AAGD,IAAoB,UAAU;IAC5B;EACF,GAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,EAEF,EAAM,gBAAgB;AAChB,KAAU,WAGf,IAAS,MAAY;GACpB,IAAM,IAAU,GAA0B,GAAS,GAAU,EAAe;AAQ5E,UANC,EAAQ,UAAU,EAAQ,SAC1B,EAAQ,YAAY,EAAQ,WAC5B,EAAQ,YAAY,EAAQ,UAErB,IAED;IACN;IACA;EAAC,GAAU;EAAS;EAAU;EAAe,CAAC;CAGjD,IAAM,IAAe,EAAM,aACzB,MAA8B;AAM9B,MALA,EAAQ,EAAQ,EACZ,GAAU,WAAW,MACxB,EAAsB,UAAU,IAChC,EAAiB,UAAU,IAExB,GAAU,SAAS;AAEtB,GADA,IAAW,EAAa,EAAQ,CAAC,EAC7B,KAAiB,KACpB,EAAQ,GAAM;AAEf;;AAID,EADA,IAAW,EAAa,EAAQ,CAAC,EAC7B,KAAiB,KACpB,EAAQ,GAAM;IAGhB;EAAC;EAAU;EAAc;EAAe;EAAS;EAAS,CAC1D,EAGK,KAAmB,EAAM,aAC7B,MAA6B;AAE7B,EADA,GAAQ,EAAS,EACb,KACH,IAAW,EAAa,GAAM,EAAS,CAAC;IAG1C;EAAC;EAAM;EAAU;EAAa,CAC9B,EAEK,IAAc,EAAM,cAAc;AAClC,SAAU,QAGf,QAAO,GAA+B,IAAM,GAAgB,GAAY;GACvE,IAAI,EAAE;GACN,IAAI,EAAE;GACN,CAAC;IACA;EAAC,GAAU;EAAS;EAAM;EAAgB;EAAY;EAAE,CAAC,EAGtD,IAAa,EAAM,cAClB,GACL,GACA,GACA,GACA,EAAE,YACF,KAAmB,IAAc,KAAA,GACjC,EACA,EACD;EAAC;EAAM;EAAgB;EAAa;EAAG;EAAa;EAAkB;EAAc,CACpF,EAEK,KAAgB,EAAM,cACpB,IAAO,EAAO,GAAM,GAAgB,EAAE,QAAQ,GAAe,CAAC,GAAG,KAAA,GACxE;EAAC;EAAM;EAAgB;EAAc,CACrC;AAED,QACC,kBAAC,OAAD;EAAK,WAAW,EAAG,aAAa,EAAU,UAAU;YAApD;GACE,CAAC,EAAE,EAAU,SAAS,MACtB,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,CAAC,CAAC,EAAU,SACZ,kBAAC,GAAD;KACC,SAAS;KACT,WAAW,EAAG,aAAa,KAAY,mBAAmB;eAEzD,EAAU;KACJ,CAAA,EAER,CAAC,KAAY,CAAC,CAAC,KACf,kBAAC,GAAD;KAAM,KAAI;KAAO,MAAK;eACpB;KACK,CAAA,CAEH;;GAGN,kBAAC,GAAD;IAAe;IAAM,cAAc;cAAnC,CACC,kBAAC,GAAD,EACC,SAAS,MAAiB;KACzB,IAAM,IAAW,GAAyB,EAAU,cAAc;AAElE,YACC,kBAAC,GAAD;MACC,GAAI;MACJ,IAAI;MACJ,SAAS,EAAS;MAClB,aAAa,EAAS;MACtB,gBAAc;MACd,oBAAkB;MAClB,WAAW,EACV,8CACA,IACA,CAAC,KAAQ,yBACT,EAAU,SAAS,qDAClB,EAAwC,UACzC;MACD,UAAU,EAAU;gBAdrB,CAgBC,kBAAC,IAAD,EAAc,WAAU,gBAAiB,CAAA,EACxC,EACO;;OAGV,CAAA,EAEH,kBAAC,GAAD;KACC,WAAU;KACV,OAAM;eAFP;MAKE,CAAC,CAAC,EAAU,UAAU,kBAAC,IAAD,EAAkB,QAAQ,EAAU,QAAU,CAAA;MAGrE,kBAAC,IAAD;OACC,MAAK;OACL,UAAU;OACV,UAAU;OACV,cAAc;OACd,gBAAgB,EAAU;OAC1B,iBAAiB,EAAU;OAC3B,UAAU,KAAiB,EAAU;OACrC,QAAQ;OACO;OACf,UAAU,EAAU,eAAe;OACnC,QAAQ,EAAU,eAAe;OACjC,GAAI;OACH,CAAA;MAGD,CAAC,CAAC,GAAU,WAAW,kBAAA,GAAA,EAAA,UAAA,CACtB,kBAAC,GAAD,EAAa,CAAA,EACb,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACC,kBAAC,GAAD;QAAO,MAAK;kBAAM,EAAE;QAAkB,CAAA,EACtC,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACC,kBAAC,IAAD,EAAO,WAAU,iCAAkC,CAAA,EACnD,kBAAC,IAAD;SACC,OAAO;SACP,UAAU;SACV,QAAQ;SACQ;SAChB,MAAM;SACN,UAAU,EAAU;SACpB,QAAQ;UACP,OAAO,EAAE;UACT,SAAS,EAAE;UACX,SAAS,IAAiB,EAAE,UAAU,KAAA;UACtC;SACD,cAAc;UAAE,IAAI,EAAE;UAAI,IAAI,EAAE;UAAI;SACnC,CAAA,CACG;UACD;SACJ,EAAA,CAAA;MAGH,CAAC,CAAC,EAAU,UACZ,kBAAC,IAAD;OACC,QAAQ,EAAU;OAClB,QAAQ,EAAa,EAAK;OAC1B,cAAc,CAAC,CAAC;OAChB,aAAa;OACZ,CAAA;MAEa;OACR;;GAET,CAAC,CAAC,KAAY,kBAAC,GAAD;IAAM,IAAI;IAAa,MAAK;IAAK,MAAK;IAAQ,SAAS;IAAa,CAAA;GAC9E;;;AAKR,SAAS,GAAmB,EAC3B,UACA,iBACC,aACA,QAAQ,IAAa,cACrB,oBAAiB,OACjB,gBACA,QACD,QACA,aACA,kBACA,kBACA,SACA,YACA,MACA,kBACA,mBACA,GAAG,KAOD;CACF,IAAM,IAAY,EAAM,OAAO,EACzB,IAAc,GAAG,EAAU,eAC3B,IAAW,EAAU,UAAU,KAAA,KAAa,EAAU,UAAU,QAAQ,EAAU,UAAU,IAC5F,IAAkB,IAAW,IAAc,KAAA,GAC3C,KAAU,EAAU,SAAS,KAAA,KAAa,EAAU,SAAS,QAAQ,EAAU,SAAS,IACxF,IAAY,OAAO,EAAU,SAAU,WAAW,EAAU,QAAQ,IACpE,IAAW,OAAO,EAAU,QAAS,WAAW,EAAU,OAAO,IACjE,CAAC,GAAO,KAAY,EAAM,SAAiB,KAAS,KAAgB,EAAE,CAAC;AAG7E,GAAM,gBAAgB;AACrB,EAAI,MAAU,KAAA,KACb,EAAS,EAAM;IAEd,CAAC,EAAM,CAAC;CAGX,IAAM,IAAe,EAAM,aACzB,MACA,EAA0B,GAAO,GAAY,GAAgB,EAAc,EAC5E;EAAC;EAAY;EAAgB;EAAc,CAC3C,EAGK,IAAe,EAAM,aACzB,MAA6B;EAC7B,IAAM,IAAgB,MAAM,QAAQ,EAAS,GAAG,IAAW,IAAW,CAAC,EAAS,GAAG,EAAE;AAEjF,OAAO,EAAc,SAAS,MAIlC,EAAS,EAAc,EACvB,IAAW,EAAa,EAAc,CAAC;IAExC;EAAC;EAAU;EAAc;EAAI,CAC7B,EAGK,IAAa,EAAM,cACxB,EAA8B,GAAO,GAAgB,GAAa,EAAE,aAAa,GAAG,EAAc,EAClG;EAAC;EAAO;EAAgB;EAAa;EAAG;EAAc,CACtD,EAGK,KAAoB,EAAM,cAC/B,EAAkC,GAAO,GAAK,GAAK,GAAU,EAAE,EAC/D;EAAC;EAAO;EAAK;EAAK;EAAU;EAAE,CAC9B,EAEK,KAAgB,EAAM,cACpB,EAAM,SAAS,IAAI,EAAE,cAAc,EAAM,OAAO,GAAG,KAAA,GAC1D,CAAC,EAAM,QAAQ,EAAE,CACjB;AAED,QACC,kBAAC,OAAD;EAAK,WAAW,EAAG,aAAa,EAAU,UAAU;YAApD;GACE,CAAC,EAAE,EAAU,SAAS,OACtB,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,CAAC,CAAC,EAAU,SACZ,kBAAC,GAAD;KACC,SAAS;KACT,WAAW,EAAG,aAAa,KAAY,mBAAmB;eAEzD,EAAU;KACJ,CAAA,EAER,CAAC,KAAY,CAAC,CAAC,MACf,kBAAC,GAAD;KAAM,KAAI;KAAO,MAAK;eACpB;KACK,CAAA,CAEH;;GAGN,kBAAC,GAAD;IAAe;IAAM,cAAc;cAAnC,CACC,kBAAC,GAAD,EACC,SAAS,MAAiB;KACzB,IAAM,IAAW,GAAyB,EAAU,cAAc;AAElE,YACC,kBAAC,GAAD;MACC,GAAI;MACJ,IAAI;MACJ,SAAS,EAAS;MAClB,aAAa,EAAS;MACtB,gBAAc;MACd,oBAAkB;MAClB,WAAW,EACV,8CACA,IACA,EAAM,WAAW,KAAK,yBACtB,EAAU,SAAS,qDAClB,EAAwC,UACzC;MACD,UAAU,EAAU;gBAdrB,CAgBC,kBAAC,IAAD,EAAc,WAAU,gBAAiB,CAAA,EACzC,kBAAC,QAAD;OAAM,WAAU;iBAAY;OAAkB,CAAA,CACtC;;OAGV,CAAA,EAEH,kBAAC,GAAD;KACC,WAAU;KACV,OAAM;eAFP;MAKE,CAAC,CAAC,EAAU,UAAU,kBAAC,IAAD,EAAkB,QAAQ,EAAU,QAAU,CAAA;MAGrE,kBAAC,IAAD;OACC,MAAK;OACL,UAAU;OACV,UAAU;OACV,cAAc,EAAM;OACpB,gBAAgB,EAAU;OAC1B,iBAAiB,EAAU;OAC3B,UAAU,KAAiB,EAAU;OACrC,QAAQ;OACO;OACf,UAAU,EAAU,eAAe;OACnC,QAAQ,EAAU,eAAe;OACvB;OACL;OACL,GAAI;OACH,CAAA;MAGD,CAAC,CAAC,MAAqB,kBAAA,GAAA,EAAA,UAAA,CACtB,kBAAC,GAAD,EAAa,CAAA,EACb,kBAAC,OAAD;OAAK,WAAU;iBACd,kBAAC,GAAD;QAAM,MAAK;kBAAa;QAAyB,CAAA;OAC5C,CAAA,CACJ,EAAA,CAAA;MAGH,CAAC,CAAC,EAAU,UACZ,kBAAC,IAAD;OACC,QAAQ,EAAU;OAClB,QAAQ,EAAa,EAAM;OAC3B,cAAc,EAAM,SAAS;OAC7B,aAAa;OACZ,CAAA;MAEa;OACR;;GAET,CAAC,CAAC,KAAY,kBAAC,GAAD;IAAM,IAAI;IAAa,MAAK;IAAK,MAAK;IAAQ,SAAS;IAAa,CAAA;GAC9E;;;AAKR,SAAS,GAAgB,EACxB,UACA,iBACA,aACA,QAAQ,IAAa,cACrB,oBAAiB,OACjB,gBACA,iBAAc,IACd,QACA,QACA,mBAAgB,IAChB,aACA,SAAS,GACT,kBACA,kBACA,SACA,YACA,MACA,kBACA,mBACA,GAAG,KAOD;CAIF,IAAM,EAAE,kBAAe,MAAM,GAAgB,EACvC,IAAU,KAAe,GAAkB,GAAG,EAAa,EAC3D,IAAY,EAAM,OAAO,EACzB,IAAc,GAAG,EAAU,eAC3B,IAAW,EAAU,UAAU,KAAA,KAAa,EAAU,UAAU,QAAQ,EAAU,UAAU,IAC5F,KAAkB,IAAW,IAAc,KAAA,GAC3C,KAAU,EAAU,SAAS,KAAA,KAAa,EAAU,SAAS,QAAQ,EAAU,SAAS,IACxF,IAAY,OAAO,EAAU,SAAU,WAAW,EAAU,QAAQ,IACpE,KAAW,OAAO,EAAU,QAAS,WAAW,EAAU,OAAO,IACjE,IAAa,GAAU,UAAU,MACjC,IAAW,GAAU,QAAQ,IAC7B,IAAiB,GAAU,eAAe,IAC1C,IAAkB,GAA2B,EAAe,EAC5D,KAAmB,GAAU,oBAAoB,CAAC,GAClD,IAAoB,GAAU,qBAAqB,CAAC,GACpD,IAAe,KAAS,GACxB,CAAC,GAAO,MAAY,EAAM,SAAgC,EAAa,EACvE,CAAC,IAAW,MAAgB,EAAM,eACvC,EAA4B,GAAc,MAAM,GAAgB,EAAS,CACzE,EACK,CAAC,GAAS,MAAc,EAAM,eACnC,EAA4B,GAAc,IAAI,GAAgB,EAAS,CACvE,EACK,KAAmB,EAAM,OAA8B,EAAM,EAG7D,IAAoB,EAAM,cAC/B,EAA0B,GAAO,GAAK,GAAK,EAAE,EAC7C;EAAC;EAAO;EAAK;EAAK;EAAE,CACpB,EAEK,IAAuB,KAAyD,QAAQ,MAAsB,IAC9G,KAAiB,OAAO,KAAsB,WAAW,IAAoB;AAmCnF,CAhCA,EAAM,gBAAgB;AACrB,EAAI,MAAU,KAAA,KACb,GAAS,EAAM;IAEd,CAAC,EAAM,CAAC,EAGX,EAAM,gBAAgB;AACrB,MAAI,CAAC,GAAU,SAAS;AACvB,MAAiB,UAAU;AAC3B;;EAGD,IAAM,IAAO,GAAiB,SACxB,IAAW,GAAO,MAClB,IAAS,GAAO;AActB,EAZI,IACH,GAAa,EAA4B,GAAU,GAAgB,EAAS,CAAC,GACnE,GAAM,QAChB,GAAa,EAA4B,KAAA,GAAW,GAAgB,EAAS,CAAC,EAG3E,IACH,GAAW,EAA4B,GAAQ,GAAgB,EAAS,CAAC,GAC/D,GAAM,MAChB,GAAW,EAA4B,KAAA,GAAW,GAAgB,EAAS,CAAC,EAG7E,GAAiB,UAAU;IACzB;EAAC;EAAO,GAAU;EAAS;EAAgB;EAAS,CAAC,EAExD,EAAM,gBAAgB;AAChB,KAAU,YAGf,IAAc,MAAY;GACzB,IAAM,IAAU,GAA0B,GAAS,GAAU,EAAe;AAQ5E,UANC,EAAQ,UAAU,EAAQ,SAC1B,EAAQ,YAAY,EAAQ,WAC5B,EAAQ,YAAY,EAAQ,UAErB,IAED;IACN,EACF,IAAY,MAAY;GACvB,IAAM,IAAU,GAA0B,GAAS,GAAU,EAAe;AAQ5E,UANC,EAAQ,UAAU,EAAQ,SAC1B,EAAQ,YAAY,EAAQ,WAC5B,EAAQ,YAAY,EAAQ,UAErB,IAED;IACN;IACA;EAAC,GAAU;EAAS;EAAU;EAAe,CAAC;CAGjD,IAAM,KAAe,EAAM,aACzB,MAAyD;EACzD,IAAI,IAAa;AAIjB,SAHI,KAAgB,GAAU,YAC7B,IAAa,GAAiB,GAAc,IAAW,EAAQ,GAEzD,GAAsB,GAAY,GAAY,GAAgB,EAAc;IAEpF;EAAC;EAAY;EAAgB;EAAe;EAAU;EAAW;EAAQ,CACzE,EAEK,KAAwB,EAAM,aAAa,MAAyB;AACzE,KAAa,EAAK;IAChB,EAAE,CAAC,EAEA,KAAsB,EAAM,aAAa,MAAyB;AACvE,KAAW,EAAK;IACd,EAAE,CAAC,EAGA,KAAe,EAAM,aACzB,MAAoC;EACpC,IAAM,IAAa,EAAkB,GAAU,GAAK,EAAI;AACpD,OAAY,CAAC,EAAW,YAI5B,GAAS,EAAS,EAEd,CAAC,KAAe,CAAC,GAAU,YAC9B,IAAW,GAAa,EAAS,CAAC,EAC9B,KAAiB,GAAU,QAAQ,GAAU,MAChD,EAAQ,GAAM;IAIjB;EAAC;EAAa;EAAU;EAAU;EAAc;EAAK;EAAK;EAAe;EAAQ,CACjF,EAGK,KAAqB,EAAM,aAC/B,MAA4B;AAE5B,KADc,EAAO,UACR,CAAM;IAEpB,CAAC,GAAa,CACd,EAGK,KAAgB,EAAM,kBAAkB;AAE7C,EADA,IAAW,GAAa,EAAM,CAAC,EAC/B,EAAQ,GAAM;IACZ;EAAC;EAAO;EAAU;EAAc;EAAQ,CAAC,EAEtC,IAAmB,EAAM,cAAc;AACvC,SAAU,QAGf,QAAO,GAA+B,IAAW,GAAgB,GAAY;GAC5E,IAAI,EAAE;GACN,IAAI,EAAE;GACN,CAAC;IACA;EAAC,GAAU;EAAS;EAAW;EAAgB;EAAY;EAAE,CAAC,EAE3D,IAAiB,EAAM,cAAc;AACrC,SAAU,QAGf,QAAO,GAA+B,GAAS,GAAgB,GAAY;GAC1E,IAAI,EAAE;GACN,IAAI,EAAE;GACN,CAAC;IACA;EAAC,GAAU;EAAS;EAAS;EAAgB;EAAY;EAAE,CAAC,EAGzD,KAAa,EAAM,cAAc;AACtC,MAAI,GAAU,WAAW,GAAO,MAAM;GACrC,IAAM,IAAW,EAAO,EAAM,MAAM,GAAgB,EAAE,QAAQ,GAAe,CAAC,EACxE,IAAW,MAAoB,IAAmB,GAAG,EAAS,GAAG,MAAqB;AAC5F,OAAI,EAAM,IAAI;IACb,IAAM,IAAS,EAAO,EAAM,IAAI,GAAgB,EAAE,QAAQ,GAAe,CAAC;AAE1E,WAAO,GAAG,EAAS,KADJ,MAAoB,IAAiB,GAAG,EAAO,GAAG,MAAmB;;AAGrF,UAAO;;AAER,SAAO,GAAsB,GAAO,GAAgB,GAAa,EAAE,iBAAiB,EAAc;IAChG;EAAC,GAAU;EAAS;EAAO;EAAgB;EAAkB;EAAkB;EAAgB;EAAa;EAAG;EAAc,CAAC,EAE3H,KAAgB,EAAM,cAAc;AACzC,MAAI,CAAC,GAAO,QAAQ,CAAC,GAAO,GAC3B;EAGD,IAAM,IAAW,EAAO,EAAM,MAAM,GAAgB,EAAE,QAAQ,GAAe,CAAC,EACxE,IAAS,EAAO,EAAM,IAAI,GAAgB,EAAE,QAAQ,GAAe,CAAC;AAI1E,SAAO,GAHU,KAAqB,IAAmB,GAAG,EAAS,GAAG,MAAqB,EAG1E,KAFJ,KAAqB,IAAiB,GAAG,EAAO,GAAG,MAAmB;IAGnF;EAAC;EAAO;EAAgB;EAAe;EAAmB;EAAkB;EAAe,CAAC;AAE/F,QACC,kBAAC,OAAD;EAAK,WAAW,EAAG,aAAa,EAAU,UAAU;YAApD;GACE,CAAC,EAAE,EAAU,SAAS,OACtB,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,CAAC,CAAC,EAAU,SACZ,kBAAC,GAAD;KACC,SAAS;KACT,WAAW,EAAG,aAAa,KAAY,mBAAmB;eAEzD,EAAU;KACJ,CAAA,EAER,CAAC,KAAY,CAAC,CAAC,MACf,kBAAC,GAAD;KAAM,KAAI;KAAO,MAAK;eACpB;KACK,CAAA,CAEH;;GAGN,kBAAC,GAAD;IAAe;IAAM,cAAc;cAAnC,CACC,kBAAC,GAAD,EACC,SAAS,MAAiB;KACzB,IAAM,IAAW,GAAyB,EAAU,cAAc;AAElE,YACC,kBAAC,GAAD;MACC,GAAI;MACJ,IAAI;MACJ,SAAS,EAAS;MAClB,aAAa,EAAS;MACtB,gBAAc;MACd,oBAAkB;MAClB,WAAW,EACV,8CACA,IACA,CAAC,KAAS,yBACV,EAAU,SAAS,qDAClB,EAAwC,UACzC;MACD,UAAU,EAAU;gBAdrB,CAgBC,kBAAC,IAAD,EAAc,WAAU,yBAA0B,CAAA,EAClD,kBAAC,QAAD;OAAM,WAAU;iBAAY;OAAkB,CAAA,CACtC;;OAGV,CAAA,EAEH,kBAAC,GAAD;KACC,WAAU;KACV,OAAM;eAFP,CAKE,CAAC,CAAC,EAAU,UAAU,kBAAC,IAAD,EAAkB,QAAQ,EAAU,QAAU,CAAA,EAErE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CAEE,EAAQ,SAAS,KACjB,kBAAC,OAAD;OAAK,WAAU;iBACb,EAAQ,KAAK,MACb,kBAAC,GAAD;QAEC,SAAQ;QACR,aAAY;QACZ,eAAe,GAAmB,EAAO;QACzC,WAAU;kBAET,EAAO;QACA,EAPH,EAAO,MAOJ,CACR;OACG,CAAA,EAIP,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACC,kBAAC,IAAD;QACC,MAAK;QACL,UAAU;QACV,UAAU;QACV,cAAc,GAAO;QACrB,gBAAgB,EAAU,kBAAkB;QAC5C,iBAAiB,EAAU;QAC3B,UAAU,KAAiB,EAAU;QACrC,QAAQ;QACO;QACf,UAAU,EAAU,eAAe;QACnC,QAAQ,EAAU,eAAe;QACjC,GAAI;QACH,CAAA,EAGD,CAAC,EAAE,GAAO,QAAQ,KAAqB,KAAe,GAAU,WAAW,EAAU,WAAW,kBAAA,GAAA,EAAA,UAAA,CAC/F,kBAAC,GAAD,EAAa,CAAA,EACb,kBAAC,OAAD;QAAK,WAAU;kBAAf;SAEE,CAAC,CAAC,GAAO,QAAQ,CAAC,EAAU,UAC5B,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACC,kBAAC,OAAD;WAAK,WAAU;qBAAf,CACC,kBAAC,GAAD;YAAM,KAAI;YAAO,MAAK;sBAAtB,CAAmC,EAAE,MAAK,IAAQ;eAClD,kBAAC,GAAD;YAAM,KAAI;YAAO,QAAO;sBAAxB,CACE,EAAO,EAAM,MAAM,GAAgB,EAAE,QAAQ,GAAe,CAAC,EAC7D,KAAqB,IAAmB,IAAI,MAAqB,GAC5D;cACF;cACL,CAAC,CAAC,EAAM,MACR,kBAAC,OAAD;WAAK,WAAU;qBAAf,CACC,kBAAC,GAAD;YAAM,KAAI;YAAO,MAAK;sBAAtB,CAAmC,EAAE,IAAG,IAAQ;eAChD,kBAAC,GAAD;YAAM,KAAI;YAAO,QAAO;sBAAxB,CACE,EAAO,EAAM,IAAI,GAAgB,EAAE,QAAQ,GAAe,CAAC,EAC3D,KAAqB,IAAiB,IAAI,MAAmB,GACxD;cACF;aAEF;;SAIN,CAAC,CAAC,GAAU,WAAW,CAAC,CAAC,GAAO,QAChC,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACC,kBAAC,OAAD,EAAA,UAAA,CACC,kBAAC,GAAD;WAAO,MAAK;qBAAM,EAAE;WAAkB,CAAA,EACtC,kBAAC,OAAD;WAAK,WAAU;qBAAf,CACC,kBAAC,IAAD,EAAO,WAAU,iCAAkC,CAAA,EACnD,kBAAC,IAAD;YACC,OAAO;YACP,UAAU;YACV,QAAQ;YACQ;YAChB,MAAM;YACN,UAAU,EAAU;YACpB,QAAQ;aACP,OAAO,EAAE;aACT,SAAS,EAAE;aACX,SAAS,IAAiB,EAAE,UAAU,KAAA;aACtC;YACD,cAAc;aAAE,IAAI,EAAE;aAAI,IAAI,EAAE;aAAI;YACnC,CAAA,CACG;aACD,EAAA,CAAA,EACL,CAAC,CAAC,EAAM,MACR,kBAAC,OAAD,EAAA,UAAA,CACC,kBAAC,GAAD;WAAO,MAAK;qBAAM,EAAE;WAAgB,CAAA,EACpC,kBAAC,OAAD;WAAK,WAAU;qBAAf,CACC,kBAAC,IAAD,EAAO,WAAU,iCAAkC,CAAA,EACnD,kBAAC,IAAD;YACC,OAAO;YACP,UAAU;YACV,QAAQ;YACQ;YAChB,MAAM;YACN,UAAU,EAAU;YACpB,QAAQ;aACP,OAAO,EAAE;aACT,SAAS,EAAE;aACX,SAAS,IAAiB,EAAE,UAAU,KAAA;aACtC;YACD,cAAc;aAAE,IAAI,EAAE;aAAI,IAAI,EAAE;aAAI;YACnC,CAAA,CACG;aACD,EAAA,CAAA,CAEF;;SAIP,kBAAC,GAAD;UAAM,MAAK;UAAQ,SAAS;UAAgB,QAAQ,CAAC;UAAwB,CAAA;SAG5E,CAAC,EAAE,KAAe,GAAU,YAAY,CAAC,EAAU,UACnD,kBAAC,GAAD;UACC,SAAS;UACT,UAAU,CAAC,GAAO,QAAQ,CAAC,GAAO,MAAM,CAAC,CAAC;UAC1C,WAAU;oBAET,EAAE;UACK,CAAA;SAIT,CAAC,CAAC,EAAU,UACZ,kBAAC,OAAD;UAAK,WAAU;oBACd,kBAAC,IAAD;WACC,QAAQ,EAAU;WAClB,QAAQ,GAAa,EAAM;WAC3B,cAAc,CAAC,EAAE,GAAO,QAAQ,GAAO;WACvC,aAAa;WACZ,CAAA;UACG,CAAA;SAEF;UACJ,EAAA,CAAA,CACC;SACD;QACU;OACR;;GAET,CAAC,CAAC,KAAY,kBAAC,GAAD;IAAM,IAAI;IAAa,MAAK;IAAK,MAAK;IAAQ,SAAS;IAAa,CAAA;GAC9E;;;AAMR,GAAW,cAAc"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-D3uCBrYO.cjs`),t=require(`../lib/strings.cjs`),n=require(`../lib/utils.cjs`),r=require(`./text-DBnY6fcL.cjs`),i=require(`./typography-DClleVWi.cjs`),a=require(`./button-DjacsNTg.cjs`),o=require(`./date-picker-DI4b-SeE.cjs`),s=require(`./popover-BTEwjJZS.cjs`),c=require(`./separator-DSkXMOXq.cjs`),l=require(`./select-DxAiUfpM.cjs`);let u=require(`react`);u=e.t(u,1);let d=require(`date-fns`),f=require(`react/jsx-runtime`),p=require(`lucide-react`),m=require(`date-fns/locale`);function h({value:e,defaultValue:l,onChange:h,format:g=`yyyy-MM-dd`,readableFormat:_=`PPP`,placeholder:v,label:y,hint:b,error:x,disabled:S=!1,className:C,withConfirm:w=!1,numberOfMonths:T=2,min:E,max:D,closeOnSelect:O=!0,calendarProps:k,translations:A,strings:j,locale:M,header:N,footer:P,enableYearDropdown:F,yearSelection:I}){let[L,R]=u.useState(!1),[z,B]=u.useState(e??l),V=M??m.enUS,H=t.useStrings(o.i,j??A),U=u.useMemo(()=>F||I?.enabled?`dropdown`:`label`,[F,I]);u.useEffect(()=>{e!==void 0&&B(e)},[e]);let W=u.useCallback(e=>{let t=V?{locale:V}:void 0;return{range:e,formatted:{from:e?.from?(0,d.format)(e.from,g,t):void 0,to:e?.to?(0,d.format)(e.to,g,t):void 0},readable:{from:e?.from?(0,d.format)(e.from,_,t):void 0,to:e?.to?(0,d.format)(e.to,_,t):void 0}}},[g,_,V]),G=u.useCallback(e=>{if(e?.from&&e?.to){let t=Math.ceil((e.to.getTime()-e.from.getTime())/(1e3*60*60*24))+1;if(E&&t<E||D&&t>D)return}B(e),w||(h?.(W(e)),O&&e?.from&&e?.to&&R(!1))},[w,h,W,E,D,O]),K=u.useCallback(()=>{h?.(W(z)),R(!1)},[z,h,W]),q=u.useMemo(()=>z?.from?z.to?`${(0,d.format)(z.from,_,{locale:V})} - ${(0,d.format)(z.to,_,{locale:V})}`:(0,d.format)(z.from,_,{locale:V}):v??H.selectDateRange,[z,_,V,v,H.selectDateRange]),J=u.useMemo(()=>{if(!z?.from||!z?.to)return null;let e=Math.ceil((z.to.getTime()-z.from.getTime())/(1e3*60*60*24))+1;return E&&e<E?H.minimumDays(E):D&&e>D?H.maximumDays(D):null},[z,E,D,H]),Y=u.useMemo(()=>{if(!(!z?.from||!z?.to))return`${(0,d.format)(z.from,_,{locale:V})} - ${(0,d.format)(z.to,_,{locale:V})}`},[z,_,V]);return(0,f.jsxs)(`div`,{className:n.cn(`date-range-picker--component`,`flex flex-col gap-2`,C),children:[!!y&&(0,f.jsx)(i.a,{htmlFor:`date-range-picker-trigger`,className:n.cn(x&&`text-destructive`),children:y}),(0,f.jsxs)(s.n,{open:L,onOpenChange:R,children:[(0,f.jsx)(s.s,{render:e=>(0,f.jsxs)(a.t,{...e,id:`date-range-picker-trigger`,variant:`secondary`,buttonStyle:`outline`,"aria-invalid":!!x,className:n.cn(`w-full justify-start text-left font-normal`,o.n,!z&&`text-muted-foreground`,e.className),disabled:S,children:[(0,f.jsx)(p.Calendar,{className:`mr-2 h-4 w-4 shrink-0`}),(0,f.jsx)(`span`,{className:`truncate`,children:q})]})}),(0,f.jsxs)(s.t,{className:`w-auto p-0`,align:`start`,children:[!!N&&(0,f.jsx)(o.a,{config:N}),(0,f.jsxs)(`div`,{className:`flex flex-col`,children:[(0,f.jsx)(o.s,{mode:`range`,selected:z,onSelect:G,defaultMonth:z?.from,numberOfMonths:T,disabled:S,locale:V,captionLayout:U,fromYear:I?.fromYear,toYear:I?.toYear,...k}),!!(z?.from||J||w||P)&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(c.t,{}),(0,f.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[!!z?.from&&!P&&(0,f.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,f.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,f.jsxs)(r.t,{tag:`span`,type:`secondary`,children:[H.from,`:`]}),(0,f.jsx)(r.t,{tag:`span`,weight:`medium`,children:(0,d.format)(z.from,_,{locale:V})})]}),!!z.to&&(0,f.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,f.jsxs)(r.t,{tag:`span`,type:`secondary`,children:[H.to,`:`]}),(0,f.jsx)(r.t,{tag:`span`,weight:`medium`,children:(0,d.format)(z.to,_,{locale:V})})]})]}),!!J&&(0,f.jsx)(r.t,{type:`error`,children:J}),!!w&&!P&&(0,f.jsx)(a.t,{onClick:K,disabled:!z?.from||!z?.to||!!J,className:`w-full`,children:H.confirm}),!!P&&(0,f.jsx)(`div`,{className:`-mx-3 -mb-3`,children:(0,f.jsx)(o.o,{config:P,output:W(z),hasSelection:!!(z?.from&&z?.to),autoSummary:Y})})]})]})]})]})]}),!!x&&(0,f.jsx)(r.t,{type:`error`,children:x}),!!b&&!x&&(0,f.jsx)(r.t,{type:`secondary`,children:b})]})}h.displayName=`DateRangePicker`;function g({value:e,defaultValue:c,onChange:h,format:g=`yyyy-MM`,readableFormat:_=`MMMM yyyy`,placeholder:v,label:y,hint:b,error:x,disabled:S=!1,className:C,closeOnSelect:w=!0,translations:T,strings:E,locale:D,header:O,footer:k,fromYear:A,toYear:j}){let M=new Date().getFullYear(),[N,P]=u.useState(!1),[F,I]=u.useState(e??c),L=D??m.enUS,R=t.useStrings(o.i,E??T),z=u.useMemo(()=>{let e=A??2017,t=j??2035;return Array.from({length:t-e+1},(t,n)=>e+n)},[A,j]),B=u.useMemo(()=>Array.from({length:12},(e,t)=>(0,d.format)(new Date(2e3,t,1),`MMMM`,{locale:L})),[L]);u.useEffect(()=>{e!==void 0&&I(e)},[e]);let V=u.useCallback((e,t)=>{let n=new Date(t,e,1);return{month:e,year:t,formatted:(0,d.format)(n,g),readable:(0,d.format)(n,_,{locale:L}),date:n}},[g,_,L]),H=u.useCallback(e=>{I({month:parseInt(String(e),10),year:F?.year??M})},[F?.year,M]),U=u.useCallback(e=>{let t=parseInt(String(e),10);I({month:F?.month??0,year:t})},[F?.month]),W=u.useCallback(()=>{F&&(h?.(V(F.month,F.year)),w&&P(!1))},[F,h,V,w]),G=u.useMemo(()=>F?(0,d.format)(new Date(F.year,F.month,1),_,{locale:L}):v??R.selectMonthYear,[F,_,L,v,R.selectMonthYear]);return(0,f.jsxs)(`div`,{className:n.cn(`month-year-picker--component`,`flex flex-col gap-2`,C),children:[!!y&&(0,f.jsx)(i.a,{htmlFor:`month-year-picker-trigger`,className:n.cn(x&&`text-destructive`),children:y}),(0,f.jsxs)(s.n,{open:N,onOpenChange:P,children:[(0,f.jsx)(s.s,{render:e=>(0,f.jsxs)(a.t,{...e,id:`month-year-picker-trigger`,variant:`secondary`,buttonStyle:`outline`,"aria-invalid":!!x,className:n.cn(`w-full justify-start text-left font-normal`,o.n,!F&&`text-muted-foreground`,e.className),disabled:S,children:[(0,f.jsx)(p.Calendar,{className:`mr-2 h-4 w-4`}),G]})}),(0,f.jsxs)(s.t,{className:`w-80 p-0`,align:`start`,children:[!!O&&(0,f.jsx)(o.a,{config:O}),(0,f.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,f.jsxs)(`div`,{className:`space-y-2`,children:[(0,f.jsx)(i.a,{htmlFor:`month-select`,children:R.month}),(0,f.jsxs)(l.t,{value:F?.month?.toString(),onValueChange:H,disabled:S,children:[(0,f.jsx)(l.a,{id:`month-select`,className:`w-full`,children:(0,f.jsx)(l.o,{placeholder:R.month})}),(0,f.jsx)(l.n,{children:B.map((e,t)=>(0,f.jsx)(l.i,{value:t.toString(),children:e},e))})]})]}),(0,f.jsxs)(`div`,{className:`space-y-2`,children:[(0,f.jsx)(i.a,{htmlFor:`year-select`,children:R.year}),(0,f.jsxs)(l.t,{value:F?.year?.toString(),onValueChange:U,disabled:S,children:[(0,f.jsx)(l.a,{id:`year-select`,className:`w-full`,children:(0,f.jsx)(l.o,{placeholder:R.year})}),(0,f.jsx)(l.n,{children:z.map(e=>(0,f.jsx)(l.i,{value:e.toString(),children:e},e))})]})]})]}),(0,f.jsx)(`div`,{className:`p-4 pt-0`,children:(0,f.jsx)(a.t,{className:`w-full`,onClick:W,disabled:S||!F,children:R.confirm})}),!!k&&!!F&&(0,f.jsx)(o.o,{config:k,output:V(F.month,F.year),hasSelection:!!F,autoSummary:G})]})]}),!!x&&(0,f.jsx)(r.t,{type:`error`,children:x}),!!b&&!x&&(0,f.jsx)(r.t,{type:`secondary`,children:b})]})}g.displayName=`MonthYearPicker`,Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return g}});
|
|
2
|
-
//# sourceMappingURL=date-pickers-CLzuzmuc.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-pickers-CLzuzmuc.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 { 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\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-2 h-4 w-4 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\tfromYear={yearSelection?.fromYear}\n\t\t\t\t\t\t\ttoYear={yearSelection?.toYear}\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\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 <Label\n\t\t\t\t\thtmlFor=\"month-year-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=\"month-year-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!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-2 h-4 w-4\" />\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":"wfAyBA,SAAgB,EAAgB,CAC/B,QACA,eACA,WACA,OAAQ,EAAa,aACrB,iBAAiB,MACjB,cACA,QACA,OACA,QACA,WAAW,GACX,YACA,cAAc,GACd,iBAAiB,EACjB,MACA,MACA,gBAAgB,GAChB,gBACA,eACA,UACA,SACA,SACA,SACA,qBACA,iBACwB,CACxB,GAAM,CAAC,EAAM,GAAW,EAAM,SAAS,GAAM,CACvC,CAAC,EAAO,GAAY,EAAM,SAC/B,GAAS,EACT,CAEK,EAAgB,GAAU,EAAA,KAC1B,EAAI,EAAA,WAAW,EAAA,EAA0B,GAAW,EAAa,CAGjE,EAAgB,EAAM,YACvB,GAAsB,GAAe,QACjC,WAED,QACL,CAAC,EAAoB,EAAc,CAAC,CAGvC,EAAM,cAAgB,CACjB,IAAU,IAAA,IACb,EAAS,EAAM,EAEd,CAAC,EAAM,CAAC,CAGX,IAAM,EAAe,EAAM,YACzB,GAAkD,CAClD,IAAM,EAAU,EAAgB,CAAE,OAAQ,EAAe,CAAG,IAAA,GAC5D,MAAO,CACN,QACA,UAAW,CACV,KAAM,GAAO,MAAA,EAAA,EAAA,QAAc,EAAM,KAAM,EAAY,EAAQ,CAAG,IAAA,GAC9D,GAAI,GAAO,IAAA,EAAA,EAAA,QAAY,EAAM,GAAI,EAAY,EAAQ,CAAG,IAAA,GACxD,CACD,SAAU,CACT,KAAM,GAAO,MAAA,EAAA,EAAA,QAAc,EAAM,KAAM,EAAgB,EAAQ,CAAG,IAAA,GAClE,GAAI,GAAO,IAAA,EAAA,EAAA,QAAY,EAAM,GAAI,EAAgB,EAAQ,CAAG,IAAA,GAC5D,CACD,EAEF,CAAC,EAAY,EAAgB,EAAc,CAC3C,CAGK,EAAe,EAAM,YACzB,GAAoC,CAEpC,GAAI,GAAU,MAAQ,GAAU,GAAI,CACnC,IAAM,EAAW,KAAK,MACpB,EAAS,GAAG,SAAS,CAAG,EAAS,KAAK,SAAS,GAAK,IAAO,GAAK,GAAK,IACtE,CAAG,EAMJ,GAJI,GAAO,EAAW,GAIlB,GAAO,EAAW,EACrB,OAIF,EAAS,EAAS,CAEb,IACJ,IAAW,EAAa,EAAS,CAAC,CAE9B,GAAiB,GAAU,MAAQ,GAAU,IAChD,EAAQ,GAAM,GAIjB,CAAC,EAAa,EAAU,EAAc,EAAK,EAAK,EAAc,CAC9D,CAGK,EAAgB,EAAM,gBAAkB,CAC7C,IAAW,EAAa,EAAM,CAAC,CAC/B,EAAQ,GAAM,EACZ,CAAC,EAAO,EAAU,EAAa,CAAC,CAG7B,EAAa,EAAM,YACpB,GAAO,KACN,EAAM,GACF,IAAA,EAAA,EAAA,QAAU,EAAM,KAAM,EAAgB,CAAE,OAAQ,EAAe,CAAC,CAAC,MAAA,EAAA,EAAA,QAAY,EAAM,GAAI,EAAgB,CAAE,OAAQ,EAAe,CAAC,IAEzI,EAAA,EAAA,QAAc,EAAM,KAAM,EAAgB,CAAE,OAAQ,EAAe,CAAC,CAE9D,GAAe,EAAE,gBACtB,CAAC,EAAO,EAAgB,EAAe,EAAa,EAAE,gBAAgB,CAAC,CAGpE,EAAoB,EAAM,YAAc,CAC7C,GAAI,CAAC,GAAO,MAAQ,CAAC,GAAO,GAAI,OAAO,KAEvC,IAAM,EAAW,KAAK,MACpB,EAAM,GAAG,SAAS,CAAG,EAAM,KAAK,SAAS,GAAK,IAAO,GAAK,GAAK,IAChE,CAAG,EAUJ,OARI,GAAO,EAAW,EACd,EAAE,YAAY,EAAI,CAGtB,GAAO,EAAW,EACd,EAAE,YAAY,EAAI,CAGnB,MACL,CAAC,EAAO,EAAK,EAAK,EAAE,CAAC,CAElB,EAAgB,EAAM,YAAc,CACrC,MAAC,GAAO,MAAQ,CAAC,GAAO,IAO5B,MAAO,IAAA,EAAA,EAAA,QAHiB,EAAM,KAAM,EAAgB,CAAE,OAAQ,EAAe,CAGnE,CAAS,MAAA,EAAA,EAAA,QAFG,EAAM,GAAI,EAAgB,CAAE,OAAQ,EAAe,CAEjD,IACtB,CAAC,EAAO,EAAgB,EAAc,CAAC,CAE1C,OACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,+BAAgC,sBAAuB,EAAU,UAApF,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,QAAQ,4BACR,UAAW,EAAA,GAAG,GAAS,mBAAmB,UAEzC,EACM,CAAA,EAGT,EAAA,EAAA,MAAC,EAAA,EAAD,CAAe,OAAM,aAAc,WAAnC,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,OAAS,IACR,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,GAAI,EACJ,GAAG,4BACH,QAAQ,YACR,YAAY,UACZ,eAAc,CAAC,CAAC,EAChB,UAAW,EAAA,GACV,6CACA,EAAA,EACA,CAAC,GAAS,wBACP,EAAwC,UAC3C,CACS,oBAZX,EAcC,EAAA,EAAA,KAAC,EAAA,SAAD,CAAc,UAAU,wBAA0B,CAAA,EAClD,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,oBAAY,EAAkB,CAAA,CACtC,GAET,CAAA,EAEF,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,UAAU,aACV,MAAM,iBAFP,CAKE,CAAC,CAAC,IAAU,EAAA,EAAA,KAAC,EAAA,EAAD,CAAkB,OAAQ,EAAU,CAAA,EAEjD,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,yBAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,QACL,SAAU,EACV,SAAU,EACV,aAAc,GAAO,KACL,iBACN,WACV,OAAQ,EACO,gBACf,SAAU,GAAe,SACzB,OAAQ,GAAe,OACvB,GAAI,EACH,CAAA,CAGD,CAAC,EAAE,GAAO,MAAQ,GAAqB,GAAe,KAAW,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EAChE,EAAA,EAAA,KAAC,EAAA,EAAD,EAAa,CAAA,EACb,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,mCAAf,CAEE,CAAC,CAAC,GAAO,MAAQ,CAAC,IAClB,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,mDAAf,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,mCAAf,EACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,qBAAtB,CAAmC,EAAE,KAAK,IAAQ,IAClD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,OAAO,+BACf,EAAM,KAAM,EAAgB,CAAE,OAAQ,EAAe,CAAC,CACxD,CAAA,CACF,GACL,CAAC,CAAC,EAAM,KACR,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,mCAAf,EACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,qBAAtB,CAAmC,EAAE,GAAG,IAAQ,IAChD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,OAAO,+BACf,EAAM,GAAI,EAAgB,CAAE,OAAQ,EAAe,CAAC,CACtD,CAAA,CACF,GAEF,GAIN,CAAC,CAAC,IAAqB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,iBAAS,EAAyB,CAAA,CAGpE,CAAC,CAAC,GAAe,CAAC,IAClB,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,QAAS,EACT,SAAU,CAAC,GAAO,MAAQ,CAAC,GAAO,IAAM,CAAC,CAAC,EAC1C,UAAU,kBAET,EAAE,QACK,CAAA,CAIT,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wBACd,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,OAAQ,EACR,OAAQ,EAAa,EAAM,CAC3B,aAAc,CAAC,EAAE,GAAO,MAAQ,GAAO,IACvC,YAAa,EACZ,CAAA,CACG,CAAA,CAEF,GACJ,CAAA,CAAA,CACC,GACU,GACR,GAET,CAAC,CAAC,IAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,iBAAS,EAAa,CAAA,CAE5C,CAAC,CAAC,GAAQ,CAAC,IAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,qBAAa,EAAY,CAAA,CACpD,GAQR,EAAgB,YAAc,kBCxQ9B,SAAgB,EAAgB,CAC/B,QACA,eACA,WACA,OAAQ,EAAa,UACrB,iBAAiB,YACjB,cACA,QACA,OACA,QACA,WAAW,GACX,YACA,gBAAgB,GAChB,eACA,UACA,SACA,SACA,SACA,WACA,UACwB,CACxB,IAAM,EAAc,IAAI,MAAM,CAAC,aAAa,CACtC,CAAC,EAAM,GAAW,EAAM,SAAS,GAAM,CACvC,CAAC,EAAW,GAAgB,EAAM,SAGzB,GAAS,EAAa,CAE/B,EAAgB,GAAU,EAAA,KAC1B,EAAI,EAAA,WAAW,EAAA,EAA0B,GAAW,EAAa,CAGjE,EAAY,EAAM,YAAc,CACrC,IAAM,EAAQ,GAAY,KACpB,EAAM,GAAU,KACtB,OAAO,MAAM,KAAK,CAAE,OAAQ,EAAM,EAAQ,EAAG,EAAG,EAAG,IAAM,EAAQ,EAAE,EACjE,CAAC,EAAU,EAAO,CAAC,CAGhB,EAAa,EAAM,YACjB,MAAM,KAAK,CAAE,OAAQ,GAAI,EAAG,EAAG,KAErC,EAAA,EAAA,QAAc,IADG,KAAK,IAAM,EAAG,EACjB,CAAM,OAAQ,CAAE,OAAQ,EAAe,CAAC,CACrD,CACA,CAAC,EAAc,CAAC,CAGnB,EAAM,cAAgB,CACjB,IAAU,IAAA,IACb,EAAa,EAAM,EAElB,CAAC,EAAM,CAAC,CAGX,IAAM,EAAe,EAAM,aACzB,EAAe,IAAkC,CACjD,IAAM,EAAO,IAAI,KAAK,EAAM,EAAO,EAAE,CACrC,MAAO,CACN,QACA,OACA,WAAA,EAAA,EAAA,QAAkB,EAAM,EAAW,CACnC,UAAA,EAAA,EAAA,QAAiB,EAAM,EAAgB,CAAE,OAAQ,EAAe,CAAC,CACjE,OACA,EAEF,CAAC,EAAY,EAAgB,EAAc,CAC3C,CAGK,EAAoB,EAAM,YAC9B,GAAwB,CAIxB,EAAa,CAAE,MAFD,SADG,OAAO,EACD,CAAU,GAElB,CAAO,KADT,GAAW,MAAQ,EACJ,CAAC,EAE9B,CAAC,GAAW,KAAM,EAAY,CAC9B,CAEK,EAAmB,EAAM,YAC7B,GAAuB,CAEvB,IAAM,EAAO,SADG,OAAO,EACD,CAAS,GAAG,CAElC,EAAa,CAAE,MADD,GAAW,OAAS,EACZ,OAAM,CAAC,EAE9B,CAAC,GAAW,MAAM,CAClB,CAGK,EAAgB,EAAM,gBAAkB,CACzC,IACH,IAAW,EAAa,EAAU,MAAO,EAAU,KAAK,CAAC,CACrD,GACH,EAAQ,GAAM,GAGd,CAAC,EAAW,EAAU,EAAc,EAAc,CAAC,CAGhD,EAAa,EAAM,YACpB,GAEH,EAAA,EAAA,QAAc,IADG,KAAK,EAAU,KAAM,EAAU,MAAO,EACzC,CAAM,EAAgB,CAAE,OAAQ,EAAe,CAAC,CAExD,GAAe,EAAE,gBACtB,CAAC,EAAW,EAAgB,EAAe,EAAa,EAAE,gBAAgB,CAAC,CAE9E,OACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,GAAG,+BAAgC,sBAAuB,EAAU,UAApF,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,QAAQ,4BACR,UAAW,EAAA,GAAG,GAAS,mBAAmB,UAEzC,EACM,CAAA,EAGT,EAAA,EAAA,MAAC,EAAA,EAAD,CAAe,OAAM,aAAc,WAAnC,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,OAAS,IACR,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,GAAI,EACJ,GAAG,4BACH,QAAQ,YACR,YAAY,UACZ,eAAc,CAAC,CAAC,EAChB,UAAW,EAAA,GACV,6CACA,EAAA,EACA,CAAC,GAAa,wBACX,EAAwC,UAC3C,CACS,oBAZX,EAcC,EAAA,EAAA,KAAC,EAAA,SAAD,CAAc,UAAU,eAAiB,CAAA,CACxC,EACO,GAET,CAAA,EAEF,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,UAAU,WACV,MAAM,iBAFP,CAKE,CAAC,CAAC,IAAU,EAAA,EAAA,KAAC,EAAA,EAAD,CAAkB,OAAQ,EAAU,CAAA,EAGjD,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,yBAAf,EAEC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,qBAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAQ,wBAAgB,EAAE,MAAc,CAAA,EAC/C,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,MAAO,GAAW,OAAO,UAAU,CACnC,cAAe,EACL,oBAHX,EAKC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAe,GAAG,eAAe,UAAU,mBAC1C,EAAA,EAAA,KAAC,EAAA,EAAD,CAAa,YAAa,EAAE,MAAS,CAAA,CACtB,CAAA,EAChB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SACE,EAAW,KAAK,EAAM,KACtB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAuB,MAAO,EAAM,UAAU,UAC5C,EACW,CAFI,EAEJ,CACZ,CACa,CAAA,CACR,GACJ,IAGN,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,qBAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAQ,uBAAe,EAAE,KAAa,CAAA,EAC7C,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,MAAO,GAAW,MAAM,UAAU,CAClC,cAAe,EACL,oBAHX,EAKC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAe,GAAG,cAAc,UAAU,mBACzC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAa,YAAa,EAAE,KAAQ,CAAA,CACrB,CAAA,EAChB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SACE,EAAU,IAAK,IACf,EAAA,EAAA,KAAC,EAAA,EAAD,CAAuB,MAAO,EAAK,UAAU,UAC3C,EACW,CAFI,EAEJ,CACZ,CACa,CAAA,CACR,GACJ,GACD,IAGN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,qBACd,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,UAAU,SACV,QAAS,EACT,SAAU,GAAY,CAAC,WAEtB,EAAE,QACK,CAAA,CACJ,CAAA,CAGL,CAAC,CAAC,GAAU,CAAC,CAAC,IACd,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,OAAQ,EACR,OAAQ,EAAa,EAAU,MAAO,EAAU,KAAK,CACrD,aAAc,CAAC,CAAC,EAChB,YAAa,EACZ,CAAA,CAEa,GACR,GAET,CAAC,CAAC,IAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,iBAAS,EAAa,CAAA,CAE5C,CAAC,CAAC,GAAQ,CAAC,IAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,qBAAa,EAAY,CAAA,CACpD,GAOR,EAAgB,YAAc"}
|