@proyecto-viviana/solidaria 0.4.0 → 0.4.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/dist/_chunk/DragManager.js +627 -0
- package/dist/_chunk/DragManager.js.map +1 -0
- package/dist/_chunk/DragManager.jsx +627 -0
- package/dist/_chunk/DragManager.jsx.map +1 -0
- package/dist/_chunk/FocusScope.js +400 -0
- package/dist/_chunk/FocusScope.js.map +1 -0
- package/dist/_chunk/FocusScope.jsx +375 -0
- package/dist/_chunk/FocusScope.jsx.map +1 -0
- package/dist/_chunk/actiongroup.js +13 -79
- package/dist/_chunk/actiongroup.js.map +1 -1
- package/dist/_chunk/actiongroup.jsx +13 -79
- package/dist/_chunk/actiongroup.jsx.map +1 -1
- package/dist/_chunk/{live-announcer.js → announce.js} +1 -1
- package/dist/_chunk/announce.js.map +1 -0
- package/dist/_chunk/{live-announcer.jsx → announce.jsx} +1 -1
- package/dist/_chunk/announce.jsx.map +1 -0
- package/dist/_chunk/autocomplete.js +56 -8
- package/dist/_chunk/autocomplete.js.map +1 -1
- package/dist/_chunk/autocomplete.jsx +56 -8
- package/dist/_chunk/autocomplete.jsx.map +1 -1
- package/dist/_chunk/breadcrumbs.js +6 -4
- package/dist/_chunk/breadcrumbs.js.map +1 -1
- package/dist/_chunk/breadcrumbs.jsx +6 -4
- package/dist/_chunk/breadcrumbs.jsx.map +1 -1
- package/dist/_chunk/button.js +8 -9
- package/dist/_chunk/button.js.map +1 -1
- package/dist/_chunk/button.jsx +8 -9
- package/dist/_chunk/button.jsx.map +1 -1
- package/dist/_chunk/calendar.js +27 -26
- package/dist/_chunk/calendar.js.map +1 -1
- package/dist/_chunk/calendar.jsx +27 -26
- package/dist/_chunk/calendar.jsx.map +1 -1
- package/dist/_chunk/checkbox.js +5 -4
- package/dist/_chunk/checkbox.js.map +1 -1
- package/dist/_chunk/checkbox.jsx +5 -4
- package/dist/_chunk/checkbox.jsx.map +1 -1
- package/dist/_chunk/color.js +302 -18
- package/dist/_chunk/color.js.map +1 -1
- package/dist/_chunk/color.jsx +302 -18
- package/dist/_chunk/color.jsx.map +1 -1
- package/dist/_chunk/combobox.js +638 -12
- package/dist/_chunk/combobox.js.map +1 -1
- package/dist/_chunk/combobox.jsx +638 -12
- package/dist/_chunk/combobox.jsx.map +1 -1
- package/dist/_chunk/constants.js +19 -0
- package/dist/_chunk/constants.js.map +1 -0
- package/dist/_chunk/constants.jsx +19 -0
- package/dist/_chunk/constants.jsx.map +1 -0
- package/dist/_chunk/createCollator.js +3 -171
- package/dist/_chunk/createCollator.js.map +1 -1
- package/dist/_chunk/createCollator.jsx +3 -165
- package/dist/_chunk/createCollator.jsx.map +1 -1
- package/dist/_chunk/createField.js +2 -1
- package/dist/_chunk/createField.js.map +1 -1
- package/dist/_chunk/createField.jsx +2 -1
- package/dist/_chunk/createField.jsx.map +1 -1
- package/dist/_chunk/createFocus.js +12 -8
- package/dist/_chunk/createFocus.js.map +1 -1
- package/dist/_chunk/createFocus.jsx +12 -8
- package/dist/_chunk/createFocus.jsx.map +1 -1
- package/dist/_chunk/createFocusWithin.js +12 -13
- package/dist/_chunk/createFocusWithin.js.map +1 -1
- package/dist/_chunk/createFocusWithin.jsx +12 -13
- package/dist/_chunk/createFocusWithin.jsx.map +1 -1
- package/dist/_chunk/createFocusable.js +3 -3
- package/dist/_chunk/createFocusable.js.map +1 -1
- package/dist/_chunk/createFocusable.jsx +3 -3
- package/dist/_chunk/createFocusable.jsx.map +1 -1
- package/dist/_chunk/{form.js → createFormReset.js} +1 -1
- package/dist/_chunk/createFormReset.js.map +1 -0
- package/dist/_chunk/{form.jsx → createFormReset.jsx} +1 -1
- package/dist/_chunk/createFormReset.jsx.map +1 -0
- package/dist/_chunk/createHover.js +2 -1
- package/dist/_chunk/createHover.js.map +1 -1
- package/dist/_chunk/createHover.jsx +2 -1
- package/dist/_chunk/createHover.jsx.map +1 -1
- package/dist/_chunk/createInteractionModality.js +2 -3
- package/dist/_chunk/createInteractionModality.js.map +1 -1
- package/dist/_chunk/createInteractionModality.jsx +2 -3
- package/dist/_chunk/createInteractionModality.jsx.map +1 -1
- package/dist/_chunk/createLabel.js +2 -1
- package/dist/_chunk/createLabel.js.map +1 -1
- package/dist/_chunk/createLabel.jsx +2 -1
- package/dist/_chunk/createLabel.jsx.map +1 -1
- package/dist/_chunk/createLabels.js +3 -2
- package/dist/_chunk/createLabels.js.map +1 -1
- package/dist/_chunk/createLabels.jsx +3 -2
- package/dist/_chunk/createLabels.jsx.map +1 -1
- package/dist/_chunk/createLandmark.js +1 -1
- package/dist/_chunk/createLandmark.jsx +1 -1
- package/dist/_chunk/createProgressBar.js +2 -1
- package/dist/_chunk/createProgressBar.js.map +1 -1
- package/dist/_chunk/createProgressBar.jsx +2 -1
- package/dist/_chunk/createProgressBar.jsx.map +1 -1
- package/dist/_chunk/createSelectableItem.js +7 -3
- package/dist/_chunk/createSelectableItem.js.map +1 -1
- package/dist/_chunk/createSelectableItem.jsx +7 -3
- package/dist/_chunk/createSelectableItem.jsx.map +1 -1
- package/dist/_chunk/createStringFormatter.js +61 -0
- package/dist/_chunk/createStringFormatter.js.map +1 -0
- package/dist/_chunk/createStringFormatter.jsx +61 -0
- package/dist/_chunk/createStringFormatter.jsx.map +1 -0
- package/dist/_chunk/createToggle.js +5 -4
- package/dist/_chunk/createToggle.js.map +1 -1
- package/dist/_chunk/createToggle.jsx +5 -4
- package/dist/_chunk/createToggle.jsx.map +1 -1
- package/dist/_chunk/datepicker.js +1413 -1100
- package/dist/_chunk/datepicker.js.map +1 -1
- package/dist/_chunk/datepicker.jsx +1413 -1100
- package/dist/_chunk/datepicker.jsx.map +1 -1
- package/dist/_chunk/disclosure.js +2 -2
- package/dist/_chunk/disclosure.js.map +1 -1
- package/dist/_chunk/disclosure.jsx +2 -2
- package/dist/_chunk/disclosure.jsx.map +1 -1
- package/dist/_chunk/dnd.js +1586 -495
- package/dist/_chunk/dnd.js.map +1 -1
- package/dist/_chunk/dnd.jsx +1586 -495
- package/dist/_chunk/dnd.jsx.map +1 -1
- package/dist/_chunk/env.js +1 -19
- package/dist/_chunk/env.js.map +1 -1
- package/dist/_chunk/env.jsx +1 -19
- package/dist/_chunk/env.jsx.map +1 -1
- package/dist/_chunk/focus.js +1 -1
- package/dist/_chunk/focus.js.map +1 -1
- package/dist/_chunk/focus.jsx +1 -1
- package/dist/_chunk/focus.jsx.map +1 -1
- package/dist/_chunk/focus2.js +54 -318
- package/dist/_chunk/focus2.js.map +1 -1
- package/dist/_chunk/focus2.jsx +53 -292
- package/dist/_chunk/focus2.jsx.map +1 -1
- package/dist/_chunk/grid.js +1 -1
- package/dist/_chunk/grid.jsx +1 -1
- package/dist/_chunk/gridlist.js +14 -9
- package/dist/_chunk/gridlist.js.map +1 -1
- package/dist/_chunk/gridlist.jsx +14 -9
- package/dist/_chunk/gridlist.jsx.map +1 -1
- package/dist/_chunk/i18n.js +3 -58
- package/dist/_chunk/i18n.js.map +1 -1
- package/dist/_chunk/i18n.jsx +3 -58
- package/dist/_chunk/i18n.jsx.map +1 -1
- package/dist/_chunk/interactions.js +99 -9
- package/dist/_chunk/interactions.js.map +1 -1
- package/dist/_chunk/interactions.jsx +97 -9
- package/dist/_chunk/interactions.jsx.map +1 -1
- package/dist/_chunk/link.js +2 -1
- package/dist/_chunk/link.js.map +1 -1
- package/dist/_chunk/link.jsx +2 -1
- package/dist/_chunk/link.jsx.map +1 -1
- package/dist/_chunk/listbox.js +42 -10
- package/dist/_chunk/listbox.js.map +1 -1
- package/dist/_chunk/listbox.jsx +42 -10
- package/dist/_chunk/listbox.jsx.map +1 -1
- package/dist/_chunk/locale.js +173 -0
- package/dist/_chunk/locale.js.map +1 -0
- package/dist/_chunk/locale.jsx +167 -0
- package/dist/_chunk/locale.jsx.map +1 -0
- package/dist/_chunk/menu.js +5 -4
- package/dist/_chunk/menu.js.map +1 -1
- package/dist/_chunk/menu.jsx +5 -4
- package/dist/_chunk/menu.jsx.map +1 -1
- package/dist/_chunk/numberfield.js +3 -2
- package/dist/_chunk/numberfield.js.map +1 -1
- package/dist/_chunk/numberfield.jsx +3 -2
- package/dist/_chunk/numberfield.jsx.map +1 -1
- package/dist/_chunk/overlays.js +1 -1
- package/dist/_chunk/overlays.jsx +1 -1
- package/dist/_chunk/popover.js +3 -3
- package/dist/_chunk/popover.js.map +1 -1
- package/dist/_chunk/popover.jsx +3 -3
- package/dist/_chunk/popover.jsx.map +1 -1
- package/dist/_chunk/radio.js +7 -6
- package/dist/_chunk/radio.js.map +1 -1
- package/dist/_chunk/radio.jsx +7 -6
- package/dist/_chunk/radio.jsx.map +1 -1
- package/dist/_chunk/reactivity.js +21 -0
- package/dist/_chunk/reactivity.js.map +1 -0
- package/dist/_chunk/reactivity.jsx +21 -0
- package/dist/_chunk/reactivity.jsx.map +1 -0
- package/dist/_chunk/searchfield.js +2 -1
- package/dist/_chunk/searchfield.js.map +1 -1
- package/dist/_chunk/searchfield.jsx +2 -1
- package/dist/_chunk/searchfield.jsx.map +1 -1
- package/dist/_chunk/select.js +8 -5
- package/dist/_chunk/select.js.map +1 -1
- package/dist/_chunk/select.jsx +8 -5
- package/dist/_chunk/select.jsx.map +1 -1
- package/dist/_chunk/selection.js +8 -21
- package/dist/_chunk/selection.js.map +1 -1
- package/dist/_chunk/selection.jsx +8 -21
- package/dist/_chunk/selection.jsx.map +1 -1
- package/dist/_chunk/separator.js +1 -1
- package/dist/_chunk/separator.jsx +1 -1
- package/dist/_chunk/slider.js +5 -4
- package/dist/_chunk/slider.js.map +1 -1
- package/dist/_chunk/slider.jsx +5 -4
- package/dist/_chunk/slider.jsx.map +1 -1
- package/dist/_chunk/spinbutton.js +153 -0
- package/dist/_chunk/spinbutton.js.map +1 -0
- package/dist/_chunk/spinbutton.jsx +153 -0
- package/dist/_chunk/spinbutton.jsx.map +1 -0
- package/dist/_chunk/table.js +45 -8
- package/dist/_chunk/table.js.map +1 -1
- package/dist/_chunk/table.jsx +45 -8
- package/dist/_chunk/table.jsx.map +1 -1
- package/dist/_chunk/tabs.js +11 -8
- package/dist/_chunk/tabs.js.map +1 -1
- package/dist/_chunk/tabs.jsx +11 -8
- package/dist/_chunk/tabs.jsx.map +1 -1
- package/dist/_chunk/tag.js +54 -18
- package/dist/_chunk/tag.js.map +1 -1
- package/dist/_chunk/tag.jsx +54 -18
- package/dist/_chunk/tag.jsx.map +1 -1
- package/dist/_chunk/textfield.js +2 -1
- package/dist/_chunk/textfield.js.map +1 -1
- package/dist/_chunk/textfield.jsx +2 -1
- package/dist/_chunk/textfield.jsx.map +1 -1
- package/dist/_chunk/toolbar.js +4 -36
- package/dist/_chunk/toolbar.js.map +1 -1
- package/dist/_chunk/toolbar.jsx +4 -36
- package/dist/_chunk/toolbar.jsx.map +1 -1
- package/dist/_chunk/tooltip.js +2 -2
- package/dist/_chunk/tooltip.js.map +1 -1
- package/dist/_chunk/tooltip.jsx +2 -2
- package/dist/_chunk/tooltip.jsx.map +1 -1
- package/dist/_chunk/tree.js +42 -14
- package/dist/_chunk/tree.js.map +1 -1
- package/dist/_chunk/tree.jsx +42 -14
- package/dist/_chunk/tree.jsx.map +1 -1
- package/dist/_chunk/utils.js +59 -19
- package/dist/_chunk/utils.js.map +1 -1
- package/dist/_chunk/utils.jsx +59 -19
- package/dist/_chunk/utils.jsx.map +1 -1
- package/dist/_chunk/visually-hidden.js +3 -2
- package/dist/_chunk/visually-hidden.js.map +1 -1
- package/dist/_chunk/visually-hidden.jsx +3 -2
- package/dist/_chunk/visually-hidden.jsx.map +1 -1
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
- package/dist/autocomplete/createAutocomplete.d.ts +10 -7
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
- package/dist/calendar/createCalendar.d.ts.map +1 -1
- package/dist/calendar/createCalendarCell.d.ts.map +1 -1
- package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
- package/dist/calendar/intl/index.d.ts +1 -1
- package/dist/calendar/intl/index.d.ts.map +1 -1
- package/dist/collections/index.js +1 -1
- package/dist/collections/index.jsx +1 -1
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/intl/index.d.ts +30 -0
- package/dist/color/intl/index.d.ts.map +1 -0
- package/dist/combobox/createComboBox.d.ts.map +1 -1
- package/dist/combobox/intl/generated-locales.d.ts +16 -0
- package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
- package/dist/combobox/intl/index.d.ts +2 -2
- package/dist/combobox/intl/index.d.ts.map +1 -1
- package/dist/datepicker/createDateField.d.ts +45 -23
- package/dist/datepicker/createDateField.d.ts.map +1 -1
- package/dist/datepicker/createDatePicker.d.ts +34 -6
- package/dist/datepicker/createDatePicker.d.ts.map +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
- package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
- package/dist/datepicker/createDateRangePicker.d.ts +55 -7
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
- package/dist/datepicker/createDateSegment.d.ts +6 -15
- package/dist/datepicker/createDateSegment.d.ts.map +1 -1
- package/dist/datepicker/createDisplayNames.d.ts +17 -0
- package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
- package/dist/datepicker/createTimeField.d.ts +12 -49
- package/dist/datepicker/createTimeField.d.ts.map +1 -1
- package/dist/datepicker/index.d.ts +3 -3
- package/dist/datepicker/index.d.ts.map +1 -1
- package/dist/datepicker/index.js +2 -2
- package/dist/datepicker/index.jsx +2 -2
- package/dist/datepicker/intl.d.ts +12 -0
- package/dist/datepicker/intl.d.ts.map +1 -0
- package/dist/dnd/DragManager.d.ts +86 -0
- package/dist/dnd/DragManager.d.ts.map +1 -0
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
- package/dist/dnd/createDrag.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
- package/dist/dnd/createDraggableItem.d.ts +12 -7
- package/dist/dnd/createDraggableItem.d.ts.map +1 -1
- package/dist/dnd/createDroppableCollection.d.ts +7 -15
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/index.d.ts +5 -1
- package/dist/dnd/index.d.ts.map +1 -1
- package/dist/dnd/index.js +3 -2
- package/dist/dnd/index.jsx +3 -2
- package/dist/dnd/intl/index.d.ts +39 -0
- package/dist/dnd/intl/index.d.ts.map +1 -0
- package/dist/dnd/utils.d.ts +5 -0
- package/dist/dnd/utils.d.ts.map +1 -1
- package/dist/focus/FocusScope.d.ts +7 -0
- package/dist/focus/FocusScope.d.ts.map +1 -1
- package/dist/focus/index.d.ts +2 -1
- package/dist/focus/index.d.ts.map +1 -1
- package/dist/focus/index.js +3 -2
- package/dist/focus/index.jsx +3 -2
- package/dist/focus/virtualFocus.d.ts +26 -0
- package/dist/focus/virtualFocus.d.ts.map +1 -0
- package/dist/form/index.js +1 -1
- package/dist/form/index.jsx +1 -1
- package/dist/gridlist/createGridList.d.ts.map +1 -1
- package/dist/i18n/index.js +4 -2
- package/dist/i18n/index.jsx +4 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -12
- package/dist/index.jsx +18 -12
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/createFocus.d.ts.map +1 -1
- package/dist/interactions/createFocusWithin.d.ts.map +1 -1
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/index.js +1 -2
- package/dist/interactions/index.jsx +1 -2
- package/dist/label/createLabels.d.ts.map +1 -1
- package/dist/listbox/createListBox.d.ts.map +1 -1
- package/dist/listbox/createOption.d.ts +1 -1
- package/dist/listbox/createOption.d.ts.map +1 -1
- package/dist/live-announcer/index.js +1 -1
- package/dist/live-announcer/index.jsx +1 -1
- package/dist/select/createSelect.d.ts +2 -0
- package/dist/select/createSelect.d.ts.map +1 -1
- package/dist/selection/createSelectableItem.d.ts.map +1 -1
- package/dist/selection/index.js +2 -1
- package/dist/selection/index.jsx +2 -1
- package/dist/spinbutton/createSpinButton.d.ts +41 -0
- package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
- package/dist/spinbutton/index.d.ts +3 -0
- package/dist/spinbutton/index.d.ts.map +1 -0
- package/dist/spinbutton/index.js +2 -0
- package/dist/spinbutton/index.jsx +2 -0
- package/dist/spinbutton/intl.d.ts +5 -0
- package/dist/spinbutton/intl.d.ts.map +1 -0
- package/dist/table/createTable.d.ts.map +1 -1
- package/dist/table/createTableColumnHeader.d.ts.map +1 -1
- package/dist/table/createTableRow.d.ts.map +1 -1
- package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
- package/dist/table/types.d.ts +8 -0
- package/dist/table/types.d.ts.map +1 -1
- package/dist/table/utils.d.ts +15 -0
- package/dist/table/utils.d.ts.map +1 -0
- package/dist/tabs/createTabs.d.ts +1 -0
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tag/createTag.d.ts.map +1 -1
- package/dist/tag/createTagGroup.d.ts +7 -0
- package/dist/tag/createTagGroup.d.ts.map +1 -1
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/tree/createTree.d.ts.map +1 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
- package/dist/utils/animation.d.ts.map +1 -1
- package/dist/utils/dom.d.ts +1 -0
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -3
- package/dist/utils/index.jsx +4 -3
- package/package.json +2 -2
- package/src/actiongroup/createActionGroup.ts +26 -109
- package/src/autocomplete/createAutocomplete.ts +136 -15
- package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
- package/src/button/createToggleButtonGroup.ts +19 -14
- package/src/calendar/createCalendar.ts +3 -4
- package/src/calendar/createCalendarCell.ts +17 -3
- package/src/calendar/createCalendarGrid.ts +5 -4
- package/src/calendar/createRangeCalendar.ts +27 -17
- package/src/calendar/createRangeCalendarCell.ts +17 -3
- package/src/calendar/intl/index.ts +8 -0
- package/src/color/createColorArea.ts +17 -10
- package/src/color/createColorField.ts +8 -1
- package/src/color/createColorSlider.ts +1 -2
- package/src/color/createColorSwatch.ts +4 -2
- package/src/color/createColorWheel.ts +0 -6
- package/src/color/intl/index.ts +316 -0
- package/src/combobox/createComboBox.ts +35 -4
- package/src/combobox/intl/generated-locales.ts +635 -0
- package/src/combobox/intl/index.ts +8 -2
- package/src/datepicker/createDateField.ts +228 -213
- package/src/datepicker/createDatePicker.ts +157 -146
- package/src/datepicker/createDatePickerGroup.ts +88 -82
- package/src/datepicker/createDateRangePicker.ts +230 -179
- package/src/datepicker/createDateSegment.ts +386 -389
- package/src/datepicker/createDisplayNames.ts +45 -0
- package/src/datepicker/createTimeField.ts +36 -129
- package/src/datepicker/index.ts +13 -14
- package/src/datepicker/intl.ts +633 -0
- package/src/dnd/DragManager.ts +693 -0
- package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
- package/src/dnd/createDrag.ts +31 -5
- package/src/dnd/createDraggableCollection.ts +33 -15
- package/src/dnd/createDraggableItem.ts +92 -5
- package/src/dnd/createDroppableCollection.ts +487 -373
- package/src/dnd/index.ts +11 -0
- package/src/dnd/intl/ar-AE.json +29 -0
- package/src/dnd/intl/bg-BG.json +29 -0
- package/src/dnd/intl/cs-CZ.json +29 -0
- package/src/dnd/intl/da-DK.json +29 -0
- package/src/dnd/intl/de-DE.json +29 -0
- package/src/dnd/intl/el-GR.json +29 -0
- package/src/dnd/intl/en-US.json +29 -0
- package/src/dnd/intl/es-ES.json +29 -0
- package/src/dnd/intl/et-EE.json +29 -0
- package/src/dnd/intl/fi-FI.json +29 -0
- package/src/dnd/intl/fr-FR.json +29 -0
- package/src/dnd/intl/he-IL.json +29 -0
- package/src/dnd/intl/hr-HR.json +29 -0
- package/src/dnd/intl/hu-HU.json +29 -0
- package/src/dnd/intl/index.ts +139 -0
- package/src/dnd/intl/it-IT.json +29 -0
- package/src/dnd/intl/ja-JP.json +29 -0
- package/src/dnd/intl/ko-KR.json +29 -0
- package/src/dnd/intl/lt-LT.json +29 -0
- package/src/dnd/intl/lv-LV.json +29 -0
- package/src/dnd/intl/nb-NO.json +29 -0
- package/src/dnd/intl/nl-NL.json +29 -0
- package/src/dnd/intl/pl-PL.json +29 -0
- package/src/dnd/intl/pt-BR.json +29 -0
- package/src/dnd/intl/pt-PT.json +29 -0
- package/src/dnd/intl/ro-RO.json +29 -0
- package/src/dnd/intl/ru-RU.json +29 -0
- package/src/dnd/intl/sk-SK.json +29 -0
- package/src/dnd/intl/sl-SI.json +29 -0
- package/src/dnd/intl/sr-SP.json +29 -0
- package/src/dnd/intl/sv-SE.json +29 -0
- package/src/dnd/intl/tr-TR.json +29 -0
- package/src/dnd/intl/uk-UA.json +29 -0
- package/src/dnd/intl/zh-CN.json +29 -0
- package/src/dnd/intl/zh-TW.json +29 -0
- package/src/dnd/utils.ts +36 -0
- package/src/focus/FocusScope.tsx +120 -12
- package/src/focus/index.ts +8 -0
- package/src/focus/virtualFocus.ts +55 -0
- package/src/gridlist/createGridList.ts +52 -16
- package/src/index.ts +11 -3
- package/src/interactions/FocusableProvider.tsx +11 -6
- package/src/interactions/createFocus.ts +26 -21
- package/src/interactions/createFocusWithin.ts +23 -24
- package/src/interactions/createInteractionModality.ts +5 -3
- package/src/label/createLabels.ts +7 -4
- package/src/listbox/createListBox.ts +74 -2
- package/src/listbox/createOption.ts +16 -1
- package/src/select/createSelect.ts +23 -2
- package/src/selection/createSelectableItem.ts +14 -0
- package/src/spinbutton/createSpinButton.ts +163 -0
- package/src/spinbutton/index.ts +10 -0
- package/src/spinbutton/intl.ts +115 -0
- package/src/table/createTable.ts +26 -1
- package/src/table/createTableColumnHeader.ts +10 -0
- package/src/table/createTableRow.ts +10 -0
- package/src/table/createTableSelectionCheckbox.ts +24 -1
- package/src/table/types.ts +8 -0
- package/src/table/utils.ts +41 -0
- package/src/tabs/createTabs.ts +53 -12
- package/src/tag/createTag.ts +21 -32
- package/src/tag/createTagGroup.ts +92 -0
- package/src/toolbar/createToolbar.ts +6 -58
- package/src/tree/createTree.ts +69 -14
- package/src/tree/createTreeSelectionCheckbox.ts +14 -1
- package/src/utils/animation.ts +119 -27
- package/src/utils/dom.ts +3 -2
- package/src/utils/index.ts +2 -0
- package/dist/_chunk/createLongPress.js +0 -91
- package/dist/_chunk/createLongPress.js.map +0 -1
- package/dist/_chunk/createLongPress.jsx +0 -91
- package/dist/_chunk/createLongPress.jsx.map +0 -1
- package/dist/_chunk/form.js.map +0 -1
- package/dist/_chunk/form.jsx.map +0 -1
- package/dist/_chunk/live-announcer.js.map +0 -1
- package/dist/_chunk/live-announcer.jsx.map +0 -1
- package/dist/datepicker/createTimeSegment.d.ts +0 -29
- package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
- package/src/datepicker/createTimeSegment.ts +0 -352
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.js","names":["normalizeDigit","extractNormalizedDigits","getSegmentLabel","SEGMENT_LABELS"],"sources":["../../src/datepicker/createDateField.ts","../../src/datepicker/createDateSegment.ts","../../src/datepicker/createTimeField.ts","../../src/datepicker/createTimeSegment.ts","../../src/datepicker/createDatePicker.ts","../../src/datepicker/createDatePickerGroup.ts","../../src/datepicker/createDateRangePicker.ts"],"sourcesContent":["/**\n * createDateField hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a date field component.\n * Based on @react-aria/datepicker useDateField\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createId } from \"../ssr\";\nimport { createLabel } from \"../label/createLabel\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { useLocale } from \"../i18n\";\nimport type { DateFieldState, DateSegment } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaDateFieldProps {\n /** An ID for the date field. */\n id?: string;\n /** A visible label for the date field. */\n label?: string;\n /** An accessible label for the date field. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the date field. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the date field. */\n \"aria-describedby\"?: string;\n /** Whether the date field is disabled. */\n isDisabled?: boolean;\n /** Whether the date field is read-only. */\n isReadOnly?: boolean;\n /** Whether the date field is required. */\n isRequired?: boolean;\n /** Whether the date field is invalid. */\n isInvalid?: boolean;\n /** Description text. */\n description?: string;\n /** Error message. */\n errorMessage?: string;\n /** Whether the element should receive focus on mount. */\n autoFocus?: boolean;\n}\n\nexport interface DatePickerOverlayState {\n /** Whether the calendar overlay is open. */\n isOpen: boolean;\n /** Open the calendar overlay. */\n open: () => void;\n /** Close the calendar overlay. */\n close: () => void;\n /** Toggle the calendar overlay. */\n toggle: () => void;\n}\n\nexport interface DateFieldAria {\n /** Props for the label element. */\n labelProps: Record<string, unknown>;\n /** Props for the field container element. */\n fieldProps: Record<string, unknown>;\n /** Props for the input container (holds segments). */\n inputProps: Record<string, unknown>;\n /** Props for the description element. */\n descriptionProps: Record<string, unknown>;\n /** Props for the error message element. */\n errorMessageProps: Record<string, unknown>;\n /** The segments to render. */\n segments: DateSegment[];\n}\n\n/**\n * Provides the behavior and accessibility implementation for a date field component.\n */\nexport function createDateField<T extends DateFieldState>(\n props: MaybeAccessor<AriaDateFieldProps>,\n state: T,\n _ref?: () => HTMLElement | null,\n overlayState?: DatePickerOverlayState,\n): DateFieldAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n const descriptionId = createId();\n const errorMessageId = createId();\n const locale = useLocale();\n\n // Create label handling\n const { labelProps, fieldProps: labelFieldProps } = createLabel({\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n // Build aria-describedby\n const getAriaDescribedBy = () => {\n const p = getProps();\n const ids: string[] = [];\n if (p[\"aria-describedby\"]) {\n ids.push(p[\"aria-describedby\"]);\n }\n if (p.description) {\n ids.push(descriptionId);\n }\n if ((p.isInvalid || state.isInvalid()) && p.errorMessage) {\n ids.push(errorMessageId);\n }\n return ids.length > 0 ? ids.join(\" \") : undefined;\n };\n\n // Segments from state\n const segments = createMemo(() => state.segments());\n\n // Label ID for linking input to label\n const getLabelId = () => (labelProps as Record<string, string | undefined>).id;\n\n // Localized role description\n const getRoleDescription = () => {\n const language = locale().locale.toLowerCase().split(\"-\")[0] ?? \"en\";\n return language === \"es\" ? \"Campo de fecha\" : \"Date field\";\n };\n\n // Focus management helpers for segment navigation\n const focusSegment = (target: \"first\" | \"last\" | \"prev\" | \"next\", container: HTMLElement) => {\n const spinbuttons = Array.from(container.querySelectorAll<HTMLElement>('[role=\"spinbutton\"]'));\n if (spinbuttons.length === 0) return;\n\n const active = document.activeElement as HTMLElement | null;\n const currentIndex = active ? spinbuttons.indexOf(active) : -1;\n\n if (target === \"first\") {\n spinbuttons[0]?.focus();\n return;\n }\n\n if (target === \"last\") {\n spinbuttons[spinbuttons.length - 1]?.focus();\n return;\n }\n\n let nextIndex: number;\n if (currentIndex < 0) {\n nextIndex = target === \"next\" ? 0 : spinbuttons.length - 1;\n } else {\n nextIndex = target === \"next\" ? currentIndex + 1 : currentIndex - 1;\n }\n\n if (nextIndex >= 0 && nextIndex < spinbuttons.length) {\n spinbuttons[nextIndex]?.focus();\n }\n };\n\n // Field container props\n const fieldProps = createMemo(() => {\n const p = getProps();\n\n const baseProps: Record<string, unknown> = mergeProps(\n labelFieldProps as Record<string, unknown>,\n {\n id,\n role: \"group\",\n \"aria-disabled\": p.isDisabled || state.isDisabled() || undefined,\n \"aria-readonly\": p.isReadOnly || state.isReadOnly() || undefined,\n \"aria-required\": p.isRequired || state.isRequired() || undefined,\n \"aria-invalid\": p.isInvalid || state.isInvalid() || undefined,\n \"aria-describedby\": getAriaDescribedBy(),\n },\n );\n\n // Integrate with date picker overlay when available\n if (overlayState) {\n const existingOnKeyDown = baseProps.onKeyDown as ((e: KeyboardEvent) => void) | undefined;\n\n baseProps.onKeyDown = (e: KeyboardEvent) => {\n existingOnKeyDown?.(e);\n if (e.altKey && (e.key === \"ArrowDown\" || e.key === \"ArrowUp\")) {\n e.preventDefault();\n e.stopPropagation();\n overlayState.open();\n }\n };\n }\n\n return baseProps;\n });\n\n // Input container props\n const inputProps = createMemo(() => {\n const p = getProps();\n const labelId = getLabelId();\n const ariaLabelledBy = labelId\n ? p[\"aria-labelledby\"]\n ? `${labelId} ${p[\"aria-labelledby\"]}`\n : labelId\n : p[\"aria-labelledby\"];\n\n const isDisabled = p.isDisabled || state.isDisabled();\n const isReadOnly = p.isReadOnly || state.isReadOnly();\n const isRequired = p.isRequired || state.isRequired();\n const isInvalid = p.isInvalid || state.isInvalid();\n const hasValue = state.value() != null;\n\n return {\n role: \"presentation\",\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": getAriaDescribedBy(),\n \"aria-disabled\": isDisabled || undefined,\n \"aria-readonly\": isReadOnly || undefined,\n \"aria-required\": isRequired || undefined,\n \"aria-invalid\": isInvalid || undefined,\n \"aria-roledescription\": getRoleDescription(),\n autoFocus: p.autoFocus,\n contentEditable: true,\n suppressContentEditableWarning: true,\n spellCheck: false,\n autoCorrect: \"off\",\n enterKeyHint: \"next\",\n inputMode: \"numeric\" as const,\n style: { caretColor: \"transparent\" },\n \"data-placeholder\": !hasValue ? \"true\" : undefined,\n onKeyDown: (e: KeyboardEvent) => {\n const target = e.target as HTMLElement;\n const currentTarget = e.currentTarget as HTMLElement;\n\n // Only handle at the container level, not when a segment is focused\n if (target !== currentTarget) return;\n\n const dir = locale().direction;\n const rtl = dir === \"rtl\";\n\n switch (e.key) {\n case \"ArrowRight\":\n e.preventDefault();\n focusSegment(rtl ? \"prev\" : \"next\", currentTarget);\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n focusSegment(rtl ? \"next\" : \"prev\", currentTarget);\n break;\n case \"Home\":\n e.preventDefault();\n focusSegment(\"first\", currentTarget);\n break;\n case \"End\":\n e.preventDefault();\n focusSegment(\"last\", currentTarget);\n break;\n }\n },\n onFocus: () => {\n // Focus state is tracked by the component layer\n },\n onBlur: () => {\n state.confirmPlaceholder();\n },\n onClick: (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const currentTarget = e.currentTarget as HTMLElement;\n\n // Only handle when clicking the container itself (empty area between segments)\n if (target !== currentTarget) return;\n\n const spinbuttons = Array.from(\n currentTarget.querySelectorAll<HTMLElement>('[role=\"spinbutton\"]'),\n );\n if (spinbuttons.length > 0) {\n spinbuttons[0].focus();\n }\n },\n };\n });\n\n // Description props\n const descriptionProps = createMemo(() => ({\n id: descriptionId,\n }));\n\n // Error message props\n const errorMessageProps = createMemo(() => ({\n id: errorMessageId,\n role: \"alert\",\n }));\n\n return {\n get labelProps() {\n return labelProps as Record<string, unknown>;\n },\n get fieldProps() {\n return fieldProps();\n },\n get inputProps() {\n return inputProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get errorMessageProps() {\n return errorMessageProps();\n },\n get segments() {\n return segments();\n },\n };\n}\n","/**\n * createDateSegment hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a date segment.\n * Based on @react-aria/datepicker useDateSegment\n */\n\nimport { createSignal, createMemo, onCleanup } from \"solid-js\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { scrollIntoViewport, getScrollParent } from \"../utils\";\nimport type { DateFieldState, DateSegment, DateSegmentType } from \"@proyecto-viviana/solid-stately\";\nimport { useLocale } from \"../i18n\";\n\nexport interface AriaDateSegmentProps {\n /** The segment data. */\n segment: DateSegment;\n /** The ID of the calendar dialog controlled by this segment (when inside a datepicker). */\n \"aria-controls\"?: string;\n /** The ID of an element that describes the segment. */\n \"aria-describedby\"?: string;\n}\n\nexport interface DateSegmentAria {\n /** Props for the segment element. */\n segmentProps: Record<string, unknown>;\n /** Whether the segment is focused. */\n isFocused: boolean;\n /** Whether the segment is editable. */\n isEditable: boolean;\n /** Whether the segment is a placeholder. */\n isPlaceholder: boolean;\n /** The text to display. */\n text: string;\n /** Whether the segment is hovered. */\n isHovered: boolean;\n /** Whether the segment has keyboard focus visible. */\n isFocusVisible: boolean;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a date segment.\n */\nexport function createDateSegment<T extends DateFieldState>(\n props: MaybeAccessor<AriaDateSegmentProps>,\n state: T,\n ref?: () => HTMLElement | null,\n): DateSegmentAria {\n const getProps = () => access(props);\n const [isFocused, setIsFocused] = createSignal(false);\n const [isFocusVisible, setIsFocusVisible] = createSignal(false);\n const [isHovered, setIsHovered] = createSignal(false);\n const [enteredKeys, setEnteredKeys] = createSignal(\"\");\n const [isComposing, setIsComposing] = createSignal(false);\n const locale = useLocale();\n\n // Get the segment from props\n const segment = createMemo(() => getProps().segment);\n\n // Check if editable\n const isEditable = createMemo(() => {\n const seg = segment();\n return seg.isEditable && !state.isDisabled() && !state.isReadOnly();\n });\n\n // Long press state for ArrowUp / ArrowDown\n let longPressTimeout: ReturnType<typeof setTimeout> | null = null;\n let longPressInterval: ReturnType<typeof setInterval> | null = null;\n let hadPointerDown = false;\n\n const clearLongPress = () => {\n if (longPressTimeout) {\n clearTimeout(longPressTimeout);\n longPressTimeout = null;\n }\n if (longPressInterval) {\n clearInterval(longPressInterval);\n longPressInterval = null;\n }\n };\n\n const startLongPress = (action: () => void) => {\n clearLongPress();\n longPressTimeout = setTimeout(() => {\n action();\n longPressInterval = setInterval(() => {\n action();\n }, 100);\n }, 300);\n };\n\n onCleanup(() => {\n clearLongPress();\n });\n\n const focusSegment = (target: \"first\" | \"last\" | \"prev\" | \"next\") => {\n const el = ref?.();\n if (!el) return;\n\n const container = el.parentElement;\n if (!container) return;\n\n const segments = Array.from(container.querySelectorAll<HTMLElement>('[role=\"spinbutton\"]'));\n\n if (segments.length === 0) return;\n\n if (target === \"first\") {\n segments[0]?.focus();\n return;\n }\n\n if (target === \"last\") {\n segments[segments.length - 1]?.focus();\n return;\n }\n\n const currentIndex = segments.indexOf(el);\n if (currentIndex < 0) return;\n\n const nextIndex = target === \"next\" ? currentIndex + 1 : currentIndex - 1;\n if (nextIndex >= 0 && nextIndex < segments.length) {\n segments[nextIndex]?.focus();\n }\n };\n\n const clearCurrentSegment = (type: DateSegmentType) => {\n state.clearSegment(type);\n setEnteredKeys(\"\");\n };\n\n // Handle keyboard input\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isEditable()) return;\n if (isComposing()) return;\n\n const seg = segment();\n const type = seg.type;\n\n if (type === \"literal\") return;\n\n // Keyboard interaction means focus is visible\n setIsFocusVisible(true);\n\n switch (e.key) {\n case \"ArrowRight\":\n e.preventDefault();\n focusSegment(locale().direction === \"rtl\" ? \"prev\" : \"next\");\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n focusSegment(locale().direction === \"rtl\" ? \"next\" : \"prev\");\n break;\n case \"ArrowUp\":\n e.preventDefault();\n state.incrementSegment(type);\n if (!e.repeat) {\n startLongPress(() => state.incrementSegment(type));\n }\n break;\n case \"ArrowDown\":\n e.preventDefault();\n state.decrementSegment(type);\n if (!e.repeat) {\n startLongPress(() => state.decrementSegment(type));\n }\n break;\n case \"Home\":\n e.preventDefault();\n focusSegment(\"first\");\n break;\n case \"End\":\n e.preventDefault();\n focusSegment(\"last\");\n break;\n case \"Backspace\":\n e.preventDefault();\n // Match common date-field UX: backspace on an empty placeholder moves to previous segment.\n if (seg.isPlaceholder) {\n focusSegment(\"prev\");\n } else {\n clearCurrentSegment(type);\n }\n break;\n case \"Delete\":\n e.preventDefault();\n clearCurrentSegment(type);\n break;\n default:\n // Handle numeric input\n const normalizedDigit = normalizeDigit(e.key);\n if (normalizedDigit) {\n e.preventDefault();\n handleNumericInput(normalizedDigit, type, seg);\n }\n break;\n }\n };\n\n const handleKeyUp = () => {\n clearLongPress();\n };\n\n // Handle numeric input\n const handleNumericInput = (key: string, type: DateSegmentType, seg: DateSegment) => {\n const newKeys = enteredKeys() + key;\n const numValue = parseInt(newKeys, 10);\n const maxValue = seg.maxValue ?? 99;\n const minValue = seg.minValue ?? 0;\n const maxDigits = String(maxValue).length;\n\n // Check if we should accept more digits\n if (numValue <= maxValue) {\n state.setSegment(type, numValue);\n\n // If entering more digits wouldn't make sense, clear entered keys\n const potentialNextValue = parseInt(newKeys + \"0\", 10);\n if (potentialNextValue > maxValue || newKeys.length >= maxDigits) {\n setEnteredKeys(\"\");\n focusSegment(\"next\");\n } else {\n setEnteredKeys(newKeys);\n }\n } else {\n // Start fresh with just this key\n const singleValue = parseInt(key, 10);\n if (singleValue >= minValue && singleValue <= maxValue) {\n state.setSegment(type, singleValue);\n const potentialNextValue = parseInt(key + \"0\", 10);\n if (potentialNextValue > maxValue || key.length >= maxDigits) {\n setEnteredKeys(\"\");\n focusSegment(\"next\");\n } else {\n setEnteredKeys(key);\n }\n } else {\n setEnteredKeys(\"\");\n }\n }\n };\n\n const handleBeforeInput = (e: InputEvent) => {\n if (!isEditable()) return;\n if (isComposing()) return;\n\n const seg = segment();\n if (seg.type === \"literal\") return;\n\n if (e.inputType === \"deleteContentBackward\" || e.inputType === \"deleteContentForward\") {\n e.preventDefault();\n clearCurrentSegment(seg.type);\n return;\n }\n\n if (e.inputType === \"insertText\" && e.data) {\n const normalizedDigit = normalizeDigit(e.data);\n if (!normalizedDigit) return;\n e.preventDefault();\n handleNumericInput(normalizedDigit, seg.type, seg);\n }\n };\n\n const handleCompositionStart = () => {\n if (!isEditable()) return;\n setIsComposing(true);\n setEnteredKeys(\"\");\n };\n\n const handleCompositionEnd = (e: CompositionEvent) => {\n if (!isEditable()) return;\n setIsComposing(false);\n\n const seg = segment();\n if (seg.type === \"literal\") return;\n\n const digits = extractNormalizedDigits(e.data ?? \"\");\n if (digits.length === 0) return;\n\n for (const digit of digits) {\n handleNumericInput(digit, seg.type, seg);\n }\n };\n\n // Handle focus\n const handleFocus = () => {\n setIsFocused(true);\n setEnteredKeys(\"\");\n\n if (!hadPointerDown) {\n setIsFocusVisible(true);\n }\n hadPointerDown = false;\n\n const el = ref?.();\n if (el) {\n scrollIntoViewport(el, { containingElement: getScrollParent(el) });\n }\n\n // Select all text in the segment\n if (el && typeof window !== \"undefined\") {\n const selection = window.getSelection();\n if (selection) {\n const range = new Range();\n range.selectNodeContents(el);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n setIsFocusVisible(false);\n setEnteredKeys(\"\");\n clearLongPress();\n state.confirmPlaceholder();\n };\n\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n\n // Segment props\n const segmentProps = createMemo(() => {\n const seg = segment();\n const type = seg.type;\n const p = getProps();\n\n // Literal segments don't need interaction props\n if (type === \"literal\") {\n return {\n \"aria-hidden\": true,\n };\n }\n\n return {\n role: \"spinbutton\",\n tabIndex: isEditable() ? 0 : -1,\n \"aria-label\": getSegmentLabel(type, locale().locale),\n \"aria-valuenow\": seg.value,\n \"aria-valuemin\": seg.minValue,\n \"aria-valuemax\": seg.maxValue,\n \"aria-valuetext\": seg.isPlaceholder ? \"\" : seg.text,\n \"aria-readonly\": state.isReadOnly() || undefined,\n \"aria-disabled\": state.isDisabled() || undefined,\n \"aria-invalid\": state.isInvalid() || undefined,\n \"aria-controls\": p[\"aria-controls\"] || undefined,\n \"aria-describedby\": p[\"aria-describedby\"] || undefined,\n contentEditable: isEditable(),\n suppressContentEditableWarning: true,\n inputMode: \"numeric\" as const,\n autoCorrect: \"off\",\n enterKeyHint: \"next\" as const,\n spellCheck: false,\n \"data-placeholder\": seg.isPlaceholder ? \"true\" : undefined,\n \"data-readonly\": state.isReadOnly() || undefined,\n \"data-disabled\": state.isDisabled() || undefined,\n \"data-invalid\": state.isInvalid() || undefined,\n \"data-type\": seg.type,\n \"data-hovered\": isHovered() || undefined,\n \"data-focused\": isFocused() || undefined,\n \"data-focus-visible\": isFocusVisible() || undefined,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onBeforeInput: handleBeforeInput,\n onCompositionStart: handleCompositionStart,\n onCompositionEnd: handleCompositionEnd,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onPointerDown: (e: PointerEvent) => {\n // Prevent cursor positioning in the middle of the segment\n e.preventDefault();\n hadPointerDown = true;\n setIsFocusVisible(false);\n },\n onPointerUp: () => {\n clearLongPress();\n },\n };\n });\n\n // Text to display\n const text = createMemo(() => {\n const seg = segment();\n return seg.isPlaceholder ? seg.placeholder : seg.text;\n });\n\n return {\n get segmentProps() {\n return segmentProps();\n },\n get isFocused() {\n return isFocused();\n },\n get isEditable() {\n return isEditable();\n },\n get isPlaceholder() {\n return segment().isPlaceholder;\n },\n get text() {\n return text();\n },\n get isHovered() {\n return isHovered();\n },\n get isFocusVisible() {\n return isFocusVisible();\n },\n };\n}\n\nconst SEGMENT_LABELS: Record<string, Record<Exclude<DateSegmentType, \"literal\">, string>> = {\n en: {\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n second: \"Second\",\n dayPeriod: \"AM/PM\",\n era: \"Era\",\n timeZoneName: \"Time zone\",\n },\n es: {\n year: \"Año\",\n month: \"Mes\",\n day: \"Día\",\n hour: \"Hora\",\n minute: \"Minuto\",\n second: \"Segundo\",\n dayPeriod: \"AM/PM\",\n era: \"Era\",\n timeZoneName: \"Zona horaria\",\n },\n};\n\nfunction getSegmentLabel(type: DateSegmentType, locale: string): string {\n if (type === \"literal\") return \"\";\n\n const language = locale.toLowerCase().split(\"-\")[0] ?? \"en\";\n const labels = SEGMENT_LABELS[language] ?? SEGMENT_LABELS.en;\n return labels[type];\n}\n\nfunction normalizeDigit(input: string): string | null {\n if (/^[0-9]$/.test(input)) {\n return input;\n }\n\n const codePoint = input.codePointAt(0);\n if (codePoint == null) return null;\n\n // Full-width digits 0-9\n if (codePoint >= 0xff10 && codePoint <= 0xff19) {\n return String(codePoint - 0xff10);\n }\n\n return null;\n}\n\nfunction extractNormalizedDigits(value: string): string[] {\n const digits: string[] = [];\n for (const char of value) {\n const normalized = normalizeDigit(char);\n if (normalized) {\n digits.push(normalized);\n }\n }\n return digits;\n}\n","/**\n * createTimeField hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a time field component.\n * Based on @react-aria/datepicker useTimeField\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createId } from \"../ssr\";\nimport { createLabel } from \"../label/createLabel\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport type { TimeFieldState, TimeSegment, TimeValue } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaTimeFieldProps {\n /** An ID for the time field. */\n id?: string;\n /** A visible label for the time field. */\n label?: string;\n /** An accessible label for the time field. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the time field. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the time field. */\n \"aria-describedby\"?: string;\n /** Whether the time field is disabled. */\n isDisabled?: boolean;\n /** Whether the time field is read-only. */\n isReadOnly?: boolean;\n /** Whether the time field is required. */\n isRequired?: boolean;\n /** Whether the time field is invalid. */\n isInvalid?: boolean;\n /** Description text. */\n description?: string;\n /** Error message. */\n errorMessage?: string;\n /** The name of the input element, used when submitting an HTML form. */\n name?: string;\n /** The id of the form the hidden input belongs to. */\n form?: string;\n /** Describes the autocomplete behavior for the hidden input. */\n autoComplete?: string;\n}\n\nexport interface TimeFieldAria {\n /** Props for the label element. */\n labelProps: Record<string, unknown>;\n /** Props for the field container element. */\n fieldProps: Record<string, unknown>;\n /** Props for the input container (holds segments). */\n inputProps: Record<string, unknown>;\n /** Props for the description element. */\n descriptionProps: Record<string, unknown>;\n /** Props for the error message element. */\n errorMessageProps: Record<string, unknown>;\n /** The segments to render. */\n segments: TimeSegment[];\n}\n\n/**\n * Provides the behavior and accessibility implementation for a time field component.\n */\nexport function createTimeField<T extends TimeFieldState<TimeValue>>(\n props: MaybeAccessor<AriaTimeFieldProps>,\n state: T,\n _ref?: () => HTMLElement | null,\n): TimeFieldAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n const descriptionId = createId();\n const errorMessageId = createId();\n\n // Create label handling\n const { labelProps, fieldProps: labelFieldProps } = createLabel({\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n // Build aria-describedby\n const getAriaDescribedBy = () => {\n const p = getProps();\n const ids: string[] = [];\n if (p[\"aria-describedby\"]) {\n ids.push(p[\"aria-describedby\"]);\n }\n if (p.description) {\n ids.push(descriptionId);\n }\n if ((p.isInvalid || state.isInvalid()) && p.errorMessage) {\n ids.push(errorMessageId);\n }\n return ids.length > 0 ? ids.join(\" \") : undefined;\n };\n\n // Segments from state\n const segments = createMemo(() => state.segments());\n\n // Field container props\n const fieldProps = createMemo(() => {\n const p = getProps();\n\n return mergeProps(labelFieldProps as Record<string, unknown>, {\n id,\n role: \"group\",\n \"aria-disabled\": p.isDisabled || state.isDisabled() || undefined,\n \"aria-readonly\": p.isReadOnly || state.isReadOnly() || undefined,\n \"aria-required\": p.isRequired || state.isRequired() || undefined,\n \"aria-invalid\": p.isInvalid || state.isInvalid() || undefined,\n \"aria-describedby\": getAriaDescribedBy(),\n });\n });\n\n // Input container props\n const inputProps = createMemo(() => ({\n role: \"presentation\",\n }));\n\n // Description props\n const descriptionProps = createMemo(() => ({\n id: descriptionId,\n }));\n\n // Error message props\n const errorMessageProps = createMemo(() => ({\n id: errorMessageId,\n role: \"alert\",\n }));\n\n return {\n get labelProps() {\n return labelProps as Record<string, unknown>;\n },\n get fieldProps() {\n return fieldProps();\n },\n get inputProps() {\n return inputProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get errorMessageProps() {\n return errorMessageProps();\n },\n get segments() {\n return segments();\n },\n };\n}\n","/**\n * createTimeSegment hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a time segment.\n * Based on @react-aria/datepicker useDateSegment semantics (time-field scope).\n */\n\nimport { createMemo, createSignal } from \"solid-js\";\nimport { useLocale } from \"../i18n\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport type { TimeFieldState, TimeSegment, TimeSegmentType } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaTimeSegmentProps {\n /** The segment data. */\n segment: TimeSegment;\n}\n\nexport interface TimeSegmentAria {\n /** Props for the segment element. */\n segmentProps: Record<string, unknown>;\n /** Whether the segment is focused. */\n isFocused: boolean;\n /** Whether the segment is editable. */\n isEditable: boolean;\n /** Whether the segment is a placeholder. */\n isPlaceholder: boolean;\n /** The text to display. */\n text: string;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a time segment.\n */\nexport function createTimeSegment<T extends TimeFieldState>(\n props: MaybeAccessor<AriaTimeSegmentProps>,\n state: T,\n ref?: () => HTMLElement | null,\n): TimeSegmentAria {\n const getProps = () => access(props);\n const [isFocused, setIsFocused] = createSignal(false);\n const [enteredKeys, setEnteredKeys] = createSignal(\"\");\n const [isComposing, setIsComposing] = createSignal(false);\n const locale = useLocale();\n\n const segment = createMemo(() => getProps().segment);\n\n const isEditable = createMemo(() => {\n const seg = segment();\n return seg.isEditable && !state.isDisabled() && !state.isReadOnly();\n });\n\n const focusSegment = (target: \"first\" | \"last\" | \"prev\" | \"next\") => {\n const el = ref?.();\n if (!el) return;\n\n const container = el.parentElement;\n if (!container) return;\n\n const segments = Array.from(container.querySelectorAll<HTMLElement>('[role=\"spinbutton\"]'));\n\n if (segments.length === 0) return;\n\n if (target === \"first\") {\n segments[0]?.focus();\n return;\n }\n\n if (target === \"last\") {\n segments[segments.length - 1]?.focus();\n return;\n }\n\n const currentIndex = segments.indexOf(el);\n if (currentIndex < 0) return;\n\n const nextIndex = target === \"next\" ? currentIndex + 1 : currentIndex - 1;\n if (nextIndex >= 0 && nextIndex < segments.length) {\n segments[nextIndex]?.focus();\n }\n };\n\n const clearCurrentSegment = (type: TimeSegmentType) => {\n state.clearSegment(type);\n setEnteredKeys(\"\");\n };\n\n const handleNumericInput = (key: string, type: TimeSegmentType, seg: TimeSegment) => {\n const newKeys = enteredKeys() + key;\n const numValue = parseInt(newKeys, 10);\n const maxValue = seg.maxValue ?? 99;\n const minValue = seg.minValue ?? 0;\n const maxDigits = String(maxValue).length;\n\n if (numValue <= maxValue) {\n state.setSegment(type, numValue);\n\n const potentialNextValue = parseInt(newKeys + \"0\", 10);\n if (potentialNextValue > maxValue || newKeys.length >= maxDigits) {\n setEnteredKeys(\"\");\n focusSegment(\"next\");\n } else {\n setEnteredKeys(newKeys);\n }\n } else {\n const singleValue = parseInt(key, 10);\n if (singleValue >= minValue && singleValue <= maxValue) {\n state.setSegment(type, singleValue);\n const potentialNextValue = parseInt(key + \"0\", 10);\n if (potentialNextValue > maxValue || key.length >= maxDigits) {\n setEnteredKeys(\"\");\n focusSegment(\"next\");\n } else {\n setEnteredKeys(key);\n }\n } else {\n setEnteredKeys(\"\");\n }\n }\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (!isEditable()) return;\n if (isComposing()) return;\n\n const seg = segment();\n const type = seg.type;\n\n if (type === \"literal\") return;\n\n switch (e.key) {\n case \"ArrowRight\":\n e.preventDefault();\n focusSegment(locale().direction === \"rtl\" ? \"prev\" : \"next\");\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n focusSegment(locale().direction === \"rtl\" ? \"next\" : \"prev\");\n break;\n case \"ArrowUp\":\n e.preventDefault();\n state.incrementSegment(type);\n break;\n case \"ArrowDown\":\n e.preventDefault();\n state.decrementSegment(type);\n break;\n case \"Home\":\n e.preventDefault();\n focusSegment(\"first\");\n break;\n case \"End\":\n e.preventDefault();\n focusSegment(\"last\");\n break;\n case \"Backspace\":\n e.preventDefault();\n if (seg.isPlaceholder) {\n focusSegment(\"prev\");\n } else {\n clearCurrentSegment(type);\n }\n break;\n case \"Delete\":\n e.preventDefault();\n clearCurrentSegment(type);\n break;\n default:\n const normalizedDigit = normalizeDigit(e.key);\n if (normalizedDigit) {\n e.preventDefault();\n handleNumericInput(normalizedDigit, type, seg);\n }\n break;\n }\n };\n\n const handleBeforeInput = (e: InputEvent) => {\n if (!isEditable()) return;\n if (isComposing()) return;\n\n const seg = segment();\n if (seg.type === \"literal\") return;\n\n if (e.inputType === \"deleteContentBackward\" || e.inputType === \"deleteContentForward\") {\n e.preventDefault();\n clearCurrentSegment(seg.type);\n return;\n }\n\n if (e.inputType === \"insertText\" && e.data) {\n const normalizedDigit = normalizeDigit(e.data);\n if (!normalizedDigit) return;\n e.preventDefault();\n handleNumericInput(normalizedDigit, seg.type, seg);\n }\n };\n\n const handleCompositionStart = () => {\n if (!isEditable()) return;\n setIsComposing(true);\n setEnteredKeys(\"\");\n };\n\n const handleCompositionEnd = (e: CompositionEvent) => {\n if (!isEditable()) return;\n setIsComposing(false);\n\n const seg = segment();\n if (seg.type === \"literal\") return;\n\n const digits = extractNormalizedDigits(e.data ?? \"\");\n if (digits.length === 0) return;\n\n for (const digit of digits) {\n handleNumericInput(digit, seg.type, seg);\n }\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n setEnteredKeys(\"\");\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n setEnteredKeys(\"\");\n\n const maybeState = state as unknown as { confirmPlaceholder?: () => void };\n maybeState.confirmPlaceholder?.();\n };\n\n const segmentProps = createMemo(() => {\n const seg = segment();\n const type = seg.type;\n\n if (type === \"literal\") {\n return {\n \"aria-hidden\": true,\n };\n }\n\n return {\n role: \"spinbutton\",\n tabIndex: isEditable() ? 0 : -1,\n \"aria-label\": getSegmentLabel(type, locale().locale),\n \"aria-valuenow\": seg.value,\n \"aria-valuemin\": seg.minValue,\n \"aria-valuemax\": seg.maxValue,\n \"aria-valuetext\": seg.isPlaceholder ? seg.placeholder : seg.text,\n \"aria-readonly\": state.isReadOnly() || undefined,\n \"aria-disabled\": state.isDisabled() || undefined,\n \"aria-invalid\": state.isInvalid() || undefined,\n contentEditable: isEditable(),\n suppressContentEditableWarning: true,\n inputMode: \"numeric\" as const,\n autoCorrect: \"off\",\n enterKeyHint: \"next\" as const,\n spellCheck: false,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onBeforeInput: handleBeforeInput,\n onCompositionStart: handleCompositionStart,\n onCompositionEnd: handleCompositionEnd,\n onMouseDown: (e: MouseEvent) => {\n e.preventDefault();\n },\n };\n });\n\n const text = createMemo(() => {\n const seg = segment();\n return seg.isPlaceholder ? seg.placeholder : seg.text;\n });\n\n return {\n get segmentProps() {\n return segmentProps();\n },\n get isFocused() {\n return isFocused();\n },\n get isEditable() {\n return isEditable();\n },\n get isPlaceholder() {\n return segment().isPlaceholder;\n },\n get text() {\n return text();\n },\n };\n}\n\ntype EditableTimeSegmentType = Exclude<TimeSegmentType, \"literal\">;\n\nconst SEGMENT_LABELS: Record<string, Record<EditableTimeSegmentType, string>> = {\n en: {\n hour: \"Hour\",\n minute: \"Minute\",\n second: \"Second\",\n dayPeriod: \"AM/PM\",\n },\n es: {\n hour: \"Hora\",\n minute: \"Minuto\",\n second: \"Segundo\",\n dayPeriod: \"AM/PM\",\n },\n};\n\nfunction getSegmentLabel(type: TimeSegmentType, locale: string): string {\n if (type === \"literal\") return \"\";\n\n const language = locale.toLowerCase().split(\"-\")[0] ?? \"en\";\n const labels = SEGMENT_LABELS[language] ?? SEGMENT_LABELS.en;\n return labels[type];\n}\n\nfunction normalizeDigit(input: string): string | null {\n if (/^[0-9]$/.test(input)) {\n return input;\n }\n\n const code = input.codePointAt(0);\n if (code === undefined) return null;\n\n if (code >= 0x0660 && code <= 0x0669) {\n return String(code - 0x0660);\n }\n\n if (code >= 0x06f0 && code <= 0x06f9) {\n return String(code - 0x06f0);\n }\n\n if (code >= 0xff10 && code <= 0xff19) {\n return String(code - 0xff10);\n }\n\n return null;\n}\n\nfunction extractNormalizedDigits(input: string): string[] {\n const digits: string[] = [];\n for (const char of input) {\n const normalized = normalizeDigit(char);\n if (normalized) {\n digits.push(normalized);\n }\n }\n return digits;\n}\n","/**\n * createDatePicker hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a date picker component.\n * Based on @react-aria/datepicker useDatePicker\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createId } from \"../ssr\";\nimport { createLabel } from \"../label/createLabel\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { useLocale } from \"../i18n\";\nimport { createPress } from \"../interactions/createPress\";\nimport { DateFormatter, getLocalTimeZone } from \"@internationalized/date\";\nimport type { DateFieldState, CalendarState } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaDatePickerProps {\n /** An ID for the date picker. */\n id?: string;\n /** A visible label for the date picker. */\n label?: string;\n /** An accessible label for the date picker. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the date picker. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the date picker. */\n \"aria-describedby\"?: string;\n /** Whether the date picker is disabled. */\n isDisabled?: boolean;\n /** Whether the date picker is read-only. */\n isReadOnly?: boolean;\n /** Whether the date picker is required. */\n isRequired?: boolean;\n /** Whether the date picker is invalid. */\n isInvalid?: boolean;\n /** Description text. */\n description?: string;\n /** Error message. */\n errorMessage?: string;\n /** Accessible label for the calendar trigger button. */\n buttonAriaLabel?: string;\n /** Accessible label for the calendar dialog. */\n dialogAriaLabel?: string;\n /** Accessible label for the calendar grid region. */\n calendarAriaLabel?: string;\n /** The minimum allowed date. */\n minValue?: Date;\n /** The maximum allowed date. */\n maxValue?: Date;\n /** Whether a date is unavailable. */\n isDateUnavailable?: (date: unknown) => boolean;\n /** The first day of the week. */\n firstDayOfWeek?: number;\n /** Page behavior for calendar. */\n pageBehavior?: \"single\" | \"visible\";\n /** Whether to force leading zeros. */\n shouldForceLeadingZeros?: boolean;\n /** Callback when focus changes. */\n onFocusChange?: (isFocused: boolean) => void;\n /** Callback when focused. */\n onFocus?: (e: FocusEvent) => void;\n /** Callback when blurred. */\n onBlur?: (e: FocusEvent) => void;\n /** The name attribute for form submission. */\n name?: string;\n /** The form attribute. */\n form?: string;\n /** Auto focus the field. */\n autoFocus?: boolean;\n /** The placeholder value. */\n placeholderValue?: unknown;\n /** Whether to hide the time zone. */\n hideTimeZone?: boolean;\n /** The hour cycle. */\n hourCycle?: 12 | 24;\n /** The granularity. */\n granularity?: \"day\" | \"hour\" | \"minute\" | \"second\";\n}\n\nexport interface DatePickerState {\n /** Whether the calendar is open. */\n isOpen: boolean;\n /** Open the calendar. */\n open: () => void;\n /** Close the calendar. */\n close: () => void;\n /** Toggle the calendar. */\n toggle: () => void;\n}\n\nexport interface DatePickerAria {\n /** Props for the group container. */\n groupProps: Record<string, unknown>;\n /** Props for the label element. */\n labelProps: Record<string, unknown>;\n /** Props for the date field container. */\n fieldProps: Record<string, unknown>;\n /** Props for the button that opens the calendar. */\n buttonProps: Record<string, unknown>;\n /** Props for the calendar dialog. */\n dialogProps: Record<string, unknown>;\n /** Props for the calendar. */\n calendarProps: Record<string, unknown>;\n /** Props for the description element. */\n descriptionProps: Record<string, unknown>;\n /** Props for the error message element. */\n errorMessageProps: Record<string, unknown>;\n /** Whether the picker is invalid. */\n isInvalid: boolean;\n /** Validation errors. */\n validationErrors: string[];\n /** Validation details. */\n validationDetails: Record<string, unknown>;\n /** Focus manager for programmatic segment focus. */\n focusManager: {\n focusFirst: () => void;\n focusLast: () => void;\n } & {\n /** @internal Wires the actual focus implementations from the component layer */\n _register?: (first: () => void, last: () => void) => void;\n };\n}\n\n/**\n * Provides the behavior and accessibility implementation for a date picker component.\n */\nexport function createDatePicker<T extends DateFieldState, C extends CalendarState>(\n props: MaybeAccessor<AriaDatePickerProps>,\n state: T,\n overlayState: DatePickerState,\n _calendarState?: C,\n): DatePickerAria {\n const locale = useLocale();\n const getProps = () => access(props);\n const id = createId(getProps().id);\n const descriptionId = createId();\n const errorMessageId = createId();\n const dialogId = createId();\n const buttonId = createId();\n const fieldId = createId();\n\n // Create label handling\n const { labelProps, fieldProps: labelFieldProps } = createLabel({\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n // Build aria-describedby\n const getAriaDescribedBy = () => {\n const p = getProps();\n const ids: string[] = [];\n if (p[\"aria-describedby\"]) {\n ids.push(p[\"aria-describedby\"]);\n }\n if (valueDescription()) {\n ids.push(valueDescriptionId);\n }\n if (p.description) {\n ids.push(descriptionId);\n }\n if ((p.isInvalid || state.isInvalid()) && p.errorMessage) {\n ids.push(errorMessageId);\n }\n return ids.length > 0 ? ids.join(\" \") : undefined;\n };\n\n // Selected date description for screen readers\n const valueDescriptionId = createId();\n const valueDescription = createMemo(() => {\n const v = state.value?.();\n if (!v) return \"\";\n const formatter = new DateFormatter(locale().locale, {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n });\n return formatter.format(v.toDate(getLocalTimeZone()));\n });\n\n // Group props\n const groupProps = createMemo(() => {\n const p = getProps();\n const isInvalid = p.isInvalid || state.isInvalid();\n const describedBy = getAriaDescribedBy();\n const labelField = labelFieldProps as Record<string, unknown>;\n\n return {\n id,\n role: \"group\",\n \"aria-label\": labelField[\"aria-label\"] || undefined,\n \"aria-labelledby\": labelField[\"aria-labelledby\"] || undefined,\n \"aria-disabled\": p.isDisabled || state.isDisabled() || undefined,\n \"aria-readonly\": p.isReadOnly || state.isReadOnly() || undefined,\n \"aria-required\": p.isRequired || state.isRequired() || undefined,\n \"aria-invalid\": isInvalid || undefined,\n \"aria-describedby\": describedBy,\n };\n });\n\n // Field props - applied to DateInput container\n const fieldProps = createMemo(() => {\n const p = getProps();\n const describedBy = getAriaDescribedBy();\n\n return {\n id: fieldId,\n \"aria-describedby\": describedBy,\n value: state.value?.(),\n defaultValue: state.defaultValue,\n onChange: (value: unknown) => {\n state.setValue?.(value as T extends DateFieldState<infer V> ? V | null : null);\n },\n placeholderValue: p.placeholderValue,\n hideTimeZone: p.hideTimeZone,\n hourCycle: p.hourCycle,\n shouldForceLeadingZeros: p.shouldForceLeadingZeros,\n granularity: p.granularity,\n isDisabled: p.isDisabled || state.isDisabled(),\n isReadOnly: p.isReadOnly || state.isReadOnly(),\n isRequired: p.isRequired || state.isRequired(),\n autoFocus: p.autoFocus,\n name: p.name,\n form: p.form,\n };\n });\n\n // Button props with createPress for keyboard/mouse/touch activation\n const buttonPress = createPress({\n get isDisabled() {\n const p = getProps();\n return p.isDisabled || state.isDisabled();\n },\n onPress: () => {\n overlayState.open();\n },\n });\n\n const buttonProps = createMemo(() => {\n const p = getProps();\n const isDisabled = p.isDisabled || state.isDisabled();\n const defaults = getDatePickerLabelDefaults(locale().locale);\n const labelId = (labelProps as Record<string, unknown>)[\"id\"] as string | undefined;\n const labelledBy = labelId ? `${buttonId} ${labelId}` : buttonId;\n const describedBy = getAriaDescribedBy();\n\n return mergeProps(buttonPress.pressProps as Record<string, unknown>, {\n id: buttonId,\n type: \"button\" as const,\n \"aria-label\": p.buttonAriaLabel ?? defaults.button,\n \"aria-labelledby\": labelledBy,\n \"aria-haspopup\": \"dialog\" as const,\n \"aria-expanded\": overlayState.isOpen,\n \"aria-controls\": overlayState.isOpen ? dialogId : undefined,\n \"aria-describedby\": describedBy,\n \"aria-disabled\": isDisabled || undefined,\n tabIndex: 0,\n });\n });\n\n // Dialog props\n const dialogProps = createMemo(() => {\n const p = getProps();\n const defaults = getDatePickerLabelDefaults(locale().locale);\n const labelId = (labelProps as Record<string, unknown>)[\"id\"] as string | undefined;\n const labelledBy = labelId ? `${buttonId} ${labelId}` : buttonId;\n\n return {\n id: dialogId,\n role: \"dialog\",\n \"aria-modal\": true,\n \"aria-labelledby\": labelledBy,\n \"aria-label\": p.dialogAriaLabel ?? defaults.dialog,\n };\n });\n\n // Calendar props\n const calendarProps = createMemo(() => {\n const p = getProps();\n const defaults = getDatePickerLabelDefaults(locale().locale);\n const currentValue = state.value?.();\n\n return {\n autoFocus: true,\n value: currentValue,\n onChange: (value: unknown) => {\n if (state.setValue) {\n state.setValue(value as Parameters<typeof state.setValue>[0]);\n }\n },\n minValue: p.minValue,\n maxValue: p.maxValue,\n isDisabled: p.isDisabled || state.isDisabled(),\n isReadOnly: p.isReadOnly || state.isReadOnly(),\n isDateUnavailable: p.isDateUnavailable,\n defaultFocusedValue: currentValue ? undefined : p.placeholderValue,\n isInvalid: p.isInvalid || state.isInvalid(),\n errorMessage:\n typeof p.errorMessage === \"string\"\n ? p.errorMessage\n : state.isInvalid()\n ? \"Invalid date\"\n : undefined,\n firstDayOfWeek: p.firstDayOfWeek,\n pageBehavior: p.pageBehavior,\n \"aria-label\": p.calendarAriaLabel ?? p.dialogAriaLabel ?? defaults.calendar,\n };\n });\n\n // Description props for the description element\n const descriptionProps = createMemo(() => ({\n id: descriptionId,\n }));\n\n // Value description element props\n const valueDescriptionProps = createMemo(() => ({\n id: valueDescriptionId,\n \"aria-hidden\": true,\n }));\n\n // Error message props\n const errorMessageProps = createMemo(() => ({\n id: errorMessageId,\n role: \"alert\",\n }));\n\n // Label click focuses first segment — component layer wires the actual ref\n let focusFirstSegment: (() => void) | undefined;\n let focusLastSegment: (() => void) | undefined;\n\n const enhancedLabelProps = createMemo(() => {\n return {\n ...labelProps,\n onClick: () => {\n focusFirstSegment?.();\n },\n };\n });\n\n const isInvalid = createMemo(() => {\n const p = getProps();\n return p.isInvalid || state.isInvalid();\n });\n\n const validationErrors = createMemo(() => {\n const p = getProps();\n if (p.isInvalid && typeof p.errorMessage === \"string\") {\n return [p.errorMessage];\n }\n return [];\n });\n\n const validationDetails = createMemo(() => {\n const p = getProps();\n return {\n minValue: p.minValue,\n maxValue: p.maxValue,\n isDateUnavailable: p.isDateUnavailable,\n isInvalid: isInvalid(),\n };\n });\n\n return {\n get groupProps() {\n return groupProps();\n },\n get labelProps() {\n return enhancedLabelProps() as Record<string, unknown>;\n },\n get fieldProps() {\n return fieldProps();\n },\n get buttonProps() {\n return buttonProps();\n },\n get dialogProps() {\n return dialogProps();\n },\n get calendarProps() {\n return calendarProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get errorMessageProps() {\n return errorMessageProps();\n },\n get isInvalid() {\n return isInvalid();\n },\n get validationErrors() {\n return validationErrors();\n },\n get validationDetails() {\n return validationDetails();\n },\n focusManager: {\n focusFirst: () => focusFirstSegment?.(),\n focusLast: () => focusLastSegment?.(),\n /** @internal Wires the actual focus implementations from the component layer */\n _register: (first: () => void, last: () => void) => {\n focusFirstSegment = first;\n focusLastSegment = last;\n },\n },\n };\n}\n\nfunction getDatePickerLabelDefaults(locale: string): {\n button: string;\n dialog: string;\n calendar: string;\n} {\n const language = locale.toLowerCase().split(\"-\")[0] ?? \"en\";\n\n if (language === \"es\") {\n return {\n button: \"Abrir calendario\",\n dialog: \"Calendario\",\n calendar: \"Calendario\",\n };\n }\n\n return {\n button: \"Open calendar\",\n dialog: \"Calendar\",\n calendar: \"Calendar\",\n };\n}\n","/**\n * createDatePickerGroup hook for Solidaria\n *\n * Provides keyboard and pointer behavior for the date picker field group.\n * Based on @react-aria/datepicker useDatePickerGroup\n */\n\nimport { createMemo } from \"solid-js\";\nimport { type MaybeAccessor, access } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { useLocale } from \"../i18n\";\nimport { createPress } from \"../interactions/createPress\";\nimport { nodeContains, getEventTarget } from \"../utils\";\nimport { focusSafely } from \"../utils/focus\";\n\nexport interface AriaDatePickerGroupProps {\n isDisabled?: boolean;\n}\n\nexport interface DatePickerGroupAria {\n groupProps: Record<string, unknown>;\n}\n\nexport function createDatePickerGroup(\n props: MaybeAccessor<AriaDatePickerGroupProps>,\n state: { setOpen: (isOpen: boolean) => void; isOpen: boolean; isDisabled: () => boolean },\n ref: () => HTMLElement | null,\n disableArrowNavigation?: boolean,\n): DatePickerGroupAria {\n const locale = useLocale();\n const resolvedProps = createMemo(() => access(props));\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (!nodeContains(e.currentTarget as Node | null, getEventTarget(e) as Node | null)) {\n return;\n }\n\n // Open the popover on alt + arrow down/up\n if (e.altKey && (e.key === \"ArrowDown\" || e.key === \"ArrowUp\")) {\n e.preventDefault();\n e.stopPropagation();\n state.setOpen(true);\n return;\n }\n\n if (disableArrowNavigation) return;\n\n const root = ref();\n if (!root) return;\n\n const segments = Array.from(root.querySelectorAll('[role=\"spinbutton\"]')) as HTMLElement[];\n if (segments.length === 0) return;\n\n const activeElement = root.ownerDocument.activeElement;\n let currentIndex = -1;\n if (activeElement) {\n currentIndex = segments.indexOf(activeElement as HTMLElement);\n }\n\n const direction = locale().direction;\n\n switch (e.key) {\n case \"ArrowLeft\": {\n e.preventDefault();\n e.stopPropagation();\n if (direction === \"rtl\") {\n // geometric fallback: in RTL, left arrow moves toward the end (next)\n const nextIndex = currentIndex >= 0 ? currentIndex + 1 : 0;\n if (nextIndex < segments.length) {\n focusSafely(segments[nextIndex]);\n }\n } else {\n const prevIndex = currentIndex >= 0 ? currentIndex - 1 : segments.length - 1;\n if (prevIndex >= 0) {\n focusSafely(segments[prevIndex]);\n }\n }\n break;\n }\n case \"ArrowRight\": {\n e.preventDefault();\n e.stopPropagation();\n if (direction === \"rtl\") {\n // geometric fallback: in RTL, right arrow moves toward the start (previous)\n const prevIndex = currentIndex >= 0 ? currentIndex - 1 : segments.length - 1;\n if (prevIndex >= 0) {\n focusSafely(segments[prevIndex]);\n }\n } else {\n const nextIndex = currentIndex >= 0 ? currentIndex + 1 : 0;\n if (nextIndex < segments.length) {\n focusSafely(segments[nextIndex]);\n }\n }\n break;\n }\n }\n };\n\n const focusLast = (event?: Event) => {\n const root = ref();\n if (!root) return;\n\n const target = event ? getEventTarget(event) : null;\n\n const segments = Array.from(root.querySelectorAll('[role=\"spinbutton\"]')) as HTMLElement[];\n if (segments.length === 0) return;\n\n let startIndex = segments.length - 1;\n if (target) {\n const targetIndex = segments.indexOf(target as HTMLElement);\n if (targetIndex >= 0) {\n startIndex = targetIndex;\n }\n }\n\n for (let i = startIndex; i >= 0; i--) {\n const segment = segments[i];\n if (segment.getAttribute(\"data-placeholder\") !== \"true\") {\n focusSafely(segment);\n return;\n }\n }\n };\n\n const { pressProps } = createPress({\n isDisabled: () => resolvedProps().isDisabled || state.isDisabled(),\n preventFocusOnPress: true,\n allowTextSelectionOnPress: true,\n onPressStart(e) {\n if (e.pointerType === \"mouse\") {\n focusLast(e as unknown as Event);\n }\n },\n onPress(e) {\n if (e.pointerType === \"touch\" || e.pointerType === \"pen\") {\n focusLast(e as unknown as Event);\n }\n },\n });\n\n return {\n get groupProps() {\n return mergeProps(pressProps, {\n onKeyDown,\n });\n },\n };\n}\n","/**\n * createDateRangePicker hook for Solidaria\n *\n * Provides behavior and accessibility wiring for range date pickers.\n * Compatibility target: @react-aria/datepicker useDateRangePicker.\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createId } from \"../ssr\";\nimport { createLabel } from \"../label/createLabel\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { useLocale } from \"../i18n\";\nimport type { RangeCalendarState } from \"@proyecto-viviana/solid-stately\";\nimport type { DatePickerState } from \"./createDatePicker\";\n\nexport interface AriaDateRangePickerProps {\n id?: string;\n label?: string;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n description?: string;\n errorMessage?: string;\n buttonAriaLabel?: string;\n dialogAriaLabel?: string;\n calendarAriaLabel?: string;\n startFieldAriaLabel?: string;\n endFieldAriaLabel?: string;\n}\n\nexport interface DateRangePickerAria {\n groupProps: Record<string, unknown>;\n labelProps: Record<string, unknown>;\n startFieldProps: Record<string, unknown>;\n endFieldProps: Record<string, unknown>;\n startInputProps: Record<string, unknown>;\n endInputProps: Record<string, unknown>;\n buttonProps: Record<string, unknown>;\n dialogProps: Record<string, unknown>;\n calendarProps: Record<string, unknown>;\n descriptionProps: Record<string, unknown>;\n errorMessageProps: Record<string, unknown>;\n}\n\nexport function createDateRangePicker<T extends RangeCalendarState>(\n props: MaybeAccessor<AriaDateRangePickerProps>,\n state: T,\n overlayState: DatePickerState,\n): DateRangePickerAria {\n const locale = useLocale();\n const getProps = () => access(props);\n const id = createId(getProps().id);\n const startFieldId = createId();\n const endFieldId = createId();\n const descriptionId = createId();\n const errorMessageId = createId();\n const dialogId = createId();\n\n const { labelProps, fieldProps: labelFieldProps } = createLabel({\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n const getAriaDescribedBy = () => {\n const p = getProps();\n const ids: string[] = [];\n if (p[\"aria-describedby\"]) ids.push(p[\"aria-describedby\"]);\n if (p.description) ids.push(descriptionId);\n if (p.isInvalid && p.errorMessage) ids.push(errorMessageId);\n return ids.length > 0 ? ids.join(\" \") : undefined;\n };\n\n const groupProps = createMemo(() => {\n const p = getProps();\n const isInvalid = p.isInvalid;\n return mergeProps(labelFieldProps as Record<string, unknown>, {\n id,\n role: \"group\",\n \"aria-disabled\": p.isDisabled || state.isDisabled() || undefined,\n \"aria-readonly\": p.isReadOnly || state.isReadOnly() || undefined,\n \"aria-required\": p.isRequired || undefined,\n \"aria-invalid\": isInvalid || undefined,\n \"aria-describedby\": getAriaDescribedBy(),\n });\n });\n\n const startFieldProps = createMemo(() => {\n const p = getProps();\n const defaults = getDateRangePickerLabelDefaults(locale().locale);\n const isDisabled = p.isDisabled || state.isDisabled();\n const isReadOnly = p.isReadOnly || state.isReadOnly();\n const isInvalid = p.isInvalid;\n\n return {\n id: startFieldId,\n \"aria-label\": p.startFieldAriaLabel ?? defaults.startField,\n \"aria-describedby\": getAriaDescribedBy(),\n \"aria-disabled\": isDisabled || undefined,\n \"aria-readonly\": isReadOnly || undefined,\n \"aria-invalid\": isInvalid || undefined,\n tabIndex: isDisabled ? -1 : 0,\n onClick: () => {\n if (!isDisabled) {\n overlayState.open();\n }\n },\n onKeyDown: (event: KeyboardEvent) => {\n if (isDisabled) return;\n if (event.key === \"Enter\" || event.key === \" \" || event.key === \"ArrowDown\") {\n event.preventDefault();\n overlayState.open();\n }\n },\n };\n });\n\n const endFieldProps = createMemo(() => {\n const p = getProps();\n const defaults = getDateRangePickerLabelDefaults(locale().locale);\n const isDisabled = p.isDisabled || state.isDisabled();\n const isReadOnly = p.isReadOnly || state.isReadOnly();\n const isInvalid = p.isInvalid;\n\n return {\n id: endFieldId,\n \"aria-label\": p.endFieldAriaLabel ?? defaults.endField,\n \"aria-describedby\": getAriaDescribedBy(),\n \"aria-disabled\": isDisabled || undefined,\n \"aria-readonly\": isReadOnly || undefined,\n \"aria-invalid\": isInvalid || undefined,\n tabIndex: isDisabled ? -1 : 0,\n onClick: () => {\n if (!isDisabled) {\n overlayState.open();\n }\n },\n onKeyDown: (event: KeyboardEvent) => {\n if (isDisabled) return;\n if (event.key === \"Enter\" || event.key === \" \" || event.key === \"ArrowDown\") {\n event.preventDefault();\n overlayState.open();\n }\n },\n };\n });\n\n const startInputProps = createMemo(() => {\n const p = getProps();\n const defaults = getDateRangePickerLabelDefaults(locale().locale);\n const isDisabled = p.isDisabled || state.isDisabled();\n const isReadOnly = p.isReadOnly || state.isReadOnly();\n const isInvalid = p.isInvalid;\n\n return {\n id: startFieldId,\n \"aria-label\": p.startFieldAriaLabel ?? defaults.startField,\n \"aria-describedby\": getAriaDescribedBy(),\n \"aria-disabled\": isDisabled || undefined,\n \"aria-readonly\": isReadOnly || undefined,\n \"aria-invalid\": isInvalid || undefined,\n };\n });\n\n const endInputProps = createMemo(() => {\n const p = getProps();\n const defaults = getDateRangePickerLabelDefaults(locale().locale);\n const isDisabled = p.isDisabled || state.isDisabled();\n const isReadOnly = p.isReadOnly || state.isReadOnly();\n const isInvalid = p.isInvalid;\n\n return {\n id: endFieldId,\n \"aria-label\": p.endFieldAriaLabel ?? defaults.endField,\n \"aria-describedby\": getAriaDescribedBy(),\n \"aria-disabled\": isDisabled || undefined,\n \"aria-readonly\": isReadOnly || undefined,\n \"aria-invalid\": isInvalid || undefined,\n };\n });\n\n const buttonProps = createMemo(() => {\n const p = getProps();\n const defaults = getDateRangePickerLabelDefaults(locale().locale);\n const isDisabled = p.isDisabled || state.isDisabled();\n return {\n \"aria-label\": p.buttonAriaLabel ?? defaults.button,\n \"aria-haspopup\": \"dialog\" as const,\n \"aria-expanded\": overlayState.isOpen,\n \"aria-controls\": overlayState.isOpen ? dialogId : undefined,\n disabled: isDisabled,\n tabIndex: 0,\n onClick: () => {\n if (!isDisabled) overlayState.toggle();\n },\n };\n });\n\n const dialogProps = createMemo(() => {\n const defaults = getDateRangePickerLabelDefaults(locale().locale);\n return {\n id: dialogId,\n role: \"dialog\",\n \"aria-modal\": true,\n \"aria-label\": getProps().dialogAriaLabel ?? defaults.dialog,\n };\n });\n\n const calendarProps = createMemo(() => {\n const defaults = getDateRangePickerLabelDefaults(locale().locale);\n return {\n \"aria-label\": getProps().calendarAriaLabel ?? getProps().dialogAriaLabel ?? defaults.calendar,\n };\n });\n\n const descriptionProps = createMemo(() => ({ id: descriptionId }));\n const errorMessageProps = createMemo(() => ({ id: errorMessageId, role: \"alert\" }));\n\n return {\n get groupProps() {\n return groupProps();\n },\n get labelProps() {\n return labelProps as Record<string, unknown>;\n },\n get startFieldProps() {\n return startFieldProps();\n },\n get endFieldProps() {\n return endFieldProps();\n },\n get startInputProps() {\n return startInputProps();\n },\n get endInputProps() {\n return endInputProps();\n },\n get buttonProps() {\n return buttonProps();\n },\n get dialogProps() {\n return dialogProps();\n },\n get calendarProps() {\n return calendarProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get errorMessageProps() {\n return errorMessageProps();\n },\n };\n}\n\nfunction getDateRangePickerLabelDefaults(locale: string): {\n button: string;\n dialog: string;\n calendar: string;\n startField: string;\n endField: string;\n} {\n const language = locale.toLowerCase().split(\"-\")[0] ?? \"en\";\n\n if (language === \"es\") {\n return {\n button: \"Abrir calendario de rango\",\n dialog: \"Calendario de rango\",\n calendar: \"Calendario de rango\",\n startField: \"Fecha de inicio\",\n endField: \"Fecha de fin\",\n };\n }\n\n return {\n button: \"Open range calendar\",\n dialog: \"Range calendar\",\n calendar: \"Range calendar\",\n startField: \"Start date\",\n endField: \"End date\",\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datepicker.js","names":["mergeProps","mergeProps","mergeProps","mergeProps","mergeProps"],"sources":["../../src/datepicker/intl.ts","../../src/datepicker/createDatePickerGroup.ts","../../src/datepicker/createDateField.ts","../../src/datepicker/createDisplayNames.ts","../../src/datepicker/createDateSegment.ts","../../src/datepicker/createTimeField.ts","../../src/datepicker/createDatePicker.ts","../../src/datepicker/createDateRangePicker.ts"],"sourcesContent":["// DateField aria catalog, ported verbatim from @react-aria/datepicker's intl/*.json\n// (34 locales). Covers the field-type display names (era/year/month/day/hour/minute/\n// second/dayPeriod/...) used by the DisplayNames polyfill fallback plus the\n// selected*Description messages. Keep in sync with the vendored source on pin bumps.\nimport { LocalizedStringDictionary, type LocalizedStrings } from \"@internationalized/string\";\n\ntype DatePickerVariables = {\n date?: string;\n startDate?: string;\n endDate?: string;\n time?: string;\n};\ntype DatePickerMessage = string | ((args: DatePickerVariables | undefined) => string);\n\nexport const datePickerStrings: LocalizedStrings<string, DatePickerMessage> = {\n \"ar-AE\": {\n \"calendar\": `\\u{627}\\u{644}\\u{62A}\\u{642}\\u{648}\\u{64A}\\u{645}`,\n \"day\": `\\u{64A}\\u{648}\\u{645}`,\n \"dayPeriod\": `\\u{635}/\\u{645}`,\n \"endDate\": `\\u{62A}\\u{627}\\u{631}\\u{64A}\\u{62E} \\u{627}\\u{644}\\u{627}\\u{646}\\u{62A}\\u{647}\\u{627}\\u{621}`,\n \"era\": `\\u{627}\\u{644}\\u{639}\\u{635}\\u{631}`,\n \"hour\": `\\u{627}\\u{644}\\u{633}\\u{627}\\u{639}\\u{627}\\u{62A}`,\n \"minute\": `\\u{627}\\u{644}\\u{62F}\\u{642}\\u{627}\\u{626}\\u{642}`,\n \"month\": `\\u{627}\\u{644}\\u{634}\\u{647}\\u{631}`,\n \"second\": `\\u{627}\\u{644}\\u{62B}\\u{648}\\u{627}\\u{646}\\u{64A}`,\n \"selectedDateDescription\": (args)=>`\\u{62A}\\u{627}\\u{631}\\u{64A}\\u{62E} \\u{645}\\u{62D}\\u{62F}\\u{62F}: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{627}\\u{644}\\u{645}\\u{62F}\\u{649} \\u{627}\\u{644}\\u{632}\\u{645}\\u{646}\\u{64A} \\u{627}\\u{644}\\u{645}\\u{62D}\\u{62F}\\u{62F}: ${args?.startDate} \\u{625}\\u{644}\\u{649} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{627}\\u{644}\\u{648}\\u{642}\\u{62A} \\u{627}\\u{644}\\u{645}\\u{62D}\\u{62F}\\u{62F}: ${args?.time}`,\n \"startDate\": `\\u{62A}\\u{627}\\u{631}\\u{64A}\\u{62E} \\u{627}\\u{644}\\u{628}\\u{62F}\\u{621}`,\n \"timeZoneName\": `\\u{627}\\u{644}\\u{62A}\\u{648}\\u{642}\\u{64A}\\u{62A}`,\n \"weekday\": `\\u{627}\\u{644}\\u{64A}\\u{648}\\u{645}`,\n \"year\": `\\u{627}\\u{644}\\u{633}\\u{646}\\u{629}`\n },\n \"bg-BG\": {\n \"calendar\": `\\u{41A}\\u{430}\\u{43B}\\u{435}\\u{43D}\\u{434}\\u{430}\\u{440}`,\n \"day\": `\\u{434}\\u{435}\\u{43D}`,\n \"dayPeriod\": `\\u{43F}\\u{440}.\\u{43E}\\u{431}./\\u{441}\\u{43B}.\\u{43E}\\u{431}.`,\n \"endDate\": `\\u{41A}\\u{440}\\u{430}\\u{439}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430}`,\n \"era\": `\\u{435}\\u{440}\\u{430}`,\n \"hour\": `\\u{447}\\u{430}\\u{441}`,\n \"minute\": `\\u{43C}\\u{438}\\u{43D}\\u{443}\\u{442}\\u{430}`,\n \"month\": `\\u{43C}\\u{435}\\u{441}\\u{435}\\u{446}`,\n \"second\": `\\u{441}\\u{435}\\u{43A}\\u{443}\\u{43D}\\u{434}\\u{430}`,\n \"selectedDateDescription\": (args)=>`\\u{418}\\u{437}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430}: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{418}\\u{437}\\u{431}\\u{440}\\u{430}\\u{43D} \\u{434}\\u{438}\\u{430}\\u{43F}\\u{430}\\u{437}\\u{43E}\\u{43D}: ${args?.startDate} \\u{434}\\u{43E} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{418}\\u{437}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43E} \\u{432}\\u{440}\\u{435}\\u{43C}\\u{435}: ${args?.time}`,\n \"startDate\": `\\u{41D}\\u{430}\\u{447}\\u{430}\\u{43B}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430}`,\n \"timeZoneName\": `\\u{447}\\u{430}\\u{441}\\u{43E}\\u{432}\\u{430} \\u{437}\\u{43E}\\u{43D}\\u{430}`,\n \"weekday\": `\\u{434}\\u{435}\\u{43D} \\u{43E}\\u{442} \\u{441}\\u{435}\\u{434}\\u{43C}\\u{438}\\u{446}\\u{430}\\u{442}\\u{430}`,\n \"year\": `\\u{433}\\u{43E}\\u{434}\\u{438}\\u{43D}\\u{430}`\n },\n \"cs-CZ\": {\n \"calendar\": `Kalend\\xe1\\u{159}`,\n \"day\": `den`,\n \"dayPeriod\": `\\u{10D}\\xe1st dne`,\n \"endDate\": `Kone\\u{10D}n\\xe9 datum`,\n \"era\": `letopo\\u{10D}et`,\n \"hour\": `hodina`,\n \"minute\": `minuta`,\n \"month\": `m\\u{11B}s\\xedc`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Vybran\\xe9 datum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Vybran\\xe9 obdob\\xed: ${args?.startDate} a\\u{17E} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Vybran\\xfd \\u{10D}as: ${args?.time}`,\n \"startDate\": `Po\\u{10D}\\xe1te\\u{10D}n\\xed datum`,\n \"timeZoneName\": `\\u{10D}asov\\xe9 p\\xe1smo`,\n \"weekday\": `den v t\\xfddnu`,\n \"year\": `rok`\n },\n \"da-DK\": {\n \"calendar\": `Kalender`,\n \"day\": `dag`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `Slutdato`,\n \"era\": `\\xe6ra`,\n \"hour\": `time`,\n \"minute\": `minut`,\n \"month\": `m\\xe5ned`,\n \"second\": `sekund`,\n \"selectedDateDescription\": (args)=>`Valgt dato: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Valgt interval: ${args?.startDate} til ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Valgt tidspunkt: ${args?.time}`,\n \"startDate\": `Startdato`,\n \"timeZoneName\": `tidszone`,\n \"weekday\": `ugedag`,\n \"year\": `\\xe5r`\n },\n \"de-DE\": {\n \"calendar\": `Kalender`,\n \"day\": `Tag`,\n \"dayPeriod\": `Tagesh\\xe4lfte`,\n \"endDate\": `Enddatum`,\n \"era\": `Epoche`,\n \"hour\": `Stunde`,\n \"minute\": `Minute`,\n \"month\": `Monat`,\n \"second\": `Sekunde`,\n \"selectedDateDescription\": (args)=>`Ausgew\\xe4hltes Datum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Ausgew\\xe4hlter Bereich: ${args?.startDate} bis ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Ausgew\\xe4hlte Zeit: ${args?.time}`,\n \"startDate\": `Startdatum`,\n \"timeZoneName\": `Zeitzone`,\n \"weekday\": `Wochentag`,\n \"year\": `Jahr`\n },\n \"el-GR\": {\n \"calendar\": `\\u{397}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BB}\\u{3CC}\\u{3B3}\\u{3B9}\\u{3BF}`,\n \"day\": `\\u{3B7}\\u{3BC}\\u{3AD}\\u{3C1}\\u{3B1}`,\n \"dayPeriod\": `\\u{3C0}.\\u{3BC}./\\u{3BC}.\\u{3BC}.`,\n \"endDate\": `\\u{397}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1} \\u{3BB}\\u{3AE}\\u{3BE}\\u{3B7}\\u{3C2}`,\n \"era\": `\\u{3C0}\\u{3B5}\\u{3C1}\\u{3AF}\\u{3BF}\\u{3B4}\\u{3BF}\\u{3C2}`,\n \"hour\": `\\u{3CE}\\u{3C1}\\u{3B1}`,\n \"minute\": `\\u{3BB}\\u{3B5}\\u{3C0}\\u{3C4}\\u{3CC}`,\n \"month\": `\\u{3BC}\\u{3AE}\\u{3BD}\\u{3B1}\\u{3C2}`,\n \"second\": `\\u{3B4}\\u{3B5}\\u{3C5}\\u{3C4}\\u{3B5}\\u{3C1}\\u{3CC}\\u{3BB}\\u{3B5}\\u{3C0}\\u{3C4}\\u{3BF}`,\n \"selectedDateDescription\": (args)=>`\\u{395}\\u{3C0}\\u{3B9}\\u{3BB}\\u{3B5}\\u{3B3}\\u{3BC}\\u{3AD}\\u{3BD}\\u{3B7} \\u{3B7}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1}: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{395}\\u{3C0}\\u{3B9}\\u{3BB}\\u{3B5}\\u{3B3}\\u{3BC}\\u{3AD}\\u{3BD}\\u{3BF} \\u{3B5}\\u{3CD}\\u{3C1}\\u{3BF}\\u{3C2}: ${args?.startDate} \\u{3AD}\\u{3C9}\\u{3C2} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{395}\\u{3C0}\\u{3B9}\\u{3BB}\\u{3B5}\\u{3B3}\\u{3BC}\\u{3AD}\\u{3BD}\\u{3B7} \\u{3CE}\\u{3C1}\\u{3B1}: ${args?.time}`,\n \"startDate\": `\\u{397}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3BF}\\u{3BC}\\u{3B7}\\u{3BD}\\u{3AF}\\u{3B1} \\u{3AD}\\u{3BD}\\u{3B1}\\u{3C1}\\u{3BE}\\u{3B7}\\u{3C2}`,\n \"timeZoneName\": `\\u{3B6}\\u{3CE}\\u{3BD}\\u{3B7} \\u{3CE}\\u{3C1}\\u{3B1}\\u{3C2}`,\n \"weekday\": `\\u{3BA}\\u{3B1}\\u{3B8}\\u{3B7}\\u{3BC}\\u{3B5}\\u{3C1}\\u{3B9}\\u{3BD}\\u{3AE}`,\n \"year\": `\\u{3AD}\\u{3C4}\\u{3BF}\\u{3C2}`\n },\n \"en-US\": {\n \"era\": `era`,\n \"year\": `year`,\n \"month\": `month`,\n \"day\": `day`,\n \"hour\": `hour`,\n \"minute\": `minute`,\n \"second\": `second`,\n \"dayPeriod\": `AM/PM`,\n \"calendar\": `Calendar`,\n \"startDate\": `Start Date`,\n \"endDate\": `End Date`,\n \"weekday\": `day of the week`,\n \"timeZoneName\": `time zone`,\n \"selectedDateDescription\": (args)=>`Selected Date: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Selected Range: ${args?.startDate} to ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Selected Time: ${args?.time}`\n },\n \"es-ES\": {\n \"calendar\": `Calendario`,\n \"day\": `d\\xeda`,\n \"dayPeriod\": `a.\\xa0m./p.\\xa0m.`,\n \"endDate\": `Fecha final`,\n \"era\": `era`,\n \"hour\": `hora`,\n \"minute\": `minuto`,\n \"month\": `mes`,\n \"second\": `segundo`,\n \"selectedDateDescription\": (args)=>`Fecha seleccionada: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Rango seleccionado: ${args?.startDate} a ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Hora seleccionada: ${args?.time}`,\n \"startDate\": `Fecha de inicio`,\n \"timeZoneName\": `zona horaria`,\n \"weekday\": `d\\xeda de la semana`,\n \"year\": `a\\xf1o`\n },\n \"et-EE\": {\n \"calendar\": `Kalender`,\n \"day\": `p\\xe4ev`,\n \"dayPeriod\": `enne/p\\xe4rast l\\xf5unat`,\n \"endDate\": `L\\xf5ppkuup\\xe4ev`,\n \"era\": `ajastu`,\n \"hour\": `tund`,\n \"minute\": `minut`,\n \"month\": `kuu`,\n \"second\": `sekund`,\n \"selectedDateDescription\": (args)=>`Valitud kuup\\xe4ev: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Valitud vahemik: ${args?.startDate} kuni ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Valitud aeg: ${args?.time}`,\n \"startDate\": `Alguskuup\\xe4ev`,\n \"timeZoneName\": `ajav\\xf6\\xf6nd`,\n \"weekday\": `n\\xe4dalap\\xe4ev`,\n \"year\": `aasta`\n },\n \"fi-FI\": {\n \"calendar\": `Kalenteri`,\n \"day\": `p\\xe4iv\\xe4`,\n \"dayPeriod\": `vuorokaudenaika`,\n \"endDate\": `P\\xe4\\xe4ttymisp\\xe4iv\\xe4`,\n \"era\": `aikakausi`,\n \"hour\": `tunti`,\n \"minute\": `minuutti`,\n \"month\": `kuukausi`,\n \"second\": `sekunti`,\n \"selectedDateDescription\": (args)=>`Valittu p\\xe4iv\\xe4m\\xe4\\xe4r\\xe4: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Valittu aikav\\xe4li: ${args?.startDate} \\u{2013} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Valittu aika: ${args?.time}`,\n \"startDate\": `Alkamisp\\xe4iv\\xe4`,\n \"timeZoneName\": `aikavy\\xf6hyke`,\n \"weekday\": `viikonp\\xe4iv\\xe4`,\n \"year\": `vuosi`\n },\n \"fr-FR\": {\n \"calendar\": `Calendrier`,\n \"day\": `jour`,\n \"dayPeriod\": `cadran`,\n \"endDate\": `Date de fin`,\n \"era\": `\\xe8re`,\n \"hour\": `heure`,\n \"minute\": `minute`,\n \"month\": `mois`,\n \"second\": `seconde`,\n \"selectedDateDescription\": (args)=>`Date s\\xe9lectionn\\xe9e\\xa0: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Plage s\\xe9lectionn\\xe9e\\xa0: ${args?.startDate} au ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Heure choisie\\xa0: ${args?.time}`,\n \"startDate\": `Date de d\\xe9but`,\n \"timeZoneName\": `fuseau horaire`,\n \"weekday\": `jour de la semaine`,\n \"year\": `ann\\xe9e`\n },\n \"he-IL\": {\n \"calendar\": `\\u{5DC}\\u{5D5}\\u{5D7} \\u{5E9}\\u{5E0}\\u{5D4}`,\n \"day\": `\\u{5D9}\\u{5D5}\\u{5DD}`,\n \"dayPeriod\": `\\u{5DC}\\u{5E4}\\u{5E0}\\u{5D4}\\u{5F4}\\u{5E6}/\\u{5D0}\\u{5D7}\\u{5D4}\\u{5F4}\\u{5E6}`,\n \"endDate\": `\\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5E1}\\u{5D9}\\u{5D5}\\u{5DD}`,\n \"era\": `\\u{5EA}\\u{5E7}\\u{5D5}\\u{5E4}\\u{5D4}`,\n \"hour\": `\\u{5E9}\\u{5E2}\\u{5D4}`,\n \"minute\": `\\u{5D3}\\u{5E7}\\u{5D4}`,\n \"month\": `\\u{5D7}\\u{5D5}\\u{5D3}\\u{5E9}`,\n \"second\": `\\u{5E9}\\u{5E0}\\u{5D9}\\u{5D9}\\u{5D4}`,\n \"selectedDateDescription\": (args)=>`\\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5E0}\\u{5D1}\\u{5D7}\\u{5E8}: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{5D8}\\u{5D5}\\u{5D5}\\u{5D7} \\u{5E0}\\u{5D1}\\u{5D7}\\u{5E8}: ${args?.startDate} \\u{5E2}\\u{5D3} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{5D6}\\u{5DE}\\u{5DF} \\u{5E0}\\u{5D1}\\u{5D7}\\u{5E8}: ${args?.time}`,\n \"startDate\": `\\u{5EA}\\u{5D0}\\u{5E8}\\u{5D9}\\u{5DA} \\u{5D4}\\u{5EA}\\u{5D7}\\u{5DC}\\u{5D4}`,\n \"timeZoneName\": `\\u{5D0}\\u{5D6}\\u{5D5}\\u{5E8} \\u{5D6}\\u{5DE}\\u{5DF}`,\n \"weekday\": `\\u{5D9}\\u{5D5}\\u{5DD} \\u{5D1}\\u{5E9}\\u{5D1}\\u{5D5}\\u{5E2}`,\n \"year\": `\\u{5E9}\\u{5E0}\\u{5D4}`\n },\n \"hr-HR\": {\n \"calendar\": `Kalendar`,\n \"day\": `dan`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `Datum zavr\\u{161}etka`,\n \"era\": `era`,\n \"hour\": `sat`,\n \"minute\": `minuta`,\n \"month\": `mjesec`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Odabrani datum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Odabrani raspon: ${args?.startDate} do ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Odabrano vrijeme: ${args?.time}`,\n \"startDate\": `Datum po\\u{10D}etka`,\n \"timeZoneName\": `vremenska zona`,\n \"weekday\": `dan u tjednu`,\n \"year\": `godina`\n },\n \"hu-HU\": {\n \"calendar\": `Napt\\xe1r`,\n \"day\": `nap`,\n \"dayPeriod\": `napszak`,\n \"endDate\": `Befejez\\u{151} d\\xe1tum`,\n \"era\": `\\xe9ra`,\n \"hour\": `\\xf3ra`,\n \"minute\": `perc`,\n \"month\": `h\\xf3nap`,\n \"second\": `m\\xe1sodperc`,\n \"selectedDateDescription\": (args)=>`Kijel\\xf6lt d\\xe1tum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Kijel\\xf6lt tartom\\xe1ny: ${args?.startDate}\\u{2013}${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Kijel\\xf6lt id\\u{151}: ${args?.time}`,\n \"startDate\": `Kezd\\u{151} d\\xe1tum`,\n \"timeZoneName\": `id\\u{151}z\\xf3na`,\n \"weekday\": `h\\xe9t napja`,\n \"year\": `\\xe9v`\n },\n \"it-IT\": {\n \"calendar\": `Calendario`,\n \"day\": `giorno`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `Data finale`,\n \"era\": `era`,\n \"hour\": `ora`,\n \"minute\": `minuto`,\n \"month\": `mese`,\n \"second\": `secondo`,\n \"selectedDateDescription\": (args)=>`Data selezionata: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Intervallo selezionato: da ${args?.startDate} a ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Ora selezionata: ${args?.time}`,\n \"startDate\": `Data iniziale`,\n \"timeZoneName\": `fuso orario`,\n \"weekday\": `giorno della settimana`,\n \"year\": `anno`\n },\n \"ja-JP\": {\n \"calendar\": `\\u{30AB}\\u{30EC}\\u{30F3}\\u{30C0}\\u{30FC}`,\n \"day\": `\\u{65E5}`,\n \"dayPeriod\": `\\u{5348}\\u{524D}/\\u{5348}\\u{5F8C}`,\n \"endDate\": `\\u{7D42}\\u{4E86}\\u{65E5}`,\n \"era\": `\\u{6642}\\u{4EE3}`,\n \"hour\": `\\u{6642}`,\n \"minute\": `\\u{5206}`,\n \"month\": `\\u{6708}`,\n \"second\": `\\u{79D2}`,\n \"selectedDateDescription\": (args)=>`\\u{9078}\\u{629E}\\u{3057}\\u{305F}\\u{65E5}\\u{4ED8} : ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{9078}\\u{629E}\\u{7BC4}\\u{56F2} : ${args?.startDate} \\u{304B}\\u{3089} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{9078}\\u{629E}\\u{3057}\\u{305F}\\u{6642}\\u{9593} : ${args?.time}`,\n \"startDate\": `\\u{958B}\\u{59CB}\\u{65E5}`,\n \"timeZoneName\": `\\u{30BF}\\u{30A4}\\u{30E0}\\u{30BE}\\u{30FC}\\u{30F3}`,\n \"weekday\": `\\u{66DC}\\u{65E5}`,\n \"year\": `\\u{5E74}`\n },\n \"ko-KR\": {\n \"calendar\": `\\u{B2EC}\\u{B825}`,\n \"day\": `\\u{C77C}`,\n \"dayPeriod\": `\\u{C624}\\u{C804}/\\u{C624}\\u{D6C4}`,\n \"endDate\": `\\u{C885}\\u{B8CC}\\u{C77C}`,\n \"era\": `\\u{C5F0}\\u{D638}`,\n \"hour\": `\\u{C2DC}`,\n \"minute\": `\\u{BD84}`,\n \"month\": `\\u{C6D4}`,\n \"second\": `\\u{CD08}`,\n \"selectedDateDescription\": (args)=>`\\u{C120}\\u{D0DD} \\u{C77C}\\u{C790}: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{C120}\\u{D0DD} \\u{BC94}\\u{C704}: ${args?.startDate} ~ ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{C120}\\u{D0DD} \\u{C2DC}\\u{AC04}: ${args?.time}`,\n \"startDate\": `\\u{C2DC}\\u{C791}\\u{C77C}`,\n \"timeZoneName\": `\\u{C2DC}\\u{AC04}\\u{B300}`,\n \"weekday\": `\\u{C694}\\u{C77C}`,\n \"year\": `\\u{B144}`\n },\n \"lt-LT\": {\n \"calendar\": `Kalendorius`,\n \"day\": `diena`,\n \"dayPeriod\": `iki piet\\u{173} / po piet\\u{173}`,\n \"endDate\": `Pabaigos data`,\n \"era\": `era`,\n \"hour\": `valanda`,\n \"minute\": `minut\\u{117}`,\n \"month\": `m\\u{117}nuo`,\n \"second\": `sekund\\u{117}`,\n \"selectedDateDescription\": (args)=>`Pasirinkta data: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Pasirinktas intervalas: nuo ${args?.startDate} iki ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Pasirinktas laikas: ${args?.time}`,\n \"startDate\": `Prad\\u{17E}ios data`,\n \"timeZoneName\": `laiko juosta`,\n \"weekday\": `savait\\u{117}s diena`,\n \"year\": `metai`\n },\n \"lv-LV\": {\n \"calendar\": `Kalend\\u{101}rs`,\n \"day\": `diena`,\n \"dayPeriod\": `priek\\u{161}pusdien\\u{101}/p\\u{113}cpusdien\\u{101}`,\n \"endDate\": `Beigu datums`,\n \"era\": `\\u{113}ra`,\n \"hour\": `stundas`,\n \"minute\": `min\\u{16B}tes`,\n \"month\": `m\\u{113}nesis`,\n \"second\": `sekundes`,\n \"selectedDateDescription\": (args)=>`Atlas\\u{12B}tais datums: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Atlas\\u{12B}tais diapazons: no ${args?.startDate} l\\u{12B}dz ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Atlas\\u{12B}tais laiks: ${args?.time}`,\n \"startDate\": `S\\u{101}kuma datums`,\n \"timeZoneName\": `laika josla`,\n \"weekday\": `ned\\u{113}\\u{13C}as diena`,\n \"year\": `gads`\n },\n \"nb-NO\": {\n \"calendar\": `Kalender`,\n \"day\": `dag`,\n \"dayPeriod\": `a.m./p.m.`,\n \"endDate\": `Sluttdato`,\n \"era\": `tidsalder`,\n \"hour\": `time`,\n \"minute\": `minutt`,\n \"month\": `m\\xe5ned`,\n \"second\": `sekund`,\n \"selectedDateDescription\": (args)=>`Valgt dato: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Valgt omr\\xe5de: ${args?.startDate} til ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Valgt tid: ${args?.time}`,\n \"startDate\": `Startdato`,\n \"timeZoneName\": `tidssone`,\n \"weekday\": `ukedag`,\n \"year\": `\\xe5r`\n },\n \"nl-NL\": {\n \"calendar\": `Kalender`,\n \"day\": `dag`,\n \"dayPeriod\": `a.m./p.m.`,\n \"endDate\": `Einddatum`,\n \"era\": `tijdperk`,\n \"hour\": `uur`,\n \"minute\": `minuut`,\n \"month\": `maand`,\n \"second\": `seconde`,\n \"selectedDateDescription\": (args)=>`Geselecteerde datum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Geselecteerd bereik: ${args?.startDate} tot ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Geselecteerde tijd: ${args?.time}`,\n \"startDate\": `Startdatum`,\n \"timeZoneName\": `tijdzone`,\n \"weekday\": `dag van de week`,\n \"year\": `jaar`\n },\n \"pl-PL\": {\n \"calendar\": `Kalendarz`,\n \"day\": `dzie\\u{144}`,\n \"dayPeriod\": `rano / po po\\u{142}udniu / wieczorem`,\n \"endDate\": `Data ko\\u{144}cowa`,\n \"era\": `era`,\n \"hour\": `godzina`,\n \"minute\": `minuta`,\n \"month\": `miesi\\u{105}c`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Wybrana data: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Wybrany zakres: ${args?.startDate} do ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Wybrany czas: ${args?.time}`,\n \"startDate\": `Data pocz\\u{105}tkowa`,\n \"timeZoneName\": `strefa czasowa`,\n \"weekday\": `dzie\\u{144} tygodnia`,\n \"year\": `rok`\n },\n \"pt-BR\": {\n \"calendar\": `Calend\\xe1rio`,\n \"day\": `dia`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `Data final`,\n \"era\": `era`,\n \"hour\": `hora`,\n \"minute\": `minuto`,\n \"month\": `m\\xeas`,\n \"second\": `segundo`,\n \"selectedDateDescription\": (args)=>`Data selecionada: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Intervalo selecionado: ${args?.startDate} a ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Hora selecionada: ${args?.time}`,\n \"startDate\": `Data inicial`,\n \"timeZoneName\": `fuso hor\\xe1rio`,\n \"weekday\": `dia da semana`,\n \"year\": `ano`\n },\n \"pt-PT\": {\n \"calendar\": `Calend\\xe1rio`,\n \"day\": `dia`,\n \"dayPeriod\": `am/pm`,\n \"endDate\": `Data de T\\xe9rmino`,\n \"era\": `era`,\n \"hour\": `hora`,\n \"minute\": `minuto`,\n \"month\": `m\\xeas`,\n \"second\": `segundo`,\n \"selectedDateDescription\": (args)=>`Data selecionada: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Intervalo selecionado: ${args?.startDate} a ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Hora selecionada: ${args?.time}`,\n \"startDate\": `Data de In\\xedcio`,\n \"timeZoneName\": `fuso hor\\xe1rio`,\n \"weekday\": `dia da semana`,\n \"year\": `ano`\n },\n \"ro-RO\": {\n \"calendar\": `Calendar`,\n \"day\": `zi`,\n \"dayPeriod\": `a.m/p.m.`,\n \"endDate\": `Dat\\u{103} final`,\n \"era\": `er\\u{103}`,\n \"hour\": `or\\u{103}`,\n \"minute\": `minut`,\n \"month\": `lun\\u{103}`,\n \"second\": `secund\\u{103}`,\n \"selectedDateDescription\": (args)=>`Dat\\u{103} selectat\\u{103}: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Interval selectat: de la ${args?.startDate} p\\xe2n\\u{103} la ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Ora selectat\\u{103}: ${args?.time}`,\n \"startDate\": `Dat\\u{103} \\xeenceput`,\n \"timeZoneName\": `fus orar`,\n \"weekday\": `ziua din s\\u{103}pt\\u{103}m\\xe2n\\u{103}`,\n \"year\": `an`\n },\n \"ru-RU\": {\n \"calendar\": `\\u{41A}\\u{430}\\u{43B}\\u{435}\\u{43D}\\u{434}\\u{430}\\u{440}\\u{44C}`,\n \"day\": `\\u{434}\\u{435}\\u{43D}\\u{44C}`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{43E}\\u{43A}\\u{43E}\\u{43D}\\u{447}\\u{430}\\u{43D}\\u{438}\\u{44F}`,\n \"era\": `\\u{44D}\\u{440}\\u{430}`,\n \"hour\": `\\u{447}\\u{430}\\u{441}`,\n \"minute\": `\\u{43C}\\u{438}\\u{43D}\\u{443}\\u{442}\\u{430}`,\n \"month\": `\\u{43C}\\u{435}\\u{441}\\u{44F}\\u{446}`,\n \"second\": `\\u{441}\\u{435}\\u{43A}\\u{443}\\u{43D}\\u{434}\\u{430}`,\n \"selectedDateDescription\": (args)=>`\\u{412}\\u{44B}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43D}\\u{430}\\u{44F} \\u{434}\\u{430}\\u{442}\\u{430}: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{412}\\u{44B}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43D}\\u{44B}\\u{439} \\u{434}\\u{438}\\u{430}\\u{43F}\\u{430}\\u{437}\\u{43E}\\u{43D}: \\u{441} ${args?.startDate} \\u{43F}\\u{43E} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{412}\\u{44B}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{43D}\\u{43E}\\u{435} \\u{432}\\u{440}\\u{435}\\u{43C}\\u{44F}: ${args?.time}`,\n \"startDate\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{43D}\\u{430}\\u{447}\\u{430}\\u{43B}\\u{430}`,\n \"timeZoneName\": `\\u{447}\\u{430}\\u{441}\\u{43E}\\u{432}\\u{43E}\\u{439} \\u{43F}\\u{43E}\\u{44F}\\u{441}`,\n \"weekday\": `\\u{434}\\u{435}\\u{43D}\\u{44C} \\u{43D}\\u{435}\\u{434}\\u{435}\\u{43B}\\u{438}`,\n \"year\": `\\u{433}\\u{43E}\\u{434}`\n },\n \"sk-SK\": {\n \"calendar\": `Kalend\\xe1r`,\n \"day\": `de\\u{148}`,\n \"dayPeriod\": `AM/PM`,\n \"endDate\": `D\\xe1tum ukon\\u{10D}enia`,\n \"era\": `letopo\\u{10D}et`,\n \"hour\": `hodina`,\n \"minute\": `min\\xfata`,\n \"month\": `mesiac`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Vybrat\\xfd d\\xe1tum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Vybrat\\xfd rozsah: od ${args?.startDate} do ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Vybrat\\xfd \\u{10D}as: ${args?.time}`,\n \"startDate\": `D\\xe1tum za\\u{10D}atia`,\n \"timeZoneName\": `\\u{10D}asov\\xe9 p\\xe1smo`,\n \"weekday\": `de\\u{148} t\\xfd\\u{17E}d\\u{148}a`,\n \"year\": `rok`\n },\n \"sl-SI\": {\n \"calendar\": `Koledar`,\n \"day\": `dan`,\n \"dayPeriod\": `dop/pop`,\n \"endDate\": `Datum konca`,\n \"era\": `doba`,\n \"hour\": `ura`,\n \"minute\": `minuta`,\n \"month\": `mesec`,\n \"second\": `sekunda`,\n \"selectedDateDescription\": (args)=>`Izbrani datum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Izbrano obmo\\u{10D}je: ${args?.startDate} do ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Izbrani \\u{10D}as: ${args?.time}`,\n \"startDate\": `Datum za\\u{10D}etka`,\n \"timeZoneName\": `\\u{10D}asovni pas`,\n \"weekday\": `dan v tednu`,\n \"year\": `leto`\n },\n \"sr-SP\": {\n \"calendar\": `Kalendar`,\n \"day\": `\\u{434}\\u{430}\\u{43D}`,\n \"dayPeriod\": `\\u{43F}\\u{440}\\u{435} \\u{43F}\\u{43E}\\u{434}\\u{43D}\\u{435}/\\u{43F}\\u{43E} \\u{43F}\\u{43E}\\u{434}\\u{43D}\\u{435}`,\n \"endDate\": `Datum zavr\\u{161}etka`,\n \"era\": `\\u{435}\\u{440}\\u{430}`,\n \"hour\": `\\u{441}\\u{430}\\u{442}`,\n \"minute\": `\\u{43C}\\u{438}\\u{43D}\\u{443}\\u{442}`,\n \"month\": `\\u{43C}\\u{435}\\u{441}\\u{435}\\u{446}`,\n \"second\": `\\u{441}\\u{435}\\u{43A}\\u{443}\\u{43D}\\u{434}`,\n \"selectedDateDescription\": (args)=>`Izabrani datum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Izabrani opseg: od ${args?.startDate} do ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Izabrano vreme: ${args?.time}`,\n \"startDate\": `Datum po\\u{10D}etka`,\n \"timeZoneName\": `\\u{432}\\u{440}\\u{435}\\u{43C}\\u{435}\\u{43D}\\u{441}\\u{43A}\\u{430} \\u{437}\\u{43E}\\u{43D}\\u{430}`,\n \"weekday\": `\\u{434}\\u{430}\\u{43D} \\u{443} \\u{43D}\\u{435}\\u{434}\\u{435}\\u{459}\\u{438}`,\n \"year\": `\\u{433}\\u{43E}\\u{434}\\u{438}\\u{43D}\\u{430}`\n },\n \"sv-SE\": {\n \"calendar\": `Kalender`,\n \"day\": `dag`,\n \"dayPeriod\": `fm/em`,\n \"endDate\": `Slutdatum`,\n \"era\": `era`,\n \"hour\": `timme`,\n \"minute\": `minut`,\n \"month\": `m\\xe5nad`,\n \"second\": `sekund`,\n \"selectedDateDescription\": (args)=>`Valt datum: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Valt intervall: ${args?.startDate} till ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Vald tid: ${args?.time}`,\n \"startDate\": `Startdatum`,\n \"timeZoneName\": `tidszon`,\n \"weekday\": `veckodag`,\n \"year\": `\\xe5r`\n },\n \"tr-TR\": {\n \"calendar\": `Takvim`,\n \"day\": `g\\xfcn`,\n \"dayPeriod\": `\\xd6\\xd6/\\xd6S`,\n \"endDate\": `Biti\\u{15F} Tarihi`,\n \"era\": `\\xe7a\\u{11F}`,\n \"hour\": `saat`,\n \"minute\": `dakika`,\n \"month\": `ay`,\n \"second\": `saniye`,\n \"selectedDateDescription\": (args)=>`Se\\xe7ilen Tarih: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`Se\\xe7ilen Aral\\u{131}k: ${args?.startDate} - ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`Se\\xe7ilen Zaman: ${args?.time}`,\n \"startDate\": `Ba\\u{15F}lang\\u{131}\\xe7 Tarihi`,\n \"timeZoneName\": `saat dilimi`,\n \"weekday\": `haftan\\u{131}n g\\xfcn\\xfc`,\n \"year\": `y\\u{131}l`\n },\n \"uk-UA\": {\n \"calendar\": `\\u{41A}\\u{430}\\u{43B}\\u{435}\\u{43D}\\u{434}\\u{430}\\u{440}`,\n \"day\": `\\u{434}\\u{435}\\u{43D}\\u{44C}`,\n \"dayPeriod\": `\\u{434}\\u{43F}/\\u{43F}\\u{43F}`,\n \"endDate\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{437}\\u{430}\\u{432}\\u{435}\\u{440}\\u{448}\\u{435}\\u{43D}\\u{43D}\\u{44F}`,\n \"era\": `\\u{435}\\u{440}\\u{430}`,\n \"hour\": `\\u{433}\\u{43E}\\u{434}\\u{438}\\u{43D}\\u{430}`,\n \"minute\": `\\u{445}\\u{432}\\u{438}\\u{43B}\\u{438}\\u{43D}\\u{430}`,\n \"month\": `\\u{43C}\\u{456}\\u{441}\\u{44F}\\u{446}\\u{44C}`,\n \"second\": `\\u{441}\\u{435}\\u{43A}\\u{443}\\u{43D}\\u{434}\\u{430}`,\n \"selectedDateDescription\": (args)=>`\\u{412}\\u{438}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{430} \\u{434}\\u{430}\\u{442}\\u{430}: ${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{412}\\u{438}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{438}\\u{439} \\u{434}\\u{456}\\u{430}\\u{43F}\\u{430}\\u{437}\\u{43E}\\u{43D}: ${args?.startDate} \\u{2014} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{412}\\u{438}\\u{431}\\u{440}\\u{430}\\u{43D}\\u{438}\\u{439} \\u{447}\\u{430}\\u{441}: ${args?.time}`,\n \"startDate\": `\\u{414}\\u{430}\\u{442}\\u{430} \\u{43F}\\u{43E}\\u{447}\\u{430}\\u{442}\\u{43A}\\u{443}`,\n \"timeZoneName\": `\\u{447}\\u{430}\\u{441}\\u{43E}\\u{432}\\u{438}\\u{439} \\u{43F}\\u{43E}\\u{44F}\\u{441}`,\n \"weekday\": `\\u{434}\\u{435}\\u{43D}\\u{44C} \\u{442}\\u{438}\\u{436}\\u{43D}\\u{44F}`,\n \"year\": `\\u{440}\\u{456}\\u{43A}`\n },\n \"zh-CN\": {\n \"calendar\": `\\u{65E5}\\u{5386}`,\n \"day\": `\\u{65E5}`,\n \"dayPeriod\": `\\u{4E0A}\\u{5348}/\\u{4E0B}\\u{5348}`,\n \"endDate\": `\\u{7ED3}\\u{675F}\\u{65E5}\\u{671F}`,\n \"era\": `\\u{7EAA}\\u{5143}`,\n \"hour\": `\\u{5C0F}\\u{65F6}`,\n \"minute\": `\\u{5206}\\u{949F}`,\n \"month\": `\\u{6708}`,\n \"second\": `\\u{79D2}`,\n \"selectedDateDescription\": (args)=>`\\u{9009}\\u{5B9A}\\u{7684}\\u{65E5}\\u{671F}\\u{FF1A}${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{9009}\\u{5B9A}\\u{7684}\\u{8303}\\u{56F4}\\u{FF1A}${args?.startDate} \\u{81F3} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{9009}\\u{5B9A}\\u{7684}\\u{65F6}\\u{95F4}\\u{FF1A}${args?.time}`,\n \"startDate\": `\\u{5F00}\\u{59CB}\\u{65E5}\\u{671F}`,\n \"timeZoneName\": `\\u{65F6}\\u{533A}`,\n \"weekday\": `\\u{5DE5}\\u{4F5C}\\u{65E5}`,\n \"year\": `\\u{5E74}`\n },\n \"zh-TW\": {\n \"calendar\": `\\u{65E5}\\u{66C6}`,\n \"day\": `\\u{65E5}`,\n \"dayPeriod\": `\\u{4E0A}\\u{5348}/\\u{4E0B}\\u{5348}`,\n \"endDate\": `\\u{7D50}\\u{675F}\\u{65E5}\\u{671F}`,\n \"era\": `\\u{7EAA}\\u{5143}`,\n \"hour\": `\\u{5C0F}\\u{65F6}`,\n \"minute\": `\\u{5206}\\u{949F}`,\n \"month\": `\\u{6708}`,\n \"second\": `\\u{79D2}`,\n \"selectedDateDescription\": (args)=>`\\u{9078}\\u{5B9A}\\u{7684}\\u{65E5}\\u{671F}\\u{FF1A}${args?.date}`,\n \"selectedRangeDescription\": (args)=>`\\u{9078}\\u{5B9A}\\u{7684}\\u{7BC4}\\u{570D}\\u{FF1A}${args?.startDate} \\u{81F3} ${args?.endDate}`,\n \"selectedTimeDescription\": (args)=>`\\u{9078}\\u{5B9A}\\u{7684}\\u{6642}\\u{9593}\\u{FF1A}${args?.time}`,\n \"startDate\": `\\u{958B}\\u{59CB}\\u{65E5}\\u{671F}`,\n \"timeZoneName\": `\\u{65F6}\\u{533A}`,\n \"weekday\": `\\u{5DE5}\\u{4F5C}\\u{65E5}`,\n \"year\": `\\u{5E74}`\n },\n};\n\nexport const datePickerDictionary = new LocalizedStringDictionary<string, DatePickerMessage>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n datePickerStrings as any,\n);\n","/**\n * createDatePickerGroup hook for Solidaria\n *\n * Provides keyboard (arrow navigation between segments) and pointer (focus the\n * last non-placeholder segment on press) behavior for the date field group.\n * Faithful port of @react-aria/datepicker `useDatePickerGroup`: LTR arrow\n * navigation goes through the focus manager, RTL uses geometric segment lookup,\n * and alt+ArrowDown/Up opens the popover only when the state exposes `setOpen`\n * (i.e. a date picker, never a standalone field).\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { useLocale } from \"../i18n\";\nimport { createPress } from \"../interactions/createPress\";\nimport { createFocusManager } from \"../focus/FocusScope\";\nimport { getFocusableTreeWalker } from \"../utils/dom\";\nimport { nodeContains, getEventTarget } from \"../utils\";\n\nexport interface DatePickerGroupState {\n setOpen?: (isOpen: boolean) => void;\n}\n\n/**\n * Provides keyboard and pointer behavior for the date field/picker segment group.\n */\nexport function createDatePickerGroup(\n state: DatePickerGroupState,\n ref: () => HTMLElement | null,\n disableArrowNavigation?: boolean,\n): Accessor<Record<string, unknown>> {\n const localeInfo = useLocale();\n const focusManager = createFocusManager(ref);\n\n // Geometric segment lookup for RTL, where DOM order does not match visual order.\n const findNextSegment = (group: HTMLElement, fromX: number, direction: number): HTMLElement | null => {\n const walker = getFocusableTreeWalker(group, { tabbable: true });\n let node = walker.nextNode() as HTMLElement | null;\n let closest: HTMLElement | null = null;\n let closestDistance = Infinity;\n while (node) {\n const x = node.getBoundingClientRect().left;\n const distance = x - fromX;\n const absoluteDistance = Math.abs(distance);\n if (Math.sign(distance) === direction && absoluteDistance < closestDistance) {\n closest = node;\n closestDistance = absoluteDistance;\n }\n node = walker.nextNode() as HTMLElement | null;\n }\n return closest;\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (!nodeContains(e.currentTarget as Node | null, getEventTarget(e) as Node | null)) {\n return;\n }\n // Open the popover on alt + arrow down (date pickers only).\n if (e.altKey && (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") && \"setOpen\" in state) {\n e.preventDefault();\n e.stopPropagation();\n state.setOpen?.(true);\n }\n if (disableArrowNavigation) {\n return;\n }\n const direction = localeInfo().direction;\n switch (e.key) {\n case \"ArrowLeft\": {\n e.preventDefault();\n e.stopPropagation();\n const root = ref();\n if (direction === \"rtl\") {\n if (root) {\n const target = getEventTarget(e) as HTMLElement;\n const prev = findNextSegment(root, target.getBoundingClientRect().left, -1);\n prev?.focus();\n }\n } else {\n focusManager.focusPrevious();\n }\n break;\n }\n case \"ArrowRight\": {\n e.preventDefault();\n e.stopPropagation();\n const root = ref();\n if (direction === \"rtl\") {\n if (root) {\n const target = getEventTarget(e) as HTMLElement;\n const next = findNextSegment(root, target.getBoundingClientRect().left, 1);\n next?.focus();\n }\n } else {\n focusManager.focusNext();\n }\n break;\n }\n }\n };\n\n // Focus the last non-placeholder segment on press within the field.\n const focusLast = () => {\n const root = ref();\n if (!root) {\n return;\n }\n // Try to find the segment prior to the element that was clicked on.\n let target = (typeof window !== \"undefined\" ? (window.event as Event | undefined)?.target : null) as\n | HTMLElement\n | null;\n const walker = getFocusableTreeWalker(root, { tabbable: true });\n if (target) {\n walker.currentNode = target;\n target = walker.previousNode() as HTMLElement | null;\n }\n // If no target found, find the last element from the end.\n if (!target) {\n let last: Node | null;\n do {\n last = walker.lastChild();\n if (last) {\n target = last as HTMLElement;\n }\n } while (last);\n }\n // Now go backwards until we find an element that is not a placeholder.\n while (target?.hasAttribute(\"data-placeholder\")) {\n const prev = walker.previousNode() as HTMLElement | null;\n if (prev && prev.hasAttribute(\"data-placeholder\")) {\n target = prev;\n } else {\n break;\n }\n }\n target?.focus();\n };\n\n const { pressProps } = createPress({\n preventFocusOnPress: true,\n allowTextSelectionOnPress: true,\n onPressStart(e) {\n if (e.pointerType === \"mouse\") {\n focusLast();\n }\n },\n onPress(e) {\n if (e.pointerType === \"touch\" || e.pointerType === \"pen\") {\n focusLast();\n }\n },\n });\n\n return createMemo(() => mergeProps(pressProps, { onKeyDown }));\n}\n","/**\n * createDateField hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a date field — a\n * segmented spinbutton text input (NOT a calendar grid). Faithful port of\n * @react-aria/datepicker `useDateField`: `fieldProps` IS the labelled\n * `role=\"group\"` that wraps the segments, `inputProps` describes a hidden native\n * `<input>` for form submission, and segment labels/description/focus manager are\n * published to each segment through the shared `hookData` WeakMap.\n */\n\nimport { createMemo, onMount } from \"solid-js\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { createField } from \"../label/createField\";\nimport { createDescription } from \"../utils/createDescription\";\nimport { createFocusWithin } from \"../interactions/createFocusWithin\";\nimport { createFocusManager, type FocusManager } from \"../focus/FocusScope\";\nimport { createStringFormatter } from \"../i18n\";\nimport { createFormValidation } from \"../form/createFormValidation\";\nimport { createFormReset } from \"../form/createFormReset\";\nimport { datePickerStrings } from \"./intl\";\nimport { createDatePickerGroup } from \"./createDatePickerGroup\";\nimport type { DateFieldState } from \"@proyecto-viviana/solid-stately\";\n\n// Shared channel between the field and its segments. Unlike upstream (which stores\n// plain strings and re-runs the hook every render), `ariaDescribedBy` is stored as\n// an accessor so segments pick up the description id once `createDescription`'s\n// deferred effect has appended its hidden node.\nexport const hookData = new WeakMap<\n object,\n {\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: () => string | undefined;\n focusManager: FocusManager;\n }\n>();\n\n// Symbols used by DatePicker/DateRangePicker to make a nested date field\n// role=\"presentation\" and to inject a shared focus manager. Standalone fields\n// never receive them.\nexport const roleSymbol = \"__role_\" + Date.now();\nexport const focusManagerSymbol = \"__focusManager_\" + Date.now();\n\nexport interface AriaDateFieldProps {\n /** An ID for the date field. */\n id?: string;\n /** A visible label for the date field. */\n label?: string;\n /** An accessible label for the date field. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the date field. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the date field. */\n \"aria-describedby\"?: string;\n /** Description text. */\n description?: string;\n /** Error message. */\n errorMessage?: string | string[];\n /** Whether the date field is disabled. */\n isDisabled?: boolean;\n /** Whether the date field is read-only. */\n isReadOnly?: boolean;\n /** Whether the date field is required. */\n isRequired?: boolean;\n /** Whether the date field is invalid. */\n isInvalid?: boolean;\n /** Whether the element should receive focus on mount. */\n autoFocus?: boolean;\n /** The name of the hidden input used for form submission. */\n name?: string;\n /** The `<form>` the hidden input is associated with. */\n form?: string;\n /** Ref to the hidden input element, for form reset/validation. */\n inputRef?: () => HTMLInputElement | undefined;\n /** Whether HTML form validation is used. */\n validationBehavior?: \"aria\" | \"native\";\n onFocus?: (e: FocusEvent) => void;\n onBlur?: (e: FocusEvent) => void;\n onFocusChange?: (isFocused: boolean) => void;\n onKeyDown?: (e: KeyboardEvent) => void;\n onKeyUp?: (e: KeyboardEvent) => void;\n /** @internal presentation-role marker (set by DatePicker). */\n [key: string]: unknown;\n}\n\nexport interface DateFieldAria {\n /** Props for the label element. */\n labelProps: Record<string, unknown>;\n /** Props for the field group element (wraps the segments). */\n fieldProps: Record<string, unknown>;\n /** Props for the hidden native input element. */\n inputProps: Record<string, unknown>;\n /** Props for the description element. */\n descriptionProps: Record<string, unknown>;\n /** Props for the error message element. */\n errorMessageProps: Record<string, unknown>;\n /** Whether the field is currently invalid. */\n isInvalid: boolean;\n /** The current error messages for the field, if invalid. */\n validationErrors: string[];\n /** The native validity state for the field. */\n validationDetails: ValidityState;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a date field.\n */\nexport function createDateField<T extends DateFieldState>(\n props: MaybeAccessor<AriaDateFieldProps>,\n state: T,\n ref: () => HTMLElement | null,\n): DateFieldAria {\n const getProps = () => access(props);\n\n const isPresentation = () => getProps()[roleSymbol] === \"presentation\";\n\n const field = createField(() => {\n const p = getProps();\n const dv = state.displayValidation();\n return {\n id: p.id,\n label: p.label,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n description: p.description,\n labelElementType: \"span\",\n isInvalid: dv.isInvalid,\n errorMessage: p.errorMessage || dv.validationErrors,\n };\n });\n\n // Track the value on focus so we only commit validation when it actually changed.\n let valueOnFocus: unknown = null;\n const { focusWithinProps } = createFocusWithin({\n get isDisabled() {\n return getProps().isDisabled;\n },\n onFocusWithin(e) {\n valueOnFocus = state.value();\n getProps().onFocus?.(e);\n },\n onBlurWithin(e) {\n state.confirmPlaceholder();\n if (state.value() !== valueOnFocus) {\n state.commitValidation();\n }\n getProps().onBlur?.(e);\n },\n onFocusWithinChange(isFocused) {\n getProps().onFocusChange?.(isFocused);\n },\n });\n\n const stringFormatter = createStringFormatter(datePickerStrings, \"@react-aria/datepicker\");\n const description = createMemo(() => {\n const value = state.value();\n if (!value) {\n return \"\";\n }\n const message =\n state.maxGranularity === \"hour\" ? \"selectedTimeDescription\" : \"selectedDateDescription\";\n const fieldKey = state.maxGranularity === \"hour\" ? \"time\" : \"date\";\n return stringFormatter().format(message, {\n [fieldKey]: state.formatValue({ month: \"long\" }),\n });\n });\n const descProps = createDescription(description);\n\n // Within a date picker the field is role=\"presentation\" and inherits the\n // picker's own describedby; standalone it appends its own value description.\n const describedBy = (): string | undefined => {\n const fp = field.fieldProps as Record<string, string | undefined>;\n if (isPresentation()) {\n return fp[\"aria-describedby\"];\n }\n return [descProps[\"aria-describedby\"], fp[\"aria-describedby\"]].filter(Boolean).join(\" \") || undefined;\n };\n\n const propsFocusManager = getProps()[focusManagerSymbol] as FocusManager | undefined;\n const focusManager = propsFocusManager || createFocusManager(ref);\n\n const groupProps = createDatePickerGroup(\n state as unknown as { setOpen?: (isOpen: boolean) => void },\n ref,\n isPresentation(),\n );\n\n // Publish labels and the focus manager to the segments.\n const labelId = (field.labelProps as Record<string, string | undefined>).id;\n hookData.set(state as unknown as object, {\n ariaLabel: getProps()[\"aria-label\"],\n ariaLabelledBy: [labelId, getProps()[\"aria-labelledby\"]].filter(Boolean).join(\" \") || undefined,\n ariaDescribedBy: describedBy,\n focusManager,\n });\n\n // Auto focus the first segment on mount when requested.\n onMount(() => {\n if (getProps().autoFocus) {\n focusManager.focusFirst();\n }\n });\n\n // Form reset + native validation wiring.\n if (props && typeof props === \"object\") {\n createFormReset(\n () => getProps().inputRef?.(),\n state.defaultValue,\n state.setValue as (value: unknown) => void,\n );\n createFormValidation(\n {\n get validationBehavior() {\n return getProps().validationBehavior;\n },\n focus() {\n focusManager.focusFirst();\n },\n },\n state as unknown as Parameters<typeof createFormValidation>[1],\n () => getProps().inputRef?.() as unknown as undefined,\n );\n }\n\n const fieldDOMProps = createMemo(() => {\n if (isPresentation()) {\n return { role: \"presentation\" };\n }\n return mergeProps(field.fieldProps as Record<string, unknown>, {\n role: \"group\",\n \"aria-disabled\": getProps().isDisabled || undefined,\n \"aria-describedby\": describedBy(),\n });\n });\n\n const fieldProps = createMemo(() => {\n const p = getProps();\n const domProps = filterDOMProps(p as Record<string, unknown>);\n return mergeProps(\n domProps as Record<string, unknown>,\n fieldDOMProps(),\n groupProps(),\n // In Solid, onFocus/onBlur do not bubble, so the group (which only ever\n // receives focus from its segment descendants) must listen via the\n // bubbling onFocusIn/onFocusOut events instead.\n {\n onFocusIn: focusWithinProps.onFocus,\n onFocusOut: focusWithinProps.onBlur,\n },\n {\n onKeyDown(e: KeyboardEvent) {\n getProps().onKeyDown?.(e);\n },\n onKeyUp(e: KeyboardEvent) {\n getProps().onKeyUp?.(e);\n },\n style: { unicodeBidi: \"isolate\" as const },\n },\n );\n });\n\n const inputProps = createMemo(() => {\n const p = getProps();\n const value = state.value();\n const base: Record<string, unknown> = {\n type: \"hidden\",\n name: p.name,\n form: p.form,\n value: value?.toString() || \"\",\n disabled: p.isDisabled,\n };\n if (p.validationBehavior === \"native\") {\n // Use a hidden <input type=\"text\"> rather than <input type=\"hidden\"> so\n // that an empty value blocks HTML form submission when the field is\n // required. Mirrors @react-aria/datepicker useDateField.\n base.type = \"text\";\n base.hidden = true;\n base.required = p.isRequired;\n // Ignore the controlled-without-onChange warning.\n base.onChange = () => {};\n }\n return base;\n });\n\n const displayValidation = () => state.displayValidation();\n\n return {\n get labelProps() {\n return {\n ...(field.labelProps as Record<string, unknown>),\n onClick: () => {\n focusManager.focusFirst();\n },\n };\n },\n get fieldProps() {\n return fieldProps();\n },\n get inputProps() {\n return inputProps();\n },\n get descriptionProps() {\n return field.descriptionProps as Record<string, unknown>;\n },\n get errorMessageProps() {\n return field.errorMessageProps as Record<string, unknown>;\n },\n get isInvalid() {\n return displayValidation().isInvalid;\n },\n get validationErrors() {\n return displayValidation().validationErrors;\n },\n get validationDetails() {\n return displayValidation().validationDetails;\n },\n };\n}\n","/**\n * createDisplayNames hook for Solidaria\n *\n * Returns an `Intl.DisplayNames`-compatible object for the `dateTimeField` type,\n * falling back to a dictionary-backed polyfill in engines that support\n * `Intl.DisplayNames` but not the v2 `dateTimeField` type. Port of\n * @react-aria/datepicker `useDisplayNames`.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport { useLocale } from \"../i18n\";\nimport { datePickerDictionary } from \"./intl\";\n\nexport interface DisplayNames {\n of(field: string): string;\n}\n\nclass DisplayNamesPolyfill implements DisplayNames {\n constructor(\n private locale: string,\n private dictionary: typeof datePickerDictionary,\n ) {}\n\n of(field: string): string {\n return this.dictionary.getStringForLocale(field, this.locale) as unknown as string;\n }\n}\n\n/**\n * Returns an accessor to a localized `DisplayNames` instance for date field names.\n */\nexport function createDisplayNames(): Accessor<DisplayNames> {\n const localeAccessor = useLocale();\n\n return createMemo(() => {\n const locale = localeAccessor().locale;\n // Try to use Intl.DisplayNames if possible. It may be supported in browsers, but not support the\n // dateTimeField type as that was only added in v2. https://github.com/tc39/intl-displaynames-v2\n try {\n return new Intl.DisplayNames(locale, { type: \"dateTimeField\" }) as unknown as DisplayNames;\n } catch {\n return new DisplayNamesPolyfill(locale, datePickerDictionary);\n }\n });\n}\n","/**\n * createDateSegment hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a single editable\n * date segment. Faithful port of @react-aria/datepicker `useDateSegment` — the\n * spinbutton wiring (value stepping + live announcements) is delegated to\n * `createSpinButton`, numeric text entry flows through native `beforeinput`\n * events, and segment focus recovery on unmount mirrors upstream's layout effect.\n */\n\nimport { createMemo, createEffect, onCleanup } from \"solid-js\";\nimport { toCalendar, CalendarDate } from \"@internationalized/date\";\nimport { NumberParser } from \"@internationalized/number\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport {\n isMac,\n isIOS,\n scrollIntoViewport,\n getScrollParent,\n nodeContains,\n} from \"../utils\";\nimport { createId } from \"../ssr\";\nimport { createLabels } from \"../label/createLabels\";\nimport { useLocale, createDateFormatter, createFilter } from \"../i18n\";\nimport { createSpinButton } from \"../spinbutton\";\nimport { createDisplayNames } from \"./createDisplayNames\";\nimport { hookData } from \"./createDateField\";\nimport type { DateFieldState, DateSegment, DateSegmentType } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaDateSegmentProps {\n /** The segment data. */\n segment: DateSegment;\n /** The ID of the calendar dialog controlled by this segment (when inside a datepicker). */\n \"aria-controls\"?: string;\n /** The ID of an element that describes the segment. */\n \"aria-describedby\"?: string;\n}\n\nexport interface DateSegmentAria {\n /** Props for the segment element. */\n segmentProps: Record<string, unknown>;\n}\n\nfunction commonPrefixLength(strings: string[]): number {\n strings.sort();\n const first = strings[0];\n const last = strings[strings.length - 1];\n for (let i = 0; i < first.length; i++) {\n if (first[i] !== last[i]) {\n return i;\n }\n }\n return 0;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a date segment.\n */\nexport function createDateSegment<T extends DateFieldState>(\n props: MaybeAccessor<AriaDateSegmentProps>,\n state: T,\n ref: () => HTMLElement | null,\n): DateSegmentAria {\n const getProps = () => access(props);\n const segment = () => getProps().segment;\n let enteredKeys = \"\";\n const localeInfo = useLocale();\n const locale = () => localeInfo().locale;\n const direction = () => localeInfo().direction;\n const displayNames = createDisplayNames();\n const hd = hookData.get(state as unknown as object) as\n | {\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: () => string | undefined;\n focusManager: {\n focusNext: () => HTMLElement | null;\n focusPrevious: () => HTMLElement | null;\n };\n }\n | undefined;\n const focusManager = hd?.focusManager;\n const segmentId = createId();\n\n const resolvedOptions = state.dateFormatter.resolvedOptions();\n const monthDateFormatter = createDateFormatter({\n month: \"long\",\n timeZone: resolvedOptions.timeZone,\n });\n const hourDateFormatter = createDateFormatter({\n hour: \"numeric\",\n hour12: resolvedOptions.hour12,\n timeZone: resolvedOptions.timeZone,\n });\n\n const textValue = createMemo(() => {\n const seg = segment();\n let value = seg.isPlaceholder ? \"\" : seg.text;\n if (seg.type === \"month\" && !seg.isPlaceholder) {\n const monthTextValue = monthDateFormatter().format(state.dateValue());\n value = monthTextValue !== value ? `${value} \\u{2013} ${monthTextValue}` : monthTextValue;\n } else if (seg.type === \"hour\" && !seg.isPlaceholder) {\n value = hourDateFormatter().format(state.dateValue());\n }\n return value;\n });\n\n const spinButton = createSpinButton(() => {\n const seg = segment();\n return {\n // The ARIA spec says aria-valuenow is optional if there's no value, but aXe requires it.\n value: seg.value ?? undefined,\n textValue: textValue(),\n minValue: seg.minValue,\n maxValue: seg.maxValue,\n isDisabled: state.isDisabled(),\n isReadOnly: state.isReadOnly() || !seg.isEditable,\n isRequired: state.isRequired(),\n onIncrement: () => {\n enteredKeys = \"\";\n state.increment(seg.type);\n },\n onDecrement: () => {\n enteredKeys = \"\";\n state.decrement(seg.type);\n },\n onIncrementPage: () => {\n enteredKeys = \"\";\n state.incrementPage(seg.type);\n },\n onDecrementPage: () => {\n enteredKeys = \"\";\n state.decrementPage(seg.type);\n },\n onIncrementToMax: () => {\n enteredKeys = \"\";\n state.incrementToMax(seg.type);\n },\n onDecrementToMin: () => {\n enteredKeys = \"\";\n state.decrementToMin(seg.type);\n },\n };\n });\n\n const parser = createMemo(() => new NumberParser(locale(), { maximumFractionDigits: 0 }));\n\n const backspace = () => {\n const seg = segment();\n if (seg.text === seg.placeholder) {\n focusManager?.focusPrevious();\n }\n if (parser().isValidPartialNumber(seg.text) && !state.isReadOnly() && !seg.isPlaceholder) {\n let newValue = seg.text.slice(0, -1);\n const parsed = parser().parse(newValue);\n newValue = parsed === 0 ? \"\" : newValue;\n if (newValue.length === 0 || parsed === 0) {\n state.clearSegment(seg.type);\n } else {\n state.setSegment(seg.type, parsed);\n }\n enteredKeys = newValue;\n } else if (seg.type === \"dayPeriod\" || seg.type === \"era\") {\n state.clearSegment(seg.type);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n // Firefox does not fire selectstart for Ctrl/Cmd + A\n if (e.key === \"a\" && (isMac() ? e.metaKey : e.ctrlKey)) {\n e.preventDefault();\n }\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) {\n return;\n }\n switch (e.key) {\n case \"Backspace\":\n case \"Delete\":\n // Safari on iOS does not fire beforeinput for the backspace key because the cursor is at the start.\n e.preventDefault();\n e.stopPropagation();\n backspace();\n break;\n }\n };\n\n const { startsWith } = createFilter({ sensitivity: \"base\" })();\n const amPmFormatter = createDateFormatter({ hour: \"numeric\", hour12: true });\n const am = createMemo(() => {\n const date = new Date();\n date.setHours(0);\n return amPmFormatter().formatToParts(date).find((part) => part.type === \"dayPeriod\")?.value ?? \"\";\n });\n const pm = createMemo(() => {\n const date = new Date();\n date.setHours(12);\n return amPmFormatter().formatToParts(date).find((part) => part.type === \"dayPeriod\")?.value ?? \"\";\n });\n\n // Get a list of formatted era names so users can type the first character to choose one.\n const eraFormatter = createDateFormatter({ year: \"numeric\", era: \"narrow\", timeZone: \"UTC\" });\n const eras = createMemo(() => {\n if (segment().type !== \"era\") {\n return [] as Array<{ era: string; formatted: string }>;\n }\n const date = toCalendar(new CalendarDate(1, 1, 1), state.calendar);\n const list = state.calendar.getEras().map((era) => {\n const eraDate = date.set({ year: 1, month: 1, day: 1, era }).toDate(\"UTC\");\n const parts = eraFormatter().formatToParts(eraDate);\n const formatted = parts.find((p) => p.type === \"era\")?.value ?? \"\";\n return { era, formatted };\n });\n const prefixLength = commonPrefixLength(list.map((era) => era.formatted));\n if (prefixLength) {\n for (const era of list) {\n era.formatted = era.formatted.slice(prefixLength);\n }\n }\n return list;\n });\n\n const onInput = (key: string) => {\n const seg = segment();\n if (state.isDisabled() || state.isReadOnly()) {\n return;\n }\n const newValue = enteredKeys + key;\n switch (seg.type) {\n case \"dayPeriod\":\n if (startsWith(am(), key)) {\n state.setSegment(\"dayPeriod\", 0);\n } else if (startsWith(pm(), key)) {\n state.setSegment(\"dayPeriod\", 1);\n } else {\n break;\n }\n focusManager?.focusNext();\n break;\n case \"era\": {\n const matched = eras().find((e) => startsWith(e.formatted, key));\n if (matched) {\n state.setSegment(\"era\", matched.era as unknown as number);\n focusManager?.focusNext();\n }\n break;\n }\n case \"day\":\n case \"hour\":\n case \"minute\":\n case \"second\":\n case \"month\":\n case \"year\": {\n if (!parser().isValidPartialNumber(newValue)) {\n return;\n }\n const numberValue = parser().parse(newValue);\n let segmentValue = numberValue;\n if (seg.maxValue !== undefined && numberValue > seg.maxValue) {\n segmentValue = parser().parse(key);\n }\n if (isNaN(numberValue)) {\n return;\n }\n state.setSegment(seg.type, segmentValue);\n if (\n seg.maxValue !== undefined &&\n (Number(numberValue + \"0\") > seg.maxValue || newValue.length >= String(seg.maxValue).length)\n ) {\n enteredKeys = \"\";\n focusManager?.focusNext();\n } else {\n enteredKeys = newValue;\n }\n break;\n }\n }\n };\n\n const onFocus = () => {\n enteredKeys = \"\";\n const el = ref();\n if (el) {\n scrollIntoViewport(el, { containingElement: getScrollParent(el) });\n // Collapse selection to start or Chrome won't fire input events.\n const selection = window.getSelection();\n selection?.collapse(el);\n }\n };\n\n // Enforce that the selection is collapsed when inside a date segment. Otherwise, when tapping on a\n // segment in Android Chrome and then entering text, composition events break the DOM structure.\n createEffect(() => {\n if (typeof document === \"undefined\") {\n return;\n }\n const handler = () => {\n const selection = window.getSelection();\n if (selection?.anchorNode && nodeContains(ref(), selection.anchorNode)) {\n selection.collapse(ref());\n }\n };\n document.addEventListener(\"selectionchange\", handler);\n onCleanup(() => document.removeEventListener(\"selectionchange\", handler));\n });\n\n let compositionValue = \"\";\n createEffect(() => {\n const el = ref();\n if (!el) {\n return;\n }\n const onBeforeInput = (e: InputEvent) => {\n if (!ref()) {\n return;\n }\n e.preventDefault();\n switch (e.inputType) {\n case \"deleteContentBackward\":\n case \"deleteContentForward\":\n if (parser().isValidPartialNumber(segment().text) && !state.isReadOnly()) {\n backspace();\n }\n break;\n case \"insertCompositionText\":\n // insertCompositionText cannot be canceled. Record current state to restore in `input`.\n compositionValue = el.textContent ?? \"\";\n // Safari gets stuck in a composition state unless we also assign to the value here.\n // eslint-disable-next-line no-self-assign\n el.textContent = el.textContent;\n break;\n default:\n if (e.data != null) {\n onInput(e.data);\n }\n break;\n }\n };\n const onInputEvent = (e: InputEvent) => {\n const { inputType, data } = e;\n switch (inputType) {\n case \"insertCompositionText\":\n if (ref()) {\n el.textContent = compositionValue;\n }\n if (data != null && (startsWith(am(), data) || startsWith(pm(), data))) {\n onInput(data);\n }\n break;\n }\n };\n el.addEventListener(\"beforeinput\", onBeforeInput as EventListener);\n el.addEventListener(\"input\", onInputEvent as EventListener);\n onCleanup(() => {\n el.removeEventListener(\"beforeinput\", onBeforeInput as EventListener);\n el.removeEventListener(\"input\", onInputEvent as EventListener);\n });\n });\n\n // If the focused segment is removed, focus the previous one, or the next one if there was no previous one.\n let focusedElement: HTMLElement | null = null;\n createEffect(() => {\n focusedElement = ref();\n });\n onCleanup(() => {\n if (typeof document !== \"undefined\" && document.activeElement === focusedElement) {\n const prev = focusManager?.focusPrevious();\n if (!prev) {\n focusManager?.focusNext();\n }\n }\n });\n\n const segmentProps = createMemo<Record<string, unknown>>(() => {\n const seg = segment();\n const p = getProps();\n\n // spinbuttons cannot be focused with VoiceOver on iOS.\n const touchPropOverrides =\n isIOS() || seg.type === \"timeZoneName\"\n ? {\n role: \"textbox\",\n \"aria-valuemax\": null,\n \"aria-valuemin\": null,\n \"aria-valuetext\": null,\n \"aria-valuenow\": null,\n }\n : {};\n\n // Only apply aria-describedby to the first segment, unless the field is invalid.\n let ariaDescribedBy = hd?.ariaDescribedBy?.();\n const firstEditable = state.segments().find((s) => s.isEditable);\n if (firstEditable && firstEditable.type !== seg.type && !state.isInvalid()) {\n ariaDescribedBy = undefined;\n }\n // Allow an explicitly passed describedby (e.g. from a datepicker) to compose.\n ariaDescribedBy = [p[\"aria-describedby\"], ariaDescribedBy].filter(Boolean).join(\" \") || undefined;\n\n const isEditable = !state.isDisabled() && !state.isReadOnly() && seg.isEditable;\n // Prepend the label passed from the field to each segment name.\n const name = seg.type === \"literal\" ? \"\" : displayNames().of(seg.type);\n const ariaLabel = hd?.ariaLabel;\n const ariaLabelledBy = hd?.ariaLabelledBy;\n // Upstream generates a separate id inside useLabels and lets react-aria's\n // mergeProps collapse it with the segment's own id via mergeIds' SSR ref\n // registry. Solid has no such registry, so we thread the segment id straight\n // into createLabels: the self-reference token then IS the element id, which\n // is the exact observable result mergeIds produces (\"month, <field label>\").\n const labelProps = createLabels({\n id: segmentId,\n \"aria-label\": `${name}${ariaLabel ? `, ${ariaLabel}` : \"\"}${ariaLabelledBy ? \", \" : \"\"}`,\n \"aria-labelledby\": ariaLabelledBy,\n });\n\n // Literal segments should not be visible to screen readers.\n if (seg.type === \"literal\") {\n return { \"aria-hidden\": true };\n }\n\n // Kebab-case CSS property names: this style object is merged via mergeProps\n // and applied by Solid's runtime `style()` spread helper, which calls\n // `el.style.setProperty(key, value)` with the raw key. setProperty ignores\n // camelCase names (`unicodeBidi`, `caretColor`) but honors real CSS property\n // names, so upstream's React CSSProperties must be written kebab here to\n // actually take effect (React auto-kebabs camelCase; a Solid spread does\n // not). `direction` matched already precisely because it is single-word.\n const segmentStyle: Record<string, string> = { \"caret-color\": \"transparent\" };\n if (direction() === \"rtl\") {\n segmentStyle[\"unicode-bidi\"] = \"embed\";\n const format = (resolvedOptions as unknown as Record<string, unknown>)[seg.type];\n if (format === \"numeric\" || format === \"2-digit\") {\n segmentStyle.direction = \"ltr\";\n }\n }\n\n return mergeProps(spinButton.spinButtonProps as Record<string, unknown>, labelProps as Record<string, unknown>, {\n id: segmentId,\n ...touchPropOverrides,\n \"aria-invalid\": state.isInvalid() ? \"true\" : undefined,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-readonly\": state.isReadOnly() || !seg.isEditable ? \"true\" : undefined,\n \"aria-controls\": (p[\"aria-controls\"] as string | undefined) || undefined,\n \"data-placeholder\": seg.isPlaceholder || undefined,\n contentEditable: isEditable,\n suppressContentEditableWarning: isEditable,\n spellCheck: isEditable ? \"false\" : undefined,\n autoCorrect: isEditable ? \"off\" : undefined,\n enterKeyHint: isEditable ? \"next\" : undefined,\n inputMode:\n state.isDisabled() || seg.type === \"dayPeriod\" || seg.type === \"era\" || !isEditable\n ? undefined\n : \"numeric\",\n tabIndex: state.isDisabled() ? undefined : 0,\n onKeyDown,\n onFocus,\n style: segmentStyle,\n // Prevent pointer events from reaching the group's press handler, and allow native focus.\n onPointerDown(e: PointerEvent) {\n e.stopPropagation();\n },\n onMouseDown(e: MouseEvent) {\n e.stopPropagation();\n },\n });\n });\n\n return {\n get segmentProps() {\n return segmentProps();\n },\n };\n}\n","/**\n * createTimeField hook for Solidaria\n *\n * Faithful port of `@react-aria/datepicker` `useTimeField`, which is a thin\n * wrapper over `useDateField`: it delegates entirely to the date-field behavior\n * and only rewrites `inputProps.value` to the value in the `Time` domain\n * (`state.timeValue`) so the hidden form input submits e.g. \"09:30:00\" rather\n * than the anchored `CalendarDateTime` string. TimeField reuses the certified\n * DateField segment/group behavior wholesale — there is no parallel time hook.\n */\n\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport {\n createDateField,\n type AriaDateFieldProps,\n type DateFieldAria,\n} from \"./createDateField\";\nimport type { TimeFieldState, TimeValue } from \"@proyecto-viviana/solid-stately\";\n\nexport type AriaTimeFieldProps = AriaDateFieldProps;\nexport type TimeFieldAria = DateFieldAria;\n\n/**\n * Provides the behavior and accessibility implementation for a time field.\n */\nexport function createTimeField<T extends TimeFieldState<TimeValue>>(\n props: MaybeAccessor<AriaTimeFieldProps>,\n state: T,\n ref: () => HTMLElement | null,\n): TimeFieldAria {\n // TimeFieldState IS a DateFieldState (plus `timeValue`), so it drives the\n // certified date-field behavior directly.\n const res = createDateField(props, state, ref);\n\n // Delegate every prop bag via getters (spreading would freeze the reactive\n // getters). Only `inputProps.value` is rewritten to the Time-domain value.\n return {\n get labelProps() {\n return res.labelProps;\n },\n get fieldProps() {\n return res.fieldProps;\n },\n get inputProps() {\n // Ignore access() lint: state.timeValue is a plain accessor.\n void access;\n return { ...res.inputProps, value: state.timeValue()?.toString() || \"\" };\n },\n get descriptionProps() {\n return res.descriptionProps;\n },\n get errorMessageProps() {\n return res.errorMessageProps;\n },\n get isInvalid() {\n return res.isInvalid;\n },\n get validationErrors() {\n return res.validationErrors;\n },\n get validationDetails() {\n return res.validationDetails;\n },\n };\n}\n","/**\n * createDatePicker hook for Solidaria\n *\n * Provides the behavior and accessibility implementation for a date picker\n * component. Faithful port of @react-aria/datepicker `useDatePicker`.\n *\n * The composed picker does NOT re-implement the segmented field; it hands its\n * `fieldProps` (stamped `[roleSymbol]=\"presentation\"`) to `createDateField`,\n * which is what actually names the segments and publishes the value description\n * through the shared `hookData` WeakMap. Here we only provide:\n * - `groupProps`: a ROLELESS wrapper carrying the outer arrow-navigation\n * (`createDatePickerGroup` with arrow-nav ENABLED — the inner presentation\n * field disables its own and lets the key event bubble up to this handler).\n * - `fieldProps`: the presentation marker + labelledby/describedby + value model.\n * - `buttonProps` / `dialogProps` / `calendarProps` for the trigger + popover.\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createId } from \"../ssr\";\nimport { createField } from \"../label/createField\";\nimport { createDescription } from \"../utils/createDescription\";\nimport { createFocusManager } from \"../focus/FocusScope\";\nimport { createStringFormatter } from \"../i18n\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { useLocale } from \"../i18n\";\nimport { createPress } from \"../interactions/createPress\";\nimport { datePickerStrings } from \"./intl\";\nimport { createDatePickerGroup } from \"./createDatePickerGroup\";\nimport { roleSymbol } from \"./createDateField\";\nimport type { DateFieldState, CalendarState } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaDatePickerProps {\n /** An ID for the date picker. */\n id?: string;\n /** A visible label for the date picker. */\n label?: string;\n /** An accessible label for the date picker. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the date picker. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the date picker. */\n \"aria-describedby\"?: string;\n /** Whether the date picker is disabled. */\n isDisabled?: boolean;\n /** Whether the date picker is read-only. */\n isReadOnly?: boolean;\n /** Whether the date picker is required. */\n isRequired?: boolean;\n /** Whether the date picker is invalid. */\n isInvalid?: boolean;\n /** Description text. */\n description?: string;\n /** Error message. */\n errorMessage?: string;\n /** Accessible label for the calendar trigger button. */\n buttonAriaLabel?: string;\n /** Accessible label for the calendar dialog. */\n dialogAriaLabel?: string;\n /** Accessible label for the calendar grid region. */\n calendarAriaLabel?: string;\n /** The minimum allowed date. */\n minValue?: Date;\n /** The maximum allowed date. */\n maxValue?: Date;\n /** Whether a date is unavailable. */\n isDateUnavailable?: (date: unknown) => boolean;\n /** The first day of the week. */\n firstDayOfWeek?: number;\n /** Page behavior for calendar. */\n pageBehavior?: \"single\" | \"visible\";\n /** Whether to force leading zeros. */\n shouldForceLeadingZeros?: boolean;\n /** Callback when focus changes. */\n onFocusChange?: (isFocused: boolean) => void;\n /** Callback when focused. */\n onFocus?: (e: FocusEvent) => void;\n /** Callback when blurred. */\n onBlur?: (e: FocusEvent) => void;\n /** Callback for key down (forwarded to the field when the popover is closed). */\n onKeyDown?: (e: KeyboardEvent) => void;\n /** Callback for key up (forwarded to the field when the popover is closed). */\n onKeyUp?: (e: KeyboardEvent) => void;\n /** The name attribute for form submission. */\n name?: string;\n /** The form attribute. */\n form?: string;\n /** Whether HTML form validation is used. */\n validationBehavior?: \"aria\" | \"native\";\n /** Auto focus the field. */\n autoFocus?: boolean;\n /** The placeholder value. */\n placeholderValue?: unknown;\n /** Whether to hide the time zone. */\n hideTimeZone?: boolean;\n /** The hour cycle. */\n hourCycle?: 12 | 24;\n /** The granularity. */\n granularity?: \"day\" | \"hour\" | \"minute\" | \"second\";\n}\n\nexport interface DatePickerState {\n /** Whether the calendar is open. */\n isOpen: boolean;\n /** Open the calendar. */\n open: () => void;\n /** Close the calendar. */\n close: () => void;\n /** Toggle the calendar. */\n toggle: () => void;\n}\n\nexport interface DatePickerAria {\n /** Props for the group container. */\n groupProps: Record<string, unknown>;\n /** Props for the label element. */\n labelProps: Record<string, unknown>;\n /** Props for the date field container. */\n fieldProps: Record<string, unknown>;\n /** Props for the button that opens the calendar. */\n buttonProps: Record<string, unknown>;\n /**\n * Whether the trigger button is currently pressed. Upstream RAC renders the\n * trigger as a `<Button>` whose own `usePress` drives its `data-pressed`\n * paint state; the port owns the press here (see `buttonPress`), so it\n * surfaces the same signal for the button element to emit `data-pressed`.\n */\n isButtonPressed: () => boolean;\n /**\n * Whether the trigger button is disabled. Upstream RAC's `buttonProps`\n * carries `isDisabled: props.isDisabled || props.isReadOnly` (a read-only\n * picker can't open its calendar), which drives the `<Button>`'s disabled\n * paint. The port's `buttonProps` only reflects `aria-disabled`, so it\n * surfaces the same signal here for the button's render `isDisabled`.\n */\n isButtonDisabled: () => boolean;\n /** Props for the calendar dialog. */\n dialogProps: Record<string, unknown>;\n /** Props for the calendar. */\n calendarProps: Record<string, unknown>;\n /** Props for the description element. */\n descriptionProps: Record<string, unknown>;\n /** Props for the error message element. */\n errorMessageProps: Record<string, unknown>;\n /** Whether the picker is invalid. */\n isInvalid: boolean;\n /** Validation errors. */\n validationErrors: string[];\n /** Validation details. */\n validationDetails: Record<string, unknown>;\n /** Focus manager for programmatic segment focus. */\n focusManager: {\n focusFirst: () => void;\n focusLast: () => void;\n };\n}\n\n/**\n * Provides the behavior and accessibility implementation for a date picker component.\n */\nexport function createDatePicker<T extends DateFieldState, C extends CalendarState>(\n props: MaybeAccessor<AriaDatePickerProps>,\n state: T,\n overlayState: DatePickerState,\n _calendarState?: C,\n ref: () => HTMLElement | null = () => null,\n): DatePickerAria {\n const locale = useLocale();\n const getProps = () => access(props);\n const dialogId = createId();\n const buttonId = createId();\n const fieldId = createId();\n\n // Label + description/error-message ids, mirroring upstream `useField`.\n const field = createField(() => {\n const p = getProps();\n const dv = state.displayValidation();\n return {\n id: p.id,\n label: p.label,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n description: p.description,\n labelElementType: \"span\",\n isInvalid: p.isInvalid || dv.isInvalid,\n errorMessage: p.errorMessage || dv.validationErrors,\n };\n });\n\n // labelledBy = the field label id (or the field id when there is no label),\n // reused by the button and dialog. Mirrors useDatePicker.\n const labelledBy = (): string | undefined => {\n const fp = field.fieldProps as Record<string, string | undefined>;\n return fp[\"aria-labelledby\"] || fp.id;\n };\n\n // Selected-date description for screen readers: \"Selected Date: February 14, 2025\".\n const stringFormatter = createStringFormatter(datePickerStrings, \"@react-aria/datepicker\");\n const valueDescription = createMemo(() => {\n if (!state.value?.()) {\n return \"\";\n }\n const date = state.formatValue({ month: \"long\" });\n return date ? stringFormatter().format(\"selectedDateDescription\", { date }) : \"\";\n });\n const descProps = createDescription(valueDescription);\n\n // The picker's own describedby = value description + the field's describedby\n // (which already folds in the visible description / error message ids).\n const ariaDescribedBy = (): string | undefined => {\n const fp = field.fieldProps as Record<string, string | undefined>;\n return (\n [descProps[\"aria-describedby\"], fp[\"aria-describedby\"]].filter(Boolean).join(\" \") || undefined\n );\n };\n\n // FieldGroup props. Mirrors RAC `useDatePicker`, whose `groupProps.role` is\n // 'group' (useDatePicker.mjs) — the field label (`aria-labelledby`), describedby\n // (value description + help/error), `aria-disabled`, and the arrow-navigation /\n // press layer all live on this shell. The styled S2 layer OVERRIDES this to\n // role=\"presentation\" at `DatePickerFieldGroup` (S2 seeds its FieldGroup's Group\n // with role=\"presentation\"); keeping the hook faithful to 'group' means a bare\n // RAC-style consumer gets the correct group semantics. The OUTER root stays\n // bare/roleless — putting the describedby on the roleless root would surface a\n // spurious described node in the AX tree that the oracle (bare root) does not\n // have, so it lands on this shell instead. The nested DateInput group is\n // role=\"presentation\" and carries NO aria (createDateField's presentation branch\n // drops it) and lets ArrowLeft/Right bubble up here.\n const outerGroup = createDatePickerGroup(\n {\n setOpen: (isOpen: boolean) => (isOpen ? overlayState.open() : overlayState.close()),\n },\n ref,\n false,\n );\n\n const groupProps = createMemo(() =>\n mergeProps(outerGroup(), {\n role: \"group\" as const,\n \"aria-disabled\": getProps().isDisabled || undefined,\n \"aria-labelledby\": labelledBy(),\n \"aria-describedby\": ariaDescribedBy(),\n onKeyDown(e: KeyboardEvent) {\n if (!overlayState.isOpen) {\n getProps().onKeyDown?.(e);\n }\n },\n onKeyUp(e: KeyboardEvent) {\n if (!overlayState.isOpen) {\n getProps().onKeyUp?.(e);\n }\n },\n }),\n );\n\n // Field props — handed to createDateField, which turns them into the segmented\n // spinbutton group (role=\"presentation\" here) and names the segments.\n const fieldProps = createMemo(() => {\n const p = getProps();\n return mergeProps(field.fieldProps as Record<string, unknown>, {\n id: fieldId,\n [roleSymbol]: \"presentation\",\n \"aria-labelledby\": labelledBy(),\n \"aria-describedby\": ariaDescribedBy(),\n value: state.value?.(),\n defaultValue: state.defaultValue,\n onChange: (value: unknown) => {\n state.setValue?.(value as T extends DateFieldState<infer V> ? V | null : null);\n },\n placeholderValue: p.placeholderValue,\n hideTimeZone: p.hideTimeZone,\n hourCycle: p.hourCycle,\n shouldForceLeadingZeros: p.shouldForceLeadingZeros,\n granularity: p.granularity,\n isDisabled: p.isDisabled || state.isDisabled(),\n isReadOnly: p.isReadOnly || state.isReadOnly(),\n isRequired: p.isRequired || state.isRequired(),\n validationBehavior: p.validationBehavior,\n autoFocus: p.autoFocus,\n name: p.name,\n form: p.form,\n });\n });\n\n // Trigger button. Disabled when the picker is disabled OR read-only (upstream:\n // `isDisabled: props.isDisabled || props.isReadOnly`).\n const isButtonDisabled = () => {\n const p = getProps();\n return p.isDisabled || state.isDisabled() || p.isReadOnly || state.isReadOnly();\n };\n\n const buttonPress = createPress({\n get isDisabled() {\n return isButtonDisabled();\n },\n onPress: () => {\n overlayState.open();\n },\n });\n\n const buttonProps = createMemo(() => {\n const p = getProps();\n return mergeProps(buttonPress.pressProps as Record<string, unknown>, {\n id: buttonId,\n type: \"button\" as const,\n \"aria-haspopup\": \"dialog\" as const,\n \"aria-label\": p.buttonAriaLabel ?? stringFormatter().format(\"calendar\"),\n \"aria-labelledby\": `${buttonId} ${labelledBy()}`,\n \"aria-describedby\": ariaDescribedBy(),\n \"aria-expanded\": overlayState.isOpen,\n \"aria-disabled\": isButtonDisabled() || undefined,\n tabIndex: 0,\n });\n });\n\n // Dialog props. Upstream is only `{id, 'aria-labelledby'}`; the port keeps\n // `role=\"dialog\"` because DatePickerContent spreads these props onto the popover\n // container and this is the only role source there (RAC's Dialog would add it).\n const dialogProps = createMemo(() => ({\n id: dialogId,\n role: \"dialog\" as const,\n \"aria-labelledby\": `${buttonId} ${labelledBy()}`,\n }));\n\n // Calendar props\n const calendarProps = createMemo(() => {\n const p = getProps();\n const defaults = getDatePickerLabelDefaults(locale().locale);\n const currentValue = state.value?.();\n\n return {\n autoFocus: true,\n value: currentValue,\n onChange: (value: unknown) => {\n if (state.setValue) {\n state.setValue(value as Parameters<typeof state.setValue>[0]);\n }\n },\n minValue: p.minValue,\n maxValue: p.maxValue,\n isDisabled: p.isDisabled || state.isDisabled(),\n isReadOnly: p.isReadOnly || state.isReadOnly(),\n isDateUnavailable: p.isDateUnavailable,\n defaultFocusedValue: currentValue ? undefined : p.placeholderValue,\n isInvalid: p.isInvalid || state.isInvalid(),\n errorMessage:\n typeof p.errorMessage === \"string\"\n ? p.errorMessage\n : state.isInvalid()\n ? \"Invalid date\"\n : undefined,\n firstDayOfWeek: p.firstDayOfWeek,\n pageBehavior: p.pageBehavior,\n \"aria-label\": p.calendarAriaLabel ?? p.dialogAriaLabel ?? defaults.calendar,\n };\n });\n\n // Label click focuses the first segment.\n const labelFocusManager = createFocusManager(ref);\n const enhancedLabelProps = createMemo(() => ({\n ...(field.labelProps as Record<string, unknown>),\n onClick: () => {\n labelFocusManager.focusFirst();\n },\n }));\n\n const isInvalid = createMemo(() => {\n const p = getProps();\n return p.isInvalid || state.isInvalid();\n });\n\n const validationErrors = createMemo(() => state.displayValidation().validationErrors);\n\n const validationDetails = createMemo(() => {\n const p = getProps();\n return {\n minValue: p.minValue,\n maxValue: p.maxValue,\n isDateUnavailable: p.isDateUnavailable,\n isInvalid: isInvalid(),\n };\n });\n\n return {\n get groupProps() {\n return groupProps();\n },\n get labelProps() {\n return enhancedLabelProps() as Record<string, unknown>;\n },\n get fieldProps() {\n return fieldProps();\n },\n get buttonProps() {\n return buttonProps();\n },\n isButtonPressed: () => buttonPress.isPressed(),\n isButtonDisabled: () => isButtonDisabled(),\n get dialogProps() {\n return dialogProps();\n },\n get calendarProps() {\n return calendarProps();\n },\n get descriptionProps() {\n return field.descriptionProps as Record<string, unknown>;\n },\n get errorMessageProps() {\n return field.errorMessageProps as Record<string, unknown>;\n },\n get isInvalid() {\n return isInvalid();\n },\n get validationErrors() {\n return validationErrors();\n },\n get validationDetails() {\n return validationDetails();\n },\n focusManager: {\n focusFirst: () => labelFocusManager.focusFirst(),\n focusLast: () => labelFocusManager.focusLast(),\n },\n };\n}\n\nfunction getDatePickerLabelDefaults(locale: string): {\n button: string;\n dialog: string;\n calendar: string;\n} {\n const language = locale.toLowerCase().split(\"-\")[0] ?? \"en\";\n\n if (language === \"es\") {\n return {\n button: \"Abrir calendario\",\n dialog: \"Calendario\",\n calendar: \"Calendario\",\n };\n }\n\n return {\n button: \"Open calendar\",\n dialog: \"Calendar\",\n calendar: \"Calendar\",\n };\n}\n","/**\n * createDateRangePicker hook for Solidaria\n *\n * Provides behavior and accessibility wiring for range date pickers. Faithful\n * port of @react-aria/datepicker `useDateRangePicker`.\n *\n * Mirrors the composed `createDatePicker`: the range picker does NOT re-implement\n * the two segmented fields. It hands each field its own field props (stamped\n * `[roleSymbol]=\"presentation\"` + a SHARED `[focusManagerSymbol]` so arrow keys\n * and auto-advance walk across BOTH fields) to `createDateField`, which is what\n * names the segments (\"month, Start Date\" / \"month, End Date\") and publishes them\n * through the shared `hookData` WeakMap. Here we only provide:\n * - `groupProps`: the labelled `role=\"group\"` shell carrying the OUTER\n * arrow-navigation (`createDatePickerGroup` with arrow-nav ENABLED — each inner\n * presentation field disables its own and lets the key event bubble up here).\n * The styled S2 layer overrides this to `role=\"presentation\"`; the roleless\n * root stays bare.\n * - `startFieldProps` / `endFieldProps`: the presentation markers + shared focus\n * manager + start/end labels, handed to `createDateField`.\n * - `buttonProps` / `dialogProps` / `calendarProps` for the trigger + popover.\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createId } from \"../ssr\";\nimport { createField } from \"../label/createField\";\nimport { createDescription } from \"../utils/createDescription\";\nimport { createFocusManager } from \"../focus/FocusScope\";\nimport { createStringFormatter } from \"../i18n\";\nimport { useLocale } from \"../i18n\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { createPress } from \"../interactions/createPress\";\nimport { datePickerStrings } from \"./intl\";\nimport { createDatePickerGroup } from \"./createDatePickerGroup\";\nimport { roleSymbol, focusManagerSymbol } from \"./createDateField\";\nimport type { RangeCalendarState } from \"@proyecto-viviana/solid-stately\";\nimport type { DatePickerState } from \"./createDatePicker\";\n\nexport interface AriaDateRangePickerProps {\n id?: string;\n label?: string;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n description?: string;\n errorMessage?: string;\n /** Accessible label for the calendar trigger button. */\n buttonAriaLabel?: string;\n /** Accessible label for the calendar dialog. */\n dialogAriaLabel?: string;\n /** Accessible label for the calendar grid region. */\n calendarAriaLabel?: string;\n /** The `name` attribute for the start date's hidden form input. */\n startName?: string;\n /** The `name` attribute for the end date's hidden form input. */\n endName?: string;\n /** The `<form>` the hidden inputs are associated with. */\n form?: string;\n /** Whether HTML form validation is used. */\n validationBehavior?: \"aria\" | \"native\";\n /** Auto focus the start field. */\n autoFocus?: boolean;\n /** Callback for key down (forwarded when the popover is closed). */\n onKeyDown?: (e: KeyboardEvent) => void;\n /** Callback for key up (forwarded when the popover is closed). */\n onKeyUp?: (e: KeyboardEvent) => void;\n}\n\nexport interface DateRangePickerAria {\n /** Props for the labelled group shell (S2 overrides to role=\"presentation\"). */\n groupProps: Record<string, unknown>;\n /** Props for the label element. */\n labelProps: Record<string, unknown>;\n /** Field props for the start date field — handed to createDateField. */\n startFieldProps: Record<string, unknown>;\n /** Field props for the end date field — handed to createDateField. */\n endFieldProps: Record<string, unknown>;\n /** Props for the button that opens the calendar. */\n buttonProps: Record<string, unknown>;\n /** Whether the trigger button is currently pressed. */\n isButtonPressed: () => boolean;\n /** Whether the trigger button is disabled (picker disabled OR read-only). */\n isButtonDisabled: () => boolean;\n /** Props for the calendar dialog. */\n dialogProps: Record<string, unknown>;\n /** Props for the calendar. */\n calendarProps: Record<string, unknown>;\n /** Props for the description element. */\n descriptionProps: Record<string, unknown>;\n /** Props for the error message element. */\n errorMessageProps: Record<string, unknown>;\n /** Whether the picker is invalid. */\n isInvalid: boolean;\n /** Focus manager for programmatic segment focus (shared across both fields). */\n focusManager: {\n focusFirst: () => void;\n focusLast: () => void;\n };\n}\n\nexport function createDateRangePicker<T extends RangeCalendarState>(\n props: MaybeAccessor<AriaDateRangePickerProps>,\n state: T,\n overlayState: DatePickerState,\n ref: () => HTMLElement | null = () => null,\n): DateRangePickerAria {\n const getProps = () => access(props);\n const buttonId = createId();\n const dialogId = createId();\n const startFieldId = createId();\n const endFieldId = createId();\n\n const stringFormatter = createStringFormatter(datePickerStrings, \"@react-aria/datepicker\");\n const locale = useLocale();\n\n // Label + description/error-message ids, mirroring upstream `useField`.\n const field = createField(() => {\n const p = getProps();\n return {\n id: p.id,\n label: p.label,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n description: p.description,\n labelElementType: \"span\",\n isInvalid: p.isInvalid,\n errorMessage: p.errorMessage,\n };\n });\n\n // labelledBy = the field label id (or the field id when there is no label),\n // reused by the fields, button and dialog. Mirrors useDateRangePicker.\n const labelledBy = (): string | undefined => {\n const fp = field.fieldProps as Record<string, string | undefined>;\n return fp[\"aria-labelledby\"] || fp.id;\n };\n\n // Selected-range description for screen readers:\n // \"Selected Range: February 3 to 14, 2025\". Mirrors useDateRangePicker, which\n // formats the range with `{month: 'long'}` and folds the hidden description id\n // ahead of the visible describedby.\n const valueDescription = createMemo(() => {\n const range = state.formatValue(locale().locale, { month: \"long\" });\n return range\n ? stringFormatter().format(\"selectedRangeDescription\", {\n startDate: range.start,\n endDate: range.end,\n })\n : \"\";\n });\n const descProps = createDescription(valueDescription);\n\n // The picker's own describedby = value description + the field's describedby\n // (visible description / error message ids folded in by createField).\n const ariaDescribedBy = (): string | undefined => {\n const fp = field.fieldProps as Record<string, string | undefined>;\n return (\n [descProps[\"aria-describedby\"], fp[\"aria-describedby\"]].filter(Boolean).join(\" \") || undefined\n );\n };\n\n // Shared focus manager scoped to the whole group element, handed to BOTH fields\n // via focusManagerSymbol so auto-advance and programmatic focus (label click,\n // autoFocus) walk across the start/end field boundary.\n const sharedFocusManager = createFocusManager(ref);\n\n // FieldGroup shell. Faithful to useDateRangePicker `groupProps.role === 'group'`;\n // the label association, describedby, `aria-disabled` and the arrow-navigation /\n // press layer live here. The styled S2 layer OVERRIDES this to role=\"presentation\".\n const outerGroup = createDatePickerGroup(\n {\n setOpen: (isOpen: boolean) => (isOpen ? overlayState.open() : overlayState.close()),\n },\n ref,\n false,\n );\n\n const groupProps = createMemo(() =>\n mergeProps(outerGroup(), {\n role: \"group\" as const,\n \"aria-disabled\": getProps().isDisabled || undefined,\n \"aria-labelledby\": labelledBy(),\n \"aria-describedby\": ariaDescribedBy(),\n onKeyDown(e: KeyboardEvent) {\n if (!overlayState.isOpen) {\n getProps().onKeyDown?.(e);\n }\n },\n onKeyUp(e: KeyboardEvent) {\n if (!overlayState.isOpen) {\n getProps().onKeyUp?.(e);\n }\n },\n }),\n );\n\n // Props shared by both fields: presentation marker + the shared focus manager +\n // validation flags. Display options (granularity/hourCycle/…) live on the field\n // STATE (createDateFieldState), so they are not repeated here.\n const commonFieldProps = () => {\n const p = getProps();\n return {\n [roleSymbol]: \"presentation\",\n [focusManagerSymbol]: sharedFocusManager,\n \"aria-labelledby\": labelledBy(),\n \"aria-describedby\": ariaDescribedBy(),\n isDisabled: p.isDisabled || state.isDisabled(),\n isReadOnly: p.isReadOnly || state.isReadOnly(),\n isRequired: p.isRequired,\n validationBehavior: p.validationBehavior,\n form: p.form,\n };\n };\n\n const startFieldProps = createMemo(() => {\n const p = getProps();\n return mergeProps(commonFieldProps() as Record<string, unknown>, {\n id: startFieldId,\n \"aria-label\": stringFormatter().format(\"startDate\"),\n autoFocus: p.autoFocus,\n name: p.startName,\n });\n });\n\n const endFieldProps = createMemo(() => {\n const p = getProps();\n return mergeProps(commonFieldProps() as Record<string, unknown>, {\n id: endFieldId,\n \"aria-label\": stringFormatter().format(\"endDate\"),\n name: p.endName,\n });\n });\n\n // Trigger button. Disabled when the picker is disabled OR read-only.\n const isButtonDisabled = () => {\n const p = getProps();\n return p.isDisabled || state.isDisabled() || p.isReadOnly || state.isReadOnly();\n };\n\n const buttonPress = createPress({\n get isDisabled() {\n return isButtonDisabled();\n },\n onPress: () => {\n overlayState.open();\n },\n });\n\n const buttonProps = createMemo(() => {\n const p = getProps();\n return mergeProps(buttonPress.pressProps as Record<string, unknown>, {\n id: buttonId,\n type: \"button\" as const,\n \"aria-haspopup\": \"dialog\" as const,\n \"aria-label\": p.buttonAriaLabel ?? stringFormatter().format(\"calendar\"),\n \"aria-labelledby\": `${buttonId} ${labelledBy()}`,\n \"aria-describedby\": ariaDescribedBy(),\n \"aria-expanded\": overlayState.isOpen,\n \"aria-disabled\": isButtonDisabled() || undefined,\n tabIndex: 0,\n });\n });\n\n // Dialog props. Upstream is only `{id, 'aria-labelledby'}`; the port keeps\n // `role=\"dialog\"` because DateRangePickerContent spreads these onto the popover\n // container and this is the only role source there (RAC's Dialog would add it).\n const dialogProps = createMemo(() => ({\n id: dialogId,\n role: \"dialog\" as const,\n \"aria-labelledby\": `${buttonId} ${labelledBy()}`,\n }));\n\n // Calendar props. Faithful to useDateRangePicker (NO aria-label upstream); a\n // provided calendar/dialog aria-label is threaded through for parity with the\n // styled escape hatches. Largely vestigial in the port — the popover\n // RangeCalendar reads its state through RangeCalendarContext directly.\n const calendarProps = createMemo(() => {\n const p = getProps();\n const label = p.calendarAriaLabel ?? p.dialogAriaLabel;\n return {\n autoFocus: true,\n value: state.value(),\n minValue: undefined,\n maxValue: undefined,\n isDisabled: p.isDisabled || state.isDisabled(),\n isReadOnly: p.isReadOnly || state.isReadOnly(),\n isInvalid: p.isInvalid,\n ...(label ? { \"aria-label\": label } : {}),\n };\n });\n\n // Label click focuses the first segment (of the start field).\n const enhancedLabelProps = createMemo(() => ({\n ...(field.labelProps as Record<string, unknown>),\n onClick: () => {\n sharedFocusManager.focusFirst();\n },\n }));\n\n const isInvalid = createMemo(() => Boolean(getProps().isInvalid));\n\n return {\n get groupProps() {\n return groupProps();\n },\n get labelProps() {\n return enhancedLabelProps() as Record<string, unknown>;\n },\n get startFieldProps() {\n return startFieldProps();\n },\n get endFieldProps() {\n return endFieldProps();\n },\n get buttonProps() {\n return buttonProps();\n },\n isButtonPressed: () => buttonPress.isPressed(),\n isButtonDisabled: () => isButtonDisabled(),\n get dialogProps() {\n return dialogProps();\n },\n get calendarProps() {\n return calendarProps();\n },\n get descriptionProps() {\n return field.descriptionProps as Record<string, unknown>;\n },\n get errorMessageProps() {\n return field.errorMessageProps as Record<string, unknown>;\n },\n get isInvalid() {\n return isInvalid();\n },\n focusManager: {\n focusFirst: () => sharedFocusManager.focusFirst(),\n focusLast: () => sharedFocusManager.focusLast(),\n },\n };\n}\n"],"mappings":"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"}
|