themelia-react-ui 0.0.0-stage → 1.0.1
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/CHANGELOG.md +116 -0
- package/LICENSE +21 -0
- package/README.md +282 -2
- package/THIRD_PARTY_NOTICES.md +65 -0
- package/dist/accordion-B-5Focs8.js +205 -0
- package/dist/accordion-B-5Focs8.js.map +1 -0
- package/dist/action-menu-Cx3SdfbN.js +265 -0
- package/dist/action-menu-Cx3SdfbN.js.map +1 -0
- package/dist/action-presentation.js +11 -0
- package/dist/action-presentation.js.map +1 -0
- package/dist/affordance-geometry.generated-D8Jcfb0G.js +32 -0
- package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +1 -0
- package/dist/ai-artifact-B5tPpXnS.js +1121 -0
- package/dist/ai-artifact-B5tPpXnS.js.map +1 -0
- package/dist/anchored-positioning-DPnKTvNs.js +6 -0
- package/dist/anchored-positioning-DPnKTvNs.js.map +1 -0
- package/dist/app-shell-at8Kt4l_.js +235 -0
- package/dist/app-shell-at8Kt4l_.js.map +1 -0
- package/dist/attachment-BO2R47wn.js +244 -0
- package/dist/attachment-BO2R47wn.js.map +1 -0
- package/dist/auth-OFwWSAap.js +704 -0
- package/dist/auth-OFwWSAap.js.map +1 -0
- package/dist/avatar-Bpzty83c.js +178 -0
- package/dist/avatar-Bpzty83c.js.map +1 -0
- package/dist/badge-BZXZT9wd.js +92 -0
- package/dist/badge-BZXZT9wd.js.map +1 -0
- package/dist/base/accordion.js +3 -0
- package/dist/base/action-menu.js +3 -0
- package/dist/base/attachment.js +3 -0
- package/dist/base/avatar.js +3 -0
- package/dist/base/badge.js +3 -0
- package/dist/base/buttons.js +3 -0
- package/dist/base/cards.js +4 -0
- package/dist/base/carousel.js +251 -0
- package/dist/base/carousel.js.map +1 -0
- package/dist/base/cascader.js +361 -0
- package/dist/base/cascader.js.map +1 -0
- package/dist/base/chart.js +3 -0
- package/dist/base/choice-inputs.js +4 -0
- package/dist/base/code-block.js +3 -0
- package/dist/base/combobox.js +3 -0
- package/dist/base/command.js +3 -0
- package/dist/base/copyable.js +3 -0
- package/dist/base/date-pickers.js +4 -0
- package/dist/base/display.js +8 -0
- package/dist/base/feedback.js +5 -0
- package/dist/base/forms-numeric.js +3 -0
- package/dist/base/forms.js +4 -0
- package/dist/base/inline-edit.js +236 -0
- package/dist/base/inline-edit.js.map +1 -0
- package/dist/base/item.js +3 -0
- package/dist/base/media-gallery.js +3 -0
- package/dist/base/navigation.js +8 -0
- package/dist/base/popover-menu.js +3 -0
- package/dist/base/popover.js +3 -0
- package/dist/base/qr-code.js +63 -0
- package/dist/base/qr-code.js.map +1 -0
- package/dist/base/repeaters.js +620 -0
- package/dist/base/repeaters.js.map +1 -0
- package/dist/base/sheet.js +3 -0
- package/dist/base/sidebar.js +3 -0
- package/dist/base/signature-pad.js +364 -0
- package/dist/base/signature-pad.js.map +1 -0
- package/dist/base/skeleton.js +3 -0
- package/dist/base/spinner.js +3 -0
- package/dist/base/structure.js +3 -0
- package/dist/base/table.js +3 -0
- package/dist/base/text-inputs.js +4 -0
- package/dist/base/toaster.js +102 -0
- package/dist/base/toaster.js.map +1 -0
- package/dist/base/tree.js +3 -0
- package/dist/base/upload-queue.js +3 -0
- package/dist/base/upload.js +5 -0
- package/dist/base/value-inputs.js +3 -0
- package/dist/blocks/admin.js +478 -0
- package/dist/blocks/admin.js.map +1 -0
- package/dist/blocks/ai.js +1021 -0
- package/dist/blocks/ai.js.map +1 -0
- package/dist/blocks/analytics/usage-card.js +3 -0
- package/dist/blocks/analytics.js +1500 -0
- package/dist/blocks/analytics.js.map +1 -0
- package/dist/blocks/collaboration.js +3 -0
- package/dist/blocks/commerce/receipt.js +3 -0
- package/dist/blocks/commerce.js +3393 -0
- package/dist/blocks/commerce.js.map +1 -0
- package/dist/blocks/data-display.js +3 -0
- package/dist/blocks/onboarding.js +128 -0
- package/dist/blocks/onboarding.js.map +1 -0
- package/dist/blocks/planning.js +311 -0
- package/dist/blocks/planning.js.map +1 -0
- package/dist/blocks/timelines.js +3 -0
- package/dist/breadcrumbs-DdQ_I5ra.js +127 -0
- package/dist/breadcrumbs-DdQ_I5ra.js.map +1 -0
- package/dist/button-BS6l5JUw.js +47 -0
- package/dist/button-BS6l5JUw.js.map +1 -0
- package/dist/buttons-Co6GavvM.js +674 -0
- package/dist/buttons-Co6GavvM.js.map +1 -0
- package/dist/cards-Cum56XOF.js +66 -0
- package/dist/cards-Cum56XOF.js.map +1 -0
- package/dist/chart-DVfcwQu6.js +149 -0
- package/dist/chart-DVfcwQu6.js.map +1 -0
- package/dist/checkbox-BavDRjF7.js +34 -0
- package/dist/checkbox-BavDRjF7.js.map +1 -0
- package/dist/choice-inputs-CC7XqPQO.js +619 -0
- package/dist/choice-inputs-CC7XqPQO.js.map +1 -0
- package/dist/code-block-xHKbAJDj.js +183 -0
- package/dist/code-block-xHKbAJDj.js.map +1 -0
- package/dist/collapsible-DsnktFNv.js +81 -0
- package/dist/collapsible-DsnktFNv.js.map +1 -0
- package/dist/collection-content-C4fthJV_.js +53 -0
- package/dist/collection-content-C4fthJV_.js.map +1 -0
- package/dist/combobox-DEbdr-3u.js +273 -0
- package/dist/combobox-DEbdr-3u.js.map +1 -0
- package/dist/combobox-xv3yJbzl.js +850 -0
- package/dist/combobox-xv3yJbzl.js.map +1 -0
- package/dist/command-C0xe7u9B.js +421 -0
- package/dist/command-C0xe7u9B.js.map +1 -0
- package/dist/comments-DviPLnwy.js +1132 -0
- package/dist/comments-DviPLnwy.js.map +1 -0
- package/dist/component-vocabulary.js +26 -0
- package/dist/component-vocabulary.js.map +1 -0
- package/dist/components/base/accordion/accordion-variants.d.ts +36 -0
- package/dist/components/base/accordion/accordion.d.ts +20 -0
- package/dist/components/base/accordion/accordion.strings.d.ts +15 -0
- package/dist/components/base/accordion/accordion.types.d.ts +74 -0
- package/dist/components/base/accordion/index.d.ts +4 -0
- package/dist/components/base/accordion/smart-accordion.d.ts +7 -0
- package/dist/components/base/action-menu/action-menu.d.ts +147 -0
- package/dist/components/base/action-menu/action-menu.strings.d.ts +4 -0
- package/dist/components/base/action-menu/index.d.ts +11 -0
- package/dist/components/base/attachment/attachment.d.ts +17 -0
- package/dist/components/base/attachment/attachment.types.d.ts +49 -0
- package/dist/components/base/attachment/index.d.ts +2 -0
- package/dist/components/base/avatar/avatar.d.ts +24 -0
- package/dist/components/base/avatar/index.d.ts +14 -0
- package/dist/components/base/avatar/stacked-avatars.d.ts +39 -0
- package/dist/components/base/badge/badge.d.ts +22 -0
- package/dist/components/base/badge/badge.recipes.d.ts +20 -0
- package/dist/components/base/badge/index.d.ts +2 -0
- package/dist/components/base/buttons/base-button.d.ts +24 -0
- package/dist/components/base/buttons/button-group.d.ts +28 -0
- package/dist/components/base/buttons/button-group.recipes.d.ts +6 -0
- package/dist/components/base/buttons/button.d.ts +47 -0
- package/dist/components/base/buttons/button.recipes.d.ts +23 -0
- package/dist/components/base/buttons/button.variants.d.ts +8 -0
- package/dist/components/base/buttons/index.d.ts +7 -0
- package/dist/components/base/buttons/loader-button.d.ts +40 -0
- package/dist/components/base/buttons/text-button.d.ts +19 -0
- package/dist/components/base/buttons/tooltip-button.d.ts +7 -0
- package/dist/components/base/cards/card-actions.d.ts +41 -0
- package/dist/components/base/cards/card.recipes.d.ts +28 -0
- package/dist/components/base/cards/index.d.ts +5 -0
- package/dist/components/base/cards/partials/card-primitives.d.ts +21 -0
- package/dist/components/base/cards/partials/has-renderable-content.d.ts +8 -0
- package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts +8 -0
- package/dist/components/base/cards/partials/smart-card-alert.d.ts +20 -0
- package/dist/components/base/cards/partials/smart-card-header-row.d.ts +33 -0
- package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +16 -0
- package/dist/components/base/cards/smart-card.d.ts +9 -0
- package/dist/components/base/cards/smart-card.strings.d.ts +18 -0
- package/dist/components/base/cards/smart-card.tokens.d.ts +44 -0
- package/dist/components/base/cards/smart-card.types.d.ts +146 -0
- package/dist/components/base/carousel/carousel.d.ts +105 -0
- package/dist/components/base/carousel/carousel.strings.d.ts +6 -0
- package/dist/components/base/carousel/index.d.ts +2 -0
- package/dist/components/base/cascader/cascader.d.ts +2 -0
- package/dist/components/base/cascader/cascader.types.d.ts +57 -0
- package/dist/components/base/cascader/index.d.ts +2 -0
- package/dist/components/base/chart/chart.d.ts +99 -0
- package/dist/components/base/chart/index.d.ts +9 -0
- package/dist/components/base/choice-inputs/card-checkbox-group.d.ts +27 -0
- package/dist/components/base/choice-inputs/card-radio-group.d.ts +19 -0
- package/dist/components/base/choice-inputs/checkbox.d.ts +17 -0
- package/dist/components/base/choice-inputs/choice-types.d.ts +57 -0
- package/dist/components/base/choice-inputs/index.d.ts +28 -0
- package/dist/components/base/choice-inputs/list-radio-group.d.ts +13 -0
- package/dist/components/base/choice-inputs/pill-radio-group.d.ts +27 -0
- package/dist/components/base/choice-inputs/select-popup.d.ts +26 -0
- package/dist/components/base/choice-inputs/select.d.ts +94 -0
- package/dist/components/base/choice-inputs/switch-card.d.ts +36 -0
- package/dist/components/base/choice-inputs/switch.d.ts +38 -0
- package/dist/components/base/choice-inputs/toggle-field.d.ts +41 -0
- package/dist/components/base/code-block/code-block.d.ts +3 -0
- package/dist/components/base/code-block/code-block.types.d.ts +46 -0
- package/dist/components/base/code-block/index.d.ts +2 -0
- package/dist/components/base/code-block/use-code-copy.d.ts +6 -0
- package/dist/components/base/combobox/index.d.ts +27 -0
- package/dist/components/base/command/command.d.ts +73 -0
- package/dist/components/base/command/index.d.ts +1 -0
- package/dist/components/base/copyable/copyable.d.ts +36 -0
- package/dist/components/base/copyable/index.d.ts +1 -0
- package/dist/components/base/date-pickers/date-picker-footer.d.ts +14 -0
- package/dist/components/base/date-pickers/date-picker-header.d.ts +10 -0
- package/dist/components/base/date-pickers/date-picker-helpers.d.ts +87 -0
- package/dist/components/base/date-pickers/date-picker-internals.d.ts +10 -0
- package/dist/components/base/date-pickers/date-picker-multiple.d.ts +20 -0
- package/dist/components/base/date-pickers/date-picker-range.d.ts +15 -0
- package/dist/components/base/date-pickers/date-picker-single.d.ts +15 -0
- package/dist/components/base/date-pickers/date-picker.d.ts +3 -0
- package/dist/components/base/date-pickers/date-picker.recipes.d.ts +18 -0
- package/dist/components/base/date-pickers/date-pickers.strings.d.ts +14 -0
- package/dist/components/base/date-pickers/datepicker.types.d.ts +285 -0
- package/dist/components/base/date-pickers/index.d.ts +7 -0
- package/dist/components/base/date-pickers/month-year-picker.d.ts +4 -0
- package/dist/components/base/date-pickers/time-picker.d.ts +70 -0
- package/dist/components/base/display/alert-dialog.d.ts +25 -0
- package/dist/components/base/display/boolean-indicator.d.ts +25 -0
- package/dist/components/base/display/collapsible.d.ts +21 -0
- package/dist/components/base/display/content-block.d.ts +73 -0
- package/dist/components/base/display/content-block.strings.d.ts +5 -0
- package/dist/components/base/display/date-block.d.ts +70 -0
- package/dist/components/base/display/dialog.d.ts +35 -0
- package/dist/components/base/display/icon-badge/icon-badge.d.ts +45 -0
- package/dist/components/base/display/icon-badge/index.d.ts +1 -0
- package/dist/components/base/display/icon-size.d.ts +5 -0
- package/dist/components/base/display/index.d.ts +31 -0
- package/dist/components/base/display/placeholder-pattern.d.ts +7 -0
- package/dist/components/base/display/scroll-area.d.ts +12 -0
- package/dist/components/base/display/separator.d.ts +10 -0
- package/dist/components/base/display/surface-title.d.ts +10 -0
- package/dist/components/base/display/tooltip.d.ts +28 -0
- package/dist/components/base/display/visually-hidden.d.ts +14 -0
- package/dist/components/base/feedback/alert.d.ts +49 -0
- package/dist/components/base/feedback/empty.d.ts +48 -0
- package/dist/components/base/feedback/index.d.ts +27 -0
- package/dist/components/base/feedback/progress.d.ts +81 -0
- package/dist/components/base/feedback/progress.strings.d.ts +5 -0
- package/dist/components/base/feedback/state-display.d.ts +39 -0
- package/dist/components/base/forms/controlled-form-field.d.ts +32 -0
- package/dist/components/base/forms/controlled-form-field.strings.d.ts +7 -0
- package/dist/components/base/forms/form-field.d.ts +38 -0
- package/dist/components/base/forms/form-sizing.d.ts +86 -0
- package/dist/components/base/forms/index.d.ts +4 -0
- package/dist/components/base/forms/operation-password-form.d.ts +16 -0
- package/dist/components/base/forms/workflow.d.ts +68 -0
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +47 -0
- package/dist/components/base/forms-numeric/currency-input.d.ts +44 -0
- package/dist/components/base/forms-numeric/decimal-input.d.ts +53 -0
- package/dist/components/base/forms-numeric/dimensions-input.d.ts +79 -0
- package/dist/components/base/forms-numeric/index.d.ts +21 -0
- package/dist/components/base/forms-numeric/money-input.d.ts +67 -0
- package/dist/components/base/forms-numeric/money-input.strings.d.ts +6 -0
- package/dist/components/base/forms-numeric/percentage-input.d.ts +8 -0
- package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +12 -0
- package/dist/components/base/forms-numeric/weight-input.d.ts +54 -0
- package/dist/components/base/inline-edit/index.d.ts +2 -0
- package/dist/components/base/inline-edit/inline-edit.d.ts +81 -0
- package/dist/components/base/inline-edit/inline-edit.recipes.d.ts +6 -0
- package/dist/components/base/item/index.d.ts +2 -0
- package/dist/components/base/item/item.d.ts +12 -0
- package/dist/components/base/item/item.types.d.ts +100 -0
- package/dist/components/base/media-gallery/index.d.ts +2 -0
- package/dist/components/base/media-gallery/media-gallery.d.ts +45 -0
- package/dist/components/base/navigation/breadcrumbs.d.ts +37 -0
- package/dist/components/base/navigation/dropdown-menu.d.ts +45 -0
- package/dist/components/base/navigation/index.d.ts +21 -0
- package/dist/components/base/navigation/language-switcher.d.ts +12 -0
- package/dist/components/base/navigation/navigation-tabs.d.ts +40 -0
- package/dist/components/base/navigation/overflow-tab-bar.d.ts +43 -0
- package/dist/components/base/navigation/page-header/index.d.ts +1 -0
- package/dist/components/base/navigation/page-header/page-header.d.ts +88 -0
- package/dist/components/base/navigation/pagination.d.ts +61 -0
- package/dist/components/base/navigation/tab-scroll-viewport.d.ts +12 -0
- package/dist/components/base/navigation/tabs.d.ts +23 -0
- package/dist/components/base/popover/collection-content.d.ts +22 -0
- package/dist/components/base/popover/index.d.ts +1 -0
- package/dist/components/base/popover/popover.d.ts +54 -0
- package/dist/components/base/popover/popover.recipes.d.ts +29 -0
- package/dist/components/base/popover-menu/index.d.ts +3 -0
- package/dist/components/base/popover-menu/popover-menu.d.ts +82 -0
- package/dist/components/base/popover-menu/popover-menu.types.d.ts +30 -0
- package/dist/components/base/qr-code/index.d.ts +8 -0
- package/dist/components/base/qr-code/qr-code.d.ts +13 -0
- package/dist/components/base/repeaters/index.d.ts +21 -0
- package/dist/components/base/repeaters/key-value-editor.d.ts +27 -0
- package/dist/components/base/repeaters/localized-object-field.d.ts +35 -0
- package/dist/components/base/repeaters/localized-string-field.d.ts +25 -0
- package/dist/components/base/repeaters/localized-string-repeater.d.ts +44 -0
- package/dist/components/base/repeaters/object-repeater.d.ts +66 -0
- package/dist/components/base/repeaters/repeater.d.ts +87 -0
- package/dist/components/base/repeaters/repeaters.strings.d.ts +16 -0
- package/dist/components/base/repeaters/string-repeater.d.ts +65 -0
- package/dist/components/base/repeaters/string-repeater.utils.d.ts +2 -0
- package/dist/components/base/sheet/index.d.ts +1 -0
- package/dist/components/base/sheet/sheet.d.ts +35 -0
- package/dist/components/base/sidebar/index.d.ts +6 -0
- package/dist/components/base/sidebar/sidebar.d.ts +135 -0
- package/dist/components/base/signature-pad/index.d.ts +4 -0
- package/dist/components/base/signature-pad/signature-pad.d.ts +4 -0
- package/dist/components/base/signature-pad/signature-pad.types.d.ts +66 -0
- package/dist/components/base/signature-pad/signature-pad.utils.d.ts +8 -0
- package/dist/components/base/skeleton/index.d.ts +14 -0
- package/dist/components/base/skeleton/skeleton.d.ts +54 -0
- package/dist/components/base/spinner/index.d.ts +1 -0
- package/dist/components/base/spinner/spinner.d.ts +32 -0
- package/dist/components/base/structure/adaptive-grid.d.ts +3 -0
- package/dist/components/base/structure/grid-cell.d.ts +3 -0
- package/dist/components/base/structure/grid.d.ts +3 -0
- package/dist/components/base/structure/index.d.ts +5 -0
- package/dist/components/base/structure/stack.d.ts +3 -0
- package/dist/components/base/structure/structure.context.d.ts +6 -0
- package/dist/components/base/structure/structure.recipes.d.ts +33 -0
- package/dist/components/base/structure/structure.responsive.d.ts +5 -0
- package/dist/components/base/structure/structure.types.d.ts +51 -0
- package/dist/components/base/table/index.d.ts +18 -0
- package/dist/components/base/text-inputs/hooks/index.d.ts +1 -0
- package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +48 -0
- package/dist/components/base/text-inputs/index.d.ts +21 -0
- package/dist/components/base/text-inputs/input-group.d.ts +46 -0
- package/dist/components/base/text-inputs/input.d.ts +45 -0
- package/dist/components/base/text-inputs/password-input.d.ts +28 -0
- package/dist/components/base/text-inputs/slug-field.d.ts +21 -0
- package/dist/components/base/text-inputs/textarea.d.ts +37 -0
- package/dist/components/base/toaster/index.d.ts +1 -0
- package/dist/components/base/toaster/toaster.d.ts +6 -0
- package/dist/components/base/tree/hierarchy.d.ts +11 -0
- package/dist/components/base/tree/index.d.ts +2 -0
- package/dist/components/base/tree/tree.d.ts +3 -0
- package/dist/components/base/tree/tree.types.d.ts +47 -0
- package/dist/components/base/upload/avatar-upload.d.ts +39 -0
- package/dist/components/base/upload/dropzone.d.ts +40 -0
- package/dist/components/base/upload/file-picker-input.d.ts +15 -0
- package/dist/components/base/upload/file-upload.d.ts +9 -0
- package/dist/components/base/upload/file-upload.strings.d.ts +18 -0
- package/dist/components/base/upload/file-upload.types.d.ts +68 -0
- package/dist/components/base/upload/file-upload.validation.d.ts +21 -0
- package/dist/components/base/upload/image-upload.d.ts +57 -0
- package/dist/components/base/upload/index.d.ts +26 -0
- package/dist/components/base/upload/use-file-drop-target.d.ts +22 -0
- package/dist/components/base/upload-queue/index.d.ts +3 -0
- package/dist/components/base/upload-queue/upload-progress-list.d.ts +55 -0
- package/dist/components/base/upload-queue/upload-tray.d.ts +46 -0
- package/dist/components/base/value-inputs/color-input.d.ts +26 -0
- package/dist/components/base/value-inputs/date-time-input.d.ts +19 -0
- package/dist/components/base/value-inputs/index.d.ts +25 -0
- package/dist/components/base/value-inputs/phone-input.d.ts +48 -0
- package/dist/components/base/value-inputs/slider.d.ts +59 -0
- package/dist/components/base/value-inputs/tags-input.d.ts +67 -0
- package/dist/components/blocks/admin/action-surfaces/index.d.ts +127 -0
- package/dist/components/blocks/admin/admin.strings.d.ts +11 -0
- package/dist/components/blocks/admin/api-key-list/api-key-list.d.ts +2 -0
- package/dist/components/blocks/admin/api-key-list/api-key-list.strings.d.ts +16 -0
- package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +58 -0
- package/dist/components/blocks/admin/api-key-list/index.d.ts +3 -0
- package/dist/components/blocks/admin/index.d.ts +4 -0
- package/dist/components/blocks/admin/role-permission/index.d.ts +2 -0
- package/dist/components/blocks/admin/role-permission/role-permission.d.ts +5 -0
- package/dist/components/blocks/admin/role-permission/types.d.ts +26 -0
- package/dist/components/blocks/ai/ai-agent/ai-agent.d.ts +5 -0
- package/dist/components/blocks/ai/ai-agent/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-agent/types.d.ts +30 -0
- package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +5 -0
- package/dist/components/blocks/ai/ai-artifact/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-artifact/types.d.ts +50 -0
- package/dist/components/blocks/ai/ai-attachment/ai-attachment.d.ts +5 -0
- package/dist/components/blocks/ai/ai-attachment/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-attachment/types.d.ts +35 -0
- package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +5 -0
- package/dist/components/blocks/ai/ai-chain-of-thought/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +36 -0
- package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +5 -0
- package/dist/components/blocks/ai/ai-citation/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-citation/types.d.ts +38 -0
- package/dist/components/blocks/ai/ai-classification/ai-classification.d.ts +2 -0
- package/dist/components/blocks/ai/ai-classification/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-classification/types.d.ts +27 -0
- package/dist/components/blocks/ai/ai-code-block/ai-code-block.d.ts +6 -0
- package/dist/components/blocks/ai/ai-code-block/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-code-block/types.d.ts +38 -0
- package/dist/components/blocks/ai/ai-confidence/ai-confidence.d.ts +5 -0
- package/dist/components/blocks/ai/ai-confidence/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-confidence/types.d.ts +25 -0
- package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +5 -0
- package/dist/components/blocks/ai/ai-confirmation/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-confirmation/types.d.ts +40 -0
- package/dist/components/blocks/ai/ai-feedback/ai-feedback.d.ts +5 -0
- package/dist/components/blocks/ai/ai-feedback/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-feedback/types.d.ts +24 -0
- package/dist/components/blocks/ai/ai-file-tree/ai-file-tree.d.ts +5 -0
- package/dist/components/blocks/ai/ai-file-tree/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-file-tree/types.d.ts +59 -0
- package/dist/components/blocks/ai/ai-inline-citation/ai-inline-citation.d.ts +5 -0
- package/dist/components/blocks/ai/ai-inline-citation/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +22 -0
- package/dist/components/blocks/ai/ai-message-bubble/ai-message-bubble.d.ts +6 -0
- package/dist/components/blocks/ai/ai-message-bubble/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-message-bubble/types.d.ts +35 -0
- package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +5 -0
- package/dist/components/blocks/ai/ai-package-info/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-package-info/types.d.ts +39 -0
- package/dist/components/blocks/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts +5 -0
- package/dist/components/blocks/ai/ai-prompt-suggestions/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-prompt-suggestions/types.d.ts +26 -0
- package/dist/components/blocks/ai/ai-reasoning/ai-reasoning.d.ts +5 -0
- package/dist/components/blocks/ai/ai-reasoning/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-reasoning/types.d.ts +32 -0
- package/dist/components/blocks/ai/ai-shimmer/ai-shimmer.d.ts +5 -0
- package/dist/components/blocks/ai/ai-shimmer/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-shimmer/types.d.ts +11 -0
- package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +5 -0
- package/dist/components/blocks/ai/ai-sources/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-sources/types.d.ts +44 -0
- package/dist/components/blocks/ai/ai-summary/ai-summary.d.ts +2 -0
- package/dist/components/blocks/ai/ai-summary/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-summary/types.d.ts +32 -0
- package/dist/components/blocks/ai/ai-task/ai-task.d.ts +5 -0
- package/dist/components/blocks/ai/ai-task/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-task/types.d.ts +38 -0
- package/dist/components/blocks/ai/ai-token-usage/ai-token-usage.d.ts +5 -0
- package/dist/components/blocks/ai/ai-token-usage/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-token-usage/types.d.ts +22 -0
- package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +5 -0
- package/dist/components/blocks/ai/ai-tool-call/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +38 -0
- package/dist/components/blocks/ai/ai.strings.d.ts +36 -0
- package/dist/components/blocks/ai/index.d.ts +24 -0
- package/dist/components/blocks/ai/use-copy-feedback.d.ts +6 -0
- package/dist/components/blocks/analytics/activity-heatmap/activity-heatmap.d.ts +5 -0
- package/dist/components/blocks/analytics/activity-heatmap/index.d.ts +2 -0
- package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +20 -0
- package/dist/components/blocks/analytics/analytics.strings.d.ts +35 -0
- package/dist/components/blocks/analytics/atoms/metric-skeleton.d.ts +13 -0
- package/dist/components/blocks/analytics/atoms/metric-sparkline.d.ts +15 -0
- package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +15 -0
- package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +42 -0
- package/dist/components/blocks/analytics/chart-card/index.d.ts +1 -0
- package/dist/components/blocks/analytics/format-metric-value.d.ts +8 -0
- package/dist/components/blocks/analytics/index.d.ts +35 -0
- package/dist/components/blocks/analytics/metric/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric/metric.d.ts +28 -0
- package/dist/components/blocks/analytics/metric-bar/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-bar/metric-bar.d.ts +22 -0
- package/dist/components/blocks/analytics/metric-comparison/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +26 -0
- package/dist/components/blocks/analytics/metric-gradient/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-gradient/metric-gradient.d.ts +19 -0
- package/dist/components/blocks/analytics/metric-grid/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +33 -0
- package/dist/components/blocks/analytics/metric-micro-grid/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-micro-grid/metric-micro-grid.d.ts +23 -0
- package/dist/components/blocks/analytics/time-ruler/index.d.ts +2 -0
- package/dist/components/blocks/analytics/time-ruler/time-ruler.d.ts +5 -0
- package/dist/components/blocks/analytics/time-ruler/types.d.ts +32 -0
- package/dist/components/blocks/analytics/types.d.ts +83 -0
- package/dist/components/blocks/analytics/usage-card/index.d.ts +3 -0
- package/dist/components/blocks/analytics/usage-card/types.d.ts +52 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.d.ts +6 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.data.d.ts +19 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +22 -0
- package/dist/components/blocks/collaboration/index.d.ts +1 -0
- package/dist/components/blocks/collaboration/message/index.d.ts +2 -0
- package/dist/components/blocks/collaboration/message/message.d.ts +8 -0
- package/dist/components/blocks/collaboration/message/message.types.d.ts +30 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +5 -0
- package/dist/components/blocks/commerce/address-card/index.d.ts +2 -0
- package/dist/components/blocks/commerce/address-card/types.d.ts +43 -0
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +12 -0
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +36 -0
- package/dist/components/blocks/commerce/booking-calendar-event-card/index.d.ts +2 -0
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +5 -0
- package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -0
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +53 -0
- package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +5 -0
- package/dist/components/blocks/commerce/coupon-input/index.d.ts +2 -0
- package/dist/components/blocks/commerce/coupon-input/types.d.ts +35 -0
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +5 -0
- package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -0
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +27 -0
- package/dist/components/blocks/commerce/format-signed-amount.d.ts +22 -0
- package/dist/components/blocks/commerce/giftcard-card/giftcard-card.d.ts +62 -0
- package/dist/components/blocks/commerce/giftcard-card/index.d.ts +2 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +10 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +9 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +7 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +11 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +10 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +10 -0
- package/dist/components/blocks/commerce/giftcard-card/types.d.ts +83 -0
- package/dist/components/blocks/commerce/index.d.ts +34 -0
- package/dist/components/blocks/commerce/inventory-level/index.d.ts +3 -0
- package/dist/components/blocks/commerce/inventory-level/inventory-level.d.ts +5 -0
- package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +10 -0
- package/dist/components/blocks/commerce/inventory-level/types.d.ts +20 -0
- package/dist/components/blocks/commerce/inventory-section/index.d.ts +2 -0
- package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +5 -0
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +105 -0
- package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -0
- package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +5 -0
- package/dist/components/blocks/commerce/invoice-header/types.d.ts +51 -0
- package/dist/components/blocks/commerce/invoice-line-items/index.d.ts +2 -0
- package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +5 -0
- package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +64 -0
- package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -0
- package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +5 -0
- package/dist/components/blocks/commerce/invoice-mini/types.d.ts +28 -0
- package/dist/components/blocks/commerce/loyalty-points/index.d.ts +2 -0
- package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +5 -0
- package/dist/components/blocks/commerce/loyalty-points/types.d.ts +32 -0
- package/dist/components/blocks/commerce/order-status/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-status/order-status.d.ts +5 -0
- package/dist/components/blocks/commerce/order-status/types.d.ts +35 -0
- package/dist/components/blocks/commerce/order-timeline/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +5 -0
- package/dist/components/blocks/commerce/order-timeline/types.d.ts +22 -0
- package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -0
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +5 -0
- package/dist/components/blocks/commerce/payment-method/types.d.ts +33 -0
- package/dist/components/blocks/commerce/payment-timeline/index.d.ts +2 -0
- package/dist/components/blocks/commerce/payment-timeline/payment-timeline.d.ts +5 -0
- package/dist/components/blocks/commerce/payment-timeline/types.d.ts +15 -0
- package/dist/components/blocks/commerce/receipt/index.d.ts +3 -0
- package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +2 -0
- package/dist/components/blocks/commerce/receipt/receipt.d.ts +3 -0
- package/dist/components/blocks/commerce/receipt/types.d.ts +42 -0
- package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -0
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +5 -0
- package/dist/components/blocks/commerce/refund-status/types.d.ts +37 -0
- package/dist/components/blocks/commerce/seo-listing/index.d.ts +3 -0
- package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +5 -0
- package/dist/components/blocks/commerce/seo-listing/seo-listing-score.d.ts +5 -0
- package/dist/components/blocks/commerce/seo-listing/types.d.ts +92 -0
- package/dist/components/blocks/commerce/shipment-tracking/index.d.ts +2 -0
- package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +5 -0
- package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +44 -0
- package/dist/components/blocks/commerce/subscription-summary/index.d.ts +2 -0
- package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +5 -0
- package/dist/components/blocks/commerce/subscription-summary/types.d.ts +39 -0
- package/dist/components/blocks/commerce/tax-breakdown/index.d.ts +2 -0
- package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +5 -0
- package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +34 -0
- package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -0
- package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +29 -0
- package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +5 -0
- package/dist/components/blocks/commerce/vendor-profile/index.d.ts +3 -0
- package/dist/components/blocks/commerce/vendor-profile/types.d.ts +86 -0
- package/dist/components/blocks/commerce/vendor-profile/vendor-profile.d.ts +2 -0
- package/dist/components/blocks/commerce/voucher-entry/index.d.ts +2 -0
- package/dist/components/blocks/commerce/voucher-entry/types.d.ts +33 -0
- package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +6 -0
- package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +19 -0
- package/dist/components/blocks/data-display/dense-info-card/index.d.ts +7 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/types.d.ts +183 -0
- package/dist/components/blocks/data-display/empty-state/empty-state.d.ts +2 -0
- package/dist/components/blocks/data-display/empty-state/empty-state.strings.d.ts +19 -0
- package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +86 -0
- package/dist/components/blocks/data-display/empty-state/index.d.ts +5 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +9 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +9 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +25 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/search-glass.d.ts +9 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +11 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/types.d.ts +4 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/users-circle.d.ts +9 -0
- package/dist/components/blocks/data-display/index.d.ts +6 -0
- package/dist/components/blocks/data-display/inline-stat/index.d.ts +1 -0
- package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +35 -0
- package/dist/components/blocks/data-display/metadata/index.d.ts +4 -0
- package/dist/components/blocks/data-display/metadata/metadata-list.d.ts +78 -0
- package/dist/components/blocks/data-display/metadata/metadata-list.strings.d.ts +18 -0
- package/dist/components/blocks/data-display/metadata/metadata-value.d.ts +142 -0
- package/dist/components/blocks/data-display/relationship-card-frame.d.ts +40 -0
- package/dist/components/blocks/onboarding/checklist/checklist.d.ts +2 -0
- package/dist/components/blocks/onboarding/checklist/checklist.strings.d.ts +15 -0
- package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +64 -0
- package/dist/components/blocks/onboarding/checklist/index.d.ts +4 -0
- package/dist/components/blocks/onboarding/checklist/partials/step-status-indicator.d.ts +12 -0
- package/dist/components/blocks/onboarding/index.d.ts +7 -0
- package/dist/components/blocks/planning/index.d.ts +3 -0
- package/dist/components/blocks/planning/task-card.d.ts +3 -0
- package/dist/components/blocks/planning/task-card.strings.d.ts +15 -0
- package/dist/components/blocks/planning/task-card.types.d.ts +66 -0
- package/dist/components/blocks/timelines/changelog/changelog-timeline.d.ts +5 -0
- package/dist/components/blocks/timelines/changelog/index.d.ts +2 -0
- package/dist/components/blocks/timelines/changelog/types.d.ts +33 -0
- package/dist/components/blocks/timelines/index.d.ts +5 -0
- package/dist/components/blocks/timelines/milestones/index.d.ts +2 -0
- package/dist/components/blocks/timelines/milestones/milestones-timeline.d.ts +5 -0
- package/dist/components/blocks/timelines/milestones/types.d.ts +32 -0
- package/dist/components/blocks/timelines/shared/index.d.ts +1 -0
- package/dist/components/blocks/timelines/shared/timeline.d.ts +40 -0
- package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -0
- package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +9 -0
- package/dist/components/blocks/timelines/steps-card/types.d.ts +38 -0
- package/dist/components/features/activities/activities-feed.d.ts +5 -0
- package/dist/components/features/activities/activities.config.d.ts +6 -0
- package/dist/components/features/activities/activities.strings.d.ts +38 -0
- package/dist/components/features/activities/activities.types.d.ts +431 -0
- package/dist/components/features/activities/activity-event-adapter.d.ts +38 -0
- package/dist/components/features/activities/activity-log.d.ts +6 -0
- package/dist/components/features/activities/hooks/index.d.ts +2 -0
- package/dist/components/features/activities/hooks/use-activity-feed.d.ts +44 -0
- package/dist/components/features/activities/hooks/use-activity-resources.d.ts +22 -0
- package/dist/components/features/activities/index.d.ts +8 -0
- package/dist/components/features/activities/partials/activity-actions-menu.d.ts +11 -0
- package/dist/components/features/activities/partials/activity-changes.d.ts +8 -0
- package/dist/components/features/activities/partials/activity-date-label.d.ts +9 -0
- package/dist/components/features/activities/partials/activity-empty-state.d.ts +9 -0
- package/dist/components/features/activities/partials/activity-headline.d.ts +20 -0
- package/dist/components/features/activities/partials/activity-marker.d.ts +25 -0
- package/dist/components/features/activities/partials/activity-resource-tag.d.ts +11 -0
- package/dist/components/features/activities/partials/activity-row.d.ts +68 -0
- package/dist/components/features/activities/partials/index.d.ts +8 -0
- package/dist/components/features/activities/partials/tone-tokens.d.ts +25 -0
- package/dist/components/features/ai-chat/ai-chat.d.ts +81 -0
- package/dist/components/features/ai-chat/ai-chat.strings.d.ts +56 -0
- package/dist/components/features/ai-chat/ai-chat.types.d.ts +170 -0
- package/dist/components/features/ai-chat/hooks/index.d.ts +1 -0
- package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +15 -0
- package/dist/components/features/ai-chat/index.d.ts +5 -0
- package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +15 -0
- package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +28 -0
- package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts +22 -0
- package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +21 -0
- package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +59 -0
- package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +19 -0
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +18 -0
- package/dist/components/features/ai-chat/partials/index.d.ts +7 -0
- package/dist/components/features/async-preview/async-preview.d.ts +84 -0
- package/dist/components/features/async-preview/async-preview.strings.d.ts +14 -0
- package/dist/components/features/async-preview/async-preview.types.d.ts +133 -0
- package/dist/components/features/async-preview/hooks/index.d.ts +1 -0
- package/dist/components/features/async-preview/hooks/use-async-preview.d.ts +8 -0
- package/dist/components/features/async-preview/index.d.ts +6 -0
- package/dist/components/features/async-preview/partials/index.d.ts +1 -0
- package/dist/components/features/async-preview/preview-trigger-cell.d.ts +45 -0
- package/dist/components/features/combobox/async-resource-combobox.d.ts +94 -0
- package/dist/components/features/combobox/combobox.d.ts +20 -0
- package/dist/components/features/combobox/combobox.strings.d.ts +14 -0
- package/dist/components/features/combobox/components/combobox-dropdown.d.ts +57 -0
- package/dist/components/features/combobox/components/error-message.d.ts +15 -0
- package/dist/components/features/combobox/components/highlighted-text.d.ts +14 -0
- package/dist/components/features/combobox/components/index.d.ts +13 -0
- package/dist/components/features/combobox/components/loading-more.d.ts +15 -0
- package/dist/components/features/combobox/components/status-content.d.ts +21 -0
- package/dist/components/features/combobox/constants.d.ts +19 -0
- package/dist/components/features/combobox/hooks/index.d.ts +2 -0
- package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +30 -0
- package/dist/components/features/combobox/hooks/use-debounced-search.d.ts +10 -0
- package/dist/components/features/combobox/hooks/use-grouped-items.d.ts +9 -0
- package/dist/components/features/combobox/hooks/use-load-more.d.ts +12 -0
- package/dist/components/features/combobox/index.d.ts +13 -0
- package/dist/components/features/combobox/types.d.ts +184 -0
- package/dist/components/features/comments/comments-provider.d.ts +15 -0
- package/dist/components/features/comments/comments.d.ts +2 -0
- package/dist/components/features/comments/comments.strings.d.ts +91 -0
- package/dist/components/features/comments/comments.types.d.ts +369 -0
- package/dist/components/features/comments/hooks/index.d.ts +4 -0
- package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +28 -0
- package/dist/components/features/comments/hooks/use-comments.d.ts +34 -0
- package/dist/components/features/comments/index.d.ts +8 -0
- package/dist/components/features/comments/partials/comment-attachment-chip.d.ts +23 -0
- package/dist/components/features/comments/partials/comment-composer.d.ts +12 -0
- package/dist/components/features/comments/partials/comment-content.d.ts +13 -0
- package/dist/components/features/comments/partials/comment-empty.d.ts +12 -0
- package/dist/components/features/comments/partials/comment-item.d.ts +3 -0
- package/dist/components/features/comments/partials/comment-timeline.d.ts +3 -0
- package/dist/components/features/comments/partials/index.d.ts +9 -0
- package/dist/components/features/data-view/data-view-filtering.d.ts +3 -0
- package/dist/components/features/data-view/data-view.d.ts +7 -0
- package/dist/components/features/data-view/data-view.strings.d.ts +9 -0
- package/dist/components/features/data-view/data-view.types.d.ts +191 -0
- package/dist/components/features/data-view/hooks/index.d.ts +1 -0
- package/dist/components/features/data-view/hooks/use-data-view.d.ts +2 -0
- package/dist/components/features/data-view/index.d.ts +4 -0
- package/dist/components/features/email-composer/document.d.ts +8 -0
- package/dist/components/features/email-composer/email-composer.d.ts +2 -0
- package/dist/components/features/email-composer/email-html.d.ts +5 -0
- package/dist/components/features/email-composer/engine.d.ts +18 -0
- package/dist/components/features/email-composer/http.d.ts +6 -0
- package/dist/components/features/email-composer/index.d.ts +6 -0
- package/dist/components/features/email-composer/partials/body-editor.d.ts +11 -0
- package/dist/components/features/email-composer/partials/data-status.d.ts +8 -0
- package/dist/components/features/email-composer/partials/html-preview.d.ts +6 -0
- package/dist/components/features/email-composer/partials/recipients.d.ts +14 -0
- package/dist/components/features/email-composer/partials/variables.d.ts +11 -0
- package/dist/components/features/email-composer/strings.d.ts +79 -0
- package/dist/components/features/email-composer/types.d.ts +195 -0
- package/dist/components/features/email-composer/use-composer.d.ts +119 -0
- package/dist/components/features/event-calendar/colors.d.ts +29 -0
- package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +5 -0
- package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +5 -0
- package/dist/components/features/event-calendar/event-calendar-event-card.d.ts +16 -0
- package/dist/components/features/event-calendar/event-calendar-header.d.ts +8 -0
- package/dist/components/features/event-calendar/event-calendar-legend.d.ts +5 -0
- package/dist/components/features/event-calendar/event-calendar.d.ts +5 -0
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +350 -0
- package/dist/components/features/event-calendar/index.d.ts +11 -0
- package/dist/components/features/event-calendar/use-event-calendar-data.d.ts +15 -0
- package/dist/components/features/event-calendar/use-event-calendar.d.ts +24 -0
- package/dist/components/features/filters/facets/async-select-facet.d.ts +28 -0
- package/dist/components/features/filters/facets/date-facet.d.ts +18 -0
- package/dist/components/features/filters/facets/range-facet.d.ts +30 -0
- package/dist/components/features/filters/facets/search-facet.d.ts +27 -0
- package/dist/components/features/filters/facets/select-facet.d.ts +19 -0
- package/dist/components/features/filters/facets/tags-facet.d.ts +27 -0
- package/dist/components/features/filters/filter-context.d.ts +61 -0
- package/dist/components/features/filters/filter-layout.d.ts +16 -0
- package/dist/components/features/filters/filter-query.d.ts +21 -0
- package/dist/components/features/filters/filters.strings.d.ts +103 -0
- package/dist/components/features/filters/filters.types.d.ts +222 -0
- package/dist/components/features/filters/hooks/index.d.ts +3 -0
- package/dist/components/features/filters/hooks/use-async-options.d.ts +16 -0
- package/dist/components/features/filters/hooks/use-filter-groups.d.ts +16 -0
- package/dist/components/features/filters/index.d.ts +42 -0
- package/dist/components/features/filters/operator-options.d.ts +9 -0
- package/dist/components/features/filters/partials/active-filter-item.d.ts +37 -0
- package/dist/components/features/filters/partials/async-filter-content.d.ts +21 -0
- package/dist/components/features/filters/partials/date-filter-content.d.ts +14 -0
- package/dist/components/features/filters/partials/filter-error-boundary.d.ts +9 -0
- package/dist/components/features/filters/partials/filter-list-content.d.ts +24 -0
- package/dist/components/features/filters/partials/filter-list-item.d.ts +19 -0
- package/dist/components/features/filters/partials/filter-operator-select.d.ts +22 -0
- package/dist/components/features/filters/partials/filter-pill.d.ts +26 -0
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +36 -0
- package/dist/components/features/filters/partials/filter-tabs.d.ts +14 -0
- package/dist/components/features/filters/partials/filter-value-display.d.ts +21 -0
- package/dist/components/features/filters/partials/filters-button.d.ts +32 -0
- package/dist/components/features/filters/partials/index.d.ts +14 -0
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +28 -0
- package/dist/components/features/filters/partials/search-filters-list.d.ts +25 -0
- package/dist/components/features/filters/partials/tags-filter-content.d.ts +28 -0
- package/dist/components/features/filters/utils/filter-utils.d.ts +37 -0
- package/dist/components/features/filters/validators.d.ts +63 -0
- package/dist/components/features/global-search/global-search-dialog.d.ts +13 -0
- package/dist/components/features/global-search/global-search.d.ts +52 -0
- package/dist/components/features/global-search/global-search.strings.d.ts +36 -0
- package/dist/components/features/global-search/global-search.types.d.ts +105 -0
- package/dist/components/features/global-search/hooks/index.d.ts +2 -0
- package/dist/components/features/global-search/hooks/use-global-search.d.ts +33 -0
- package/dist/components/features/global-search/index.d.ts +9 -0
- package/dist/components/features/global-search/partials/global-search-empty-state.d.ts +7 -0
- package/dist/components/features/global-search/partials/global-search-footer.d.ts +13 -0
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +12 -0
- package/dist/components/features/global-search/partials/global-search-input.d.ts +17 -0
- package/dist/components/features/global-search/partials/global-search-result-row.d.ts +16 -0
- package/dist/components/features/global-search/partials/global-search-tabs.d.ts +13 -0
- package/dist/components/features/global-search/partials/index.d.ts +12 -0
- package/dist/components/features/global-search/partials/tone-palettes.d.ts +8 -0
- package/dist/components/features/kanban/hooks/index.d.ts +1 -0
- package/dist/components/features/kanban/hooks/use-kanban.d.ts +32 -0
- package/dist/components/features/kanban/index.d.ts +5 -0
- package/dist/components/features/kanban/kanban-context.d.ts +25 -0
- package/dist/components/features/kanban/kanban-keyboard.d.ts +10 -0
- package/dist/components/features/kanban/kanban.d.ts +38 -0
- package/dist/components/features/kanban/kanban.strings.d.ts +24 -0
- package/dist/components/features/kanban/kanban.types.d.ts +168 -0
- package/dist/components/features/map/index.d.ts +13 -0
- package/dist/components/features/map/map.d.ts +166 -0
- package/dist/components/features/map/place-autocomplete.d.ts +97 -0
- package/dist/components/features/map/public-leaflet.types.d.ts +71 -0
- package/dist/components/features/map/use-map-color-scheme.d.ts +2 -0
- package/dist/components/features/media-library/hooks/index.d.ts +1 -0
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +5 -0
- package/dist/components/features/media-library/index.d.ts +6 -0
- package/dist/components/features/media-library/media-library.d.ts +3 -0
- package/dist/components/features/media-library/media-library.strings.d.ts +124 -0
- package/dist/components/features/media-library/media-library.types.d.ts +568 -0
- package/dist/components/features/media-library/media-resource-gallery.d.ts +2 -0
- package/dist/components/features/media-library/partials/index.d.ts +1 -0
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +10 -0
- package/dist/components/features/mentions/hooks/index.d.ts +2 -0
- package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +41 -0
- package/dist/components/features/mentions/hooks/use-mentions.d.ts +35 -0
- package/dist/components/features/mentions/index.d.ts +5 -0
- package/dist/components/features/mentions/mentions.strings.d.ts +26 -0
- package/dist/components/features/mentions/mentions.types.d.ts +100 -0
- package/dist/components/features/mentions/partials/index.d.ts +4 -0
- package/dist/components/features/mentions/partials/mention-chip.d.ts +29 -0
- package/dist/components/features/mentions/partials/mention-content.d.ts +22 -0
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +36 -0
- package/dist/components/features/mentions/partials/mention-picker.d.ts +31 -0
- package/dist/components/features/mentions/utils/build-mention-html.d.ts +24 -0
- package/dist/components/features/mentions/utils/index.d.ts +3 -0
- package/dist/components/features/mentions/utils/parse-mentions-from-html.d.ts +13 -0
- package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +16 -0
- package/dist/components/features/overlays/alert-dialog.d.ts +4 -0
- package/dist/components/features/overlays/dialog.d.ts +4 -0
- package/dist/components/features/overlays/drawer.d.ts +4 -0
- package/dist/components/features/overlays/hooks/index.d.ts +2 -0
- package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +24 -0
- package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +36 -0
- package/dist/components/features/overlays/index.d.ts +6 -0
- package/dist/components/features/overlays/overlays.strings.d.ts +19 -0
- package/dist/components/features/overlays/overlays.types.d.ts +169 -0
- package/dist/components/features/products/components/index.d.ts +17 -0
- package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
- package/dist/components/features/products/components/product-details-card.d.ts +5 -0
- package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
- package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
- package/dist/components/features/products/components/product-options-matrix.d.ts +5 -0
- package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
- package/dist/components/features/products/components/product-overview.d.ts +5 -0
- package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
- package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
- package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +5 -0
- package/dist/components/features/products/components/product-variant-details.d.ts +5 -0
- package/dist/components/features/products/components/product-variant-editor.d.ts +5 -0
- package/dist/components/features/products/components/product-variants-bulk-table.d.ts +5 -0
- package/dist/components/features/products/components/product-variants-manager.d.ts +5 -0
- package/dist/components/features/products/components/product-variants-table.d.ts +5 -0
- package/dist/components/features/products/index.d.ts +3 -0
- package/dist/components/features/products/partials/index.d.ts +7 -0
- package/dist/components/features/products/partials/product-actions.d.ts +10 -0
- package/dist/components/features/products/partials/product-empty-state.d.ts +10 -0
- package/dist/components/features/products/partials/product-metric-tile.d.ts +4 -0
- package/dist/components/features/products/partials/product-rows.d.ts +35 -0
- package/dist/components/features/products/partials/product-tone.d.ts +8 -0
- package/dist/components/features/products/partials/product-values.d.ts +1 -0
- package/dist/components/features/products/partials/product-variant-table-parts.d.ts +28 -0
- package/dist/components/features/products/products.strings.d.ts +308 -0
- package/dist/components/features/products/products.types.d.ts +906 -0
- package/dist/components/features/questionnaire/index.d.ts +3 -0
- package/dist/components/features/questionnaire/questionnaire-control.d.ts +3 -0
- package/dist/components/features/questionnaire/questionnaire.d.ts +2 -0
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +98 -0
- package/dist/components/features/questionnaire/questionnaire.utils.d.ts +5 -0
- package/dist/components/features/resource/index.d.ts +3 -0
- package/dist/components/features/resource/resource.d.ts +8 -0
- package/dist/components/features/resource/resource.strings.d.ts +12 -0
- package/dist/components/features/resource/resource.types.d.ts +161 -0
- package/dist/components/features/resource-assignment/hooks/index.d.ts +2 -0
- package/dist/components/features/resource-assignment/hooks/use-shared-resource-card.d.ts +32 -0
- package/dist/components/features/resource-assignment/index.d.ts +6 -0
- package/dist/components/features/resource-assignment/partials/default-shared-resource-partials.d.ts +31 -0
- package/dist/components/features/resource-assignment/partials/index.d.ts +1 -0
- package/dist/components/features/resource-assignment/resource-assignment.d.ts +12 -0
- package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +17 -0
- package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +193 -0
- package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +6 -0
- package/dist/components/features/rich-text-editor/index.d.ts +5 -0
- package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +28 -0
- package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts +32 -0
- package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +7 -0
- package/dist/components/features/rich-text-editor/partials/index.d.ts +7 -0
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +8 -0
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +3 -0
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +33 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.d.ts +3 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +6 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +32 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +111 -0
- package/dist/components/features/schema-form/hooks/index.d.ts +1 -0
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +23 -0
- package/dist/components/features/schema-form/index.d.ts +5 -0
- package/dist/components/features/schema-form/partials/index.d.ts +3 -0
- package/dist/components/features/schema-form/partials/schema-form-actions.d.ts +23 -0
- package/dist/components/features/schema-form/partials/schema-form-empty.d.ts +12 -0
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts +12 -0
- package/dist/components/features/schema-form/schema-form.d.ts +5 -0
- package/dist/components/features/schema-form/schema-form.strings.d.ts +11 -0
- package/dist/components/features/schema-form/schema-form.types.d.ts +271 -0
- package/dist/components/features/schema-form/schema-form.utils.d.ts +18 -0
- package/dist/components/features/suggestions/hooks/index.d.ts +1 -0
- package/dist/components/features/suggestions/hooks/use-suggestions.d.ts +9 -0
- package/dist/components/features/suggestions/index.d.ts +4 -0
- package/dist/components/features/suggestions/suggestions.d.ts +5 -0
- package/dist/components/features/suggestions/suggestions.strings.d.ts +16 -0
- package/dist/components/features/suggestions/suggestions.types.d.ts +79 -0
- package/dist/components/features/sync/index.d.ts +3 -0
- package/dist/components/features/sync/sync-range-dialog-form.d.ts +5 -0
- package/dist/components/features/sync/sync.strings.d.ts +18 -0
- package/dist/components/features/sync/sync.types.d.ts +44 -0
- package/dist/components/features/table/column-visibility-toggle.d.ts +5 -0
- package/dist/components/features/table/data-table.d.ts +6 -0
- package/dist/components/features/table/filter-bar.d.ts +5 -0
- package/dist/components/features/table/hooks.d.ts +47 -0
- package/dist/components/features/table/index.d.ts +16 -0
- package/dist/components/features/table/pagination.d.ts +5 -0
- package/dist/components/features/table/partials/cell-renderers.d.ts +141 -0
- package/dist/components/features/table/partials/cell-value.d.ts +121 -0
- package/dist/components/features/table/partials/fullscreen-toggle.d.ts +16 -0
- package/dist/components/features/table/partials/resource-cell.d.ts +63 -0
- package/dist/components/features/table/partials/table-link.d.ts +3 -0
- package/dist/components/features/table/table-actions.d.ts +5 -0
- package/dist/components/features/table/table-body.d.ts +5 -0
- package/dist/components/features/table/table-header.d.ts +6 -0
- package/dist/components/features/table/table-helpers.d.ts +39 -0
- package/dist/components/features/table/table-toolbar.d.ts +5 -0
- package/dist/components/features/table/table.strings.d.ts +3 -0
- package/dist/components/features/table/table.types.d.ts +489 -0
- package/dist/components/features/theme-tweaker/admin-ui-theme-provider.d.ts +6 -0
- package/dist/components/features/theme-tweaker/index.d.ts +10 -0
- package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +49 -0
- package/dist/components/features/theme-tweaker/theme-scope.d.ts +7 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.d.ts +2 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.fields.d.ts +7 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.recipes.d.ts +25 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +75 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +161 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +23 -0
- package/dist/components/features/theme-tweaker/use-applied-theme.d.ts +11 -0
- package/dist/components/layout/app-shell/app-layout.d.ts +12 -0
- package/dist/components/layout/app-shell/app-shell.types.d.ts +151 -0
- package/dist/components/layout/app-shell/index.d.ts +6 -0
- package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +2 -0
- package/dist/components/layout/app-shell/stacked-layout.d.ts +2 -0
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +2 -0
- package/dist/components/layout/auth/auth-card.d.ts +2 -0
- package/dist/components/layout/auth/auth-footer-links.d.ts +2 -0
- package/dist/components/layout/auth/auth-form.d.ts +11 -0
- package/dist/components/layout/auth/auth-hooks.d.ts +4 -0
- package/dist/components/layout/auth/auth-method-switch.d.ts +4 -0
- package/dist/components/layout/auth/auth-shell.d.ts +2 -0
- package/dist/components/layout/auth/auth-social-providers.d.ts +3 -0
- package/dist/components/layout/auth/auth-split-panel.d.ts +2 -0
- package/dist/components/layout/auth/auth.strings.d.ts +21 -0
- package/dist/components/layout/auth/auth.types.d.ts +282 -0
- package/dist/components/layout/auth/index.d.ts +10 -0
- package/dist/components/layout/containers/container.recipes.d.ts +5 -0
- package/dist/components/layout/containers/containers.types.d.ts +17 -0
- package/dist/components/layout/containers/content-container.d.ts +3 -0
- package/dist/components/layout/containers/index.d.ts +5 -0
- package/dist/components/layout/containers/page-viewport.d.ts +3 -0
- package/dist/components/layout/containers/section.d.ts +3 -0
- package/dist/components/layout/containers/two-column-layout.d.ts +27 -0
- package/dist/components/layout/header/header.d.ts +2 -0
- package/dist/components/layout/header/header.types.d.ts +198 -0
- package/dist/components/layout/header/index.d.ts +9 -0
- package/dist/components/layout/header/partials/header-breadcrumbs.d.ts +4 -0
- package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +2 -0
- package/dist/components/layout/header/partials/header-notifications.d.ts +2 -0
- package/dist/components/layout/header/partials/header-search.d.ts +2 -0
- package/dist/components/layout/header/partials/header-tool-button.d.ts +4 -0
- package/dist/components/layout/header/partials/header-tool-popover.d.ts +2 -0
- package/dist/components/layout/header/partials/header-user-menu.d.ts +2 -0
- package/dist/components/layout/hooks/index.d.ts +3 -0
- package/dist/components/layout/hooks/use-active-path.d.ts +1 -0
- package/dist/components/layout/hooks/use-command-shortcut.d.ts +7 -0
- package/dist/components/layout/hooks/use-layout-link.d.ts +2 -0
- package/dist/components/layout/index.d.ts +24 -0
- package/dist/components/layout/layout.types.d.ts +91 -0
- package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +5 -0
- package/dist/components/layout/navigation/breadcrumb-progress/index.d.ts +2 -0
- package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +24 -0
- package/dist/components/layout/navigation/category-nav/category-nav.d.ts +5 -0
- package/dist/components/layout/navigation/category-nav/index.d.ts +2 -0
- package/dist/components/layout/navigation/category-nav/types.d.ts +22 -0
- package/dist/components/layout/navigation/index.d.ts +17 -0
- package/dist/components/layout/navigation/section-nav/index.d.ts +1 -0
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +29 -0
- package/dist/components/layout/navigation/side-nav.d.ts +58 -0
- package/dist/components/layout/page/index.d.ts +4 -0
- package/dist/components/layout/page/page.d.ts +3 -0
- package/dist/components/layout/page/page.types.d.ts +138 -0
- package/dist/components/layout/page/partials/page-actions.d.ts +2 -0
- package/dist/components/layout/page/partials/page-header.d.ts +2 -0
- package/dist/components/layout/settings/index.d.ts +1 -0
- package/dist/components/layout/settings/settings.d.ts +65 -0
- package/dist/components/layout/sidebar/app-sidebar.d.ts +7 -0
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +4 -0
- package/dist/components/layout/sidebar/components/sidebar-logo.d.ts +10 -0
- package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +2 -0
- package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts +23 -0
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +4 -0
- package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts +2 -0
- package/dist/components/layout/sidebar/index.d.ts +11 -0
- package/dist/components/layout/sidebar/sidebar.context.d.ts +17 -0
- package/dist/components/layout/sidebar/sidebar.d.ts +9 -0
- package/dist/components/layout/sidebar/sidebar.types.d.ts +218 -0
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +29 -0
- package/dist/components/layout/workspace/index.d.ts +3 -0
- package/dist/components/layout/workspace/workspace.d.ts +6 -0
- package/dist/components/layout/workspace/workspace.strings.d.ts +18 -0
- package/dist/components/layout/workspace/workspace.types.d.ts +141 -0
- package/dist/components/primitives/date.d.ts +63 -0
- package/dist/components/primitives/dimensions.d.ts +30 -0
- package/dist/components/primitives/duration.d.ts +23 -0
- package/dist/components/primitives/file-size.d.ts +23 -0
- package/dist/components/primitives/index.d.ts +11 -0
- package/dist/components/primitives/initials-format.d.ts +21 -0
- package/dist/components/primitives/initials.d.ts +16 -0
- package/dist/components/primitives/link.d.ts +28 -0
- package/dist/components/primitives/money.d.ts +79 -0
- package/dist/components/primitives/name.d.ts +16 -0
- package/dist/components/primitives/number.d.ts +23 -0
- package/dist/components/primitives/value.d.ts +23 -0
- package/dist/components/typography/content-typography.d.ts +4 -0
- package/dist/components/typography/display-label.d.ts +5 -0
- package/dist/components/typography/heading.d.ts +16 -0
- package/dist/components/typography/index.d.ts +10 -0
- package/dist/components/typography/label.d.ts +8 -0
- package/dist/components/typography/rich-text/index.d.ts +2 -0
- package/dist/components/typography/rich-text/rich-text.d.ts +6 -0
- package/dist/components/typography/text-link.d.ts +7 -0
- package/dist/components/typography/text.d.ts +17 -0
- package/dist/components/typography/text.styles.d.ts +50 -0
- package/dist/components/ui/accordion.d.ts +6 -0
- package/dist/components/ui/alert-dialog.d.ts +21 -0
- package/dist/components/ui/avatar.d.ts +11 -0
- package/dist/components/ui/badge.d.ts +5 -0
- package/dist/components/ui/breadcrumb.d.ts +11 -0
- package/dist/components/ui/button-group.d.ts +12 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/calendar.d.ts +10 -0
- package/dist/components/ui/card.d.ts +11 -0
- package/dist/components/ui/checkbox.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts +9 -0
- package/dist/components/ui/combobox.d.ts +40 -0
- package/dist/components/ui/command.d.ts +50 -0
- package/dist/components/ui/dialog.d.ts +26 -0
- package/dist/components/ui/disclosure-panel.d.ts +14 -0
- package/dist/components/ui/empty.d.ts +11 -0
- package/dist/components/ui/input-group.d.ts +18 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/item.d.ts +22 -0
- package/dist/components/ui/overlay.recipes.d.ts +2 -0
- package/dist/components/ui/pagination.d.ts +17 -0
- package/dist/components/ui/popover.d.ts +22 -0
- package/dist/components/ui/select.d.ts +18 -0
- package/dist/components/ui/separator.d.ts +3 -0
- package/dist/components/ui/sheet.d.ts +25 -0
- package/dist/components/ui/sidebar.d.ts +64 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/slot.d.ts +6 -0
- package/dist/components/ui/sonner.d.ts +3 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/table.d.ts +13 -0
- package/dist/components/ui/tabs.d.ts +10 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/toggle-group.d.ts +12 -0
- package/dist/components/ui/toggle.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts +13 -0
- package/dist/containers-6s-ucRQQ.js +125 -0
- package/dist/containers-6s-ucRQQ.js.map +1 -0
- package/dist/content-typography-CnwgMJ37.js +6 -0
- package/dist/content-typography-CnwgMJ37.js.map +1 -0
- package/dist/copyable-B7SBXJMr.js +65 -0
- package/dist/copyable-B7SBXJMr.js.map +1 -0
- package/dist/data-display-cWIRdeaf.js +1129 -0
- package/dist/data-display-cWIRdeaf.js.map +1 -0
- package/dist/date-BFNMnrS5.js +140 -0
- package/dist/date-BFNMnrS5.js.map +1 -0
- package/dist/date-picker-CA6ogMQB.js +1521 -0
- package/dist/date-picker-CA6ogMQB.js.map +1 -0
- package/dist/date-pickers-BPIKLdsD.js +224 -0
- package/dist/date-pickers-BPIKLdsD.js.map +1 -0
- package/dist/disclosure-panel-B0HFNZ9x.js +35 -0
- package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -0
- package/dist/display-CFM5myut.js +343 -0
- package/dist/display-CFM5myut.js.map +1 -0
- package/dist/dropdown-menu-BlnyHr-9.js +186 -0
- package/dist/dropdown-menu-BlnyHr-9.js.map +1 -0
- package/dist/editable-text-recipe-Bkm6wKHp.js +10 -0
- package/dist/editable-text-recipe-Bkm6wKHp.js.map +1 -0
- package/dist/favicon.svg +1 -0
- package/dist/features/activities.js +1360 -0
- package/dist/features/activities.js.map +1 -0
- package/dist/features/ai-chat.js +567 -0
- package/dist/features/ai-chat.js.map +1 -0
- package/dist/features/async-preview.js +478 -0
- package/dist/features/async-preview.js.map +1 -0
- package/dist/features/combobox.js +3 -0
- package/dist/features/comments.js +3 -0
- package/dist/features/data-view.js +519 -0
- package/dist/features/data-view.js.map +1 -0
- package/dist/features/email-composer/engine.js +2 -0
- package/dist/features/email-composer.js +1099 -0
- package/dist/features/email-composer.js.map +1 -0
- package/dist/features/event-calendar.js +711 -0
- package/dist/features/event-calendar.js.map +1 -0
- package/dist/features/filters.js +3 -0
- package/dist/features/global-search.js +593 -0
- package/dist/features/global-search.js.map +1 -0
- package/dist/features/kanban.js +425 -0
- package/dist/features/kanban.js.map +1 -0
- package/dist/features/map/images/layers-2x.png +0 -0
- package/dist/features/map/images/layers.png +0 -0
- package/dist/features/map/images/marker-icon-2x.png +0 -0
- package/dist/features/map/images/marker-icon.png +0 -0
- package/dist/features/map/images/marker-shadow.png +0 -0
- package/dist/features/map/images/spritesheet-2x.png +0 -0
- package/dist/features/map/images/spritesheet.png +0 -0
- package/dist/features/map/images/spritesheet.svg +156 -0
- package/dist/features/map/style.css +809 -0
- package/dist/features/map.js +1052 -0
- package/dist/features/map.js.map +1 -0
- package/dist/features/media-library.js +2007 -0
- package/dist/features/media-library.js.map +1 -0
- package/dist/features/mentions.js +3 -0
- package/dist/features/overlays.js +3 -0
- package/dist/features/products.js +3077 -0
- package/dist/features/products.js.map +1 -0
- package/dist/features/questionnaire.js +366 -0
- package/dist/features/questionnaire.js.map +1 -0
- package/dist/features/resource-assignment.js +317 -0
- package/dist/features/resource-assignment.js.map +1 -0
- package/dist/features/resource.js +254 -0
- package/dist/features/resource.js.map +1 -0
- package/dist/features/rich-text-editor.js +23 -0
- package/dist/features/rich-text-editor.js.map +1 -0
- package/dist/features/schema-form.js +744 -0
- package/dist/features/schema-form.js.map +1 -0
- package/dist/features/suggestions.js +149 -0
- package/dist/features/suggestions.js.map +1 -0
- package/dist/features/sync.js +136 -0
- package/dist/features/sync.js.map +1 -0
- package/dist/features/table.js +3 -0
- package/dist/features/theme-tweaker.js +2083 -0
- package/dist/features/theme-tweaker.js.map +1 -0
- package/dist/feedback-DWUkgEjR.js +233 -0
- package/dist/feedback-DWUkgEjR.js.map +1 -0
- package/dist/field-affordance-recipes-IjzPrCTw.js +17 -0
- package/dist/field-affordance-recipes-IjzPrCTw.js.map +1 -0
- package/dist/field-state-recipes-CBTRt9Bt.js +11 -0
- package/dist/field-state-recipes-CBTRt9Bt.js.map +1 -0
- package/dist/filters-BhsUtsxW.js +2203 -0
- package/dist/filters-BhsUtsxW.js.map +1 -0
- package/dist/form-field-Bn7ZH1rA.js +48 -0
- package/dist/form-field-Bn7ZH1rA.js.map +1 -0
- package/dist/form-sizing-BWs70_a2.js +100 -0
- package/dist/form-sizing-BWs70_a2.js.map +1 -0
- package/dist/format-iamDSqs2.js +110 -0
- package/dist/format-iamDSqs2.js.map +1 -0
- package/dist/forms-B7pzS25o.js +194 -0
- package/dist/forms-B7pzS25o.js.map +1 -0
- package/dist/forms-numeric-BUBxELBv.js +867 -0
- package/dist/forms-numeric-BUBxELBv.js.map +1 -0
- package/dist/header-C59QZyxV.js +452 -0
- package/dist/header-C59QZyxV.js.map +1 -0
- package/dist/hooks/use-debounce.d.ts +1 -0
- package/dist/hooks/use-debounced-callback.d.ts +40 -0
- package/dist/hooks/use-files.d.ts +48 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/useFormErrors.d.ts +7 -0
- package/dist/hooks-CM1Vp9Pe.js +88 -0
- package/dist/hooks-CM1Vp9Pe.js.map +1 -0
- package/dist/http-CLTVJc5I.js +331 -0
- package/dist/http-CLTVJc5I.js.map +1 -0
- package/dist/icon-badge-Dv0RYQwj.js +53 -0
- package/dist/icon-badge-Dv0RYQwj.js.map +1 -0
- package/dist/icon-size-B6PVwjbC.js +18 -0
- package/dist/icon-size-B6PVwjbC.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +7 -0
- package/dist/initials-format-CDoQEOd_.js +35 -0
- package/dist/initials-format-CDoQEOd_.js.map +1 -0
- package/dist/input-WwYQZJzG.js +202 -0
- package/dist/input-WwYQZJzG.js.map +1 -0
- package/dist/input-ci9fIgFH.js +20 -0
- package/dist/input-ci9fIgFH.js.map +1 -0
- package/dist/item-pJ0GsOiJ.js +257 -0
- package/dist/item-pJ0GsOiJ.js.map +1 -0
- package/dist/layout/app-shell.js +3 -0
- package/dist/layout/auth.js +3 -0
- package/dist/layout/containers.js +3 -0
- package/dist/layout/header.js +3 -0
- package/dist/layout/hooks.js +3 -0
- package/dist/layout/navigation.js +3 -0
- package/dist/layout/page.js +3 -0
- package/dist/layout/settings.js +3 -0
- package/dist/layout/sidebar.js +4 -0
- package/dist/layout/workspace.js +3 -0
- package/dist/layout.js +13 -0
- package/dist/layout.types-Cn7aUzJp.js +20 -0
- package/dist/layout.types-Cn7aUzJp.js.map +1 -0
- package/dist/lib/action-presentation.d.ts +15 -0
- package/dist/lib/affordance-geometry.generated.d.ts +27 -0
- package/dist/lib/anchored-positioning.d.ts +5 -0
- package/dist/lib/command-filter.d.ts +1 -0
- package/dist/lib/component-vocabulary.d.ts +12 -0
- package/dist/lib/editable-text-recipe.d.ts +6 -0
- package/dist/lib/email-composer.d.ts +6 -0
- package/dist/lib/field-affordance-recipes.d.ts +20 -0
- package/dist/lib/field-state-recipes.d.ts +10 -0
- package/dist/lib/format.d.ts +53 -0
- package/dist/lib/motion-recipes.d.ts +8 -0
- package/dist/lib/navigation-row-recipes.d.ts +26 -0
- package/dist/lib/overlay-anatomy-recipes.d.ts +8 -0
- package/dist/lib/row-recipes.d.ts +3 -0
- package/dist/lib/sanitize-html.d.ts +8 -0
- package/dist/lib/strings.d.ts +16 -0
- package/dist/lib/strings.js +32 -0
- package/dist/lib/strings.js.map +1 -0
- package/dist/lib/surface-recipes.d.ts +27 -0
- package/dist/lib/theme-scope.d.ts +31 -0
- package/dist/lib/token-merge.generated.d.ts +2 -0
- package/dist/lib/track-recipes.d.ts +4 -0
- package/dist/lib/ui-provider/defaults.d.ts +12 -0
- package/dist/lib/ui-provider/hooks.d.ts +13 -0
- package/dist/lib/ui-provider/index.d.ts +28 -0
- package/dist/lib/ui-provider/provider.d.ts +15 -0
- package/dist/lib/ui-provider/scale.d.ts +5 -0
- package/dist/lib/ui-provider/store.d.ts +11 -0
- package/dist/lib/ui-provider/types.d.ts +157 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +2 -0
- package/dist/map-demo-tile.svg +1 -0
- package/dist/media-gallery-DhDRgnVZ.js +200 -0
- package/dist/media-gallery-DhDRgnVZ.js.map +1 -0
- package/dist/mentions-B8Ko-fhS.js +563 -0
- package/dist/mentions-B8Ko-fhS.js.map +1 -0
- package/dist/message-COsdEvXT.js +108 -0
- package/dist/message-COsdEvXT.js.map +1 -0
- package/dist/motion-recipes-B6jKXEcN.js +27 -0
- package/dist/motion-recipes-B6jKXEcN.js.map +1 -0
- package/dist/navigation-BUIn2Qxx.js +265 -0
- package/dist/navigation-BUIn2Qxx.js.map +1 -0
- package/dist/navigation-DBEu4POU.js +267 -0
- package/dist/navigation-DBEu4POU.js.map +1 -0
- package/dist/navigation-row-recipes-GVh11KiT.js +29 -0
- package/dist/navigation-row-recipes-GVh11KiT.js.map +1 -0
- package/dist/number-BNT_BIzJ.js +269 -0
- package/dist/number-BNT_BIzJ.js.map +1 -0
- package/dist/overlay.recipes-BxW5FIfK.js +6 -0
- package/dist/overlay.recipes-BxW5FIfK.js.map +1 -0
- package/dist/overlays-B11wZka6.js +982 -0
- package/dist/overlays-B11wZka6.js.map +1 -0
- package/dist/page-BV6ioQg3.js +202 -0
- package/dist/page-BV6ioQg3.js.map +1 -0
- package/dist/page-header-DQRa0jug.js +112 -0
- package/dist/page-header-DQRa0jug.js.map +1 -0
- package/dist/pagination-C29vvt3I.js +149 -0
- package/dist/pagination-C29vvt3I.js.map +1 -0
- package/dist/popover-CoLDEg19.js +194 -0
- package/dist/popover-CoLDEg19.js.map +1 -0
- package/dist/popover-menu-GLIQTJTx.js +99 -0
- package/dist/popover-menu-GLIQTJTx.js.map +1 -0
- package/dist/popover.recipes-zgBhMlUu.js +34 -0
- package/dist/popover.recipes-zgBhMlUu.js.map +1 -0
- package/dist/primitives-DKPOGVpj.js +330 -0
- package/dist/primitives-DKPOGVpj.js.map +1 -0
- package/dist/primitives.js +7 -0
- package/dist/progress-BOe8l_FZ.js +168 -0
- package/dist/progress-BOe8l_FZ.js.map +1 -0
- package/dist/receipt-BM8xsGFy.js +113 -0
- package/dist/receipt-BM8xsGFy.js.map +1 -0
- package/dist/rich-text-B7sBAdDG.js +32 -0
- package/dist/rich-text-B7sBAdDG.js.map +1 -0
- package/dist/rich-text-editor-CoVrTiSv.js +575 -0
- package/dist/rich-text-editor-CoVrTiSv.js.map +1 -0
- package/dist/rich-text-editor.recipes-DxvOE0Lp.js +72 -0
- package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +1 -0
- package/dist/rich-text-editor.strings-BpnIQgMl.js +25 -0
- package/dist/rich-text-editor.strings-BpnIQgMl.js.map +1 -0
- package/dist/row-recipes-DL8n7t_b.js +10 -0
- package/dist/row-recipes-DL8n7t_b.js.map +1 -0
- package/dist/sanitize-html-BG9FGe-j.js +64 -0
- package/dist/sanitize-html-BG9FGe-j.js.map +1 -0
- package/dist/scroll-area-BheMQ270.js +47 -0
- package/dist/scroll-area-BheMQ270.js.map +1 -0
- package/dist/select-B2mb-qN2.js +108 -0
- package/dist/select-B2mb-qN2.js.map +1 -0
- package/dist/separator-DO0EbCEm.js +17 -0
- package/dist/separator-DO0EbCEm.js.map +1 -0
- package/dist/separator-Gk_WXH-l.js +21 -0
- package/dist/separator-Gk_WXH-l.js.map +1 -0
- package/dist/services/actions/action-adapters.d.ts +77 -0
- package/dist/services/actions/action-overlay-outlet.d.ts +3 -0
- package/dist/services/actions/action-provider.d.ts +7 -0
- package/dist/services/actions/action-scope.d.ts +3 -0
- package/dist/services/actions/action-store.d.ts +55 -0
- package/dist/services/actions/actions.strings.d.ts +2 -0
- package/dist/services/actions/actions.types.d.ts +322 -0
- package/dist/services/actions/hooks.d.ts +8 -0
- package/dist/services/actions/index.d.ts +8 -0
- package/dist/services/actions.js +811 -0
- package/dist/services/actions.js.map +1 -0
- package/dist/settings-BnCyyPOJ.js +160 -0
- package/dist/settings-BnCyyPOJ.js.map +1 -0
- package/dist/sheet-B-q914Ad.js +205 -0
- package/dist/sheet-B-q914Ad.js.map +1 -0
- package/dist/sidebar-C_2p3Tfj.js +501 -0
- package/dist/sidebar-C_2p3Tfj.js.map +1 -0
- package/dist/sidebar-DPR7fmqN.js +598 -0
- package/dist/sidebar-DPR7fmqN.js.map +1 -0
- package/dist/skeleton-CmT1ppqb.js +264 -0
- package/dist/skeleton-CmT1ppqb.js.map +1 -0
- package/dist/slot-CLF9kLrS.js +16 -0
- package/dist/slot-CLF9kLrS.js.map +1 -0
- package/dist/smart-card-CYLn46e6.js +578 -0
- package/dist/smart-card-CYLn46e6.js.map +1 -0
- package/dist/spinner-BY9HbUEh.js +78 -0
- package/dist/spinner-BY9HbUEh.js.map +1 -0
- package/dist/structure-MvKVq-oL.js +95 -0
- package/dist/structure-MvKVq-oL.js.map +1 -0
- package/dist/structure.recipes-Bqhf9oIh.js +548 -0
- package/dist/structure.recipes-Bqhf9oIh.js.map +1 -0
- package/dist/style.css +3 -0
- package/dist/surface-recipes-CQfRr-VL.js +27 -0
- package/dist/surface-recipes-CQfRr-VL.js.map +1 -0
- package/dist/table-BS39xnlq.js +1424 -0
- package/dist/table-BS39xnlq.js.map +1 -0
- package/dist/table-DnlAJ-xR.js +146 -0
- package/dist/table-DnlAJ-xR.js.map +1 -0
- package/dist/tabs-B5cNMWiP.js +187 -0
- package/dist/tabs-B5cNMWiP.js.map +1 -0
- package/dist/text-inputs-Dh9XGyiS.js +331 -0
- package/dist/text-inputs-Dh9XGyiS.js.map +1 -0
- package/dist/text.styles-BwB7vAF2.js +64 -0
- package/dist/text.styles-BwB7vAF2.js.map +1 -0
- package/dist/theme-scope-kStaAer0.js +39 -0
- package/dist/theme-scope-kStaAer0.js.map +1 -0
- package/dist/theme.css +872 -0
- package/dist/timelines-B9ICkQcV.js +446 -0
- package/dist/timelines-B9ICkQcV.js.map +1 -0
- package/dist/track-recipes-LLPNVwFg.js +10 -0
- package/dist/track-recipes-LLPNVwFg.js.map +1 -0
- package/dist/tree-BdWSaoFT.js +185 -0
- package/dist/tree-BdWSaoFT.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/locale.types.d.ts +7 -0
- package/dist/types/pagination.types.d.ts +24 -0
- package/dist/typography/rich-text.js +3 -0
- package/dist/typography-Cv8MT-82.js +96 -0
- package/dist/typography-Cv8MT-82.js.map +1 -0
- package/dist/typography.js +3 -0
- package/dist/ui-provider-CftIB6TY.js +128 -0
- package/dist/ui-provider-CftIB6TY.js.map +1 -0
- package/dist/ui-provider.js +4 -0
- package/dist/upload-D8Za5x_c.js +849 -0
- package/dist/upload-D8Za5x_c.js.map +1 -0
- package/dist/upload-queue-hIIYBLS7.js +410 -0
- package/dist/upload-queue-hIIYBLS7.js.map +1 -0
- package/dist/usage-card-DnmnJ58D.js +458 -0
- package/dist/usage-card-DnmnJ58D.js.map +1 -0
- package/dist/use-debounce-DZ_1ZBPa.js +18 -0
- package/dist/use-debounce-DZ_1ZBPa.js.map +1 -0
- package/dist/use-debounced-callback-Cx1h-hdv.js +30 -0
- package/dist/use-debounced-callback-Cx1h-hdv.js.map +1 -0
- package/dist/use-file-drop-target-BX7GnhoQ.js +39 -0
- package/dist/use-file-drop-target-BX7GnhoQ.js.map +1 -0
- package/dist/use-mobile-vaLKwgyf.js +15 -0
- package/dist/use-mobile-vaLKwgyf.js.map +1 -0
- package/dist/utils-C2EKeIw3.js +72 -0
- package/dist/utils-C2EKeIw3.js.map +1 -0
- package/dist/value-inputs-DX2dbxjj.js +824 -0
- package/dist/value-inputs-DX2dbxjj.js.map +1 -0
- package/dist/workspace-C1PZmk8L.js +402 -0
- package/dist/workspace-C1PZmk8L.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +135 -0
- package/docs/consumer-skill/examples/app-layout.tsx +31 -0
- package/docs/consumer-skill/examples/composition.tsx +37 -0
- package/docs/consumer-skill/examples/content-workflow.tsx +13 -0
- package/docs/consumer-skill/examples/destructive-confirm.tsx +42 -0
- package/docs/consumer-skill/examples/detail.tsx +27 -0
- package/docs/consumer-skill/examples/edit.tsx +61 -0
- package/docs/consumer-skill/examples/email-composer.tsx +25 -0
- package/docs/consumer-skill/examples/hierarchy-capture.tsx +25 -0
- package/docs/consumer-skill/examples/index-table.tsx +36 -0
- package/docs/consumer-skill/examples/manifest.json +108 -0
- package/docs/consumer-skill/examples/planning-usage-edit.tsx +29 -0
- package/docs/consumer-skill/examples/receipt.tsx +19 -0
- package/docs/consumer-skill/examples/scoped-directory.tsx +77 -0
- package/docs/consumer-skill/references/composition.md +273 -0
- package/docs/consumer-skill/references/design-contract.md +146 -0
- package/docs/consumer-skill/references/discovery.md +50 -0
- package/docs/consumer-skill/references/installation.md +83 -0
- package/docs/consumer-skill/references/integration.md +69 -0
- package/docs/consumer-skill/references/public-api.json +17750 -0
- package/docs/consumer-skill/references/review.md +74 -0
- package/docs/consumer-skill/references/theming.md +56 -0
- package/docs/consumer-skill/references/tokens.json +422 -0
- package/docs/consumer-skill/references/workflows.md +135 -0
- package/docs/consumer-skill/scripts/check-composition.mjs +31 -0
- package/docs/consumer-skill/scripts/composition-policy.mjs +155 -0
- package/docs/consumer-skill/scripts/discovery.mjs +84 -0
- package/docs/consumer-skill/scripts/find-components.mjs +11 -0
- package/docs/consumer-skill/scripts/surface-policy.mjs +22 -0
- package/package.json +642 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-picker-CA6ogMQB.js","names":["Calendar","React","Button","React","_Fragment","React","ToggleGroup","ToggleGroupPrimitive","TogglePrimitive","React","ToggleGroup","React","CalendarIcon","Calendar","_Fragment","React","CalendarIcon","Calendar","_Fragment","React","CalendarIcon","Calendar","_Fragment","React","useDatesConfig","useDensityConfig","cn","Button","Heading","Label","buttonVariants","Button$1","Grid","Stack","formatDateRange","Separator","formFieldTriggerClasses","resolveFormControlSize","formControlSizeClasses","Input","PopoverTrigger","Popover","PopoverContent","useIsMobile","React$1","Fragment$1","padTimeSegment","value","clamp","min","max","alignSecondsToStep","step","totalSeconds","lastOfDay","aligned","parseTimeString","timeString","parts","hRaw","mRaw","sRaw","hours","minutes","seconds","normalizedTimeToString","secondsPart","includeSeconds","time","createDefaultNormalizedTime","source","date","alignedSeconds","alignedHours","alignedMinutes","alignedSecondsRemainder","normalizedTimeToDisplaySegments","format","period","displayHour","displaySegmentsToNormalizedTime","parseSegment","numeric","segments","isPM","alignNormalizedTimeToStep","formatNormalizedTimeForDisplay","periodLabel","labels","QUOTED_TEXT_REGEX","TIME_TOKEN_REGEX","readableFormatIncludesTime","sanitized","getDayPickerYearBounds","yearSelection","createDateOutput","options","locale","dateFormat","readableFormat","createMultipleDatesOutput","dates","d","createDateRangeOutput","range","applyTimeToDate","normalized","newDate","calculateDaysDifference","to","from","validateDateRange","daysDiff","getRangeValidationMessage","translations","getMultipleDatesValidationMessage","required","formatDateButtonText","text","placeholder","defaultPlaceholder","formatMultipleDatesButtonText","formatRangeButtonText","resolvePickerButtonProps","tone","buttonStyle","isSingleMode","props","isMultipleMode","isRangeMode","getDefaultPresets","t","startOfWeek","endOfWeek","startOfMonth","endOfMonth","addDays","Calendar$1","defaultClassNames","getDefaultClassNames","DayPicker","className","formatters","buttonVariant","captionLayout","classNames","rootRef","jsx","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","components","ref","modifiers","day","DatePickerFooter","config","visibleActions","actions","action","customText","output","displayText","showSummary","autoSummary","showOnlyWhenSelected","hasSelection","Text","isDisabled","DatePickerHeader","Icon","align","title","description","PICKER_TRIGGER_CHROME","defaultDatePickerStrings","days","count","toggleVariants","cva","ToggleGroupContext","ToggleGroup$1","ToggleGroup","variant","size","spacing","ToggleGroupItem","context","Toggle","defaultTimePickerStrings","SEGMENT_ORDER","DEFAULT_24H","DEFAULT_12H","BLANK","segmentWidthClasses","sanitizeNumeric","ensureTwoDigits","getNextKey","activeOrder","idx","key","getPreviousKey","hoursToDisplay","determinePeriodFromHours","segmentsWithDefaults","blankSegments","fillBlanks","fallbackHours","segmentsFromValue","parsed","TimePicker","sizeProp","stringsProp","useStrings","defaultScale","precision","open","setOpen","setSegments","segmentsRef","isLocalEditRef","digitEntryRef","updateSegments","next","inputRefs","toTimeString","emitAligned","segs","onValueChange","commitSegments","focusSegment","applyDigitInput","current","inProgress","typed","segmentKey","digit","candidate","nextPeriod","updated","handleNumericChange","rawValue","v","handlePeriodChange","handleBlur","handleFocus","event","handleKeyDown","target","periodToggleValue","segmentLabels","editor","mode","node","id","index","values","isBlank","triggerText","invalid","Clock","SingleDatePicker","baseProps","triggerId","describedBy","hasError","ariaDescribedBy","hasHint","errorText","hintText","timeFormat","withTime","timeStep","readableHasTime","showTimeInButton","setDate","defaultValue","setTime","initial","previousValueRef","defaultInitializedRef","lastValueDefinedRef","createOutput","finalDate","selectedDate","effectiveTime","overrideTime","applied","dateFnsLocale","isTimeEnabled","wasValueDefined","isValueDefined","applyState","baseDate","emitChange","prevTime","valueTime","handleSelect","seededTime","closeOnSelect","handleTimeChange","nextTime","timeDisplay","buttonText","footerSummary","resolved","triggerProps","Calendar","disabledDates","yearBounds","calendarProps","MultipleDatePicker","setDates","selectedDates","newDates","validationMessage","RangeDatePicker","presetsProp","isMobile","resolvedNumberOfMonths","presets","weekStartsOn","showTimeInSummary","initialRange","setRange","startTime","setStartTime","endTime","setEndTime","hasValidationMessage","validationText","prev","nextFrom","nextTo","alignOrKeep","finalRange","currentRange","handleStartTimeChange","handleEndTimeChange","resolveNextRange","triggerDate","dayPickerRange","nextRange","withConfirm","isComplete","isValid","handlePresetSelect","preset","handleConfirm","startTimeDisplay","endTimeDisplay","fromBase","fromText","toBase","DatePicker","enUS","componentClassName"],"sources":["../src/components/base/date-pickers/date-picker-helpers.ts","../src/components/base/date-pickers/date-picker-internals.ts","../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.recipes.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/time-picker.tsx","../src/components/base/date-pickers/date-picker-single.tsx","../src/components/base/date-pickers/date-picker-multiple.tsx","../src/components/base/date-pickers/date-picker-range.tsx","../src/components/base/date-pickers/date-picker.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport type { Locale as DateFnsLocale } from 'date-fns/locale';\nimport type { DateRange } from 'react-day-picker';\nimport { formatDateRange } from '../../primitives/date';\nimport type {\n\tDateOutput,\n\tMultipleDatesOutput,\n\tDateRangeOutput,\n\tDatePickerStrings,\n\tYearSelectionConfig\n} from './datepicker.types';\n\nexport type TimePeriod = 'AM' | 'PM';\n\nexport interface NormalizedTime {\n\thours: number;\n\tminutes: number;\n\tseconds: number;\n}\n\nexport interface DisplayTimeSegments {\n\thours: string;\n\tminutes: string;\n\tseconds?: string;\n\tperiod?: TimePeriod;\n}\n\nexport interface TimeDisplayLabels {\n\tam?: string;\n\tpm?: string;\n}\n\nexport const HOURS_24_MAX = 23;\nexport const HOURS_12_MAX = 12;\nexport const MINUTES_MAX = 59;\nexport const SECONDS_MAX = 59;\n\nexport function padTimeSegment(value: number): string {\n\treturn value.toString().padStart(2, '0');\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n\treturn Math.min(Math.max(value, min), max);\n}\n\n/**\n * Snaps a time to the nearest legal `step`, rather than the one below it:\n * with a 15-minute step, 10:38 belongs at 10:45 and 10:37 at 10:30. Ties\n * round up. The result is always itself a legal step, so the last one\n * before midnight is used instead of overflowing into the next day.\n */\nfunction alignSecondsToStep(totalSeconds: number, step: number): number {\n\tif (step <= 0) {\n\t\treturn totalSeconds;\n\t}\n\tconst lastOfDay = Math.floor((24 * 60 * 60 - 1) / step) * step;\n\tconst aligned = Math.round(totalSeconds / step) * step;\n\treturn Math.max(0, Math.min(aligned, lastOfDay));\n}\n\nexport function parseTimeString(timeString: string | undefined): NormalizedTime | null {\n\tif (!timeString) {\n\t\treturn null;\n\t}\n\tconst parts = timeString.split(':');\n\tif (parts.length < 2 || parts.length > 3) {\n\t\treturn null;\n\t}\n\tconst [hRaw, mRaw, sRaw] = parts;\n\tconst hours = clamp(Number.parseInt(hRaw, 10), 0, HOURS_24_MAX);\n\tconst minutes = clamp(Number.parseInt(mRaw, 10), 0, MINUTES_MAX);\n\tconst seconds = clamp(Number.parseInt(sRaw ?? '0', 10), 0, SECONDS_MAX);\n\tif (Number.isNaN(hours) || Number.isNaN(minutes) || Number.isNaN(seconds)) {\n\t\treturn null;\n\t}\n\treturn { hours, minutes, seconds };\n}\n\nexport function normalizedTimeToString(time: NormalizedTime, includeSeconds: boolean): string {\n\tconst secondsPart = includeSeconds ? `:${padTimeSegment(time.seconds)}` : '';\n\treturn `${padTimeSegment(time.hours)}:${padTimeSegment(time.minutes)}${secondsPart}`;\n}\n\nexport function createDefaultNormalizedTime(\n\tdate: Date | undefined,\n\tincludeSeconds: boolean,\n\tstep: number\n): NormalizedTime {\n\tconst source = Number.isFinite(date?.getTime?.()) ? (date as Date) : new Date();\n\tconst hours = source.getHours();\n\tconst minutes = source.getMinutes();\n\tconst seconds = includeSeconds ? source.getSeconds() : 0;\n\tconst totalSeconds = hours * 3600 + minutes * 60 + seconds;\n\tconst alignedSeconds = alignSecondsToStep(totalSeconds, step);\n\tconst alignedHours = Math.floor(alignedSeconds / 3600);\n\tconst alignedMinutes = Math.floor((alignedSeconds % 3600) / 60);\n\tconst alignedSecondsRemainder = alignedSeconds % 60;\n\treturn {\n\t\thours: alignedHours,\n\t\tminutes: alignedMinutes,\n\t\tseconds: includeSeconds ? alignedSecondsRemainder : 0,\n\t};\n}\n\nexport function normalizedTimeToDisplaySegments(\n\ttime: NormalizedTime,\n\tformat: '12' | '24',\n\tincludeSeconds: boolean\n): DisplayTimeSegments {\n\tif (format === '12') {\n\t\tconst period: TimePeriod = time.hours >= 12 ? 'PM' : 'AM';\n\t\tlet displayHour = time.hours % 12;\n\t\tif (displayHour === 0) {\n\t\t\tdisplayHour = 12;\n\t\t}\n\t\treturn {\n\t\t\thours: padTimeSegment(displayHour),\n\t\t\tminutes: padTimeSegment(time.minutes),\n\t\t\tseconds: includeSeconds ? padTimeSegment(time.seconds) : undefined,\n\t\t\tperiod,\n\t\t};\n\t}\n\treturn {\n\t\thours: padTimeSegment(time.hours),\n\t\tminutes: padTimeSegment(time.minutes),\n\t\tseconds: includeSeconds ? padTimeSegment(time.seconds) : undefined,\n\t};\n}\n\nexport function displaySegmentsToNormalizedTime(\n\tsegments: DisplayTimeSegments,\n\tformat: '12' | '24',\n\tincludeSeconds: boolean\n): NormalizedTime {\n\tconst parseSegment = (value: string | undefined): number => {\n\t\tconst numeric = Number.parseInt(value ?? '0', 10);\n\t\treturn Number.isNaN(numeric) ? 0 : numeric;\n\t};\n\tlet hours = parseSegment(segments.hours);\n\tconst minutes = clamp(parseSegment(segments.minutes), 0, MINUTES_MAX);\n\tconst seconds = includeSeconds ? clamp(parseSegment(segments.seconds), 0, SECONDS_MAX) : 0;\n\tif (format === '12') {\n\t\thours = clamp(hours, 1, HOURS_12_MAX);\n\t\tconst period = segments.period ?? 'AM';\n\t\tconst isPM = period === 'PM';\n\t\thours = hours % 12;\n\t\tif (isPM) {\n\t\t\thours += 12;\n\t\t}\n\t} else {\n\t\thours = clamp(hours, 0, HOURS_24_MAX);\n\t}\n\treturn { hours, minutes, seconds };\n}\n\nexport function alignNormalizedTimeToStep(\n\ttime: NormalizedTime,\n\tstep: number,\n\tincludeSeconds: boolean\n): NormalizedTime {\n\tconst totalSeconds = time.hours * 3600 + time.minutes * 60 + time.seconds;\n\tconst alignedSeconds = alignSecondsToStep(totalSeconds, step);\n\tconst hours = Math.floor(alignedSeconds / 3600);\n\tconst minutes = Math.floor((alignedSeconds % 3600) / 60);\n\tconst seconds = includeSeconds ? alignedSeconds % 60 : 0;\n\treturn { hours, minutes, seconds };\n}\n\nexport function formatNormalizedTimeForDisplay(\n\ttime: NormalizedTime,\n\tincludeSeconds: boolean,\n\tformat: '12' | '24',\n\tlabels?: TimeDisplayLabels\n): string {\n\tconst minutes = padTimeSegment(time.minutes);\n\tconst secondsPart = includeSeconds ? `:${padTimeSegment(time.seconds)}` : '';\n\tif (format === '24') {\n\t\treturn `${padTimeSegment(time.hours)}:${minutes}${secondsPart}`;\n\t}\n\tconst period: TimePeriod = time.hours >= 12 ? 'PM' : 'AM';\n\tlet displayHour = time.hours % 12;\n\tif (displayHour === 0) {\n\t\tdisplayHour = 12;\n\t}\n\tconst periodLabel = period === 'AM' ? labels?.am ?? 'AM' : labels?.pm ?? 'PM';\n\treturn `${padTimeSegment(displayHour)}:${minutes}${secondsPart} ${periodLabel}`;\n}\n\nconst QUOTED_TEXT_REGEX = /'[^']*'/g;\nconst TIME_TOKEN_REGEX = /[HKhk]|\\bp\\b|\\bt\\b|\\ba\\b/;\n\nexport function readableFormatIncludesTime(format: string | undefined): boolean {\n\tif (!format) {\n\t\treturn false;\n\t}\n\tconst sanitized = format.replace(QUOTED_TEXT_REGEX, '');\n\treturn TIME_TOKEN_REGEX.test(sanitized);\n}\n\nexport function getDayPickerYearBounds(\n\tyearSelection: YearSelectionConfig | undefined\n): { startMonth?: Date; endMonth?: Date } {\n\treturn {\n\t\tstartMonth: typeof yearSelection?.fromYear === 'number' ? new Date(yearSelection.fromYear, 0) : undefined,\n\t\tendMonth: typeof yearSelection?.toYear === 'number' ? new Date(yearSelection.toYear, 11) : undefined,\n\t};\n}\n\n/**\n * Create date output object with formatted strings\n */\nexport function createDateOutput(\n\tdate: Date | undefined,\n\tdateFormat: string,\n\treadableFormat: string,\n\tlocale?: DateFnsLocale\n): DateOutput {\n\tconst options = locale ? { locale } : undefined;\n\treturn {\n\t\tdate,\n\t\tformatted: date ? format(date, dateFormat, options) : undefined,\n\t\treadable: date ? format(date, readableFormat, options) : undefined,\n\t};\n}\n\n/**\n * Create multiple dates output object with formatted strings\n */\nexport function createMultipleDatesOutput(\n\tdates: Date[],\n\tdateFormat: string,\n\treadableFormat: string,\n\tlocale?: DateFnsLocale\n): MultipleDatesOutput {\n\tconst options = locale ? { locale } : undefined;\n\treturn {\n\t\tdates,\n\t\tformatted: dates.map(d => format(d, dateFormat, options)),\n\t\treadable: dates.map(d => format(d, readableFormat, options)),\n\t};\n}\n\n/**\n * Create date range output object with formatted strings\n */\nexport function createDateRangeOutput(\n\trange: DateRange | undefined,\n\tdateFormat: string,\n\treadableFormat: string,\n\tlocale?: DateFnsLocale\n): DateRangeOutput {\n\tconst options = locale ? { locale } : undefined;\n\treturn {\n\t\trange,\n\t\tformatted: {\n\t\t\tfrom: range?.from ? format(range.from, dateFormat, options) : undefined,\n\t\t\tto: range?.to ? format(range.to, dateFormat, options) : undefined,\n\t\t},\n\t\treadable: {\n\t\t\tfrom: range?.from ? format(range.from, readableFormat, options) : undefined,\n\t\t\tto: range?.to ? format(range.to, readableFormat, options) : undefined,\n\t\t},\n\t};\n}\n\n/**\n * Apply time to a date\n */\nexport function applyTimeToDate(date: Date, time: string | NormalizedTime): Date {\n\tconst normalized = typeof time === 'string' ? parseTimeString(time) : time;\n\tconst newDate = new Date(date);\n\tif (!Number.isFinite(newDate.getTime()) || !normalized) {\n\t\treturn new Date(NaN);\n\t}\n\tnewDate.setHours(normalized.hours, normalized.minutes, normalized.seconds, 0);\n\treturn newDate;\n}\n\n/**\n * Apply time to date range\n */\nexport function applyTimeToRange(\n\trange: DateRange,\n\tstartTime: string | NormalizedTime,\n\tendTime: string | NormalizedTime\n): DateRange {\n\tlet finalRange = range;\n\n\tif (range.from) {\n\t\tfinalRange = { ...finalRange, from: applyTimeToDate(range.from, startTime) };\n\t}\n\n\tif (range.to && finalRange) {\n\t\tfinalRange = { ...finalRange, to: applyTimeToDate(range.to, endTime) };\n\t}\n\n\treturn finalRange;\n}\n\n/**\n * Calculate days difference between two dates\n */\nexport function calculateDaysDifference(from: Date, to: Date): number {\n\treturn Math.ceil((to.getTime() - from.getTime()) / (1000 * 60 * 60 * 24)) + 1;\n}\n\n/**\n * Validate date range constraints\n */\nexport function validateDateRange(\n\trange: DateRange | undefined,\n\tmin?: number,\n\tmax?: number\n): { isValid: boolean; daysDiff?: number } {\n\tif (!range?.from || !range?.to) {\n\t\treturn { isValid: true };\n\t}\n\n\tconst daysDiff = calculateDaysDifference(range.from, range.to);\n\n\tif (min && daysDiff < min) {\n\t\treturn { isValid: false, daysDiff };\n\t}\n\n\tif (max && daysDiff > max) {\n\t\treturn { isValid: false, daysDiff };\n\t}\n\n\treturn { isValid: true, daysDiff };\n}\n\n/**\n * Get validation message for date range\n */\nexport function getRangeValidationMessage(\n\trange: DateRange | undefined,\n\tmin: number | undefined,\n\tmax: number | undefined,\n\ttranslations: DatePickerStrings\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: DatePickerStrings\n): string | null {\n\tif (required && dates.length === 0) {\n\t\treturn translations.datesRequired;\n\t}\n\n\tif (min && dates.length < min) {\n\t\treturn translations.minimumDates(min);\n\t}\n\n\t// The maximum reads as a warning, so it waits until there is a\n\t// selection to warn about instead of greeting an empty calendar.\n\tif (max && dates.length > 0) {\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: DatePickerStrings,\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\treturn formatDateRange(range, {\n\t\t\tformat: readableFormat,\n\t\t\tlocale,\n\t\t}) ?? placeholder ?? defaultPlaceholder;\n\t}\n\treturn placeholder ?? defaultPlaceholder;\n}\n","/**\n * Internal wiring shared by the three <DatePicker> mode components.\n *\n * Split out of date-picker.tsx unchanged: the props-union type guards the\n * dispatcher narrows with, the trigger presentation mapping, and the default\n * range presets. Nothing here is part of the package's\n * public API — date-pickers/index.ts does not re-export it.\n */\nimport { addDays, startOfWeek, endOfWeek, startOfMonth, endOfMonth } from 'date-fns';\n\nimport { type ButtonTone, type ButtonStyle } from '../buttons';\n\nimport type {\n\tDatePickerProps,\n\tSingleDatePickerProps,\n\tMultipleDatePickerProps,\n\tRangeDatePickerProps,\n\tDatePickerStrings,\n\tPresetDateRange\n} from './datepicker.types';\n\nexport function resolvePickerButtonProps(\n\ttone?: ButtonTone,\n\tbuttonStyle?: ButtonStyle,\n): { tone: ButtonTone; buttonStyle: ButtonStyle } {\n\treturn {\n\t\ttone: tone ?? 'secondary',\n\t\tbuttonStyle: buttonStyle ?? 'outline',\n\t};\n}\n\n// Type guards\nexport function isSingleMode(props: DatePickerProps): props is SingleDatePickerProps {\n\treturn !props.mode || props.mode === 'single';\n}\n\nexport function isMultipleMode(props: DatePickerProps): props is MultipleDatePickerProps {\n\treturn props.mode === 'multiple';\n}\n\nexport function isRangeMode(props: DatePickerProps): props is RangeDatePickerProps {\n\treturn props.mode === 'range';\n}\n\n// Default preset ranges — labels resolved from DatePickerStrings.\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.\nexport function getDefaultPresets(\n\tt: DatePickerStrings,\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","\"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 \"./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-space-xl flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-space-xl\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-space-xs 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-space-sm\",\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-space-xs text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n month_grid: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-space-md\", 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 } from '../buttons';\nimport { Separator } from '../display/separator';\nimport { Stack } from '../structure';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\nimport type {\n\tDatePickerFooterConfig,\n\tDateOutput,\n\tDateRangeOutput,\n\tMultipleDatesOutput\n} from './datepicker.types';\n\nexport interface DatePickerFooterProps {\n\t/** Configuration for this surface. */\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\tconst visibleActions = actions?.filter((action) => action.visible !== false) ?? [];\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 && visibleActions.length === 0) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Separator />\n\t\t\t<div className={cn('date-picker-footer--component p-surface', className)}>\n\t\t\t<Stack gap=\"lg\">\n\t\t\t\t{!!displayText && (\n\t\t\t\t\t<Stack gap=\"xs\" className=\"date-picker-footer--summary\">\n\t\t\t\t\t\t{!!showSummary && !!customText && !!autoSummary && (\n\t\t\t\t\t\t\t<>\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\">{customText}</Text>\n\t\t\t\t\t\t\t</>\n\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</Stack>\n\t\t\t\t)}\n\n\t\t\t\t{visibleActions.length > 0 && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tclassName=\"date-picker-footer--actions\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{visibleActions.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 buttonStyle = action.buttonStyle === 'link'\n\t\t\t\t\t\t\t\t? 'ghost'\n\t\t\t\t\t\t\t\t: action.buttonStyle ?? 'solid';\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\ttone={action.tone ?? 'primary'}\n\t\t\t\t\t\t\t\t\tbuttonStyle={buttonStyle}\n\t\t\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\t\t\tloading={action.loading}\n\t\t\t\t\t\t\t\t\tonClick={() => action.onClick(output)}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'flex-1',\n\t\t\t\t\t\t\t\t\t\taction.buttonStyle === 'link' && 'underline underline-offset-4',\n\t\t\t\t\t\t\t\t\t)}\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</Stack>\n\t\t\t\t)}\n\t\t\t</Stack>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nDatePickerFooter.displayName = 'DatePickerFooter';\n","import { Heading, Text } from '../../typography';\nimport { Stack } from '../structure';\nimport { cn } from '../../../lib/utils';\nimport type { DatePickerHeaderConfig } from './datepicker.types';\n\nexport interface DatePickerHeaderProps {\n\t/** Configuration for this surface. */\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 border-border p-surface',\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<Stack direction=\"horizontal\" gap=\"md\" wrap={false}>\n\t\t\t\t{!!Icon && (\n\t\t\t\t\t<div className=\"shrink-0\">\n\t\t\t\t\t\t<Icon className=\"h-5 w-5 text-primary-accent\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<Stack gap=\"sm\" className={cn('flex-1', align === 'center' && !Icon && 'text-center')}>\n\t\t\t\t\t<Heading\n\t\t\t\t\t\ttag=\"h3\"\n\t\t\t\t\t\talign={align === 'center' ? 'center' : 'left'}\n\t\t\t\t\t\tcontainerClassName=\"space-y-0\"\n\t\t\t\t\t>\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\">{description}</Text>}\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t</div>\n\t);\n}\n\nDatePickerHeader.displayName = 'DatePickerHeader';\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-radius-md`, `bg-transparent`\n * - `h-control` + `px-control` + `py-space-xs`\n * - `text-sm` body text, normal weight, `text-foreground`\n * - `focus-visible:border-ring ring-ring/50 ring-[3px]`\n * - `aria-invalid:` destructive ring + border\n * - flat (no shadow) — library is intentionally flat\n *\n * `!` prefix wins against the global `<Button>`'s pill-shaped default\n * + `data-[size=*]` attribute selectors. Caret-icon sits in\n * library-default left padding equal to `<Input startIcon>` rules.\n */\nexport const PICKER_TRIGGER_CHROME = [\n\t'!h-control !px-control !py-space-xs !rounded-radius !border !border-input !bg-transparent !shadow-none',\n\t'!text-sm !font-normal !text-foreground',\n\t'hover:!bg-transparent',\n\t'focus-visible:!border-input focus-visible:!ring-ring/50 focus-visible:!ring-2',\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","/**\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 { DatePickerStrings } from './datepicker.types';\n\nexport const defaultDatePickerStrings: DatePickerStrings = {\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\tminimumDates: (min: number) => `Select at least ${min} dates`,\n\tmaximumDates: (max: number) => `Select up to ${max} dates`,\n\tdatesRequired: 'At least one date must be selected',\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 { DatePickerStrings };\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 \"./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-radius 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 \"border-border 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-[orientation=horizontal]/toggle-group:data-[spacing=0]:first:rounded-l-radius group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:first:rounded-t-radius group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:last:rounded-r-radius group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:last:rounded-b-radius shrink-0 focus:z-10 focus-visible:z-10 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-[orientation=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","/**\n * TimePicker — the package's one time-of-day control.\n *\n * Merged from the former `base/forms/fields/time-picker.tsx` (a trigger\n * over a now/done confirm dialog) and `base/date-pickers/segmented-time-input.tsx`\n * (an inline hh:mm:ss segment editor). The segment editor is the engine;\n * `mode=\"popover\"` wraps it in an anchored surface behind a field-shaped\n * trigger. `SegmentedTimeInput` no longer exists as a public symbol.\n *\n * Import discipline: this module deep-imports\n * `@/components/base/forms/fields/input` rather than the `fields` barrel.\n * The barrel re-exports `DateTimeInput`, which imports `DatePicker` from\n * this very family — going through the barrel closed a genuine cycle\n * across two separately-bundled entrypoints. `input.tsx` reaches only\n * typography, `lib/`, `../form-sizing` and its own `./hooks`, so it cannot\n * loop back.\n */\nimport { Clock } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Input } from '../text-inputs';\nimport {\n\tformControlSizeClasses,\n\tformFieldTriggerClasses,\n\tresolveFormControlSize,\n} from '../forms/form-sizing';\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover';\nimport { Text } from '../../typography';\nimport { ToggleGroup, ToggleGroupItem } from '../../ui/toggle-group';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { useDensityConfig, type FormControlSize } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport type { DisplayTimeSegments, NormalizedTime, TimePeriod } from './date-picker-helpers';\nimport {\n\talignNormalizedTimeToStep,\n\tdisplaySegmentsToNormalizedTime,\n\tformatNormalizedTimeForDisplay,\n\tHOURS_12_MAX,\n\tHOURS_24_MAX,\n\tMINUTES_MAX,\n\tnormalizedTimeToDisplaySegments,\n\tnormalizedTimeToString,\n\tparseTimeString,\n\tSECONDS_MAX,\n} from './date-picker-helpers';\n\nexport interface TimePickerStrings {\n\t/** Trigger text in `mode=\"popover\"` when there is no value. */\n\tplaceholder: string;\n\t/** Accessible name for the hours segment. */\n\thours: string;\n\t/** Accessible name for the minutes segment. */\n\tminutes: string;\n\t/** Accessible name for the seconds segment. Only rendered when `precision` is `'seconds'`. */\n\tseconds: string;\n\t/** Copy for the ante-meridiem half of the day. Only rendered when `format` is `'12'`. */\n\tam: string;\n\t/** Copy for the post-meridiem half of the day. Only rendered when `format` is `'12'`. */\n\tpm: string;\n}\n\nexport const defaultTimePickerStrings: TimePickerStrings = {\n\tplaceholder: 'Select time',\n\thours: 'Hours',\n\tminutes: 'Minutes',\n\tseconds: 'Seconds',\n\tam: 'AM',\n\tpm: 'PM',\n};\n\nexport interface TimePickerProps {\n\t/**\n\t * Selected time as `'HH:mm'` or `'HH:mm:ss'`, always on a 24-hour clock\n\t * regardless of `format`. Controlled. `null` or omitted leaves every\n\t * segment blank.\n\t */\n\tvalue?: string | null;\n\t/**\n\t * Fired with the next time in the same shape as `value` — `'HH:mm'` when\n\t * `precision` is `'minutes'`, `'HH:mm:ss'` when it is `'seconds'`. Fires\n\t * while typing and again on blur, always with a time aligned to `step`,\n\t * so a listener never sees a value `step` forbids. The segments keep\n\t * showing exactly what was typed until blur snaps them to that value.\n\t */\n\tonValueChange?: (value: string | null) => void;\n\n\t/**\n\t * `'inline'` renders the segments directly; `'popover'` puts them behind a\n\t * field-shaped trigger showing the formatted time. Default: `'inline'`.\n\t */\n\tmode?: 'inline' | 'popover';\n\t/** Clock convention. `'12'` adds the AM/PM segment. Default: `'24'`. */\n\tformat?: '12' | '24';\n\t/** Finest segment offered. Default: `'minutes'`. */\n\tprecision?: 'minutes' | 'seconds';\n\t/**\n\t * Alignment granularity, **in seconds**. Emitted times are snapped to the\n\t * nearest legal step; the display snaps on blur. Default: `60`.\n\t */\n\tstep?: number;\n\n\t/** Control-height preset. Falls back to `UIProvider.density.defaultScale`. */\n\tsize?: FormControlSize;\n\t/** Disables every segment, and the trigger in `mode=\"popover\"`. */\n\tdisabled?: boolean;\n\t/** Applies invalid control styling. Validation copy remains owned by `FormField`. */\n\tinvalid?: boolean;\n\t/** Trigger text in `mode=\"popover\"` when there is no value. Wins over `strings.placeholder`. */\n\tplaceholder?: string;\n\t/** String overrides merged over defaults. */\n\tstrings?: StringsProp<TimePickerStrings>;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/**\n\t * Lands on the popover trigger, or on the hours segment when inline, so\n\t * `<FormField label>` — which clones its child with a generated `id` —\n\t * gets a real `htmlFor` target.\n\t */\n\tid?: string;\n}\n\ntype TimeSegmentKey = 'hours' | 'minutes' | 'seconds';\n\nconst SEGMENT_ORDER: TimeSegmentKey[] = ['hours', 'minutes', 'seconds'];\nconst DEFAULT_24H = '00';\nconst DEFAULT_12H = '12';\n/** Shown for a segment with no value yet. Parsed back to the segment default. */\nconst BLANK = '--';\n\nconst segmentWidthClasses: Record<FormControlSize, string> = {\n\tsm: 'w-12',\n\tmd: 'w-14',\n\tlg: 'w-16',\n};\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\n/** Blank segments for a `null` value — nothing selected, nothing implied. */\nfunction blankSegments(includeSeconds: boolean): DisplayTimeSegments {\n\treturn {\n\t\thours: BLANK,\n\t\tminutes: BLANK,\n\t\tseconds: includeSeconds ? BLANK : undefined,\n\t};\n}\n\n/**\n * Substitutes the segment defaults for anything still blank, so a partially\n * typed time converts to a real `NormalizedTime` instead of parsing `'--'`\n * as NaN.\n */\nfunction fillBlanks(segments: DisplayTimeSegments, format: '12' | '24'): DisplayTimeSegments {\n\tconst fallbackHours = format === '12' ? DEFAULT_12H : DEFAULT_24H;\n\treturn {\n\t\thours: segments.hours === BLANK ? fallbackHours : segments.hours,\n\t\tminutes: segments.minutes === BLANK ? DEFAULT_24H : segments.minutes,\n\t\tseconds: segments.seconds === BLANK ? DEFAULT_24H : segments.seconds,\n\t\tperiod: segments.period,\n\t};\n}\n\nfunction segmentsFromValue(\n\tvalue: string | null | undefined,\n\tformat: '12' | '24',\n\tincludeSeconds: boolean\n): DisplayTimeSegments {\n\tconst parsed = parseTimeString(value ?? undefined);\n\tif (!parsed) {\n\t\treturn blankSegments(includeSeconds);\n\t}\n\treturn segmentsWithDefaults(\n\t\tnormalizedTimeToDisplaySegments(parsed, format, includeSeconds),\n\t\tformat\n\t);\n}\n\n/**\n * TimePicker — segmented time-of-day input, inline or behind a popover trigger.\n */\nexport const TimePicker = React.forwardRef<HTMLElement, TimePickerProps>(function TimePicker({\n\tvalue,\n\tonValueChange,\n\tmode = 'inline',\n\tformat = '24',\n\tprecision = 'minutes',\n\tstep = 60,\n\tsize: sizeProp,\n\tdisabled,\n\tinvalid,\n\tplaceholder,\n\tstrings: stringsProp,\n\tclassName,\n\tid,\n}: TimePickerProps, ref) {\n\tconst t = useStrings(defaultTimePickerStrings, stringsProp);\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveFormControlSize(sizeProp, defaultScale);\n\tconst includeSeconds = precision === 'seconds';\n\n\tconst [open, setOpen] = React.useState(false);\n\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\tsegmentsFromValue(value, format, includeSeconds)\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 the value ourselves.\n\tconst isLocalEditRef = React.useRef(false);\n\t// Two-digit entry in progress: which segment, and what has been typed\n\t// into it so far. Cleared whenever focus moves or the value is replaced.\n\tconst digitEntryRef = React.useRef<{ key: TimeSegmentKey; typed: string } | null>(null);\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 the `value` prop (e.g. external reset or date selection).\n\t// Skip when the change originated from our own emitAligned 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\tdigitEntryRef.current = null;\n\t\tupdateSegments(segmentsFromValue(value, format, includeSeconds));\n\t}, [value, format, includeSeconds, updateSegments]);\n\n\tconst toTimeString = React.useCallback(\n\t\t(time: NormalizedTime) => normalizedTimeToString(time, includeSeconds),\n\t\t[includeSeconds]\n\t);\n\n\t// Emit to the parent while typing so the form value stays current before\n\t// blur — but always step-aligned, so a listener never sees a time `step`\n\t// forbids. The display keeps the raw keystrokes (\"03\" on the way to\n\t// \"30\"); only blur snaps it to what was emitted.\n\tconst emitAligned = React.useCallback(\n\t\t(segs: DisplayTimeSegments) => {\n\t\t\tisLocalEditRef.current = true;\n\t\t\tconst normalized = displaySegmentsToNormalizedTime(\n\t\t\t\tfillBlanks(segs, format),\n\t\t\t\tformat,\n\t\t\t\tincludeSeconds\n\t\t\t);\n\t\t\tonValueChange?.(toTimeString(alignNormalizedTimeToStep(normalized, step, includeSeconds)));\n\t\t},\n\t\t[format, includeSeconds, onValueChange, step, toTimeString]\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(\n\t\t\t\tfillBlanks(segs, format),\n\t\t\t\tformat,\n\t\t\t\tincludeSeconds\n\t\t\t);\n\t\t\tconst aligned = alignNormalizedTimeToStep(normalized, step, includeSeconds);\n\t\t\tonValueChange?.(toTimeString(aligned));\n\t\t\tupdateSegments(\n\t\t\t\tsegmentsWithDefaults(\n\t\t\t\t\tnormalizedTimeToDisplaySegments(aligned, format, includeSeconds),\n\t\t\t\t\tformat\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[format, includeSeconds, onValueChange, step, toTimeString, updateSegments]\n\t);\n\n\tconst focusSegment = React.useCallback((key: TimeSegmentKey | null) => {\n\t\tif (!key) return;\n\t\tconst ref = inputRefs.current[key];\n\t\tif (ref) {\n\t\t\tref.focus();\n\t\t\tref.select();\n\t\t}\n\t}, []);\n\n\t// Conventional two-digit entry: the first keystroke in a segment starts a\n\t// fresh value, the second appends to it, and a third starts over. (It\n\t// used to compute `ones digit of the display * 10 + digit`, so the\n\t// second digit of an entry usually saturated the segment instead of\n\t// completing it.)\n\tconst applyDigitInput = React.useCallback(\n\t\t(segmentKey: TimeSegmentKey, digit: number) => {\n\t\t\tconst current = fillBlanks(segmentsRef.current, format);\n\t\t\tconst inProgress = digitEntryRef.current;\n\t\t\tconst typed =\n\t\t\t\tinProgress && inProgress.key === segmentKey && inProgress.typed.length === 1\n\t\t\t\t\t? `${inProgress.typed}${digit}`\n\t\t\t\t\t: String(digit);\n\t\t\tdigitEntryRef.current = { key: segmentKey, typed };\n\t\t\tconst candidate = Number.parseInt(typed, 10);\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: format === '12' ? nextPeriod : undefined };\n\t\t\tupdateSegments(updated);\n\t\t\temitAligned(updated);\n\t\t},\n\t\t[format, updateSegments, emitAligned]\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\tdigitEntryRef.current = null;\n\t\t\tconst sanitized = sanitizeNumeric(rawValue);\n\t\t\tconst next: DisplayTimeSegments = { ...fillBlanks(segmentsRef.current, format) };\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 = DEFAULT_12H;\n\t\t\t\t\t\tnextPeriod = next.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 = DEFAULT_12H;\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 = next.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: format === '12' ? nextPeriod : undefined };\n\t\t\tupdateSegments(updated);\n\t\t\temitAligned(updated);\n\t\t},\n\t\t[format, updateSegments, emitAligned]\n\t);\n\n\tconst handlePeriodChange = React.useCallback(\n\t\t(period: TimePeriod) => {\n\t\t\tif (format !== '12') return;\n\t\t\tdigitEntryRef.current = null;\n\t\t\tcommitSegments({ ...fillBlanks(segmentsRef.current, format), period });\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\t// and end any two-digit entry that was in progress.\n\tconst handleBlur = React.useCallback(() => {\n\t\tdigitEntryRef.current = null;\n\t\tcommitSegments(segmentsRef.current);\n\t}, [commitSegments]);\n\n\t// Entering a segment starts a new two-digit entry.\n\tconst handleFocus = React.useCallback((event: React.FocusEvent<HTMLInputElement>) => {\n\t\tdigitEntryRef.current = null;\n\t\tevent.target.select();\n\t}, []);\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\tconst segmentLabels: Record<TimeSegmentKey, string> = {\n\t\thours: t.hours,\n\t\tminutes: t.minutes,\n\t\tseconds: t.seconds,\n\t};\n\n\tconst editor = (\n\t\t<div\n\t\t\tref={mode === 'inline' ? (ref as React.Ref<HTMLDivElement>) : undefined}\n\t\t\tclassName={cn(\n\t\t\t\t'flex items-center gap-space-md [&>.input--component]:w-auto [&>.input--component]:shrink-0',\n\t\t\t\tmode === 'inline' && ['time-picker--component', className]\n\t\t\t)}\n\t\t>\n\t\t\t{activeOrder.map((segmentKey, index) => (\n\t\t\t\t<React.Fragment key={segmentKey}>\n\t\t\t\t\t<Input\n\t\t\t\t\t\tref={(node) => {\n\t\t\t\t\t\t\tinputRefs.current[segmentKey] = node;\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tid={segmentKey === 'hours' && mode === 'inline' ? id : undefined}\n\t\t\t\t\t\tvalue={segments[segmentKey] ?? BLANK}\n\t\t\t\t\t\tonChange={(event) => handleNumericChange(segmentKey, event.target.value)}\n\t\t\t\t\t\tonFocus={handleFocus}\n\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\tonKeyDown={(event) => handleKeyDown(event, segmentKey)}\n\t\t\t\t\t\tinputMode=\"numeric\"\n\t\t\t\t\t\tpattern=\"\\d*\"\n\t\t\t\t\t\tmaxLength={2}\n\t\t\t\t\t\tshowCharacterCount={false}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tinvalid={invalid}\n\t\t\t\t\t\taria-label={segmentLabels[segmentKey]}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tclassName={cn('time-picker--segment text-center', segmentWidthClasses[size])}\n\t\t\t\t\t/>\n\t\t\t\t\t{index < activeOrder.length - 1 && (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\">:</Text>\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\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={size === 'sm' ? 'sm' : 'default'}\n\t\t\t\t\tclassName=\"time-picker--period ml-1\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupItem value=\"AM\" aria-label={t.am} className={formControlSizeClasses[size]}>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\" className=\"text-inherit\">\n\t\t\t\t\t\t\t{t.am}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</ToggleGroupItem>\n\t\t\t\t\t<ToggleGroupItem value=\"PM\" aria-label={t.pm} className={formControlSizeClasses[size]}>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\" className=\"text-inherit\">\n\t\t\t\t\t\t\t{t.pm}\n\t\t\t\t\t\t</Text>\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\tif (mode === 'inline') {\n\t\treturn editor;\n\t}\n\n\t// Read the trigger off the local segments rather than `value`, so an\n\t// uncontrolled call site still sees what it typed.\n\tconst isBlank = segments.hours === BLANK && segments.minutes === BLANK;\n\tconst triggerText = isBlank\n\t\t? (placeholder ?? t.placeholder)\n\t\t: formatNormalizedTimeForDisplay(\n\t\t\tdisplaySegmentsToNormalizedTime(fillBlanks(segments, format), format, includeSeconds),\n\t\t\tincludeSeconds,\n\t\t\tformat,\n\t\t\t{ am: t.am, pm: t.pm }\n\t\t);\n\n\treturn (\n\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t<PopoverTrigger\n\t\t\t\tref={ref as React.Ref<HTMLButtonElement>}\n\t\t\t\tid={id}\n\t\t\t\taria-expanded={open}\n\t\t\t\taria-invalid={invalid}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'time-picker--component',\n\t\t\t\t\tformFieldTriggerClasses(size),\n\t\t\t\t\t'justify-start',\n\t\t\t\t\tisBlank && 'text-muted-foreground',\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Clock className=\"size-icon shrink-0\" />\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t{triggerText}\n\t\t\t\t</Text>\n\t\t\t</PopoverTrigger>\n\t\t\t<PopoverContent className=\"time-picker--panel w-auto\" align=\"start\">\n\t\t\t\t{editor}\n\t\t\t</PopoverContent>\n\t\t</Popover>\n\t);\n});\n\nTimePicker.displayName = 'TimePicker';\n","/**\n * Single-date variant of <DatePicker>, moved out of date-picker.tsx\n * unchanged. Internal: date-picker.tsx is the only importer, and\n * date-pickers/index.ts does not re-export it.\n */\nimport { format } 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';\n\nimport { Button } from '../buttons';\nimport { Calendar } from '../../ui/calendar';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '../popover';\nimport { Separator } from '../display/separator';\nimport { Stack } from '../structure';\nimport { Label, Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport {\n\tcreateDateOutput,\n\tapplyTimeToDate,\n\tformatDateButtonText,\n\tcreateDefaultNormalizedTime,\n\tformatNormalizedTimeForDisplay,\n\tnormalizedTimeToString,\n\tparseTimeString,\n\treadableFormatIncludesTime,\n\talignNormalizedTimeToStep,\n\tgetDayPickerYearBounds\n} from './date-picker-helpers';\nimport type { NormalizedTime } from './date-picker-helpers';\nimport { PICKER_TRIGGER_CHROME } from './date-picker.recipes';\nimport { resolvePickerButtonProps } from './date-picker-internals';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type {\n\tSingleDatePickerProps,\n\tDateOutput\n} from './datepicker.types';\nimport { TimePicker } from './time-picker';\n\n// Single Date Picker Component\nexport function SingleDatePicker({\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\tformat: dateFormat = 'yyyy-MM-dd',\n\treadableFormat = 'PPP',\n\tplaceholder,\n\tcloseOnSelect = true,\n\twithTime,\n\tdisabledDates,\n\tcalendarProps,\n\topen,\n\tsetOpen,\n\tt,\n\tdateFnsLocale,\n\tcaptionLayout,\n\tyearBounds,\n\trootRef,\n\t...baseProps\n}: SingleDatePickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\n\tyearBounds: ReturnType<typeof getDayPickerYearBounds>;\n\t/** Forwarded from `DatePicker`, landing on this mode's root element. */\n\trootRef?: React.Ref<HTMLDivElement>;\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\t// `null` until a date exists to take a time from. A control with nothing\n\t// selected must not display a time, and seeding from the wall clock made\n\t// the popover open on \"now\" as though it had been chosen.\n\tconst [time, setTime] = React.useState<NormalizedTime | null>(() => {\n\t\tconst initial = value ?? defaultValue;\n\t\treturn initial ? createDefaultNormalizedTime(initial, includeSeconds, timeStep) : null;\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\tconst effectiveTime = overrideTime ?? time;\n\t\t\tif (selectedDate && withTime?.enabled && effectiveTime) {\n\t\t\t\tconst applied = applyTimeToDate(selectedDate, effectiveTime);\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\n\t\t\t\t\t&& current.hours === normalized.hours\n\t\t\t\t\t&& current.minutes === normalized.minutes\n\t\t\t\t\t&& current.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\tonValueChange?.(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\tonValueChange,\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\tif (!current) {\n\t\t\t\treturn current;\n\t\t\t}\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\tlet seededTime: NormalizedTime | undefined;\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\t// First date of an empty control: the time starts from that\n\t\t\t\t// date's own midnight rather than staying blank.\n\t\t\t\tif (!time) {\n\t\t\t\t\tseededTime = createDefaultNormalizedTime(newDate, includeSeconds, timeStep);\n\t\t\t\t\tsetTime(seededTime);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonValueChange?.(createOutput(newDate, seededTime));\n\t\t\tif (closeOnSelect && newDate) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t},\n\t\t[onValueChange, createOutput, closeOnSelect, setOpen, withTime, time, includeSeconds, timeStep]\n\t);\n\n\t// Handle time change. <TimePicker> speaks 'HH:mm[:ss]' strings; this\n\t// variant keeps a NormalizedTime, so the two convert at the seam.\n\tconst handleTimeChange = React.useCallback(\n\t\t(next: string | null) => {\n\t\t\tconst nextTime = parseTimeString(next ?? undefined);\n\t\t\tif (!nextTime) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetTime(nextTime);\n\t\t\tif (date) {\n\t\t\t\tonValueChange?.(createOutput(date, nextTime));\n\t\t\t}\n\t\t},\n\t\t[date, onValueChange, createOutput]\n\t);\n\n\tconst timeDisplay = React.useMemo(() => {\n\t\tif (!withTime?.enabled || !time) {\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<Stack ref={rootRef} gap=\"md\" className={baseProps.className}>\n\t\t\t{!!(baseProps.label || hasHint) && (\n\t\t<Stack direction=\"horizontal\" align=\"center\" justify=\"between\" gap=\"xs\">\n\t\t\t\t\t{!!baseProps.label && (\n\t\t\t<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\t\t)}\n\t\t\t\t\t{!hasError && !!hasHint && (\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t{hintText}\n\t\t\t\t\t\t</Text>\n\t\t)}\n\t\t\t\t</Stack>\n\t)}\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.buttonTone, baseProps.buttonStyle);\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\ttone={resolved.tone}\n\t\t\t\t\t\t\t\t\tbuttonStyle={resolved.buttonStyle}\n\t\t\t\t\t\t\t\t\taria-invalid={hasError}\n\t\t\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t\t\t!date && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tbaseProps.error && 'border-destructive focus-visible:ring-destructive',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CalendarIcon className=\"mr-control-gap size-icon\" />\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t\t\t\t</Text>\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\tinset=\"flush\"\n\t\t\t\t\tclassName=\"w-auto gap-0\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!baseProps.header && <DatePickerHeader config={baseProps.header} />}\n\n\t\t\t\t\t{/* Calendar */}\n\t\t\t\t\t<Calendar\n\t\t\t\t\t\tmode=\"single\"\n\t\t\t\t\t\tselected={date}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tdefaultMonth={date}\n\t\t\t\t\t\tnumberOfMonths={baseProps.numberOfMonths}\n\t\t\t\t\t\tshowOutsideDays={baseProps.showOutsideDays}\n\t\t\t\t\t\tdisabled={disabledDates ?? baseProps.disabled}\n\t\t\t\t\t\tlocale={dateFnsLocale}\n\t\t\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\t\t\tstartMonth={yearBounds.startMonth}\n\t\t\t\t\t\tendMonth={yearBounds.endMonth}\n\t\t\t\t\t\t{...calendarProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Time Selection */}\n\t\t\t\t\t{!!withTime?.enabled && <>\n\t\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t\t<div className=\"p-surface\">\n\t\t\t\t\t\t\t\t<Label size=\"md\">{t.startTime}</Label>\n\t\t\t\t\t\t\t\t<div className=\"mt-space-md flex items-center gap-space-md\">\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<TimePicker\n\t\t\t\t\t\t\t\t\t\tvalue={time ? normalizedTimeToString(time, includeSeconds) : null}\n\t\t\t\t\t\t\t\t\t\tonValueChange={handleTimeChange}\n\t\t\t\t\t\t\t\t\t\tformat={timeFormat}\n\t\t\t\t\t\t\t\t\t\tprecision={includeSeconds ? 'seconds' : 'minutes'}\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\t// Pinned: the popover's time row is deliberately\n\t\t\t\t\t\t\t\t\t\t// compact and must not grow with a consumer's\n\t\t\t\t\t\t\t\t\t\t// default control size.\n\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\tstrings={{\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: t.seconds,\n\t\t\t\t\t\t\t\t\t\t\tam: t.am,\n\t\t\t\t\t\t\t\t\t\t\tpm: t.pm,\n\t\t\t\t\t\t\t\t\t\t}}\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\t\t\t<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\t\t)}\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</Stack>\n\t);\n}\n","/**\n * Multiple-dates variant of <DatePicker>, moved out of date-picker.tsx\n * unchanged. Internal: date-picker.tsx is the only importer, and\n * date-pickers/index.ts does not re-export it.\n */\nimport type { Locale as DateFnsLocale } from 'date-fns/locale';\nimport { Calendar as CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '../buttons';\nimport { Calendar } from '../../ui/calendar';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '../popover';\nimport { Separator } from '../display/separator';\nimport { Stack } from '../structure';\nimport { Label, Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport {\n\tcreateMultipleDatesOutput,\n\tgetMultipleDatesValidationMessage,\n\tformatMultipleDatesButtonText,\n\tgetDayPickerYearBounds\n} from './date-picker-helpers';\nimport { PICKER_TRIGGER_CHROME } from './date-picker.recipes';\nimport { resolvePickerButtonProps } from './date-picker-internals';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type {\n\tMultipleDatePickerProps,\n\tMultipleDatesOutput\n} from './datepicker.types';\n\n// Multiple Date Picker Component\nexport function MultipleDatePicker({\n\tvalue,\n\tdefaultValue,\n\t\tonValueChange,\n\t\tformat: dateFormat = 'yyyy-MM-dd',\n\t\treadableFormat = 'PPP',\n\t\tplaceholder,\n\t\tmin,\n\tmax,\n\trequired,\n\tcloseOnSelect = false,\n\tdisabledDates,\n\tcalendarProps,\n\topen,\n\tsetOpen,\n\tt,\n\tdateFnsLocale,\n\tcaptionLayout,\n\tyearBounds,\n\trootRef,\n\t...baseProps\n}: MultipleDatePickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\n\tyearBounds: ReturnType<typeof getDayPickerYearBounds>;\n\t/** Forwarded from `DatePicker`, landing on this mode's root element. */\n\trootRef?: React.Ref<HTMLDivElement>;\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. `max` is enforced by the calendar, which is handed\n\t// the same `max` prop — the component is never given more dates than it\n\t// allows, so a guard here would be dead code.\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\tsetDates(selectedDates);\n\t\t\tonValueChange?.(createOutput(selectedDates));\n\n\t\t\tif (closeOnSelect && selectedDates.length > 0) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t},\n\t\t[onValueChange, createOutput, closeOnSelect, setOpen]\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<Stack ref={rootRef} gap=\"md\" className={baseProps.className}>\n\t\t\t{!!(baseProps.label || hasHint) && (\n\t\t<Stack direction=\"horizontal\" align=\"center\" justify=\"between\" gap=\"xs\">\n\t\t\t\t\t{!!baseProps.label && (\n\t\t\t<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\t\t)}\n\t\t\t\t\t{!hasError && !!hasHint && (\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t{hintText}\n\t\t\t\t\t\t</Text>\n\t\t)}\n\t\t\t\t</Stack>\n\t)}\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.buttonTone, baseProps.buttonStyle);\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\ttone={resolved.tone}\n\t\t\t\t\t\t\t\t\tbuttonStyle={resolved.buttonStyle}\n\t\t\t\t\t\t\t\t\taria-invalid={hasError}\n\t\t\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t\t\tdates.length === 0 && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tbaseProps.error && 'border-destructive focus-visible:ring-destructive',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CalendarIcon className=\"mr-control-gap size-icon\" />\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t\t\t\t</Text>\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\tinset=\"flush\"\n\t\t\t\t\tclassName=\"w-auto gap-0\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!baseProps.header && <DatePickerHeader config={baseProps.header} />}\n\n\t\t\t\t\t{/* Calendar */}\n\t\t\t\t\t<Calendar\n\t\t\t\t\t\tmode=\"multiple\"\n\t\t\t\t\t\tselected={dates}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tdefaultMonth={dates[0]}\n\t\t\t\t\t\tnumberOfMonths={baseProps.numberOfMonths}\n\t\t\t\t\t\tshowOutsideDays={baseProps.showOutsideDays}\n\t\t\t\t\t\tdisabled={disabledDates ?? baseProps.disabled}\n\t\t\t\t\t\tlocale={dateFnsLocale}\n\t\t\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\t\t\tstartMonth={yearBounds.startMonth}\n\t\t\t\t\t\tendMonth={yearBounds.endMonth}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tmax={max}\n\t\t\t\t\t\t{...calendarProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Validation Message */}\n\t\t\t\t\t{!!validationMessage && <>\n\t\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t\t<div className=\"p-surface\">\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\t\t\t<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\t\t)}\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</Stack>\n\t);\n}\n","/**\n * Date-range variant of <DatePicker>, moved out of date-picker.tsx\n * unchanged. Internal: date-picker.tsx is the only importer, and\n * date-pickers/index.ts does not re-export it.\n */\nimport { format } 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 } from '../buttons';\nimport { Calendar } from '../../ui/calendar';\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { useIsMobile } from '../../../hooks/use-mobile';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '../popover';\nimport { Separator } from '../display/separator';\nimport { Grid, Stack } from '../structure';\nimport { Label, Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport {\n\tcreateDateRangeOutput,\n\tapplyTimeToDate,\n\tvalidateDateRange,\n\tgetRangeValidationMessage,\n\tformatRangeButtonText,\n\tcreateDefaultNormalizedTime,\n\tformatNormalizedTimeForDisplay,\n\tnormalizedTimeToString,\n\tparseTimeString,\n\treadableFormatIncludesTime,\n\talignNormalizedTimeToStep,\n\tgetDayPickerYearBounds\n} from './date-picker-helpers';\nimport type { NormalizedTime } from './date-picker-helpers';\nimport { PICKER_TRIGGER_CHROME } from './date-picker.recipes';\nimport {\n\tresolvePickerButtonProps,\n\tgetDefaultPresets\n} from './date-picker-internals';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type {\n\tRangeDatePickerProps,\n\tDateRangeOutput,\n\tPresetDateRange\n} from './datepicker.types';\nimport { TimePicker } from './time-picker';\n\n// Range Date Picker Component\nexport function RangeDatePicker({\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\tformat: dateFormat = 'yyyy-MM-dd',\n\treadableFormat = 'PPP',\n\tplaceholder,\n\twithConfirm = false,\n\tmin,\n\tmax,\n\tcloseOnSelect = true,\n\twithTime,\n\tpresets: presetsProp,\n\tdisabledDates,\n\tcalendarProps,\n\topen,\n\tsetOpen,\n\tt,\n\tdateFnsLocale,\n\tcaptionLayout,\n\tyearBounds,\n\trootRef,\n\t...baseProps\n}: RangeDatePickerProps & {\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\tt: typeof defaultDatePickerStrings;\n\tdateFnsLocale: DateFnsLocale;\n\tcaptionLayout: 'label' | 'dropdown';\n\tyearBounds: ReturnType<typeof getDayPickerYearBounds>;\n\t/** Forwarded from `DatePicker`, landing on this mode's root element. */\n\trootRef?: React.Ref<HTMLDivElement>;\n}) {\n\tconst isMobile = useIsMobile();\n\tconst resolvedNumberOfMonths = baseProps.numberOfMonths ?? (isMobile ? 1 : 2);\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\t// `null` until each end has a date to take a time from — an end with\n\t// nothing selected must not show the wall clock as though it had been\n\t// chosen. See the matching note in date-picker-single.tsx.\n\tconst [startTime, setStartTime] = React.useState<NormalizedTime | null>(() =>\n\t\tinitialRange?.from\n\t\t\t? createDefaultNormalizedTime(initialRange.from, includeSeconds, timeStep)\n\t\t\t: null\n\t);\n\tconst [endTime, setEndTime] = React.useState<NormalizedTime | null>(() =>\n\t\tinitialRange?.to\n\t\t\t? createDefaultNormalizedTime(initialRange.to, includeSeconds, timeStep)\n\t\t\t: null\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(null);\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(null);\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\tconst alignOrKeep = (current: NormalizedTime | null): NormalizedTime | null => {\n\t\t\tif (!current) {\n\t\t\t\treturn current;\n\t\t\t}\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\tsetStartTime(alignOrKeep);\n\t\tsetEndTime(alignOrKeep);\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\t// An end with no time of its own keeps the time the date\n\t\t\t\t// already carries, rather than borrowing the wall clock.\n\t\t\t\tfinalRange = {\n\t\t\t\t\t...currentRange,\n\t\t\t\t\tfrom: currentRange.from && startTime\n\t\t\t\t\t\t? applyTimeToDate(currentRange.from, startTime)\n\t\t\t\t\t\t: currentRange.from,\n\t\t\t\t\tto: currentRange.to && endTime\n\t\t\t\t\t\t? applyTimeToDate(currentRange.to, endTime)\n\t\t\t\t\t\t: currentRange.to,\n\t\t\t\t};\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\t// <TimePicker> speaks 'HH:mm[:ss]' strings; this variant keeps a\n\t// NormalizedTime for each end, so the two convert at the seam.\n\tconst handleStartTimeChange = React.useCallback((next: string | null) => {\n\t\tconst parsed = parseTimeString(next ?? undefined);\n\t\tif (parsed) {\n\t\t\tsetStartTime(parsed);\n\t\t}\n\t}, []);\n\n\tconst handleEndTimeChange = React.useCallback((next: string | null) => {\n\t\tconst parsed = parseTimeString(next ?? undefined);\n\t\tif (parsed) {\n\t\t\tsetEndTime(parsed);\n\t\t}\n\t}, []);\n\n\t/**\n\t * react-day-picker completes a range on the *first* click, handing back\n\t * `{ from, to }` with both ends on the day just clicked. Taken at face\n\t * value that is a finished one-day range, which used to close the\n\t * popover before an end date could be chosen.\n\t *\n\t * So the two-click selection is driven from the clicked day instead:\n\t * the first click opens an incomplete range, the second closes it, and\n\t * a click on a finished range starts a new one. `triggerDate` is\n\t * undefined when a preset supplies a whole range, which is taken as-is.\n\t */\n\tconst resolveNextRange = React.useCallback(\n\t\t(\n\t\t\tdayPickerRange: DateRange | undefined,\n\t\t\ttriggerDate: Date | undefined,\n\t\t\tcurrent: DateRange | undefined\n\t\t): DateRange | undefined => {\n\t\t\tif (!triggerDate) {\n\t\t\t\treturn dayPickerRange;\n\t\t\t}\n\t\t\tif (!current?.from || current.to) {\n\t\t\t\treturn { from: triggerDate, to: undefined };\n\t\t\t}\n\t\t\treturn triggerDate < current.from\n\t\t\t\t? { from: triggerDate, to: current.from }\n\t\t\t\t: { from: current.from, to: triggerDate };\n\t\t},\n\t\t[]\n\t);\n\n\t// Handle selection\n\tconst handleSelect = React.useCallback(\n\t\t(dayPickerRange: DateRange | undefined, triggerDate?: Date) => {\n\t\t\tconst nextRange = resolveNextRange(dayPickerRange, triggerDate, range);\n\n\t\t\tsetRange(nextRange);\n\n\t\t\tif (withConfirm || withTime?.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// A range that breaks `min`/`max` is still reported and still\n\t\t\t// shown — with its validation message — rather than silently\n\t\t\t// discarded. Only a valid, complete range closes the popover.\n\t\t\tonValueChange?.(createOutput(nextRange));\n\n\t\t\tconst isComplete = Boolean(nextRange?.from && nextRange?.to);\n\t\t\tconst isValid = validateDateRange(nextRange, min, max).isValid;\n\t\t\tif (closeOnSelect && isComplete && isValid) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t},\n\t\t[range, resolveNextRange, withConfirm, withTime, onValueChange, 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\tonValueChange?.(createOutput(range));\n\t\tsetOpen(false);\n\t}, [range, onValueChange, createOutput, setOpen]);\n\n\tconst startTimeDisplay = React.useMemo(() => {\n\t\tif (!withTime?.enabled || !startTime) {\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 || !endTime) {\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<Stack ref={rootRef} gap=\"md\" className={baseProps.className}>\n\t\t\t{!!(baseProps.label || hasHint) && (\n\t\t<Stack direction=\"horizontal\" align=\"center\" justify=\"between\" gap=\"xs\">\n\t\t\t\t\t{!!baseProps.label && (\n\t\t\t<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\t\t)}\n\t\t\t\t\t{!hasError && !!hasHint && (\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t{hintText}\n\t\t\t\t\t\t</Text>\n\t\t)}\n\t\t\t\t</Stack>\n\t)}\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.buttonTone, baseProps.buttonStyle);\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\ttone={resolved.tone}\n\t\t\t\t\t\t\t\t\tbuttonStyle={resolved.buttonStyle}\n\t\t\t\t\t\t\t\t\taria-invalid={hasError}\n\t\t\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'w-full justify-start text-left font-normal',\n\t\t\t\t\t\t\t\t\t\tPICKER_TRIGGER_CHROME,\n\t\t\t\t\t\t\t\t\t\t!range && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\tbaseProps.error && 'border-destructive focus-visible:ring-destructive',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tdisabled={baseProps.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CalendarIcon className=\"mr-control-gap size-icon shrink-0\" />\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t\t\t\t</Text>\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\tinset=\"flush\"\n\t\t\t\t\tclassName=\"w-auto gap-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 flex-col sm:flex-row\">\n\t\t\t\t\t\t{/* Preset grid on narrow surfaces; sidebar once horizontal space is available. */}\n\t\t\t\t\t\t{presets.length > 0 && (\n\t\t\t\t\t\t\t<div className=\"grid grid-cols-2 gap-space-2xs border-b border-border p-surface-xs sm:flex sm:min-w-30 sm:flex-col sm:border-r sm:border-b-0\">\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\ttone=\"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={resolvedNumberOfMonths}\n\t\t\t\t\t\t\t\tshowOutsideDays={baseProps.showOutsideDays}\n\t\t\t\t\t\t\t\tdisabled={disabledDates ?? baseProps.disabled}\n\t\t\t\t\t\t\t\tlocale={dateFnsLocale}\n\t\t\t\t\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\t\t\t\t\tstartMonth={yearBounds.startMonth}\n\t\t\t\t\t\t\t\tendMonth={yearBounds.endMonth}\n\t\t\t\t\t\t\t\t{...calendarProps}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'[--cell-size:1.875rem] sm:[--cell-size:--spacing(8)]',\n\t\t\t\t\t\t\t\t\tcalendarProps?.className,\n\t\t\t\t\t\t\t\t)}\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=\"p-surface\">\n\t\t\t\t\t\t\t\t\t<Stack gap=\"lg\">\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\t\t\t\t\t <Stack direction=\"horizontal\" align=\"center\" justify=\"between\" gap=\"xl\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" align=\"center\" gap=\"md\">\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</Stack>\n\t\t\t\t\t\t\t\t\t\t\t\t{!!range.to && (\n\t\t\t\t\t\t <Stack direction=\"horizontal\" align=\"center\" gap=\"md\">\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</Stack>\n\t\t\t\t\t )}\n\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t )}\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\t\t\t\t\t\t\t\t\t\t\t<Grid columns={{ base: 1, sm: 2 }} gap=\"lg\">\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=\"sm\">{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-space-md\">\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<TimePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={startTime ? normalizedTimeToString(startTime, includeSeconds) : null}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={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\tprecision={includeSeconds ? 'seconds' : 'minutes'}\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\t// Pinned: the time row is deliberately compact and\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// must not grow with a consumer's control size.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrings={{\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: t.seconds,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tam: t.am,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpm: 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/>\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\t\t\t\t\t\t <div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Label size=\"sm\">{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-space-md\">\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<TimePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={endTime ? normalizedTimeToString(endTime, includeSeconds) : null}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={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\tprecision={includeSeconds ? 'seconds' : 'minutes'}\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\t// Pinned: the time row is deliberately compact and\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// must not grow with a consumer's control size.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrings={{\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: t.seconds,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tam: t.am,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpm: t.pm,\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/>\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\t\t\t\t\t )}\n\t\t\t\t\t\t\t\t\t\t\t</Grid>\n\t\t\t\t )}\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\t\t\t\t\t <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\t\t\t\t )}\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\t\t\t\t\t <div className=\"-mx-space-lg -mb-space-lg\">\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\t\t\t\t )}\n\t\t\t\t\t\t\t\t\t</Stack>\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</Stack>\n\t);\n}\n","import * as React from 'react';\n\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport { getDayPickerYearBounds } from './date-picker-helpers';\nimport {\n\tisSingleMode,\n\tisMultipleMode,\n\tisRangeMode\n} from './date-picker-internals';\n// Ordered single → multiple → range, matching the dispatcher's branches.\nimport { SingleDatePicker } from './date-picker-single';\nimport { MultipleDatePicker } from './date-picker-multiple';\nimport { RangeDatePicker } from './date-picker-range';\nimport { useStrings } from '../../../lib/strings';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport { enUS } from 'date-fns/locale';\nimport type { DatePickerProps } from './datepicker.types';\n\nexport const DatePicker = React.forwardRef<HTMLDivElement, DatePickerProps>(function DatePicker(props, ref) {\n\tconst [open, setOpen] = React.useState(false);\n\tconst dates = useDatesConfig();\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 ?? dates.locale ?? enUS;\n\n\tconst t = useStrings(defaultDatePickerStrings, props.strings);\n\n\t// Resolve year selection config\n\tconst captionLayout = React.useMemo(() => {\n\t\tif (props.enableYearDropdown || props.yearSelection?.enabled) {\n\t\t\treturn 'dropdown' as const;\n\t\t}\n\t\treturn 'label' as const;\n\t}, [props.enableYearDropdown, props.yearSelection]);\n\tconst yearBounds = React.useMemo(\n\t\t() => getDayPickerYearBounds(props.yearSelection),\n\t\t[props.yearSelection]\n\t);\n\n\t// Rule 24: the family's BEM hook is merged with the consumer's own\n\t// `className` and applied *after* the props spread, so a call-site\n\t// class composes with the hook instead of replacing it — and every\n\t// mode carries it, not just single.\n\tconst componentClassName = cn('date-picker--component', props.className);\n\n\t// Render based on mode\n\tif (isSingleMode(props)) {\n\t\treturn (\n\t\t\t<SingleDatePicker\n\t\t\t\t{...props}\n\t\t\t\trootRef={ref}\n\t\t\t\tclassName={componentClassName}\n\t\t\t\topen={open}\n\t\t\t\tsetOpen={setOpen}\n\t\t\t\tt={t}\n\t\t\t\tdateFnsLocale={dateFnsLocale}\n\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\tyearBounds={yearBounds}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (isMultipleMode(props)) {\n\t\treturn (\n\t\t\t<MultipleDatePicker\n\t\t\t\t{...props}\n\t\t\t\trootRef={ref}\n\t\t\t\tclassName={componentClassName}\n\t\t\t\topen={open}\n\t\t\t\tsetOpen={setOpen}\n\t\t\t\tt={t}\n\t\t\t\tdateFnsLocale={dateFnsLocale}\n\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\tyearBounds={yearBounds}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (isRangeMode(props)) {\n\t\treturn (\n\t\t\t<RangeDatePicker\n\t\t\t\t{...props}\n\t\t\t\trootRef={ref}\n\t\t\t\tclassName={componentClassName}\n\t\t\t\topen={open}\n\t\t\t\tsetOpen={setOpen}\n\t\t\t\tt={t}\n\t\t\t\tdateFnsLocale={dateFnsLocale}\n\t\t\t\tcaptionLayout={captionLayout}\n\t\t\t\tyearBounds={yearBounds}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n});\n\nDatePicker.displayName = 'DatePicker';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { o as e } from "./ui-provider-CftIB6TY.js";
|
|
3
|
+
import { useStrings as t } from "./lib/strings.js";
|
|
4
|
+
import { t as n } from "./utils-C2EKeIw3.js";
|
|
5
|
+
import { n as r } from "./buttons-Co6GavvM.js";
|
|
6
|
+
import { a as i, n as a } from "./typography-Cv8MT-82.js";
|
|
7
|
+
import { t as o } from "./structure-MvKVq-oL.js";
|
|
8
|
+
import { a as ee, i as s, o as c, s as l } from "./date-picker-CA6ogMQB.js";
|
|
9
|
+
import { c as te, o as ne, t as re } from "./popover-CoLDEg19.js";
|
|
10
|
+
import { c as u, i as d, n as f, s as p, t as m } from "./select-B2mb-qN2.js";
|
|
11
|
+
import * as h from "react";
|
|
12
|
+
import { jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
13
|
+
import { Calendar as v } from "lucide-react";
|
|
14
|
+
import { format as y } from "date-fns";
|
|
15
|
+
import { enUS as b } from "date-fns/locale";
|
|
16
|
+
//#region src/components/base/date-pickers/month-year-picker.tsx
|
|
17
|
+
var x = 10, S = h.forwardRef(function({ value: S, defaultValue: ie, onValueChange: C, format: w = "yyyy-MM", readableFormat: T = "MMMM yyyy", placeholder: E, label: D, hint: O, error: k, disabled: A = !1, className: j, closeOnSelect: M = !0, strings: ae, locale: oe, header: N, footer: P, fromYear: F, toYear: I, iconOnly: L = !1 }, se) {
|
|
18
|
+
let R = (/* @__PURE__ */ new Date()).getFullYear(), [z, B] = h.useState(!1), [V, H] = h.useState(S ?? ie), U = e(), W = oe ?? U.locale ?? b, G = t(s, ae), K = h.useId(), q = `${K}-description`, ce = k ? q : void 0, J = `${K}-month`, Y = `${K}-year`, le = h.useMemo(() => {
|
|
19
|
+
let e = F ?? R - x, t = I ?? R + x;
|
|
20
|
+
return Array.from({ length: Math.max(t - e + 1, 1) }, (t, n) => e + n);
|
|
21
|
+
}, [
|
|
22
|
+
F,
|
|
23
|
+
I,
|
|
24
|
+
R
|
|
25
|
+
]), X = h.useMemo(() => Array.from({ length: 12 }, (e, t) => y(new Date(2e3, t, 1), "MMMM", { locale: W })), [W]);
|
|
26
|
+
h.useEffect(() => {
|
|
27
|
+
S !== void 0 && H(S);
|
|
28
|
+
}, [S]);
|
|
29
|
+
let Z = h.useCallback((e, t) => {
|
|
30
|
+
let n = new Date(t, e, 1);
|
|
31
|
+
return {
|
|
32
|
+
month: e,
|
|
33
|
+
year: t,
|
|
34
|
+
formatted: y(n, w, { locale: W }),
|
|
35
|
+
readable: y(n, T, { locale: W }),
|
|
36
|
+
date: n
|
|
37
|
+
};
|
|
38
|
+
}, [
|
|
39
|
+
w,
|
|
40
|
+
T,
|
|
41
|
+
W
|
|
42
|
+
]), ue = h.useCallback((e) => {
|
|
43
|
+
let t = parseInt(String(e), 10), n = V?.year ?? R;
|
|
44
|
+
H({
|
|
45
|
+
month: t,
|
|
46
|
+
year: n
|
|
47
|
+
});
|
|
48
|
+
}, [V?.year, R]), Q = h.useCallback((e) => {
|
|
49
|
+
let t = parseInt(String(e), 10), n = V?.month ?? 0;
|
|
50
|
+
H({
|
|
51
|
+
month: n,
|
|
52
|
+
year: t
|
|
53
|
+
});
|
|
54
|
+
}, [V?.month]), de = h.useCallback(() => {
|
|
55
|
+
V && (C?.(Z(V.month, V.year)), M && B(!1));
|
|
56
|
+
}, [
|
|
57
|
+
V,
|
|
58
|
+
C,
|
|
59
|
+
Z,
|
|
60
|
+
M
|
|
61
|
+
]), $ = h.useMemo(() => {
|
|
62
|
+
if (V) {
|
|
63
|
+
let e = new Date(V.year, V.month, 1);
|
|
64
|
+
return y(e, T, { locale: W });
|
|
65
|
+
}
|
|
66
|
+
return E ?? G.selectMonthYear;
|
|
67
|
+
}, [
|
|
68
|
+
V,
|
|
69
|
+
T,
|
|
70
|
+
W,
|
|
71
|
+
E,
|
|
72
|
+
G.selectMonthYear
|
|
73
|
+
]);
|
|
74
|
+
return /* @__PURE__ */ _(o, {
|
|
75
|
+
ref: se,
|
|
76
|
+
gap: "md",
|
|
77
|
+
className: n("month-year-picker--component", j),
|
|
78
|
+
children: [
|
|
79
|
+
!!(D || O && !k) && /* @__PURE__ */ _(o, {
|
|
80
|
+
direction: "horizontal",
|
|
81
|
+
align: "center",
|
|
82
|
+
justify: "between",
|
|
83
|
+
gap: "xs",
|
|
84
|
+
children: [!!D && /* @__PURE__ */ g(a, {
|
|
85
|
+
htmlFor: K,
|
|
86
|
+
className: n("leading-6", k && "text-destructive"),
|
|
87
|
+
children: D
|
|
88
|
+
}), !k && !!O && /* @__PURE__ */ g(i, {
|
|
89
|
+
tag: "span",
|
|
90
|
+
size: "xs",
|
|
91
|
+
type: "secondary",
|
|
92
|
+
children: O
|
|
93
|
+
})]
|
|
94
|
+
}),
|
|
95
|
+
/* @__PURE__ */ _(ne, {
|
|
96
|
+
open: z,
|
|
97
|
+
onOpenChange: B,
|
|
98
|
+
children: [/* @__PURE__ */ g(te, { render: (e) => /* @__PURE__ */ _(r, {
|
|
99
|
+
...e,
|
|
100
|
+
id: K,
|
|
101
|
+
tone: "secondary",
|
|
102
|
+
buttonStyle: "outline",
|
|
103
|
+
"aria-invalid": !!k,
|
|
104
|
+
"aria-describedby": ce,
|
|
105
|
+
"aria-label": L ? G.selectMonthYear : void 0,
|
|
106
|
+
className: n("w-full justify-start text-left font-normal", ee, L && "!w-control shrink-0 justify-center !px-0", !V && "text-muted-foreground", e.className),
|
|
107
|
+
disabled: A,
|
|
108
|
+
children: [/* @__PURE__ */ g(v, { className: n("size-icon", !L && "mr-control-gap") }), !L && /* @__PURE__ */ g(i, {
|
|
109
|
+
tag: "span",
|
|
110
|
+
size: "inherit",
|
|
111
|
+
lineHeight: "tight",
|
|
112
|
+
className: "min-w-0 truncate text-inherit",
|
|
113
|
+
children: $
|
|
114
|
+
})]
|
|
115
|
+
}) }), /* @__PURE__ */ _(re, {
|
|
116
|
+
inset: "flush",
|
|
117
|
+
className: "w-80 gap-0",
|
|
118
|
+
align: "start",
|
|
119
|
+
children: [
|
|
120
|
+
!!N && /* @__PURE__ */ g(c, { config: N }),
|
|
121
|
+
/* @__PURE__ */ g("div", {
|
|
122
|
+
className: "p-surface",
|
|
123
|
+
children: /* @__PURE__ */ _(o, {
|
|
124
|
+
gap: "xl",
|
|
125
|
+
children: [/* @__PURE__ */ _(o, {
|
|
126
|
+
gap: "md",
|
|
127
|
+
children: [/* @__PURE__ */ g(a, {
|
|
128
|
+
htmlFor: J,
|
|
129
|
+
children: G.month
|
|
130
|
+
}), /* @__PURE__ */ _(m, {
|
|
131
|
+
items: X.map((e, t) => ({
|
|
132
|
+
label: e,
|
|
133
|
+
value: t.toString()
|
|
134
|
+
})),
|
|
135
|
+
value: V?.month?.toString(),
|
|
136
|
+
onValueChange: ue,
|
|
137
|
+
disabled: A,
|
|
138
|
+
children: [/* @__PURE__ */ g(p, {
|
|
139
|
+
id: J,
|
|
140
|
+
className: "w-full",
|
|
141
|
+
children: /* @__PURE__ */ g(u, { placeholder: /* @__PURE__ */ g(i, {
|
|
142
|
+
tag: "span",
|
|
143
|
+
size: "inherit",
|
|
144
|
+
type: "secondary",
|
|
145
|
+
className: "text-inherit",
|
|
146
|
+
children: G.month
|
|
147
|
+
}) })
|
|
148
|
+
}), /* @__PURE__ */ g(f, { children: X.map((e, t) => /* @__PURE__ */ g(d, {
|
|
149
|
+
value: t.toString(),
|
|
150
|
+
children: /* @__PURE__ */ g(i, {
|
|
151
|
+
tag: "span",
|
|
152
|
+
size: "inherit",
|
|
153
|
+
lineHeight: "tight",
|
|
154
|
+
className: "text-inherit",
|
|
155
|
+
children: e
|
|
156
|
+
})
|
|
157
|
+
}, e)) })]
|
|
158
|
+
})]
|
|
159
|
+
}), /* @__PURE__ */ _(o, {
|
|
160
|
+
gap: "md",
|
|
161
|
+
children: [/* @__PURE__ */ g(a, {
|
|
162
|
+
htmlFor: Y,
|
|
163
|
+
children: G.year
|
|
164
|
+
}), /* @__PURE__ */ _(m, {
|
|
165
|
+
value: V?.year?.toString(),
|
|
166
|
+
onValueChange: Q,
|
|
167
|
+
disabled: A,
|
|
168
|
+
children: [/* @__PURE__ */ g(p, {
|
|
169
|
+
id: Y,
|
|
170
|
+
className: "w-full",
|
|
171
|
+
children: /* @__PURE__ */ g(u, { placeholder: /* @__PURE__ */ g(i, {
|
|
172
|
+
tag: "span",
|
|
173
|
+
size: "inherit",
|
|
174
|
+
type: "secondary",
|
|
175
|
+
className: "text-inherit",
|
|
176
|
+
children: G.year
|
|
177
|
+
}) })
|
|
178
|
+
}), /* @__PURE__ */ g(f, { children: le.map((e) => /* @__PURE__ */ g(d, {
|
|
179
|
+
value: e.toString(),
|
|
180
|
+
children: /* @__PURE__ */ g(i, {
|
|
181
|
+
tag: "span",
|
|
182
|
+
size: "inherit",
|
|
183
|
+
numeric: !0,
|
|
184
|
+
lineHeight: "tight",
|
|
185
|
+
className: "text-inherit",
|
|
186
|
+
children: e
|
|
187
|
+
})
|
|
188
|
+
}, e)) })]
|
|
189
|
+
})]
|
|
190
|
+
})]
|
|
191
|
+
})
|
|
192
|
+
}),
|
|
193
|
+
/* @__PURE__ */ g("div", {
|
|
194
|
+
className: "px-surface pb-surface",
|
|
195
|
+
children: /* @__PURE__ */ g(r, {
|
|
196
|
+
className: "w-full",
|
|
197
|
+
onClick: de,
|
|
198
|
+
disabled: A || !V,
|
|
199
|
+
children: G.confirm
|
|
200
|
+
})
|
|
201
|
+
}),
|
|
202
|
+
!!P && !!V && /* @__PURE__ */ g(l, {
|
|
203
|
+
config: P,
|
|
204
|
+
output: Z(V.month, V.year),
|
|
205
|
+
hasSelection: !!V,
|
|
206
|
+
autoSummary: $
|
|
207
|
+
})
|
|
208
|
+
]
|
|
209
|
+
})]
|
|
210
|
+
}),
|
|
211
|
+
!!k && /* @__PURE__ */ g(i, {
|
|
212
|
+
id: q,
|
|
213
|
+
size: "xs",
|
|
214
|
+
type: "error",
|
|
215
|
+
content: k
|
|
216
|
+
})
|
|
217
|
+
]
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
S.displayName = "MonthYearPicker";
|
|
221
|
+
//#endregion
|
|
222
|
+
export { S as t };
|
|
223
|
+
|
|
224
|
+
//# sourceMappingURL=date-pickers-BPIKLdsD.js.map
|